O ThoughtWorks Technology Radar menciona várias linguagens desde 2010. Analisando esse histórico, Luciano Ramalho discute características marcantes das linguagens mais usadas em empresas hoje e, possivelmente, daqui a 10 anos.
17. Adote Experimente
março 2017 Elixir
novembro 2017 Python 3 Kotlin
maio 2018 Kotlin
novembro 2018 TypeScript
abril 2019 TypeScript Rust
novembro 2019 Flutter (Dart)
maio 2020 Rust
outubro 2020 Rust
45. ● Menos herança, mais composição
● Suporte a polimorfismo
independente de herança
● Ênfase em interfaces, protocolos
e tipos estruturais
● Extension methods
● Linguagens que exemplificam:
Go, Julia, Python, TypeScript
Elementos de OOP 2.0
47. Body size default to 16 px Open Sans
Light. Place your image and “send to the
back” to make use of the white mask to
create the angle required.
● Body size default to 16 px Open Sans.
● Body size default to 16 px Open Sans.
Text and an image
48. Body size default to 16 px Open Sans
Light. Place your image and “send to the
back” to make use of the white mask to
create the angle required.
● Body size default to 16 px Open Sans.
● Body size default to 16 px Open Sans.
Text and an image
50. ● Linguagens com tipos dinâmicos
adotam tipagem estática gradual.
Ex: TypeScript, Python 3.5, Ruby 3
● Linguagens com tipos estáticos
adotam um tipo dynamic.
Ex: C#, Kotlin/JS*, Go**
O caminho do meio
* Não Kotlin para JVM ** interface{}
63. Body size default to 16 px Open Sans
Light. Place your image and “send to the
back” to make use of the white mask to
create the angle required.
● Body size default to 16 px Open Sans.
● Body size default to 16 px Open Sans.
Text and an image
80. Como se preparar:
● Estude uma linguagem funcional
Características funcionais
viram essenciais
81. Como se preparar:
● Estude uma linguagem funcional
● Experimente uma linguagem funcional
com tipos dinâmicos, para facilitar a
curva de aprendizagem.
Ex: Clojure, Elixir
Características funcionais
viram essenciais
84. Características > paradigmas
Como se preparar:
● Monitore o roadmap de suas linguagens
preferenciais.
● Experimente, divulgue internamente, e
adote novas características relevantes.
Alguns exemplos:
85. Características > paradigmas
Como se preparar:
● Monitore o roadmap de suas linguagens
preferenciais.
● Experimente, divulgue internamente, e
adote novas características relevantes.
Alguns exemplos:
○ Concorrência sem threads ou callbacks
86. Características > paradigmas
Como se preparar:
● Monitore o roadmap de suas linguagens
preferenciais.
● Experimente, divulgue internamente, e
adote novas características relevantes.
Alguns exemplos:
○ Concorrência sem threads ou callbacks
○ Tipos estruturais
87. Características > paradigmas
Como se preparar:
● Monitore o roadmap de suas linguagens
preferenciais.
● Experimente, divulgue internamente, e
adote novas características relevantes.
Alguns exemplos:
○ Concorrência sem threads ou callbacks
○ Tipos estruturais
○ Processamento lazy
88. Características > paradigmas
Como se preparar:
● Monitore o roadmap de suas linguagens
preferenciais.
● Experimente, divulgue internamente, e
adote novas características relevantes.
Alguns exemplos:
○ Concorrência sem threads ou callbacks
○ Tipos estruturais
○ Processamento lazy
features!
90. Democratização da
programação
Como se preparar:
● Entenda que pessoas diferentes têm
necessidades diferentes ao adotar
ferramentas, linguagens e técnicas
91. Democratização da
programação
Como se preparar:
● Entenda que pessoas diferentes têm
necessidades diferentes ao adotar
ferramentas, linguagens e técnicas
● Não nivele “por cima” nem “por baixo”
92. Democratização da
programação
Como se preparar:
● Entenda que pessoas diferentes têm
necessidades diferentes ao adotar
ferramentas, linguagens e técnicas
● Não nivele “por cima” nem “por baixo”
● Planeje o caminho de migração de
soluções emergentes para produção
em escala, quando necessário