History of programming languages: Difference between revisions

Content deleted Content added
2020s and Current trends: Rename section - Follow the article style.
Towards separate sections for 2000s and 2010s
Line 222:
{{div col end}}
 
== 2000s: andprogramming 2010sparadigms ==
 
{{Multiple image
| align = right
Line 234 ⟶ 235:
| image3 = PowerShell Core 6.0 icon.png
| caption3 = PowerShell
| image4 = Rust programming language black logo.svg
| caption4 = Rust
| image5 = Scratchlogo.svg
| caption5 = Scratch
| image6 = Go Logo Blue.svg
| caption6 = Go
}}
 
Programming language evolution continues, and more programming paradigm are used in production.
 
Some of the trends have included:
* Increasing support for [[functional programming]] in mainstream languages used commercially, including [[purely functional programming]] for making code easier to reason about and to parallelize (at both micro- and macro- levels)
* Constructs to support [[Concurrent computing|concurrent]] and [[Distributed computing|distributed]] programming.
* Mechanisms for adding security and [[reliability verification]] to the language: extended static checking, [[dependent typing]], information flow control, static [[thread safety]].
* Alternative mechanisms for composability and modularity: [[mixin]]s, [[Trait (computer programming)|traits]], [[typeclass]]es, [[Delegation (programming)|delegates]], [[Aspect-oriented programming|aspects]].
* Component-oriented software development.
* More interest in [[visual programming language]]s like [[Scratch (programming language)|Scratch]], [[LabVIEW]], and [[PWCT]]
* [[Metaprogramming]], [[reflective programming]] (reflection), or access to the [[abstract syntax tree]]
** [[Aspect-oriented programming]] (AOP) allowing developers to insert code in another module or class at "join points"
** [[Domain-specific language]]s and [[Automatic programming|code generation]]
*** XML for graphical interface ([[XUL]], [[Extensible Application Markup Language]] (XAML))
 
Some notable languages developed during this period include:
 
{{div col}}
* 2000 – [[ActionScript]]
* 2001 – [[C Sharp (programming language)|C#]]
* 2001 – [[D (programming language)|D]]
* 2002 – [[Scratch (programming language)|Scratch]]
* 2003 – [[Groovy (programming language)|Groovy]]
* 2003 – [[Scala (programming language)|Scala]]
* 2005 – [[F Sharp (programming language)|F#]]
* 2006 – [[Windows PowerShell|PowerShell]]
* 2007 – [[Clojure]]
* 2008 – [[Nim (programming language)|Nim]]
* 2009 – [[Go (programming language)|Go]]
{{div col end}}
 
== 2010s: the Mobile age ==
{{Multiple image
| align = right
| direction = vertical
| width = 100
| header = Logos
| image4 = Rust programming language black logo.svg
| caption4 = Rust
| image7 = Dart programming language logo.svg
| caption7 = Dart
Line 257 ⟶ 296:
| caption14 = Zig
}}
 
Programming language evolution continues, in both industry and research. Some of the trends from 2000s to 2010s have included:
Programming language evolution continues with the rise of new programming domains.
* Increasing support for [[functional programming]] in mainstream languages used commercially, including [[purely functional programming]] for making code easier to reason about and to parallelize (at both micro- and macro- levels)
 
* Constructs to support [[Concurrent computing|concurrent]] and [[Distributed computing|distributed]] programming.
* Mechanisms for adding security and [[reliability verification]] to the language: extended static checking, [[dependent typing]], information flow control, static [[thread safety]].
* Alternative mechanisms for composability and modularity: [[mixin]]s, [[Trait (computer programming)|traits]], [[typeclass]]es, [[Delegation (programming)|delegates]], [[Aspect-oriented programming|aspects]].
* Component-oriented software development.
* [[Metaprogramming]], [[reflective programming]] (reflection), or access to the [[abstract syntax tree]]
** [[Aspect-oriented programming]] (AOP) allowing developers to insert code in another module or class at "join points"
** [[Domain-specific language]]s and [[Automatic programming|code generation]]
*** XML for graphical interface ([[XUL]], [[Extensible Application Markup Language]] (XAML))
* Increased interest in distribution and mobility.
* Integration with databases, including [[XML]] and [[relational database]]s.
* [[Open-source software|Open source]] as a developmental philosophy for languages, including the GNU Compiler Collection and languages such as [[PHP]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], and [[Scala (programming language)|Scala]].
* More interest in [[visual programming language]]s like [[Scratch (programming language)|Scratch]], [[LabVIEW]], and [[PWCT]]
* Massively parallel languages for GPU graphics processing units and supercomputer arrays, including [[OpenCL]]
* Early research into [[quantum computing]] programming languages (see [[quantum programming|list]])
Line 284 ⟶ 315:
 
{{div col}}
* 2000 – [[ActionScript]]
* 2001 – [[C Sharp (programming language)|C#]]
* 2001 – [[D (programming language)|D]]
* 2002 – [[Scratch (programming language)|Scratch]]
* 2003 – [[Groovy (programming language)|Groovy]]
* 2003 – [[Scala (programming language)|Scala]]
* 2005 – [[F Sharp (programming language)|F#]]
* 2006 – [[Windows PowerShell|PowerShell]]
* 2007 – [[Clojure]]
* 2008 – [[Nim (programming language)|Nim]]
* 2009 – [[Go (programming language)|Go]]
* 2011 – [[Dart (programming language)|Dart]]
* 2011 – [[Kotlin (programming language)|Kotlin]]