Nunca houve um momento mais emocionante para os tecnólogos e desenvolvedores em todo o mundo. O número de linguagens de programação e frameworks ativos, bem como ferramentas de desenvolvimento, continua a subir.
Apesar de todos estes recursos estarem ao nosso alcance (ou talvez por causa desta abundância), pode não ser tão óbvio para onde as tendências da indústria estão nos levando. Uma pesquisa feita com programadores do Rio de Janeiro e São Paulo mostra quais são as tendências na programação para o próximo ano.
A última versão do JavaScript
Oficialmente lançada em junho 2015, a última versão do ECMAScript (ES6) – mais conhecida pela maioria como JavaScript – está prestes a se tornar uma das maiores mudanças em desenvolvimento web desde que a versão anterior (ES5) foi lançada em 2009.
JavaScript é a linguagem de programação mais prevalente do mundo, com quase todos os computadores pessoais e dispositivos móveis com um navegador web sendo capaz de rodar JavaScript. Assim, o impacto da ES6, e a enorme quantidade de novos recursos que ele traz para o desenvolvimento web, é provável que sejam muito grandes.
Entre esses recursos estão variáveis com escopo de bloco e funções, constantes, setas para simplificar a sintaxe de encerramento, interpolação de strings, classes, módulos e muito mais.
Esta última versão do JavaScript está rapidamente ganhando apoio em navegadores populares. O Microsoft Edge, versão 13, lidera com quase 80 por cento dos recursos suportados. Este ano certamente vai ver o suporte para estes recursos crescendo dentro do Edge, Chrome e Firefox.
Enquanto isso, os desenvolvedores podem começar a usar a maioria do que o ES6 tem para oferecer usando um transpiler, como Babel, para compilar o código do JavaScript ES6 de forma compatível ES5 que funciona em navegadores modernos.
Dominância do Backend como um Serviço
Nos próximos anos, o desenvolvimento moderno continuará a afastar-se da criação de aplicativos totalmente fechado, auto-suficientes. Em vez disso, o desenvolvimento vai cada vez mais se concentrar em utilizar os serviços de terceiros para lidar com um grande pedaço dos aspectos monótonos, mas ainda necessários, do projeto, tais como armazenamento em nuvem, as notificações push e administração de usuários.
Backend como um serviço (BaaS) é uma nomenclatura comum para esses fornecedores, e sua popularidade com certeza vai subir, particularmente no espaço empresarial, onde a escalabilidade representa um enorme fardo para grandes aplicações. Com um BaaS como Parse, equipes de engenharia e operações podem se concentrar em definir a empresa para além da sua concorrência, enquanto os recursos de linha de base e sua sobrecarga associada são tratados por outra parte inteiramente.
Fácil gerenciamento e liberação de imagem
Apesar do Backend como um Serviço estar suprindo as necessidades dos desenvolvedores como conectar projetos à APIs de armazenamento em nuvem e redes sociais, muitas aplicações ainda dependem de uma montanha de desenvolvimento local e servidores bem dimensionados para funcionar corretamente. Infelizmente, o provisionamento de servidores é inerentemente difícil e demorado. Não surpreendentemente, vemos um crescimento exponencial de provisionamento automatizado.
Serviços como Packer e Docker permitem que os engenheiros criem rapidamente imagens de máquinas com versões explícitas de OS, bibliotecas, linguagens e frameworks. Estas imagens de máquina, chamadas de containers, são facilmente replicadas para expandir os serviços existentes ou para criar rapidamente outros. Se a sua equipe de operações já não está conversando sobre esse assunto, ela deveria. Se estiver, e você não estiver os ouvindo, você deveria.
Dependência crescente de linguagens de programação funcionais
Como os aplicativos modernos exigem cada vez mais largura de banda, armazenamento e processamento, é evidente que os modelos de máquina-única não podem ser dimensionados para corresponder a estes requisitos (e isso já não acontece há algum tempo). Para verdadeiramente escalar um sistema, deve-se paralelizá-lo tanto quanto possível, o que leva a uma necessidade crescente de linguagens de programação funcional, como Haskell, Clojure, Scala e Erlang. Assim, há uma crescente necessidade de desenvolvedores que sejam capazes e produtivos nestas tecnologias.
Onde a programação imperativa se apoia muito no estado mutável (alterar o valor de um objeto durante a execução), a programação funcional concentra-se em estado imutável, no qual um objeto declarado conserva o seu valor ao longo do processo. As linguagens funcionais, por causa disso, proporcionam um enorme benefício em relação a linguagens imperativas ou orientadas a objetos mais comuns: elas são inerentemente projetadas para suportar um pesado paralelismo e simultaneidade.
Se você, como um desenvolvedor, souber com certeza que seus dados não serão alterados durante a execução, e que suas funções são transitivas (efetivamente imutáveis), o aplicativo pode se beneficiar com a escala aumentada e computação distribuída facilitados por uma linguagem funcional.
A programação orientada a objetos continuará a ser um importante ramo da indústria para os próximos anos, mas há pouca dúvida de que, como os usuários esperam os resultados de pesquisa mais rápidos e os pesquisadores esperam cálculos mais precisos, a programação funcional vai ganhar notoriedade como uma solução clara e óbvia.
Gostaria de conhecer um pouco mais sobre as linguagens funcionais descritas acima, veja os vídeos abaixo:
Qual dessas suas linguagens é a favorita? Coloque sua opinião na área de comentários abaixo! Você também pode descobrir mais sobre elas na nossa área de projetos!