A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Futuro das Linguagens de Programação. CIn - UFPE08/20052 Árvore Evolucionária das Linguagens de Programação Como as espécies vivas, as linguagens possuem.

Apresentações semelhantes


Apresentação em tema: "Futuro das Linguagens de Programação. CIn - UFPE08/20052 Árvore Evolucionária das Linguagens de Programação Como as espécies vivas, as linguagens possuem."— Transcrição da apresentação:

1 Futuro das Linguagens de Programação

2 CIn - UFPE08/20052 Árvore Evolucionária das Linguagens de Programação Como as espécies vivas, as linguagens possuem uma história facilmente categorizada em forma de árvores evolucionárias, com “galhos” que não podem mais se ramificar. A evolução das linguagens difere da evolução das espécies porque alguns ramos podem convergir. Objetivo dessa abordagem: aproximarmos dos ramos principais da arvore evolucionária das linguagens, para encontrar as linguagens com chances de futuro. 1/2

3 CIn - UFPE08/ /2 Árvore Evolucionária das Linguagens de Programação

4 CIn - UFPE08/20054 Mas… Nós ainda escreveremos programas daqui a cem anos? Não apenas diremos aos computadores o que nós estamos queremos fazer?

5 CIn - UFPE08/20055 As linguagens do futuro provavelmente… … valorizarão mais a produtividade que o poder bruto. … serão mais concisas, construindo sobre bases mais simples … agregarão diferentes paradigmas. … farão uso de bons ambientes de desenvolvimento pra melhorar a produtividade. … encontrarão modos de equilibrar concisão e legibilidade. … Integrarão mecanismos de extensão nos níveis semânticos e sintáticos mais básicos, permitindo que programadores evoluam de maneira mais simples quando necessário.

6 CIn - UFPE08/20056 produtividade poder bruto Valorização da produtividade em detrimento do poder bruto A melhoria na eficiencia do programas está na raiz do processo (as linguagens) Desperdiçar o tempo do programador é a verdadeira ineficiência, e não desperdiçar o tempo de máquina. Mesmo que algumas aplicações podem ser crescentemente mais ineficientes e, assim, demandarem toda a velocidade que o hardware puder fornecer, computadores mais rápidos serão sinônimo de linguagens capazes de cobrir uma escala cada vez mais larga de eficiência. 1/2

7 CIn - UFPE08/ /2 produtividade poder bruto Valorização da produtividade em detrimento do poder bruto “Há um desperdício bom, e um desperdício mau. Eu estou interessado no desperdício bom - o tipo onde, gastando mais, nós podemos começar uns projetos mais simples.” The Hundrer-Year LanguagePaul Graham (tradução livre, The Hundrer-Year Language, por Paul Graham)

8 CIn - UFPE08/20058 Linguagens concisas e mais simples Se nós pensarmos no núcleo de uma linguagem como um conjunto de axiomas, certamente é indesejável ter os axiomas adicionais que não adicionam nenhum poder expressivo, simplesmente por causa da eficiência. A maneira correta de se resolver o problema da adição de axiomas desnecessários é separar o significado de um programa dos detalhes de sua execução. Linguagem do futuro:núcleo limpo, conciso, contendo todos os axiomas essenciais, a partir dos quais as outras características da linguagem poderão ser derivadas 1/2

9 CIn - UFPE08/20059 “No mínimo, um exercício que pode ser útil é analisar cuidadosamente o núcleo de uma linguagem para verificar se há axiomas que podem ser eliminados. Em minha longa carreira como um chato, eu descobri que lixo sempre gera mais lixo… Ocorre-me que os galhos principais da árvore evolutiva (das linguagens de programação) passam por linguagens que tem núcleos menores e mais limpos…” The Hundrer-Year LanguagePaul Graham (tradução livre, The Hundrer-Year Language, por Paul Graham) Linguagens concisas e mais simples 2/2

10 CIn - UFPE08/ Agregar diferentes paradigmas Um linguagem de sucesso no futuro terá a característica de juntar conceitos de diferentes paradigmas, extendendo assim seu poder de atuação. Orientação a objetos: programas são desenvolvidos como uma série de remendos. Uma boa maneira de extender uma linguagem é misturar diferente paradigmas na mesma, buscando juntar diferentes conceitos para agregar poder à essa linguagem.

11 CIn - UFPE08/ Bons ambientes de desenvolvimento: melhor produtividade Mesmo daqui a cem anos, as pessoas ainda dirão a computadores o que querem fazer, usando programas, da mesma maneira que conhecemos hoje. O diferencial está em ambientes de desenvolvimentos mais poderosos que os atuais ”editores de texto glorificados”. Testes automáticos e refatoração são alguns exemplos de como bons ambientes de programação podem ajudar uma linguagem de programação.

12 CIn - UFPE08/ concisãolegibilidade Equilibrio entre concisão e legibilidade Uma linguagem concisa e simples deve ser aberta em termos de extensibilidade para permitir que, características extras relacionadas com o dominio do problema sejam adicionadas à linguagem,estas derivadas dos axiomas essenciais. Tal linguagem extensível deve ter uma responsabilidade com a legibilidade, pois pode gerar código ilegível por produzir trechos muito idiomáticos. 1/2

13 CIn - UFPE08/ Os programadores do futuro serão criaturas tão preguiçosas quanto nós, em seu desejo em expressar programas com o mínimo de esforço. A linguagem do futuro, se existisse, poderia assim ser muito fácil de se programar. “Programas devem ser escritos para pessoas lerem, e somente incidentalmente, para serem executados por máquinas.” Hackers and Painters, Paul Graham (Hackers and Painters, por Paul Graham) concisãolegibilidade Equilibrio entre concisão e legibilidade 2/2

14 CIn - UFPE08/ Mecanismos de Extensão nos níveis semântico e sintático mais básicos A extensibilidade num mundo interconectado com protocolos que mudam rapidamente. Um programador sempre pode usar programação do mais baixo nível para implementar qualquer coisa, mas é muito melhor se os mecanismos para integração existissem na própria linguagem. 1/2

15 CIn - UFPE08/ Muitas tarefas em programação podem ser enormemente simplificadas por extensões da linguagem. Prover meios para que programadores posssam esconder estruturas complexas e algoritmos atrás de uma fachada sintática é uma poderosa forma de extensibilidade. A mesma extensibilidade em termos semânticos é mais complexa, mas não impossível. Como foi dito antes, tal poder vem a um preço, mas este deve ser pago se a linguagem precisa evoluir. Mecanismos de Extensão nos níveis semântico e sintático mais básicos 2/2

16 CIn - UFPE08/ Conclusões Em todos os pontos acima eu estou falando sobre linguagens a serem criadas em um futuro próximo É perfeitamente possível que um gênio ainda desconhecido descubra um novo paradigma de programação que radicalmente mude o modo com a programação existe hoje. Obviamente, tal desenvolvimento não pode ser previsto. Muito embora isso possa vir a acontecer, o exercício de olhar para o futuro nos permite ter a consciência da solidez das bases que no passado ajudaram a construir o cenário de linguagens de programação como conhcemos hoje, e, dessa forma, nos permite tentar trilhar um caminho de sucesso para o futuro de nossas aplicações.


Carregar ppt "Futuro das Linguagens de Programação. CIn - UFPE08/20052 Árvore Evolucionária das Linguagens de Programação Como as espécies vivas, as linguagens possuem."

Apresentações semelhantes


Anúncios Google