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

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

Futuro das Linguagens de Programação

Apresentações semelhantes


Apresentação em tema: "Futuro das Linguagens de Programação"— Transcrição da apresentação:

1 Futuro das Linguagens de Programação

2 Árvore Evolucionária das Linguagens de Programação
1/2 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. CIn - UFPE 08/2005

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

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

5 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. CIn - UFPE 08/2005

6 Valorização da produtividade em detrimento do poder bruto
1/2 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. CIn - UFPE 08/2005

7 Valorização da produtividade em detrimento do poder bruto
2/2 “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.” (tradução livre, The Hundrer-Year Language, por Paul Graham) CIn - UFPE 08/2005

8 Linguagens concisas e mais simples
1/2 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 CIn - UFPE 08/2005

9 Linguagens concisas e mais simples
2/2 “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…” (tradução livre, The Hundrer-Year Language, por Paul Graham) CIn - UFPE 08/2005

10 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. CIn - UFPE 08/2005

11 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. CIn - UFPE 08/2005

12 Equilibrio entre concisão e legibilidade
1/2 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. CIn - UFPE 08/2005

13 Equilibrio entre concisão e legibilidade
2/2 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, por Paul Graham) CIn - UFPE 08/2005

14 Mecanismos de Extensão nos níveis semântico e sintático mais básicos
1/2 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. CIn - UFPE 08/2005

15 Mecanismos de Extensão nos níveis semântico e sintático mais básicos
2/2 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. CIn - UFPE 08/2005

16 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. CIn - UFPE 08/2005


Carregar ppt "Futuro das Linguagens de Programação"

Apresentações semelhantes


Anúncios Google