Recent from talks
All channels
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Welcome to the community hub built to collect knowledge and have discussions related to Lists of programming languages.
Nothing was collected or created yet.
Lists of programming languages
View on Wikipediafrom Wikipedia
| Programming language lists |
|---|
There are thousands of programming languages. These are listed in various ways:
| To display all pages, subcategories and images click on the "►": |
|---|
Lists of programming languages
View on Grokipediafrom Grokipedia
General Lists
Alphabetical Lists
Alphabetical lists of programming languages provide a neutral and exhaustive method for cataloging the vast array of over 8,900 known languages, arranging them by name to facilitate quick and systematic reference without imposing thematic or temporal filters.[5] This approach ensures comprehensive coverage, from obscure historical dialects to widely used modern systems, allowing researchers, developers, and historians to locate specific entries efficiently based on nomenclature alone. Such lists typically emphasize completeness, incorporating both active and defunct languages to preserve the full spectrum of computational history. A prominent example is the database maintained by the History of Programming Languages (HOPL) project, which compiles entries in alphabetical order with details on each language's introduction year, key inventors or designers, and concise descriptions of purpose and features.[5] For instance, early languages like Fortran, introduced in 1957 by John Backus and a team at IBM for scientific computing, appear alongside more recent ones such as Rust, developed starting in 2006 by Graydon Hoare as a personal project and sponsored by Mozilla from 2009 for systems programming with a focus on memory safety.[6] The structure often includes notable uses or influences, highlighting how these catalogs bridge eras—evident in the inclusion of defunct languages like ALGOL 68, released in 1968 by the International Federation for Information Processing for general-purpose algorithmic expression but largely supplanted by successors. These lists also account for variants and evolutions within language families, distinguishing versions like Python 2 (introduced in 2000 by Guido van Rossum for broad scripting applications) from Python 3 (launched in 2008 to address design limitations and enhance Unicode support). Advantages of this organization include ease of lookup for targeted inquiries and historical completeness, enabling users to trace linguistic lineages without prior knowledge of paradigms or timelines—though chronological aspects are addressed separately in dedicated lists. By prioritizing name-based indexing, alphabetical compilations serve as foundational reference directories, supporting education and archival efforts in computer science.[5]Chronological Lists
Chronological lists organize programming languages by their year of conception, first implementation, or significant release, offering a linear view of technological evolution from rudimentary machine instructions to sophisticated high-level constructs. These timelines underscore how innovations in hardware, such as the transition from vacuum tubes to transistors, and theoretical foundations drove language development, beginning in the mid-20th century when programmable electronic computers became feasible. By sequencing languages temporally, researchers and historians can trace patterns like the shift from low-level efficiency to high-level abstraction, while noting documentation challenges for early, unimplemented designs.[7] The origins of chronological cataloging reach back to the 1940s, amid the dawn of digital computing. Machine code, the direct manipulation of binary instructions, dominated this era, but the first algorithmic high-level language emerged with Plankalkül, designed by Konrad Zuse in 1945 for his Z3 computer, though it remained theoretical until the 1970s due to wartime disruptions and lack of implementation tools. Pre-1950 efforts often suffer from sparse records; for instance, Ada Lovelace's 1843 algorithm for Charles Babbage's Analytical Engine anticipated looping but lacked a formal language syntax, highlighting gaps in verifiable documentation before electronic hardware existed. The von Neumann architecture, formalized in 1945, profoundly influenced early languages by promoting imperative, sequential models with stored programs and mutable memory, as seen in subsequent designs that mirrored this stored-program paradigm. In the 1950s, assembly languages bridged machine code and higher abstraction, enabling symbolic representation of hardware instructions, while the first widely implemented high-level languages appeared. Fortran, developed by John Backus and a team at IBM in 1957, targeted scientific and engineering computations, introducing compiled code for efficiency on IBM 704 systems. Lisp followed in 1958, created by John McCarthy at MIT to support symbolic computation and recursion for AI research, laying groundwork for list processing. The 1960s emphasized structured programming to enhance readability and maintainability, with ALGOL 60 serving as a pivotal milestone; designed by an international committee, it standardized expressions, blocks, and procedures, influencing over 80 descendant languages. By the 1970s, systems-oriented languages proliferated, exemplified by C, authored by Dennis Ritchie at Bell Labs in 1972 to develop Unix, combining low-level control with portability across hardware. The 1990s aligned with internet expansion, featuring JavaScript, prototyped by Brendan Eich at Netscape in 1995 (initially as Mocha) for dynamic web content, which rapidly became ubiquitous for browser scripting. Recent decades reflect demands for concurrency, performance, and specialized domains. Go, unveiled by Robert Griesemer, Rob Pike, and Ken Thompson at Google in 2009, prioritizes simplicity and goroutines for networked applications. Julia, launched in 2012 by Jeff Bezanson, Stefan Karpinski, and Viral Shah, addresses scientific computing by blending Python-like syntax with C-level speed via just-in-time compilation. As of 2025, chronological lists incorporate contemporary entries like Mojo, released in 2023 by Modular Inc. to superset Python for AI workloads with hardware-accelerated performance. Emerging quantum languages, such as Microsoft's Q# (introduced 2017) and IBM's Qiskit (evolving since 2016), are increasingly documented, adapting classical syntax to quantum circuits amid hardware prototypes like superconducting qubits. A representative "Timeline of Programming Languages" compiles these milestones, often presented in tabular form for clarity:| Decade | Key Languages | Creators/Organizations | Notable Features |
|---|---|---|---|
| 1940s | Plankalkül (1945) | Konrad Zuse | First high-level algorithmic design |
| 1950s | Fortran (1957), Lisp (1958) | IBM (Backus team), MIT (McCarthy) | Scientific computing, symbolic AI |
| 1960s | ALGOL 60 (1960) | International committee | Structured control flow |
| 1970s | C (1972) | Bell Labs (Ritchie) | Systems programming portability |
| 1990s | JavaScript (1995) | Netscape (Eich) | Dynamic web scripting |
| 2010s-2020s | Go (2009), Julia (2012), Mojo (2023) | Google, Julia team, Modular | Concurrency, scientific speed, AI optimization |
Lists by Paradigm and Type
Paradigm-Based Lists
Programming paradigms provide a foundational framework for categorizing programming languages based on their core approach to expressing computations, managing state, and solving problems. These paradigms shape the design philosophy of languages, influencing syntax, semantics, and suitability for different tasks. The primary paradigms include imperative, which focuses on describing how a program operates by explicitly changing state through sequences of commands; declarative, which specifies what the outcome should be without detailing the steps; and various sub-paradigms such as functional, object-oriented, and logic programming.[9][10][11] Imperative languages, often procedural in nature, dominated early programming from the 1950s onward, with FORTRAN (1957) as one of the first high-level examples emphasizing step-by-step instructions for numerical computations.[12] Subsequent imperative languages like C (1972), developed at Bell Labs for systems programming, and Java (1995), designed for platform independence, extended this paradigm by incorporating structured control flow and modularity.[11][10] In contrast, functional programming treats computation as the evaluation of mathematical functions and avoids mutable state, promoting immutability and higher-order functions; Lisp (1958) introduced key concepts like recursion and lambda expressions, while modern examples include Haskell (1990), a purely functional language standardized by a committee for research and education, and Scala (2004), which integrates functional features with object-oriented elements on the JVM.[13][11] Object-oriented programming organizes software around objects encapsulating data and behavior, emerging in the late 1960s; Simula (1967) pioneered classes and inheritance for simulation tasks, followed by Smalltalk (1972), which popularized dynamic typing and message passing, and C++ (1985), an extension of C adding classes for efficient systems development.[14][15] Logic programming, a declarative subset, uses formal logic to define rules and facts for automated inference; Prolog (1972), developed at the University of Marseille and Edinburgh, remains the canonical example, applied in artificial intelligence and expert systems.[11][10] Paradigm-based lists typically feature subsections for these categories, highlighting representative languages and their evolution. For instance, imperative lists include many languages since the 1950s, reflecting its foundational role in general-purpose computing.[12] Functional lists encompass dozens of major languages, with around 27 notable examples like Clojure (2007) and Elixir (2011) emphasizing concurrency and fault tolerance.[16][17] Object-oriented lists feature numerous prominent languages, from pure implementations like Java to hybrids.[18] Logic lists are smaller, dominated by Prolog variants due to the paradigm's niche in symbolic computation. Multi-paradigm languages bridge these, such as Python (1991), which supports imperative procedural code, object-oriented encapsulation, and functional constructs like list comprehensions, enabling flexible development.[11] Historical shifts illustrate this progression: the 1960s focused on procedural imperative languages like ALGOL (1958) for algorithm description, transitioning in the 1970s–1980s to object-oriented paradigms amid growing software complexity, as seen in the adoption of Smalltalk for graphical interfaces.[12][15] Specialized paradigms extend these foundations, addressing cross-cutting concerns or concurrency. Aspect-oriented programming modularizes aspects like logging or security that span multiple modules; AspectJ (2001), an extension to Java developed at Xerox PARC and now maintained by Eclipse, introduced join points and advice for seamless integration.[19][20] Concurrent programming paradigms support parallelism and distribution, with Erlang (1986), created at Ericsson for telecommunications, providing actor-based concurrency and hot code swapping for high-availability systems.[21] Hybrid paradigms, such as reactive programming, combine declarative event streams with functional reactivity, though coverage in lists remains limited; examples include language extensions like those in RxJS (2010) for JavaScript, focusing on asynchronous data flows.[22] These categorizations reveal how paradigms evolve, with multi- and hybrid approaches dominating modern lists to accommodate diverse computational needs.[11]| Paradigm | Key Characteristics | Representative Languages (Year) |
|---|---|---|
| Imperative | State mutation via sequential commands | FORTRAN (1957), C (1972), Java (1995) |
| Functional | Immutable data, function composition | Lisp (1958), Haskell (1990), Scala (2004) |
| Object-Oriented | Objects with data and methods | Simula (1967), Smalltalk (1972), C++ (1985) |
| Logic | Rule-based inference | Prolog (1972) |
| Aspect-Oriented | Modular cross-cutting concerns | AspectJ (2001) |
| Concurrent | Parallel process handling | Erlang (1986) |
Type and Feature-Based Lists
Type and feature-based lists categorize programming languages according to granular attributes such as data structures, execution models, memory management, or syntactic elements, providing insights into specialized capabilities that transcend broader paradigms. These lists emphasize how languages implement specific mechanisms, like array operations or concurrency primitives, to suit particular computational needs. For instance, they distinguish languages optimized for vectorized computations from those focused on low-level hardware control, enabling developers to select tools based on precise requirements rather than general philosophies. Array languages form a prominent category, designed for operations on entire arrays as first-class citizens rather than element-by-element processing. APL, introduced in 1964 by Kenneth E. Iverson, pioneered this approach with its concise notation for multidimensional array manipulations, influencing subsequent designs. J, developed in 1990 by Kenneth E. Iverson and Roger Hui as a successor to APL, extends this model with ASCII-based syntax while maintaining high-level array primitives for mathematical and data-intensive tasks.[23] Such lists highlight array languages' efficiency in scientific computing, where operations like transposition or indexing are expressed idiomatically. Assembly languages represent another key feature-based grouping, focusing on direct hardware instruction mapping without high-level abstractions. x86 assembly, originating from Intel's 8086 processor in 1978, exemplifies this by providing mnemonic codes for machine-level operations, essential for system programming and performance-critical code. These lists underscore assembly's role in embedded systems and reverse engineering, where fine-grained control over registers and memory addressing is paramount. Scripting languages are listed by their interpretive execution and focus on rapid prototyping, often with dynamic typing and built-in facilities for text processing or automation. Perl, created by Larry Wall in 1987, excels in pattern matching and file handling through its regular expression engine, making it a staple for system administration scripts. Ruby, developed by Yukihiro Matsumoto in 1995, emphasizes readability and object-oriented scripting, with features like blocks and metaprogramming for web development. Feature lists for scripting languages reveal their advantages in glue code, where quick iteration outweighs compiled performance. Vector and array-oriented languages prioritize parallelizable computations on numerical data. MATLAB, released by MathWorks in 1984, supports vectorized operations natively, allowing expressions like matrix multiplications without explicit loops, which accelerates prototyping in engineering simulations. Extensions like NumPy in Python, introduced in 2006, bring similar array-oriented paradigms to a general-purpose language, enabling efficient broadcasting and indexing for data science workflows. These categorizations illustrate how feature-based designs reduce boilerplate in numerical algorithms. Dataflow languages model computation as graphs of dependencies, where execution follows data availability rather than sequential control flow. LabVIEW, developed by National Instruments in 1986, visualizes programs as block diagrams, facilitating parallel execution in measurement and control applications. Such lists emphasize dataflow's suitability for concurrent, event-driven systems like signal processing. Metaprogramming features, where code can generate or modify itself at compile or runtime, define another specialized list, often seen in dialects of Lisp. Common Lisp, standardized in 1994, includes macros for syntactic abstraction, allowing domain-specific languages to be embedded seamlessly. Scheme, a minimalist Lisp variant from 1975, supports similar hygiene in macro expansion for extensible syntax. These traits enable powerful customization, as in generative programming for compilers or frameworks. Esoteric languages push feature extremes to explore computational boundaries, often as Turing tarpits with minimalistic designs. Brainfuck, invented by Urban Müller in 1993, operates with only eight commands on a tape-based memory model, demonstrating Turing completeness in an ultra-constrained syntax. Lists of esoteric types highlight theoretical insights, such as the trade-offs in expressiveness versus simplicity. Domain-specific features embed specialized syntax within broader languages, as in SQL for declarative database queries. Developed by Donald D. Chamberlin and Raymond F. Boyce in 1974 at IBM, SQL's relational algebra primitives like SELECT and JOIN abstract data retrieval, optimizing for storage engines. These lists showcase how embedded features enhance productivity in targeted domains like analytics. Feature-based lists reveal niche advantages, such as automated memory management versus manual control. Java, released by Sun Microsystems in 1995, incorporates concurrent garbage collection to handle object lifecycles automatically, reducing errors in large-scale applications. In contrast, C, standardized in 1989 by ANSI, requires explicit allocation and deallocation, granting precise control but increasing the risk of leaks or overflows. Modern features like async/await, introduced in Swift 5.5 by Apple in 2021, simplify asynchronous programming by treating promises as first-class values, improving readability in concurrent I/O.[24] Overall, these categorizations aid in matching languages to tasks requiring specific traits, from parallelism to safety.Lists by Domain and Application
Domain-Specific Lists
Domain-specific lists of programming languages categorize them based on their tailored applications in particular industries or problem areas, emphasizing how these languages address unique challenges within those domains rather than general-purpose versatility. These lists highlight languages designed or adapted for efficiency in specialized tasks, such as numerical simulations in science or real-time processing in finance, often evolving into domain-specific languages (DSLs) that prioritize expressiveness for experts in the field.[25] In scientific computing, lists frequently feature Fortran, developed in 1957 by IBM for high-performance numerical analysis and simulations, which remains foundational for computational physics and engineering due to its optimized handling of mathematical operations. R, created in 1993 by Ross Ihaka and Robert Gentleman at the University of Auckland, tops many such lists for statistical analysis and data visualization in research, offering built-in packages for hypothesis testing and graphics that streamline workflows in academia and pharmaceuticals. Julia, introduced in 2012, has gained prominence in these lists for its speed in high-performance computing tasks like machine learning model training, bridging the gap between productivity and performance in scientific domains. Web development lists spotlight PHP, first released in 1995 by Rasmus Lerdorf as a server-side scripting tool for dynamic websites, enabling rapid content generation and database integration that powered early e-commerce platforms. JavaScript, invented in 1995 by Brendan Eich at Netscape, dominates client-side interactivity lists, evolving to support full-stack development through frameworks like Node.js for real-time applications such as social media feeds. Finance-specific lists often include q, the array-oriented language underlying KDB+ database from KX Systems, launched in 2003 to handle high-frequency trading data with sub-millisecond query times on massive time-series datasets. This language's vectorized operations facilitate risk modeling and algorithmic trading, where processing billions of records daily is routine. Database management lists commonly feature SQL, developed in the 1970s by IBM researchers Donald Chamberlin and Raymond Boyce (originally as SEQUEL), a declarative language for querying and managing relational databases that has become the de facto standard across industries.[26] For audio and music production, lists highlight Csound, originated in 1986 by Barry Vercoe at MIT as a sound synthesis language, allowing composers to define instruments and scores algorithmically for experimental music creation. SuperCollider, developed in 1996 by James McCartney, appears in live coding and generative music lists, providing real-time audio synthesis and pattern-based composition for performances and installations. Game development lists prominently feature C#, introduced by Microsoft in 2000, which integrates seamlessly with the Unity engine for cross-platform game scripting, handling physics, animations, and user interfaces in titles like Among Us. In artificial intelligence and machine learning, lists emphasize Julia's role in numerical optimization and model deployment, supporting libraries like Flux.jl for differentiable programming that accelerates training on GPUs. While Python hosts frameworks like TensorFlow, the focus here is on Julia's native performance for large-scale simulations in AI research. Domain-specific languages exemplify specialized lists. Verilog, created in 1984 by Gateway Design Automation, serves hardware description lists for digital circuit design, enabling simulation and synthesis of VLSI chips through behavioral modeling. In bioinformatics, domain-specific lists often highlight general-purpose languages like Python, augmented by specialized libraries such as Biopython (initiated in 1999) for sequence analysis and phylogenetics, including parsing genomic data and building evolutionary trees. As of 2025, emerging domain lists include quantum computing with Q#, a Microsoft language released in 2017 for expressing quantum algorithms using high-level abstractions over qubits and gates. Blockchain lists feature Solidity, developed in 2014 by the Ethereum team for writing smart contracts, with its Turing-complete syntax enabling decentralized applications like DeFi protocols. Cybersecurity lists often feature Python for scripting tasks such as reverse engineering, as in tools like IDA Pro via its IDAPython extension, integrated around 2006, for automating malware analysis and exploit development.Platform and Environment Lists
Lists of programming languages categorized by platform and environment emphasize the hardware, operating systems, or runtime contexts in which languages are designed to operate, highlighting adaptations for specific computational constraints and deployment scenarios. These lists distinguish languages based on their compatibility with target environments, such as resource-limited devices or distributed networks, rather than abstract paradigms or domains. For instance, embedded systems have long favored low-level languages like C, developed between 1969 and 1973 for systems programming including operating systems and utilities, which provides direct hardware access essential for memory-constrained environments.[27] Similarly, Ada, originally developed in the early 1980s under U.S. Department of Defense requirements for real-time and embedded applications, offers strong typing and concurrency features to ensure reliability in safety-critical hardware.[28] In mobile platforms, languages are tailored for app ecosystems tied to specific operating systems, such as Swift, introduced by Apple in 2014 for iOS development to enable safe and performant native applications on Apple hardware.[29] Kotlin, first released in 2011 and optimized for Android since its stable version in 2016, supports interoperable code on Google's mobile platform, reducing boilerplate while leveraging Java Virtual Machine compatibility.[30] For cloud environments, Go, designed in 2009 for scalable networked services, excels in microservices architectures due to its built-in concurrency model via goroutines, facilitating efficient deployment on distributed cloud infrastructures.[31] Cross-platform languages like Java, released in 1995 with the Java Virtual Machine (JVM), enable "write once, run anywhere" execution across diverse operating systems and hardware by compiling to bytecode interpreted uniformly.[32] Operating system-specific lists include scripting languages for automation, such as Windows batch files, which use command-line interpreters native to Microsoft Windows for task scheduling and system administration since the OS's early versions. Unix shell scripting, originating with the Bourne shell in 1977, provides environment-specific tools for process control and file manipulation on Unix-like systems, influencing modern POSIX standards. Browser-based environments rely on JavaScript, standardized in 1997 but originating in 1995 for client-side web scripting, which executes directly in web engines like V8. WebAssembly (Wasm) extends this to high-performance languages compiled to a binary format, such as Rust targeting Wasm since 2017 for secure, near-native speed in browsers without plugins. Real-time systems lists feature languages like Occam, released in 1983 by INMOS for parallel hardware in transputer networks, emphasizing process-oriented programming for concurrent execution in time-sensitive applications. For Internet of Things (IoT) devices, MicroPython, a lean Python implementation launched in 2013, optimizes for microcontrollers with limited resources, supporting rapid prototyping on platforms like ESP8266.[33] Historically, these lists trace evolution from mainframe-oriented languages like COBOL, developed in 1959 by CODASYL for business data processing on large-scale IBM systems, to distributed environments exemplified by Erlang, created in 1986 by Ericsson for fault-tolerant telecom switches handling massive concurrency in telephony networks.[34][35] This progression reflects shifts in computing from centralized hardware to edge and cloud deployments. As of 2025, coverage remains limited for emerging edge computing languages optimized for 5G and 6G devices, where low-latency requirements drive adaptations of existing languages like C++ or Rust, though specialized dialects are still evolving without widespread standardization.Lists by Historical and Usage Metrics
Historical Development Lists
Historical development lists in programming languages provide structured timelines that trace evolutionary influences, key milestones, and socio-technical factors shaping language design, often highlighting how earlier innovations informed later ones beyond simple chronology. These lists emphasize causal relationships, such as the block structures and nested scopes introduced in ALGOL 60, which directly influenced the syntax of Pascal developed by Niklaus Wirth in 1970 to address limitations in teaching and applying algorithmic concepts across commercial and scientific domains.[36][7] Similarly, such lists document the persistence of older languages like COBOL, created in 1959 for business data processing, which has endured due to its reliability in mission-critical financial systems despite predictions of obsolescence, maintaining a role in over 70% of global business transactions as of recent analyses.[37][38] Generational classifications form a core component of these historical lists, categorizing languages by abstraction levels and technological contexts to illustrate progression from low-level hardware dependency to higher-level productivity tools. First-generation languages (1GL), emerging in the 1940s, consisted of machine code—binary instructions directly executable by early computers like the ENIAC—lacking any human-readable abstraction and requiring manual encoding of operations.[39] Fourth-generation languages (4GL), developed in the 1970s and 1980s, focused on domain-specific tasks such as database querying, with SQL (standardized in 1974) exemplifying non-procedural commands for data manipulation that reduced complexity in report generation and mathematical optimization.[40] Standardization efforts are another focal point, as seen in the 1989 ANSI X3.159 ratification of the C programming language, which formalized syntax and semantics to enhance portability across systems, stemming from Dennis Ritchie's 1972 work at Bell Labs to support Unix operating system development.[41][42][43] Pivotal events anchor these lists, including the January 1960 Paris conference where international delegates finalized the ALGOL 60 report, establishing it as a foundational algorithmic language that prioritized formal syntax over hardware specifics and influenced subsequent European and American designs.[44] Open-source transitions also feature prominently, such as the 1987 release of the GNU Compiler Collection (GCC) by Richard Stallman, initially as a C compiler but soon extended to C++ support, democratizing access to compilation tools and accelerating language adoption in academic and industry settings.[45] These lists further contrast origins: Lisp, invented by John McCarthy in 1958 at MIT as an academic tool for artificial intelligence research using list processing and recursive functions, versus C's industry roots at Bell Labs, where Ritchie evolved it from B for efficient systems programming on minicomputers.[46][42] Socio-technical factors, including diversity in contributions, are increasingly noted in modern historical lists; for instance, Grace Hopper's leadership in developing FLOW-MATIC from 1955 to 1959 at Remington Rand introduced English-like commands for data processing on the UNIVAC I, pioneering compiler technology and influencing COBOL's business-oriented syntax while highlighting early women's roles in computing amid male-dominated fields.[47] However, these lists often reveal gaps, particularly in covering post-2020 influences like AI-driven auto-optimization in compilers, where generative models assist in code synthesis but have yet to fundamentally reshape language paradigms in documented histories.[48]Popularity and Adoption Lists
Popularity and adoption lists rank programming languages based on quantitative metrics such as search engine queries, developer surveys, and repository activity, providing insights into current usage and community engagement.[2][3][49] These lists emphasize present-day relevance over historical context, highlighting languages that dominate job markets, open-source contributions, and enterprise systems. Key indices include the TIOBE Programming Community Index, which measures popularity through search engine results for language-related terms; the PYPL (PopularitY of Programming Language) index, derived from Google Trends data on tutorial searches; Stack Overflow Developer Surveys, which poll professional developers on usage; and GitHub's Octoverse reports, analyzing contributions across repositories.[2][3][49][48] As of November 2024, Python consistently leads across multiple metrics, reflecting its versatility in data science, web development, and AI. The TIOBE Index ranks Python first with 20.38% share, followed by C++ (10.11%), C (9.47%), Java (8.84%), and C# (4.69%), while JavaScript holds sixth place.[2] The PYPL Index as of October 2024 places Python at 28.68%, with Java at 15.35% and JavaScript at 7.91%.[3] Stack Overflow's 2024 Developer Survey reports JavaScript as the most used language at 62.3%, followed by HTML/CSS (52.9%), Python (50.7%), SQL (49.1%), and TypeScript (38.5%), underscoring web and backend dominance.[49] GitHub's Octoverse 2024 reveals Python as a leading language by pull requests, with JavaScript and TypeScript close behind; nearly 80% of new repositories use one of Python, JavaScript, TypeScript, Java, C++, or C#.[48] Enterprise adoption often sustains older languages despite broader trends. For instance, COBOL remains critical in banking, powering 95% of ATM transactions and 80% of in-person payments, processing $3 trillion daily through billions of lines of active code in legacy systems.[50] This persistence stems from the reliability of mainframe environments, where modernization risks outweigh benefits for high-volume financial operations.[51] Notable trends include the rise of Rust, driven by its memory safety features appealing to systems programming. From around 18th in the TIOBE Index in 2020, Rust has climbed steadily, reaching 0.92% as of November 2024 and ranking as the most admired language (72%) in Stack Overflow's 2024 survey for its ninth consecutive year.[2][49] Conversely, Ruby has declined since its post-2010 peak, largely due to waning interest in Ruby on Rails amid competition from faster frameworks in JavaScript and Python ecosystems.[52][53] Factors influencing adoption include job market demand, as captured in surveys showing high salaries for languages like Rust and Go, and robust library ecosystems that accelerate development—such as npm for JavaScript, which hosts over 2 million packages supporting full-stack applications.[49][54] PYPL's Google Trends methodology further reveals learner interest, correlating with long-term adoption in education and industry.[3] These lists often underrepresent non-Western adoption, where regional preferences diverge; for example, Go (Golang) ranks in the top 5 in Chinese developer surveys as of 2024 due to its efficiency in cloud-native and backend services, outpacing global averages in local communities.[49]| Index | Top 5 Languages (2024) | Metric Basis |
|---|---|---|
| TIOBE (Nov) | Python, C++, C, Java, C# | Search engine queries[2] |
| PYPL (Oct) | Python, Java, JavaScript, C#, C++ | Google Trends for tutorials[3] |
| Stack Overflow Survey | JavaScript, HTML/CSS, Python, SQL, TypeScript | Developer usage poll[49] |
| GitHub Octoverse | Python, JavaScript, TypeScript, Java, C# | Repository contributions[48] |
