História das linguagens de programação: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Ijgsantos (discussão | contribs)
Ijgsantos (discussão | contribs)
Melhoras: - Nova introdução, - inserção de referencias em todos os textos ( com verificação de livros ) , - Atualização do conteúdo , - Expansão de alguns tópicos
Linha 1:
História das linguagens de programação
{{sem notas|data=março de 2012| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=Este artigo ou secção|2=|3=|4=|5=|6=}}
A historia das [[Linguagem de programação|linguagens de programação]] datam desde a criação dos primeiros [[Computador|computadores]] mecânicos até as modernas ferramentas de desenvolvimento. No inicio as linguagens eram altamente especializadas, totalmente baseadas em [[Notação matemática|notações matemáticas]], e por consequência tinham uma [[Sintaxe (lógica)|sintaxe]] extremamente difícil de entender e reproduzir.<ref name="AnnalsComputing" />
Este artigo discute os principais desenvolvimentos na história das ''' [[linguagens de programação]]'''.
 
Durante o [[Século XX|século vinte]], pesquisas e o desenvolvimento dos [[Compilador|compiladores]] lideraram a criação das linguagens de programação de alto nível, que por sua vez possuem sintaxes mais acessíveis e de fácil entendimento para os [[Desenvolvedor|desenvolvedores]]. A primeira linguagem de programação de alto-nível foi a [[Plankalkül]], criada por [[Konrad Zuse]] entre [[1942]] e [[1945]].<ref name=":0">{{cite journal |titulo=Early development of programming languages |publicado=Marcel Dekker |autores= Knuth, Donald E.;Pardo, Luis Trabb |paginas=419–493 |volume=7 |periodico=Encyclopedia of Computer Science and Technology}}</ref> Já a primeira linguagem comercializada foi a [[Fortran|FORTRAN]], que foi desenvolvida em [[1954]] e disponibilizada em [[1954]], por um time da [[IBM]] liderado pelo [[cientista da computação]] [[John Backus]].<ref name="fortran">{{cite web |url= http://www.softwarepreservation.org/projects/FORTRAN/paper/p25-backus.pdf |autor=John Backus |titulo=The history of FORTRAN I, II and III |publisher= Softwarepreservation.org |acessodata=19 de Novembro 2014}}</ref>
 
== Antes de 1940 ==
Durante um período de nove meses entre 1842-1843, [[Ada Lovelace]] traduziu as memórias do matemático italiano Luigi Menabrea sobre a mais nova máquina proposta por [[Charles Babbage]], a sua [[Maquina Analítica|máquina analítica]].<ref name="AnnalsComputing">{{citar jornal | ultimo = Huskey | primeiro = Velma R.| coautores = Huskey, Harry D. | ano = 1980 | mes = outubro | titulo = Lady Lovelace and Charles Babbage | jornal = Annals of The History of Computing
As linguagens de programação são anteriores ao advento do primeiro [[computador]] moderno. De início, as linguagens eram, apenas, códigos.
 
Durante um período de nove meses entre 1842-1843, [[Ada Lovelace]] traduziu as memórias do matemático italiano Luigi Menabrea sobre a mais nova máquina proposta por [[Charles Babbage]], a sua máquina analítica.<ref>{{citar jornal | ultimo = Huskey | primeiro = Velma R.
| coautores = Huskey, Harry D. | ano = 1980 | mes = outubro | titulo = Lady Lovelace and Charles Babbage | jornal = Annals of The History of Computing
| volume = 2 | numero = 4 | paginas = 384 | editora = American Federation of Information Processing Societies | local = Arlington, VA | issn = 1058-6180
| idioma = ingles }}</ref> Com o artigo, ela anexou uma série de anotações que especificavam em completo detalhe um método para calcular [[números de Bernoulli]] com a máquina, reconhecido por alguns historiadores como o primeiro programa de computador do mundo.<ref Masname="AdaNotes">{{citar algunsconferência|autores= biógrafosJ. debatemFuegi; aJ. medidaFrancis de|titulo=Lovelace suas& contribuiçõesBabbage originaisand versusthe ascreation of the 1843 'notes'|publicado=[[IEEE Annals of the History of Computing]]|numero= 25 No.&nbsp;4 |data=outubro–dezembro de seu2003|páginas= mérito16–26|doi=10.1109/MAHC.2003.1253887}}</ref>
 
O [[Jacquard|tear de Jacquard]], inventado em 1801 por [[Joseph-Marie Jacquard]], usava furos em cartões perfurados para representar os movimentos do braço do tear ao realizar costuras, a fim de gerar padrões decorativos automaticamente.<ref>Eric Hobsbawm, "The Age of Revolution", (London 1962; repr. 2008), p.45.</ref> Foi [[Herman Hollerith]] que percebeu que poderia codificar a informação em cartões perfurados, quando observou que o condutor de trens controlava a presença dos titulares dos bilhetes de trem com a posição dos furos no bilhete. Hollerith, então, começou a codificar os dados do censo de 1890 em cartões perfurados.<ref name=":1">{{citar livro|título=The Origins of Digital Computers, Selected Papers, 3rd ed|último=Randell (ed.)|primeiro=Brian|publicado=Springer-Verlag|ano=1982|isbn=978-3-642-61812-3}}</ref>
 
Os primeiros códigos para computador eram especializados segundo as aplicações. Nas primeiras décadas do século XX, os cálculos numéricos eram baseados em números decimais. Eventualmente, se percebeu que a lógica podia ser representada com números, tão bem como com as palavras. Por exemplo, [[Alonzo Church]] foi capaz de expressar o [[cálculo lambda]] de uma maneira formalizada. A [[máquina de Turing]] era uma abstração do funcionamento da máquina de uma fita de marcação, por exemplo, em uso em empresas de telefonia. No entanto, ao contrário do cálculo lambda, os código elaborados por Turing não serviam como uma base para linguagens de alto nível - a sua utilização principal era na análise rigorosa da [[teoria da complexidade computacional|complexidade algorítmica]].<ref name=":1" />
[[Herman Hollerith]] percebeu que poderia codificar a informação, em cartões perfurados, quando ele observou que o condutor de trens controlava a presença dos titulares dos bilhetes de trem com a posição dos furos no bilhete. Hollerith, então, começou a codificar os dados do censo de 1890 em cartões perfurados.
 
Apesar de que os teares de Jacquard e a máquina diferencial de Charles Babbage tinham linguagens simples, e extremamente limitadas para descrever as ações que estas máquinas deviam executar, ambos são abertamente reconhecidos como os criadores das linguagens de programação.<ref name=":2">{{Citar livro|título=History of Programming Languages|último=Wexelblat|primeiro=Richard L.(Editor)|editora=Academic Press|ano=1981|volume=|local=New York|página=17-18|páginas=758|isbn=0-12-745040-8|subtítulo=|idioma=|edição=}}</ref>
Os primeiros códigos para computador eram especializados segundo as aplicações. Nas primeiras décadas do século XX, os cálculos numéricos eram baseados em números decimais. Eventualmente, se percebeu que a lógica podia ser representada com números, tão bem como com as palavras. Por exemplo, [[Alonzo Church]] foi capaz de expressar o [[cálculo lambda]] de uma maneira formalizada. A [[máquina de Turing]] era uma abstração do funcionamento da máquina de uma fita de marcação, por exemplo, em uso em empresas de telefonia. No entanto, ao contrário do cálculo lambda, os código elaborados por Turing não serviam como uma base para linguagens de alto nível - a sua utilização principal era na análise rigorosa da [[teoria da complexidade computacional|complexidade algorítmica]].
 
== Os anos 1940 ==
Como muitos "primeiros" na história, a primeira linguagem de programação moderna é difícil de ser identificada. No início, as restrições do hardware definiam a linguagem. Cartões perfurados dispunham de até 80 colunas, mas algumas das colunas tinham que ser usadas para um número de seqüência de cada cartão. Fortran incluía algumas palavras-chave que eram as mesmas palavras em Inglês, como "IF" (se), "GOTO" (vá para) e "CONTINUE" (continue). O uso de um tambor magnético para a memória significava que os programas de computador também tinham que ser intercalados com as rotações do tambor. Assim, os programas eram mais dependentes do hardware do que hoje.
Na [[década de 1940]] os primeiros computadores elétricos, reconhecidamente modernos, foram criados. A velocidade limitada e a pequena capacidade da memória forçavam os programadores a escrever a mão economicamente programas em linguagem de montagem ([[Linguagem assembly]]), logo se descobriu que a programar em linguagem de maquina exigia um grande esforço intelectual e era muito sujeita a erros.<ref name="HistoryOfModern">{{citar livro|autor=CERUZZI, Paul E.|título=A History of Modern Computing|idioma=en|edição=|local=Cambridge, Massachusetts|editora=The MIT Press|ano=1998|páginas=398|volume=|isbn= 0-262-03255-4}}</ref>
 
Em 1948, [[Konrad Zuse]] publicou um artigo sobre a sua linguagem de programação [[Plankalkül]]. No entanto, esta não foi implementada em sua época e suas contribuições originais foram isoladas de outros desenvolvimentos.<ref name=":0" />
Para algumas pessoas, a resposta depende de quanta energia e legibilidade humana são necessárias antes que o status de "linguagem de programação" seja concedido. Os teares de Jacquard e a máquina diferencial de Charles Babbage, ambos tinham linguagens simples e extremamente limitadas para descrever as ações que estas máquinas deviam executar. Alguns podem até alegar que as perfurações de cartões para pianos possam ser vistas como uma linguagem de propósito específico, embora não destinadas ao consumo humano.
 
== Os anos 1940 ==
Na [[década de 1940]] os primeiros computadores elétricos, reconhecidamente modernos, foram criados. A velocidade limitada e a pequena capacidade da memória forçavam os programadores a escrever a mão economicamente programas em linguagem de montagem ([[linguagem de máquina]]). Logo se descobriu que a programação em linguagem assembly exigia um grande esforço intelectual e era muito sujeita a erros.
Em 1948, [[Konrad Zuse]] (o bóde)<ref>[http://www-history.mcs.st-andrews.ac.uk/history/Mathematicians/Zuse.html Konrad Zuze]</ref> publicou um artigo sobre a sua linguagem de programação [[Plankalkül]]. No entanto, esta não foi implementada em sua época e suas contribuições originais foram isoladas de outros desenvolvimentos.
 
Algumas linguagens importantes que foram desenvolvidas durante este período incluem:
* 1943 - [[Plankalkül]] ([[Konrad Zuse]])
* 1943 - [[ENIAC|ENIAC coding system]]
* 1949 - [[C-10 programming language|C-10]]
 
== Décadas de 1950 e 1960 ==
Na [[década de 1950]] as primeiras três linguagens de programação modernas, cujos descendentes ainda estão em uso difundido hoje, foram concebidas:
* [[Fortran|FORTRAN]] (1954), a "'''FOR'''mula '''TRAN'''slator", inventada por [[John Backus]] e outros.;<ref name="fortran" />
* [[Lisp|LISP]], a "'''LIS'''t '''P'''rocessor", inventada por [[John McCarthy]] e outros.;<ref name=":3" />
* [[COBOL]], a '''CO'''mmon '''B'''usiness '''O'''riented '''L'''anguage, criada pelo Short Range Committee, com grande influência de [[Grace Hopper]].<ref name="cisn">Jean_Sammet, ''[http://portal.acm.org/citation.cfm?id=1198367 The Early History of COBOL]'', p.121–161, ACM SIGPLAN Notices, Association for Computing Machinery, Inc., 1978</ref>
 
Outro marco na [[década de 1950]] foi a publicação, por um comitê de cientistas americanos e europeus, de "uma nova linguagem para os algoritmos", a [[ALGOL| ALGOL 60]] através da publicação do relatório "The ''[[ALGOL|ALGOL 60]] Report'' (the "'''ALGO'''rithmic '''L'''anguage")".<ref>{{Citar web |url=https://www.britannica.com/technology/ALGOL-computer-language |titulo=ALGOL {{!}} computer language |acessodata=2021-10-09 |website=Encyclopedia Britannica |lingua=en}}</ref> Este relatório consolidou muitas ideias que circulavam na época e apresentou duas inovações chave quanto ao projeto de linguagens:<ref>{{Citar periódico |url=https://dl.acm.org/doi/10.1145/355588.365140 |titulo=backus normal form vs. Backus Naur form |data=1964-12 |acessodata=2021-10-09 |jornal=Communications of the ACM |número=12 |ultimo=Knuth |primeiro=Donald E. |paginas=735–736 |lingua=en |doi=10.1145/355588.365140 |issn=0001-0782}}</ref>
 
Outro marco na [[década de 1950]] foi a publicação, por um comitê de cientistas americanos e europeus, de "uma nova linguagem para os algoritmos", a [[ALGOL| ALGOL 60]] através da publicação do relatório "The ''[[ALGOL|ALGOL 60]] Report'' (the "'''ALGO'''rithmic '''L'''anguage")". Este relatório consolidou muitas ideias que circulavam na época e apresentou duas inovações chave quanto ao projeto de linguagens:
* Estrutura de blocos aninhados: pedaços significativos de código poderiam ser agrupados em bloco de instruções, sem ter que ser transformados em procedimentos separados e ser explicitamente chamados;
* Escopo léxico: um bloco podia ter suas próprias variáveis não acessíveis fora do bloco, e muito menos manipuláveis de fora do bloco.
Linha 44 ⟶ 41:
Algol 60 foi particularmente influente na concepção das linguagens posteriores, algumas das quais logo se tornaram mais populares. Os grandes sistemas da [[Burroughs]] foram projetados para serem programados em um subconjunto estendido do Algol, a [[WFL]] (Work Flow Language).
 
Algumas ideias-chave da linguagem Algol foram tomadas, produzindo-se a linguagem [[ALGOL 68]]:<ref name="shorter">{{cite web |last=Koster |first=C. H. A. |url=http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt |title=A Shorter History of Algol 68 |archive-url=https://web.archive.org/web/20071217203826/http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt |archive-date=2007-12-17}}</ref>
* A sintaxe e semântica se tornaram ainda mais ortogonais, com rotinas anônimas, um sistema recursivo de digitação com funções de ordem superior, etc;
* não somente a parte livre de contexto da linguagem, mas a sintaxe da linguagem completa e a semântica foram definidos formalmente, em termos da gramática de [[Adriaan van Wijngaarden|Van Wijngaarden]], um formalismo desenvolvido especificamente para esta finalidade.
Os recursos pouco utilizados de Algol 68 (por exemplo, blocos simultâneos e paralelos) e seu complexo sistema de atalhos sintáticos e coerções de tipo automático tornou a linguagem impopular entre os implementadores e ganhou a reputação de ser ''difícil''. [[Niklaus Wirth]] realmente saiu do comitê de projeto para criar uma linguagem mais simples: [[Pascal (linguagem de programação)|Pascal]].<ref name="moore">{{Citar livro|título=Foundations of Programming with Pascal|autor=Moore, Lawrie|editora=John Wiley & Sns|ano=1980|local=Chichester|página=84|páginas=238|isbn=0-85312-171-0|idioma=inglês}}</ref>.
 
Panorama geral das duas décadas:
* 1951 - [[Assembly|Regional Assembly Language]]
* 1952 - [[Autocode]]
Linha 66 ⟶ 63:
 
== 1967-1978: estabelecendo os paradigmas fundamentais ==
O período compreendido entre o final dos anos 1960 à [[década de 1970]] trouxe um grande florescimento de linguagens de programação. A maioria dos principais paradigmas de linguagem agora em uso foram inventados durante este período:<ref name=":0" />
* '''[[Simula]]''', inventada nos anos 1960 por [[Kristen Nygaard|Nygaard]] e [[Ole-Johan Dahl|Dahl]] como um super conjunto de Algol 60, foi a primeira linguagem a suportar oos conceitoconceitos de[[programação classesorientada a objetos]].<ref>{{Citar web |url=http://staff.um.edu.mt/jskl1/talk.html |titulo=INTRODUCTION TO SIMULA |acessodata=2021-10-09 |website=staff.um.edu.mt}}</ref>
* '''[[C (linguagem de programação)|C]]''', uma das primeiras linguagens de programação de sistemas, foi desenvolvido por [[Dennis Ritchie]] e [[Ken Thompson]] nos laboratórios da Bell entre 1969 e 1973.<ref name=":5">{{Citar periódico |url=https://www.washingtonpost.com/local/obituaries/dennis-ritchie-founder-of-unix-and-c-dies-at-70/2011/10/13/gIQAXsVXiL_story.html |titulo=Dennis Ritchie, founder of Unix and C, dies at 70 |data=2011-10-13 |acessodata=2021-09-04 |jornal=Washington Post |ultimo=Langer |primeiro=Emily |lingua=en-US |issn=0190-8286}}</ref>
* '''[[Smalltalk]]''' (meados de 1970) forneceu uma base completa para o projeto de uma linguagem orientada a objetos.<ref name=":4">{{Citar web |url=http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html |titulo=The Early History of Smalltalk |acessodata=2021-08-27 |website=gagne.homedns.org}}</ref>
* '''[[Prolog]]''', projetada em 1972 por [[Alain Colmerauer|Colmerauer]], [[Phillipe Roussel|Roussel]], e [[Robert Kowalski|Kowalski]], foi a primeira linguagem de programação do paradigma lógico.<ref>{{Citar livro|url=https://www.worldcat.org/oclc/13665520|título=The art of Prolog : advanced programming techniques|ultimo=Sterling|primeiro=Leon|data=1986|outros=Ehud Y. Shapiro|local=Cambridge, Massachsuetts|oclc=13665520}}</ref>
* '''[[ML (linguagem de programação)|ML]],''' built a polymorphic type system (inventada por [[Robin Milner]] em 1973), é uma [[linguagem funcional]], baseada em Lisp,<ref name="Gordon1996">{{cite web |ultimo=Gordon |primeiro=Michael J. C. |url=http://www.cl.cam.ac.uk/~mjcg/papers/HolHistory.pdf |titulo=From LCF to HOL: a short history |ano=1996 |pagina=3 |accessodata=2021-10-09}}</ref> estaticamente tipada.<ref name=":6">{{Citar livro|url=https://www.worldcat.org/oclc/38039662|título=Elements of ML programming|ultimo=Ullman|primeiro=Jeffrey D.|data=1998|editora=Prentice Hall|edicao=ML97 ed|local=Upper Saddle River, NJ|oclc=38039662}}</ref>
Cada uma dessas línguas gerou toda uma família de descendentes, e linguagens mais modernas contam, pelo menos, com uma delas em sua ascendência.
 
A década de 1960 e 1970 também viu um considerável debate sobre os méritos da "[[programação estruturada]]", que, entre outros aspectos, envolvia a programação sem o uso de [[Goto]]. Este debate foi estreitamente relacionado com projeto de linguagem: algumas linguagens não incluíram o comando GOTO, ou o desestimularam, o que obrigou o programador a utilizar a programação estruturada. Apesar de o debate ter ficado quente na época, quase todos os programadores agora concordam que, mesmo em linguagens que fornecem um comando de desvio incondicional como o GOTO, é um mau estilo de programação usá-lo, exceto em raras circunstâncias. Como resultado, as gerações posteriores de projetistas da linguagem consideram o debate em torno da programação estruturada tedioso e até desconcertante.<ref>[https://www.cs.sjsu.edu/~mak/CS185C/KnuthStructuredProgrammingGoTo.pdf] KNUTH, Donald. ''Structured Programming with go to Statements''.</ref>
 
Algumas linguagens importantes que foram desenvolvidas durante este período incluem:
Linha 86 ⟶ 83:
 
== Década de 1980: consolidação, módulos, performance ==
A [[década de 1980]] foi um tempo de relativa consolidação das linguagens imperativas. A linguagem [[C++]] combinou orientação a objetos e programação de sistemas.<ref name=":7">{{Citar livro|url=https://www.worldcat.org/oclc/191927017|título=Programming : principles and practice using C++|ultimo=Stroustrup|primeiro=Bjarne|data=2009|local=Upper Saddle River, NJ|oclc=191927017}}</ref> O governo dos [[Estados Unidos]] padronizou a [[Ada (linguagem de programação)|Ada]], uma linguagem de programação de sistemas destinados à utilização por parte dos contratantes de defesa. No Japão e em outros lugares, vastas somas foram gastas investigando as chamadas linguagens de programação de quinta geração que incorporavam a programação lógica em suas construções. A comunidade de linguagens funcionais se dedicou a padronizar a ML e o Lisp.<ref name=":6" /> Ao invés de inventar novos paradigmas, todos estes esforços visaram aperfeiçoar as ideias inventadas na década anterior.
Ao invés de inventar novos paradigmas, todos estes esforços visaram aperfeiçoar as ideias inventadas na década anterior.
 
No entanto, uma tendência nova e importante na concepção de linguagens foi o aumento do foco na programação de sistemas de larga escala com o uso de módulos, ou em unidades organizacionais de código de larga-escala. As linguagens [[Modula]], Ada e ML desenvolveram notáveis sistemas de módulos nadurante esta década, desendo 1980.que Sistemassistemas modulares muitas vezes eram associados com a [[programação genérica]] construções --- genéricas vindo a ser, em essência, módulos parametrizados.
 
Embora os principais paradigmas novos para as linguagens de programação ainda não tivessem aparecido, muitos pesquisadores expandiram as ideias das linguagens existentes adaptando-os para novos contextos. Por exemplo, as linguagens dos [[sistemas Argus]] e Emerald adaptaram a programação orientada a objeto para os seus [[Sistemas Distribuídos|sistemas distribuídos]].<ref>{{Citar periódico |url=https://dl.acm.org/doi/10.1145/42392.42399 |titulo=Distributed programming in Argus |data=1988-03 |acessodata=2021-10-09 |jornal=Communications of the ACM |número=3 |ultimo=Liskov |primeiro=Barbara |paginas=300–312 |lingua=en |doi=10.1145/42392.42399 |issn=0001-0782}}</ref>
 
A década de 1980 também trouxe avanços na implementação das linguagens de programação. O movimento [[Reduced Instructioninstruction Setset Computercomputer|RISC]], em [[arquitetura de computador]]es postulou que o hardware deveria ser concebido para os [[compilador]]es ao invés de ser voltado a programadores assembly. Ajudado por melhorias na velocidade dos processadores que permitiu cada vez mais técnicas agressivas de compilação, o movimento RISC despertou maior interesse na tecnologia de compilação para linguagens de alto nível.<ref>{{Citar livro|url=https://www.worldcat.org/oclc/57546513|título=Embedded computing : a VLIW approach to architecture, compilers and tools|ultimo=Fisher|primeiro=Joseph A.|data=2005|editora=Morgan Kaufmann|outros=Paolo Faraboschi, Clifford Young|local=San Francisco, Calif.|oclc=57546513}}</ref> A tecnologia de linguagens continuou ao longo destas linhas durante a década de 1990.
 
A tecnologia de linguagens continuou ao longo destas linhas durante a década de 1990.
 
Algumas linguagens importantes que foram desenvolvidas durante este período incluem:
* 1983 - [[Ada (linguagem de programação)|Ada]]
* 1983 - [[C++]]
* 1984 - [[MATLAB]]
* 1985 - [[Eiffel (linguagem de programação)|Eiffel]]
* 1986 - [[Objective-C]]
* 1987 - [[Perl]]
* 1989 - [[FL (linguagem de programação)|FL]] (Backus)
 
== Década de 1990: A Era da Internet ==
A [[década de 1990]] não viu nenhuma novidade fundamental, mas a recombinação e maturação das ideias antigas. Uma filosofia de grande importância era a produtividade do programador. Muitas linguagens com "[[Desenvolvimento rápido de aplicações|aplicações de desenvolvimento rápido]]" (RAD) surgiram, geralmente vindo com um [[ambiente de desenvolvimento integrado|IDE]], [[coletaColetor de lixo (informática)|coleta de lixo]], e eram descendentes de linguagens mais antigas. Todas essas linguagens foram orientadas a objeto. Entre estas estavam a [[Object Pascal]], [[Visual Basic]], e [[C sharp|C#]]. [[Java (linguagem de programação)|Java]] eraem uma linguagem mais conservadora, que também incluiu a coleta de lixo eparticular recebeu muita atenção. Mais radicais e inovadoras do que as línguas [[Desenvolvimento rápido de aplicações|RAD]], foram as novas [[Linguagem de script|linguagens de scripting]].<ref>{{Citar web |url=http://preserve.mactech.com/articles/mactech/Vol.15/15.09/ScriptingLanguages/index.html |titulo=MacTech {{!}} The journal of Apple technology. |acessodata=2021-10-09 |website=preserve.mactech.com}}</ref> Estas não descenderam diretamente das outras linguagens e contaram com sintaxes novas e incorporação mais liberal de novas funcionalidades. Muitos consideram as [[Linguagem de script|linguagens de scripting]] mais produtivas do que as linguagens RAD, sendo que linguagens de scripting vieram a ser mais proeminentes usadas para sistemas utilizados na web.
Muitos consideram essas [[Linguagem de script|linguagens de scripting]] mais produtivas do que até mesmo as linguagens RAD, mas muitas vezes, por causa da facilidade com que pequenos programas podem ser escritos e mantidos. No entanto, [[Linguagem de script|linguagens de scripting]] vieram a ser mais proeminentes usadas em conexão com a web.
 
Algumas linguagens importantes que foram desenvolvidas durante este período incluem:
Linha 112 ⟶ 107:
* 1991 - [[Python]]
* 1991 - [[Java (linguagem de programação)|Java]]
* 1993 - [[RubyR (linguagem de programação)|RubyR]]
* 1993 - [[Lua (linguagem de programação)|Lua]]
* 1994 - ANSI [[Common Lisp]]
* 1995 - [[JavaScriptDelphi (software)|Delphi]] (Object Pascal)
*1995 - [[JavaScript]]
* 1995 - [[PHP]]
*1995 - [[Ruby (linguagem de programação)|Ruby]]
* 2000 - [[C sharp|C#]]
* 2008 - [[JavaFX Script]]
 
== Tendências Atuais ==
Linha 131 ⟶ 126:
* XML para a interfaces gráficas ([[XUL]], [[XAML]]);
* Arquitetura Orientada a Serviços ([[Service-oriented architecture|SOA]]).
*A utilização de linguagem de scripts para aplicar cultura [[DevOps]].
*Aplicativo progressivo para a Web (PWA) <ref>{{Citar web |url=https://www.smartinnovation.com.br/wordpress/blog/4-das-principais-tendencias-em-desenvolvimento-de-sistemas-sob-medida/ |titulo=4 das principais tendências em desenvolvimento de sistemas sob medida |data=2021-08-10 |acessodata=2021-10-10 |website=Smart Innovation}}</ref>
*Pesquisa inicial em linguagens de programação de [[computação quântica]] (ainda não implementáveis)
*Pesquisa inicial na aplicação de técnicas de [[Inteligência artificial|Inteligência Artificial]] para gerar código como o uso de [[GPT-3]] <ref>{{Citar periódico |url=https://www.nytimes.com/2020/07/29/opinion/gpt-3-ai-automation.html |titulo=Opinion {{!}} How Do You Know a Human Wrote This? |data=2020-07-29 |acessodata=2021-10-10 |jornal=The New York Times |ultimo=Manjoo |primeiro=Farhad |lingua=en-US |issn=0362-4331}}</ref>
Algumas linguagens importantes surgiram durante os ultimo 20 anos:
 
*2000 - [[C sharp|C#]]
*2000 - [[ActionScript]]
*2002 - [[Scratch]]
* 2008 - [[JavaFX Script]]
*2006 - [[PowerShell]]
*2009 - [[Go (linguagem de programação)|Go]]
*2012 - [[Julia (linguagem de programação)|Julia]]
*2012 - [[TypeScript]]
*2014 - [[Swift (linguagem de programação)|Swift]]
*2014 - [[Hack (linguagem de programação)|Hack]]
*2017 - [[Q Sharp|Q#]]
 
== Pessoas de destaque na história das linguagens de programação ==
*[[Anders Hejlsberg]], desenvolveu o [[Turbo Pascal]], [[Delphi (software)|Delphi]] e o [[C sharp|C#]].<ref>{{Citar web |ultimo=Erickson |primeiro=Jonathan |url=http://www.drdobbs.com/windows/dr-dobbs-excellence-in-programming-award/184404602 |titulo=Dr. Dobb's Excellence in Programming Award |acessodata=2021-10-10 |website=Dr. Dobb's}}</ref>
* [[John Backus]], inventor do [[Fortran]].<ref>
*[[Alan Cooper]], desenvolveu o [[Visual Basic]].<ref>Waite, Mitchell (1992). The Waite Group's Visual Basic How-To. Waite Group Press. {{ISBN|1-878739-09-3}}, {{ISBN|978-1-878739-09-4}}, pp. dedication page</ref>
{{citar web
*[[Alan Kay]], Pioneiro da programação orientada a objeto, e autor do [[Smalltalk]].<ref name=":4" />
|url=http://www.nytimes.com/2007/03/20/business/20backus.html?_r=1&oref=slogin
*[[Bill Joy]], inventor do [[vi]], um dos primeiros autores do [[Berkeley Software Distribution|BSD Unix]], e criador do [[SunOS]], que veio a se tornar o sistema operacional [[Solaris (sistema operacional)|Solaris]].<ref>[HTTP://Www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/ Bill Joy's greatest gift to man â the vi editor, The Register]</ref>
|titulo= John W. Backus, 82, Fortran Developer, Dies
*[[Bjarne Stroustrup]], desenvolveu o [[C++]].<ref name=":7" />
|acessodata=20 de março de 2007
*[[Brian Kernighan]], co-autor do primeiro livro sobre a linguagem [[C (linguagem de programação)|C]] junto com [[Dennis Ritchie]], co-autor das linguagens [[AWK]] e [[AMPL (Linguagem de Programação)|AMPL]].{{sfn|AHO|KERNIGAN|WEINBERGER|1988|p=1}}
|autor=Steve Lohr
*[[Dennis Ritchie]], inventor do [[C (linguagem de programação)|C]].<ref name=":5" />
|data=20 de março de 2007
*[[Edsger W. Dijkstra]], desenvolveu o framework de programação adequada.<ref>
|publicado=[[The New York Times]]
{{cite book|url=https://books.google.com/books?id=0a1AAAAAQBAJ|titulo=Concurrent Programming: Algorithms, Principles, and Foundations|autor=Raynal, Michel|data=2012|publicado=Springer|isbn=978-3-642-32027-9|pagina=vi}}</ref>
|lingua=[[Língua inglesa|inglês]]}}
*[[Grace Hopper]], desenvolveu o [[Flow-Matic]]<ref name=":2" />, influenciando o [[COBOL]]<ref name="cisn" />.
* [[James Gosling]], desenvolveu a linguagem [[Oak]], precursora do [[Java (linguagem de programação)|Java]].<ref>{{Cite web |url=http://www.computinghistory.org.uk/det/1793/james-gosling/ |titulo=James Gosling - Computing History |acessodata=2017-10-09 |website=Computinghistory.org.uk}}
</ref>
*Jean Paoli, co-creater of [[XML]]<ref>{{Citar periódico |url=https://datatracker.ietf.org/doc/rfc3023/ |titulo=XML Media Types |data=2001-01 |acessodata=2021-10-10 |ultimo=St.Laurent |primeiro=Simon |ultimo2=Makoto |primeiro2=Murata |ultimo3=Kohn |primeiro3=Dan}}</ref>
* [[John McCarthy]], inventor do [[Lisp|LISP]].<ref>
*[[John Backus]], inventor do [[Fortran]].<ref name="fortran" />
* [[John McCarthy]], inventor do [[Lisp|LISP]].<ref name=":3">
{{citar web|url=http://www1.folha.uol.com.br/ciencia/995973-morre-john-mccarthy-criador-do-termo-inteligencia-artificial.shtml
|título=Morre John McCarthy, criador do termo 'inteligência artificial'
Linha 150 ⟶ 166:
|publicado=Folha.com}}
</ref>
*[[John von Neumann]], autor do conceito de [[Sistema Operacional]].<ref>{{Citar periódico |url=http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0103-40141996000100022&lng=pt&tlng=pt |titulo=Von Neumann: suas contribuições à Computação |data=1996-04 |acessodata=2021-10-09 |jornal=Estudos Avançados |número=26 |ultimo=Kowaltowski |primeiro=Tomasz |paginas=237–260 |doi=10.1590/S0103-40141996000100022 |issn=0103-4014}}</ref>
* [[Alan Cooper]], desenvolveu o [[Visual Basic]].<ref>Waite, Mitchell (1992). The Waite Group's Visual Basic How-To. Waite Group Press. {{ISBN|1-878739-09-3}}, {{ISBN|978-1-878739-09-4}}, pp. dedication page</ref>
* [[EdsgerKenneth WE. DijkstraIverson]], desenvolveu o framework de programação adequada[[APL]].<ref>{{sfn|IVERSON|p=1}}
* [[Ken Thompson]], inventor do [[Unix]].<ref name="UnixEvolucao">{{citar web |ultimo=Ritchie |primeiro=Dennis M. |url=https://www.bell-labs.com/usr/dmr/www/hist.pdf |titulo=The Evolution of the Unix Time-sharing System |acessodata=13 de Setembro de 2021 |lingua=en-US}}</ref>
{{cite book
* [[Niklaus Wirth]] inventor do [[Pascal (linguagem de programação)|Pascal]], <ref name="moore" /> [[Modula]] e [[Modula-2]].<ref>{{Citar livro|url=https://www.worldcat.org/oclc/18746666|título=Programming in Modula-2|ultimo=Wirth|primeiro=Niklaus|data=1988|edicao=Fourth edition|local=Berlin|oclc=18746666}}</ref>
|first=Michel
|last=Raynal
|title=Concurrent Programming: Algorithms, Principles, and Foundations
|date=2012
|publisher=Springer
|isbn=978-3-642-32027-9
|page=vi
|url=https://books.google.com/books?id=0a1AAAAAQBAJ}}</ref>
* [[James Gosling]], desenvolveu a linguagem [[Oak]], precursora do [[Java (linguagem de programação)|Java]].<ref>{{Cite web
|url=http://www.computinghistory.org.uk/det/1793/james-gosling/
|title=James Gosling - Computing History
|website=Computinghistory.org.uk
|access-date=2017-10-09}}
</ref>
* [[Yukihiro Matsumoto|Yukihiro "Matz" Matsumoto]], criador da [[linguagem de programação]] [[Ruby (linguagem de programação)|Ruby]].<ref>
{{citar web
Linha 174 ⟶ 177:
|publicado=ruby-lang.org}}
</ref>
* [[Anders Hejlsberg]], desenvolveu o [[Turbo Pascal]] e o [[C sharp|C#]].
* [[Grace Hopper]], desenvolveu o [[Flow-Matic]]<ref>{{Citar livro|último=Wexelblat|primeiro= Richard L.(Editor)|título=History of Programming Languages|subtítulo=|idioma=|edição=|local=New York|editora=Academic Press|ano=1981|páginas=758|página=17-18|volume=|isbn=0-12-745040-8}}</ref>, influenciando o [[COBOL]]<ref name=cisn>Jean_Sammet, ''[http://portal.acm.org/citation.cfm?id=1198367 The Early History of COBOL]'', p.121–161, ACM SIGPLAN Notices, Association for Computing Machinery, Inc., 1978</ref>.
* [[Kenneth E. Iverson]], desenvolveu o [[APL]].{{sfn|IVERSON|p=1}}
* [[Bill Joy]], inventor do [[vi]], um dos primeiros autores do [[Berkeley Software Distribution|BSD Unix]], e criador do [[SunOS]], que veio a se tornar o sistema operacional [[Solaris (sistema operacional)|Solaris]].<ref>[HTTP://Www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/ Bill Joy's greatest gift to man â the vi editor, The Register]</ref>
* [[Alan Kay]], Pioneiro da programação orientada a objeto, e autor do [[Smalltalk]].<ref>{{Citar web |url=http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html |titulo=The Early History of Smalltalk |acessodata=2021-08-27 |website=gagne.homedns.org}}</ref>
* [[Brian Kernighan]], co-autor do primeiro livro sobre a linguagem [[C (linguagem de programação)|C]] junto com [[Dennis Ritchie]], co-autor das linguagens [[AWK]] e [[AMPL (Linguagem de Programação)|AMPL]].{{sfn|AHO|KERNIGAN|WEINBERGER|1988|p=1}}
* [[John von Neumann]], autor do conceito de [[Sistema Operacional]].<ref>{{Citar periódico |url=https://doi.org/10.1590/S0103-40141996000100022 |titulo=Von Neumann: suas contribuições à Computação |data=1996-04 |acessodata=2021-09-04 |jornal=Estudos Avançados |número=26 |ultimo=Kowaltowski |primeiro=Tomasz |paginas=237–260 |doi=10.1590/s0103-40141996000100022 |issn=0103-4014}}</ref>
* [[Dennis Ritchie]], inventor do [[C (linguagem de programação)|C]].<ref>{{Citar periódico |url=https://www.washingtonpost.com/local/obituaries/dennis-ritchie-founder-of-unix-and-c-dies-at-70/2011/10/13/gIQAXsVXiL_story.html |titulo=Dennis Ritchie, founder of Unix and C, dies at 70 |data=2011-10-13 |acessodata=2021-09-04 |jornal=Washington Post |ultimo=Langer |primeiro=Emily |lingua=en-US |issn=0190-8286}}</ref>
* [[Bjarne Stroustrup]], desenvolveu o [[C++]].<ref>{{Citar livro|url=https://www.worldcat.org/oclc/191927017|título=Programming : principles and practice using C++|ultimo=Stroustrup|primeiro=Bjarne|data=2009|local=Upper Saddle River, NJ|oclc=191927017}}</ref>
* [[Ken Thompson]], inventor do [[Unix]].<ref name="UnixEvolucao">{{citar web |ultimo=Ritchie |primeiro=Dennis M. |url=https://www.bell-labs.com/usr/dmr/www/hist.pdf |titulo=The Evolution of the Unix Time-sharing System |acessodata=13 de Setembro de 2021|lingua=en-US }}</ref>
* [[Niklaus Wirth]] inventor do [[Pascal (linguagem de programação)|Pascal]], <ref name="moore" /> [[Modula]] e [[Modula-2]].<ref>{{Citar livro|url=https://www.worldcat.org/oclc/18746666|título=Programming in Modula-2|ultimo=Wirth|primeiro=Niklaus|data=1988|edicao=Fourth edition|local=Berlin|oclc=18746666}}</ref>
* [[Rasmus Lerdorf]] criador da linguagem [[PHP]].<ref>{{citar web|URL=http://kcssalumni.squarespace.com/storage/case-of-distinction/Rasmus%20Lerdorf.pdf|título=Rasmus Lerdorf|autor=|data=|publicado=K.C.S.S. Alumni Association|acessodata=7 de janeiro de 2014|arquivourl=https://web.archive.org/web/20131029200257/http://kcssalumni.squarespace.com/storage/case-of-distinction/Rasmus%20Lerdorf.pdf|arquivodata=2013-10-29|urlmorta=yes}}</ref>
 
Linha 197 ⟶ 189:
== Bibliografia ==
* {{citar livro|autor=CAMPBELL-KELLY, Martin|título=From Airline Reservations to Sonic the Hedgehog|subtítulo=A History of the Software Industry|idioma=|edição=|local=Cambridge, Massachusetts|editora=The MIT Press|ano=2003|páginas=372|volume=|isbn= 0-262-03303-8}}
* {{citar livro|autor=CERUZZI, Paul E.|título=A History of Modern Computing|subtítulo=|idioma=|edição=|local=Cambridge, Massachusetts|editora=The MIT Press|ano=1998|páginas=398|volume=|isbn= 0-262-03255-4}}
* {{citar livro|autor=CORTADA, James W.|título=A Bibliografic Guide to the History of Computing, Computers, and the Information Processing Industry|subtítulo=|idioma=|edição=|local=New York|editora=Greenwood Press|ano=1990|páginas=644|volume=|isbn= 0-313-26810-X}}
* {{citar livro|autor=IFRAH, Georges|título=The Universal History of Computing|subtítulo=|idioma=|edição=|local=New York|editora=John Wiley and Sons|ano=2001|páginas=410|volume=|isbn= 0-471-39671-0}}
Linha 203 ⟶ 194:
* {{citar livro|autor=ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P.|título=Programming Language Structures|subtítulo=|idioma=|edição=|local=New York|editora=Academic Press|ano=1978|páginas=659|volume=|isbn= 0-12-528260-5}}
* {{citar livro|autor=SAMMET, Jean E|título=Programming Languages: History and Fundamentals|subtítulo=|idioma=|edição=|local=Englewood Cliffs, New Jersey|editora=Prentice Hall|ano=1969|páginas=785|volume=|isbn= 0-13-729988-5}}
* {{citar livro|autor=WEXELBLAT, Richard L.(Editor)|título=History of Programming Languages|subtítulo=|idioma=|edição=|local=New York|editora=Academic Press|ano=1981|páginas=758|volume=|isbn= 0-12-745040-8}}
*{{citar livro|sobrenome=IVERSON|nome=Kenneth E.|título=A Programming Language|idioma=en|local=New York|editora=John Wiley and Sons|ano=1962|páginas=286|isbn=978-0-471-43014-8|acessodata=22 de agosto de 2021 |url=https://www.jsoftware.com/papers/APL.htm|ref=harv}}
* {{citar livro|autor=AHO, Alfred V.; KERNIGAN, Brian K.; WEINBERGER, Peter J.|título=The AWK Programming Language|subtítulo=|idioma=|edição=|local=Reading, Massachusetts, EUA|editora=Addison-Wesley|ano=1988|páginas=210|volume=|isbn= 0-201-07981-X|ref=harv}}