Content deleted Content added
Replacing Kotlin_logo_2021.svg with File:Kotlin_logo_(2021-present).svg (by CommonsDelinker because: File renamed: Criterion 4 (harmonizing names of file set) · to match the name of othe |
|||
(27 intermediate revisions by 15 users not shown) | |||
Line 22:
An early proposal for a [[high-level programming language]] was [[Plankalkül]], developed by [[Konrad Zuse]] for his [[Z1 (computer)|Z1 computer]] between 1942 and 1945 but not implemented at the time.<ref>In 1998 and 2000 compilers were created for the language as a historical exercise. [[Raúl Rojas|Rojas, Raúl]], et al. (2000). "Plankalkül: The First High-Level Programming Language and its Implementation". Institut frame Informatik, Freie Universität Berlin, Technical Report B-3/2000. [http://ftp.mi.fu-berlin.de/pub/reports/TR-B-00-03.pdf (full text)]</ref>
The first functioning programming languages designed to communicate instructions to a computer were written in the early 1950s. [[John Mauchly]]'s [[Short Code (computer language)|Short Code]], proposed in 1949, was one of the first high-level languages ever developed for an [[electronic computer]].<ref name=Sebesta>{{cite book |last=Sebesta |first=W.S. |date=2006 |title=Concepts of Programming Languages |page=44 |publisher=Pearson/Addison-Wesley |isbn=978-0-321-33025-3}}</ref> Unlike [[machine code]], Short Code statements represented [[Expression (mathematics)|mathematical expressions]] in understandable form. However, the program had to be [[Interpreter (computing)|interpreted]] into machine code every time it ran, making the process much slower than running the equivalent machine code.
<!-- [[WP:NFCC]] violation: [[File:Manchester Mark2.jpg|thumb|300px|The [[Manchester Mark 1]] ran programs written in [[Autocode]] from 1952.]] -->
Line 44:
* syntax and [[Semantics_(computer_science)|semantics]] became even more orthogonal, with anonymous routines, a recursive typing system with higher-order functions, etc.;
* not only the context-free part, but the full language syntax and semantics were defined formally, in terms of [[Van Wijngaarden grammar]], a formalism designed specifically for this purpose.
ALGOL 68's many little-used language features (for example, concurrent and parallel blocks) and its complex system of syntactic shortcuts and automatic type coercions made it unpopular with implementers and gained it a reputation of being
{{Multiple image
Line 85:
* 1967 – [[BCPL]] (forerunner to C)
* 1967 – [[Logo (programming language)|Logo]] (an educational language that later influenced [[Smalltalk]] and [[Scratch (programming language)|Scratch]]).
* 1968 – [[Algol 68]]
{{div col end}}
Line 108 ⟶ 109:
* '''[[Smalltalk]]''' (mid-1970s) provided a complete ground-up design of an object-oriented language.
* '''[[Prolog]]''', designed in 1972 by [[Alain Colmerauer]], Phillipe Roussel, and [[Robert Kowalski]], was the first [[logic programming]] language.
* '''[[ML (programming language)|ML]]''' built a polymorphic type system (invented by [[Robin Milner]] in 1973) on Lisp,<ref name="Gordon1996">{{cite web |last=Gordon |first=Michael J. C. |author-link=Michael J. C. Gordon |year=1996 |title=From LCF to HOL: a short history |url=http://www.cl.cam.ac.uk/~mjcg/papers/HolHistory.pdf |page=3 |quote=Edinburgh LCF, including the ML interpreter, was implemented in Lisp. |access-date=2015-05-04}}</ref> pioneering [[type system|statically typed]] [[functional programming]] languages.
Each of these languages spawned an entire family of descendants, and most modern languages count at least one of them in their ancestry. The 1960s and 1970s also saw considerable debate over the merits of "[[structured programming]]", which essentially meant programming without the use of <code>[[goto]]</code>. A significant fraction of programmers believed that, even in languages that provide <code>goto</code>, it is bad [[programming style]] to use it except in rare circumstances. This debate was closely related to language design: some languages had no <code>goto</code>, which forced the use of structured programming.
Line 194 ⟶ 197:
| image6 = Ruby logo.svg
| caption6 = Ruby
| image7 = OCaml_Logo.svg
| caption7 =
}}
The rapid growth of the Internet in the mid-1990s was the next major historic event in programming languages. By opening up a radically new platform for computer systems, the Internet created an opportunity for new languages to be adopted. In particular, the [[JavaScript]] programming language rose to popularity because of its early integration with the Netscape Navigator web browser. Various other scripting languages achieved widespread use in developing customized applications for web servers such as PHP. The 1990s saw no fundamental novelty in [[imperative language]]s, but much recombination and maturation of old ideas. This era began the spread of [[functional language]]s. A big driving philosophy was programmer productivity. Many [[rapid application development]] (RAD) languages emerged, which usually came with an [[integrated development environment]] (IDE), [[Garbage collection (computer science)|garbage collection]], and were descendants of older languages. All such languages were [[Object-oriented programming|object-oriented]]. These included [[Object Pascal]], Objective Caml (renamed [[OCaml]]), [[Visual Basic (classic)|Visual Basic]], and [[Java (programming language)|Java]]. Java in particular received much attention.
Line 239 ⟶ 242:
| image6 = Go Logo Blue.svg
| caption6 = Go
| image7 = Clojure_logo.svg
| caption7 = Clojure
| image8 = Haxe_logo.svg
| caption8 = Haxe
}}
Programming language evolution continues, and more programming
Some of the trends have included:
Line 269 ⟶ 276:
* 2003 – [[Scala (programming language)|Scala]]
* 2005 – [[F Sharp (programming language)|F#]]
* 2005 – [[Haxe]]
* 2006 – [[Windows PowerShell|PowerShell]]
* 2007 – [[Clojure]]
Line 287 ⟶ 295:
| image8 = Swift logo.svg
| caption8 = Swift
| image9= Kotlin logo (2021-present).svg
| caption9 = Kotlin
| image10 = Typescript.svg
Line 311 ⟶ 319:
* Multiple new programming languages tried to provide a modern replacement for the C programming language.
* Many new programming languages are influenced by the popular dynamic languages and promised adding type safety without decreasing the productivity.
* Many new programming languages uses [[LLVM]] in their implementation.
Many [[Big Tech]] companies continued introducing new programming languages that are designed to serve their needs and provides first-class support for their platforms. for example:
Line 335 ⟶ 344:
Other new programming languages include [[Elm (programming language)|Elm]],
[[Ballerina (programming language)|Ballerina]], [[Red (programming language)|Red]], [[Crystal (programming language)|Crystal
== 2020s: Current trends ==
Line 350 ⟶ 359:
}}
The development of new programming languages continues, and some new languages appears with focus on providing a replacement for current languages. These new languages try to provide the advantages of a known language like C++ (versatile and fast) while adding safety or reducing complexity. Other new languages try to bring ease of use as provided by Python while adding performance as a priority. Also, the growing of Machine Learning and AI tools still plays a big rule behind these languages' development, where some visual languages focus on integrating these AI tools while other textual languages focus on providing more suitable support for developing them. <ref>{{cite web | url=https://www.microsoft.com/en-us/power-platform/blog/power-apps/introducing-the-new-copilot-features-for-power-fx/ | title=Introducing new Copilot features for Power Fx | website=[[Microsoft]] | date=29 April 2024 }}</ref><ref>{{cite web | url=https://www.infoworld.com/article/2336275/carbon-language-aims-to-be-a-better-c-plus-plus.html | title=Carbon language aims to be a better C++ }}</ref><ref>{{cite web | url=https://devops.com/modular-makes-a-case-for-mojo-programming-language-based-on-python/ | title=Modular Makes a Case for Mojo Programming Language, Based on Python | date=5 April 2024 }}</ref>
Some notable new programming languages include:
Line 385 ⟶ 394:
Some key people who helped develop programming languages:
* [[Ada Lovelace]], published first computer program
* [[Alan Cooper (software designer)|Alan Cooper]], developer of [[Visual Basic (classic)|Visual Basic]].
* [[Alan Kay]], pioneering work on object-oriented programming, and originator of [[Smalltalk]].
* [[Anders Hejlsberg]], developer of [[Turbo Pascal]], [[Delphi (software)|Delphi]], [[C Sharp (programming language)|C#]], and [[TypeScript]].
Line 395 ⟶ 404:
* [[Brian Kernighan]], co-author of the first book on the [[C (programming language)|C]] programming language with [[Dennis Ritchie]], coauthor of the [[AWK]] and [[AMPL (programming language)|AMPL]] programming languages.
* [[Charles H. Moore|Chuck Moore]], inventor of [[Forth (programming language)|Forth]], the first concatenative programming language, and a prominent name in [[stack machine]] microprocessor design.
* [[Chris Lattner]], creator of [[Swift (programming language)|Swift]], [[Mojo (programming language)|Mojo]] and [[Clang]]/[[LLVM]].
* [[Cleve Moler]], creator of [[MATLAB]].
* [[Dennis Ritchie]], inventor of [[C (programming language)|C]]. Unix Operating System, Plan 9 Operating System.
Line 462 ⟶ 471:
* [http://www.scriptol.com/programming/history.php History and evolution of programming languages]
* [http://www.levenez.com/lang/history.html Graph of programming language history]
* [http://hopl.info/ Online Historical Encyclopaedia of Programming Languages]
{{Programming languages}}
|