quinta-feira, 14 de setembro de 2017

Eclipse passa a gerir desenvolvimento da Java EE

A Eclipse Foundation vai passar a ser a entidade administradora das especificações Java Enterprise Edition (JEE), antes controladas pela Oracle, que deixou de ter interesse em gerir a plataforma. Como parte da adoção, o Java EE provavelmente receberá um novo nome, algo que a Oracle recomenda na sua proposta de alterações.

Há cerca de um mês atrás, a Oracle disse que iria acabar com o papel de administração do Java EE e transformá-lo em uma base de código aberto. Na sequência de consultas com parceiros para tecnologia Java, como a IBM e a Red Hat, e depois de reunir-se com várias fundações, a Oracle selecionou uma organização com largo histórico no desenvolvimento da Java: a Eclipse Foundation.

Esta criou o seu popular Eclipse IDE e geriu várias outras tecnologias Java. “A mudança do Java EE para um cenário de governo e colaboração aberta será um processo, e não um evento”, avisou o diretor executivo da Eclipse, Mike Milinkovich.

“As nossas discussões iniciais com Oracle, IBM e Red Hat mostraram que há muito apoio para isso acontecer nas equipas de liderança dessa empresas”.

Milinkovich concorda com a Oracle sobre a necessidade de a Java EE ser revista para suportar melhor cloud computing.


Fonte: ComputerWorld

terça-feira, 12 de setembro de 2017

Java 9 fora da oferta de suporte a longo prazo

O próximo Java Development Kit 9 não será designado para suporte a longo prazo, confirma a Oracle. Sob novo regime de actualizações elaborado pelo fabricante, a versão Java 9 será a primeira versão de adição de recursos e tem ainda a Java 8 como base.

Haverá lançamentos deste tipo, alicerçados numa ou algumas novas funcionalidades significativas, a cada semestre. De três em três anos, a versão será uma base com suporte de longo prazo.

A próxima denomina-se Java 18.9 e só deverá ser disponibilizada a Setembro de 2018. (A designação “18.9” estipula o ano e o mês do lançamento). O estatuto do Java 9 não anula a sua importância, argumenta a Oracle.

A empresa acredita que os programadores vão querer adoptá-la pelas novas capacidades incorporadas. No entanto, as empresas com aplicações em produção poderão preferir aguardar pelo próximo lançamento de longo prazo.

Darão à Oracle e aos autores de bibliotecas e matrizes Java, tempo para remover quaisquer erros das novas funcionalidades. As actualizações para lançamentos de suporte a longo prazo vão estar disponíveis durante pelo menos três anos.

Esses lançamentos são orientados para as empresas que preferem a estabilidade, permitindo que executem aplicações numa única versão. A próxima versão de conjunto de recursos será a Java 18.3, agendada para Março de 2018 (depois da Java 9).

Além dos lançamentos de recursos e suporte de longo prazo, haverá lançamentos de actualização para recursos, limitados à correcção de vulnerabilidades de segurança e erros de código, entre outros problemas. Cada lançamento de funcionalidades está programado para ter duas actualizações antes da versão seguinte dos recursos.

As atualizações públicas para a Java 8, devem terminar em Setembro de 2018, embora o prazo possa ser alargado. Mas o suporte para o JDK 8 vai está disponível até Março de 2025.

quinta-feira, 24 de agosto de 2017

Oracle quer Java EE mais ‘Open Source’

A Oracle quer reposicionar o Java EE no mercado, sobretudo a forma como é desenvolvido. Torná-lo mais ágil, responsivo e capaz de se adaptar melhor às necessidades atuais da indústrias e tecnologia é a missão que define para este popular produto.

O blog da Oracle destaca esta importante alteração de produto. O Java EE (Java Platform, Enterprise Edition) é uma plataforma utilizada para programação que serve de base ao desenvolvimento e execução de software empresarial na língua Java. O Java EE é também considerado um padrão sendo as suas normas definidas pelo The Java Community Process.

O desenvolvimento do Java EE já acontece de forma ‘Open Source’ e com a ajuda da comunidade, defendendo agora a Oracle uma melhoria no processo já que para a empresa não parece que seja tão flexível e aberto como os produtos de outras comunidades de programadores.

Com o Java EE 8 já na sua fase final de desenvolvimento, a Oracle acredita que o próximo paso seja adotar um processo de licenciamento mais flexível. A comunidade tem tido um papel determinante na inclusão de novas funcionalidades, apesar de existirem ainda muitos detalhes a solucionar pela frente.

sábado, 15 de julho de 2017

Nove linguagens de programação que vale a pena manter no radar

As linguagens de programação são populares por um motivo, em especial: oferecem uma base enorme de código aberto, bibliotecas e frameworks que facilitam o trabalho dos programadores. Mas, às vezes, os vastos recursos das linguagens de programação populares e convencionais não são suficientes para resolver um problema particular. Às vezes você tem que olhar para além do óbvio para encontrar o idioma certo, onde a estrutura certa faz a diferença ao oferecer recursos extras que ajudem seu código a ser executado significativamente mais rápido, sem ajustes e otimização infinitas. Produzir um código muito mais estável e preciso, evitando que você recorra a código desleixado ou incorreto.

O mundo é preenchido com milhares de idiomas inteligentes que não são C#, Java ou JavaScript. Alguns são estimados por apenas alguns, mas muitos têm comunidades florescentes conectadas por um amor comum pelas facilidades que proporcionam na solução de certos problemas.

Pode não haver dezenas de milhões de programadores que conheçam a sintaxe, mas às vezes há valor em fazer as coisas um pouco diferentes. Experimentar com qualquer nova linguagem pode pagar dividendos significativos em projetos futuros.

As nove linguagens a seguir devem estar no radar de cada programador. Elas podem não ser o melhor para cada trabalho - muitas são direcionadas a tarefas especializadas. Mas todas  oferecem upsides que valem a pena investigar e investir.

Pode chegar o dia em que cada uma dessas linguagens acabará se revelando exatamente o que seu projeto precisa.

1 - Kotkin - reconsiderando o javanês

O Java é um excelente idioma que suporta algumas das plataformas mais populares de todos os tempos, mas está ficando um pouco velho e os pontos de dor tornam-se um pouco mais conhecidos. o idioma Kotlin é filho do cérebro da equipe JetBrains na Rússia, que nos trouxe IDEs maravilhosos como o IntelliJ.

O Kotlin deve compilar rapidamente, coexistir com o Java e corrigir alguns dos piores problemas que ocupam o tempo dos desenvolvedores Java. Foi projetado para trabalhar com o código Java existente, tornando-se uma boa opção para equipes que desejam melhorar gradualmente uma base de código.

A melhor parte pode ser a atenção dada aos valores anuláveis, a falha de todos os programadores orientados a objetos. Se você achar que metade do seu código está procurando por valores nulos, os desenvolvedores da Kotlin ouviram seus apelos. Kotlin é uma ótima pedida para resolver esse problema, se não de uma vez por todas, pelo menos na maior parte do tempo, forçando os desenvolvedores a chamar explicitamente as variáveis ​​que podem ser nulas. Então, verifica automaticamente alguns dos piores erros que podemos fazer com eles. 

Esta estratégia cautelosa provou ser popular porque permite que a equipe adote a linguagem lentamente. O grupo Kotlin ganhou muitos fãs em grandes equipes de desenvolvimento de  grandes bancos, grupos de consultoria e empresas de aplicativos.  O Google reconheceu o valor do idioma e agora os desenvolvedores do Android que desejam usar o Kotlin são bem suportados.

2 - Erlang - programação funcional para sistemas em tempo real

A Erlang começou dentro dos domínios assustadores de telefones na Ericsson, a empresa de telecomunicações sueca. Quando os programadores da Ericsson começaram a se gabar de sua performance de "9 noves", oferecendo 99,9999999 por cento dos dados com Erlang, os desenvolvedores fora da Ericsson começaram prestar mais atenção na linguagem.

O segredo da Erlang é o paradigma funcional. A maior parte do código é forçada a operar em seu próprio mundo, onde não pode corromper o resto do sistema através de efeitos colaterais. As funções fazem todo o seu trabalho internamente, executando em pequenos "processos" que funcionam como sandboxes e conversam somente entre si através de mensagens de correio. Você não pode simplesmente pegar um ponteiro e fazer uma mudança rápida no estado em qualquer lugar na pilha. Mas precisa ficar dentro da hierarquia de chamadas. Pode exigir um pouco mais de raciocínio, mas os erros são menos propensos a se propagar.

O modelo também simplifica determinar o que no código pode ser executado ao mesmo tempo. Fãs de Erlang gostam de se gabar de executar 20 milhões de "processos" ao mesmo tempo em um servidor Web.

Se você está construindo um sistema em tempo real sem espaço para dados descartados, como um sistema de cobrança para uma chave de telefones celulares, então vale investir algum tempo conhecendo a linguagem Erlang.

3 - Go - Simplicidade e dinamismo 

Em 2009, o Google  lançou um idioma que se parece com o C, mas inclui inteligência em segundo plano para salvar os programadores de ter que especificar tipos e fazer malabarismos com chamadas de malloc. Com o Go, os programadores podem ter a textura e a estrutura do C compilado, juntamente com a facilidade de usar um idioma de script dinâmico.

A Sun e a Apple seguiram um caminho semelhante na criação do Java e do Swift, respectivamente, enquanto o Google tomou uma decisão significativamente diferente com Go: os criadores do idioma queriam manter Go "simples o suficiente para segurar a cabeça de um programador". Rob Pike, um dos criadores de Go , disse à Ars Technica que "às vezes você pode ganhar mais a longo prazo, abrindo mão de algumas coisas". Por isso, foram removidos recursos de linguagens de alto nível, como Classes, Heranças, Overloads de Métodos, Try/Catchs, Ternários etc.

O resultado? Uma linguagem open source multiplataforma, facilmente escalável, com uma gestão de memória própria e threads transparentes ao programador, simplista ao extremo.

O idioma está supostamente bem estabelecido dentro do vasto império do Google e está ganhando aceitação em outros lugares onde os amantes de linguagem dinâmica como Python e Ruby podem ser persuadidos a aceitar algum rigor que venha de uma linguagem compilada.

Se você é uma startup tentando usar as plataformas Google e precisa construir alguma lógica de negócios do lado do servidor,  Go é uma ótima opção para começar, já que endereça três necessidades básicas do Google: desempenho, escalabilidade e facilidade de manutenção.

codificacao

4 - OCaml - para complexas hierarquias de dados

Alguns programadores não querem especificar os tipos de suas variáveis, e para elas construímos os idiomas dinâmicos. Outros preferem especificar se uma variável contém um número inteiro, uma string ou talvez um objeto. Para eles, muitas das linguagens compiladas oferecem todo o suporte desejado.

Depois, há aqueles que sonham em hierarquias elaboradas. Eles imaginam listas e tabelas de tipos heterogêneos, polimorfismo, primitivas de correspondência de padrões e encapsulamento de dados.  Para eles, há OCaml, um esforço sério da comunidade de linguagem de programação para popularizar muitas dessas ideias.

OCaml é um idioma poderoso, permitindo expressar ideias e restrições complexas com tipos, mas, ao mesmo tempo, não obriga o programador a declarar os tipos das variáveis. Também inclui tipos de dados algébricos e pattern matching, duas características que, quem se acostuma a usar, passa a achar indispensáveis em qualquer linguagem. E possibilita o uso de características imperativas, facilitando a transição para quem não tem experiência prévia com programação funcional, reduzindo o tempo necessário para se tornar produtivo na linguagem.

Já que a programação funcional é um assunto cada vez mais frequente entre os desenvolvedores, OCaml é uma ótima opção para começar no paradigma. Programas escritos no idioma são compilados para código rápido (próximo do desempenho de C e C++), mas a linguagem é expressiva e de alto nível, similar a idiomas como Python e Ruby.

Há suporte a objetos, gerenciamento automático de memória e portabilidade de dispositivos, e vários aplicativos OCaml disponíveis na App Store da Apple .

5 - TypeScript - o JavaScript que você gostaria

Todos podem usar JavaScript, mas ninguém parece gostar de programar nela. Ou então, parece que todo mundo hoje tem seu pré-processador favorito ou superprocessador que  estende e melhora o idioma. TypeScript é o favorito da vez, pois adiciona tipos a todas as variáveis, algo que faz os programadores Java se sentirem um pouco mais seguros.

A grande razão pela qual mais desenvolvedores estão interessados ​​em TypeScript é a Angular , uma ótima estrutura para a construção de aplicativos Web escrita em TypeScript. Ok, você não precisa dominar TypeScript para usar Angular. Mas pode aproveitar a qualidade do seu código e mesclar com o seu legado JavaScript.

TypeScript é um superconjunto de JavaScript que se relaciona bem com o códigos JavaScript antigos, algo que pode ser bastante útil se houver pessoas no escritório que tenham opiniões dogmáticas sobre como os tipos estão diminuindo seu estilo. Os tipos são efetivamente opcionais e as pessoas que gastam tempo para especificar tipos podem colher as recompensas. 

A tipagem forte tem muitas vantagens, como pegar alguns erros anteriores e melhorar a qualidade geral das ferramentas. A adição de tipos permite que os editores inteligentes o ajudem com sugestões inteligentes enquanto você desenvolve sua obra-prima. A conclusão do código é muito mais rápida e precisa quando as rotinas de conclusão do código sabem algo sobre as funções e os argumentos. Isso significa menos movimento dos dedos no teclado.

Os amantes de TypeScript têm certeza de que vantagens como essas atrairão alguém que  esteja em dúvida a respeito do poder de uma linguagem fortemente determinada. 

6 - Rust - linguagem de sistema segura e funcional

Os programadores front-end não são os únicos que se divertem. Rust é como uma versão remodelada de C com muita tipografia polimórfica misturada sob o capô. Nos últimos dois anos, figura na lista de  "linguagem de programação mais amada", elaborada pela comunidade Stack Overflow, uma honra que também se reflete no índice de popularidade da linguagem Stack Overflow. A apenas alguns anos atrás, Rust aparecia na posição 50 da lista, e este ano saltou para 18. 

Por quê? Talvez por seus princípios: segurança sem "coletor de lixo", concorrência sem corrida de dados e abstração sem overhead. Eles fazem com que Rust seja rápida para ser usada em aplicações de baixo e prática para projetos de alto nível.  Você obtém toda a diversão hard-core, de alto desempenho, semelhante a escrever C, com um compilador que capturará muitos dos piores erros antes que o código seja executado.

Quando implementado, o compilador personaliza a estrutura para cada tipo, algo que os desenvolvedores gostam de chamar de "monomorfismo". O idioma adiciona alguns outros limites para evitar que os desenvolvedores saiam dos trilhos. Cada valor, por exemplo, é "de propriedade", o que realmente significa que só pode ser consumido uma vez, impedindo uma rede emaranhada de referências de outras partes do programa que atuam como se tivessem controle total sobre um valor.  

codecio

7 - Scala - programação funcional na JVM

Se você precisar da simplicidade, mas ama o paradigma funcional, você tem várias opções. E se Java for seu domínio, Scala é a escolha certa para você.

Scala é uma linguagem de programação de propósito geral baseado em dois paradigmas: o orientado a objetos e funcional. Executada na JVM, traz todas as restrições de design limpo da programação funcional para o mundo Java, fornecendo um código que se encaixa com as especificações da classe Java e links com outros arquivos JAR.

O mecanismo de tipo é fortemente estático e o compilador faz todo o trabalho para inferir tipos. Não há distinção entre tipos primitivos e tipos de objetos. A sintaxe é muito mais simples e limpa do que o Java.  

Aliás, uma das maiores diferenças do Scala em relação ao Java, é na forma em que funções podem ser usadas, pois em Scala funções são objetos e, por isso, elas podem ser utilizadas de muitas formas, como por exemplo, serem passadas como parâmetros em outras funções, permitindo uma grande flexibilidade no código.

Além diso, Scala também é uma linguagem orientada a objetos, permitindo a criação de classes com todos os conceitos de orientação a objetos, como herança, polimorfismo e associação entre classes. A definição da classe não é muito diferente da forma que é feita em Java, pois a principal diferença é que a classe aceita parâmetros, como é possível verificar logo na linha da declaração. Esses parâmetros devem ser passados no momento da criação das instâncias da classe, substituindo o construtor.

Você tem um projeto de Big Data, compreende o domínio do problema, sabe qual infraestrutura utilizar e talvez tenha até decidido sobre qual framework utilizará para processar todos esses dados. Porém, uma pergunta decisiva ainda paira no ar: Qual linguagem utilizar? Scala pode ser uma boa opção.

Ela é o casamento mais bem-sucedido dos paradigmas funcionais e orientados a objeto, e está avançando a largos passos no mundo financeiro e em empresas que precisam operar grandes volumes de dados, muitas vezes de modo massivo (como o Twitter e a LinkedIn). Também é a linguagem por detrás do Spark e do Kafka.

Se você precisa manipular os dados em um cluster de mil processadores e tem uma pilha de código Java legado, Scala é uma ótima solução.

Um ponto ruim? O compilador de Scala é um pouco lento, ao ponto de que ele nos leva de volta aos dias da “compilação” clássica com XKCD. Ainda assim, ele possui REPL, suporte a big data e notebooks baseados em web no formato de Jupyter e Zeppelin.

scala

8 - Haskell: programação funcional, pura e simples

Por mais de 20 anos, os acadêmicos que trabalham na programação funcional têm desenvolvido ativamente o idioma Haskell, destinado a encapsular efeitos colaterais. É uma das expressões mais puras do ideal de programação funcional, nomeada em homenagem ao lógico Haskell Curry.  Aliás, a maioria dos nomes relacionados ao idioma faz referências à Escócia, um viveiro da pesquisa Haskell, ou a filósofos e lógicos por trás de muitas das ideias expressas na concepção do idioma. Entre eles, a ênfase no que deve ser feito (what), em detrimento de como deve ser feito (how).

Possui mecanismos para lidar com canais de I/O e outros efeitos colaterais inevitávei, suporte a funções recursivas e tipos de dados, casamento de padrões, list comprehensions, guard statements e avaliação preguiçosa. E a combinação destas características faz com que a construção de funções que seriam complexas em uma linguagem procedimental de programação tornem-se uma tarefa quase trivial em Haskell.

A comunidade é muito ativa, com mais de uma dúzia de variantes de Haskell disponíveis para você explorar. Algumas são autônomas, e outros são integradas ao Java (Jaskell, Frege) ou Python (Scotch).

Se você acredita que suas estruturas de dados serão complexas e cheias de muitos tipos, Haskell irá ajudá-lo a mantê-los na linha.

9 - Julia: trazendo velocidade para o mundo Python

O mundo da programação científica é preenchido com amantes de Python que desfrutam da sintaxe simples e a liberdade de evitar pensar em detalhes desagradáveis como ponteiros e bytes. Por todos os seus pontos fortes, no entanto, Python é muitas vezes lento, o que pode ser um problema se você estiver trabalhando com grandes conjuntos de dados como é comum no mundo da computação científica. Para acelerar as questões, muitos cientistas se voltam para escrever as rotinas mais importantes em C, o que é muito mais rápido. Mas isso os impele ao uso de software escrito a partir de dois idiomas e, portanto, muito mais difícil de revisar, corrigir ou estender.

Julia é uma  solução para essa complexidade . Seus criadores tomaram a sintaxe limpa adorada pelos programadores Python e a ajustaram para que o código possa ser compilado em segundo plano. Dessa forma, você pode configurar um caderno ou uma sessão interativa como Python, mas qualquer código que você crie será compilado imediatamente.

A coragem de Julia é fascinante. Fornece um mecanismo de inferência de tipo poderoso que pode ajudar a garantir um código mais rápido. Se você gosta de metaprogramação, o idioma é flexível o suficiente para ser estendido. As adições mais valiosas, no entanto, podem ser os mecanismos simples de Julia para distribuir algoritmos paralelos em um cluster. Uma série de bibliotecas sérias já abordam muitos dos algoritmos numéricos mais comuns para a análise de dados.

Muitos benchmarks básicos são executados 30 vezes mais rápido do que o Python e geralmente são executados um pouco mais rápido que o código C. Se você tem muitos dados, mas desfruta da sintaxe de Python, Julia é o próximo idioma a aprender.

Fonte: Cio

Emprego como programador? As 10 linguagens mais populares

Hoje em dias são várias as linguagens de programação que estão disponíveis para desenvolvimento de software e serviços. Algumas delas têm aparecido nos últimos anos, como resposta aos desafios dos novos modelos de computação, e outras vão-se mantendo quase como um standard.

Saiba quais as 10 linguagens de programação mais populares na atualidade. Há novidades.

De acordo com os dados agora revelados pelo site TIOBE.com, o JAVA continua a ser a linguagem mais popular da atualidade, apesar de continuar a perder terreno. Como é sabido, o sucesso deve-se, em grande parte, à plataforma Android da Google, isto porque é a plataforma que domina no segmento móvel.

Popularidade das linguagens de programação desde 2002




De acordo com o TIOBE Index, relativo a Julho de 2017, o Perl abandona o TOP 10 e, com uma enorme subida (de 55 posições), entra a linguagem de programação Go.

Para quem não conhece, a linguagem de programação Go foi criada pela Google e lançada em código livre em novembro de 2009. É uma linguagem compilada e focada na produtividade e programação concorrente. 

Fonte: Pplware

Lançamento da Java 9 outra vez agendado para 27 de Julho

A Java 9 deve ser lançada a 27 de Julho de 2017, em versão completa, depois de a Oracle já ter disponibilizado uma edição preliminar da plataforma. O fabricante conta facultar novas actualizações diariamente para a Java Development Kit.

O lançamento sofreu vários atrasos, o mais recente previa a disponibilização da plataforma apenas a 21 de Setembro, devido a questões relacionadas com a característica de modularidade, depois de estar previsto para 27 de Julho. A principal novidade da nova edição ficou de fora da Java 8, lançada há três anos.

A modularidade da Java 9 deve oferecer maior capacidade de expansão em escala ao mesmo tempo que as implantações com a linguagem, em dispositivos menores tendem a ser melhores.

Envolverá também mudanças significativas na forma como a plataforma Java funciona, com poucas alterações desde a Java 1.0. Os programadores vão ver que a antiga HttpURLConnection foi finalmente substituída por um novo cliente HTTP, esperando-se grandes melhorias e suporte para o protocolo HTTP / 2 e o WebSocket.

A Java 9 traz ainda uma nova ferramenta, a ‘jShell’,para oferecer funcionalidades de “read-eval-print loop” para facilitar aos programadores a avaliação de declarações e expressões juntamente com uma API. Isso significa que outras aplicações também podem usar essas capacidades.

Na área de segurança, a Java 9 traz um novo esquema de “string”, o que deve tornar mais fácil a distinção entre atualizações de segurança e outras maiores ou menores.

O Java morreu? Viva o Java!

O software está engolindo o mundo. Essa frase, dita por Marc Andreesen, cofundador da Netscape, desenvolvedora do navegador de internet de mesmo nome que liderou o mercado de softwares dessa categoria. Em artigo de 2011, no The Wall Street Journal, ele resumiu o fenômeno que estamos vendo nos últimos anos. Todas as empresas, para se manterem relevantes no mercado e evitarem que sejam ultrapassadas por novos entrantes — normalmente startups de tecnologia que vêm com ideias inovadoras, quebrando paradigmas e trazendo novos modelos de negócio —, precisam investir em software, criar aplicativos para alcançar o usuário final e desenvolver novos canais de comunicação. Todos conhecem a história do Uber mudando a indústria de transporte de táxis, do Netflix acabando com as locadoras de vídeo e do Airbnb impactando a indústria de hotelaria e aluguéis de imóveis, dentre outros inúmeros exemplos.


Essa necessidade de inovação criou uma demanda de criação de software nunca vista antes: o que antigamente evoluía lentamente, em pequenos passos mensais ou anuais, agora exige inovação contínua semanal e a passos largos. Os updates que vemos nos aplicativos de celular, em geral, impõem o ritmo de atualização esperado em qualquer software que usamos, sejam eles de internet banking, mobile banking, compras pela internet, redes sociais, entre outros.

A grande velocidade exigida pelo mercado coloca uma enorme pressão nas equipes de tecnologia da informação por parte das áreas de negócios, que já entenderam que a lentidão se resume em morte do negócio. Essas equipes de TI estão passando por um desafio: por um lado, a equipe de operações precisa manter tudo funcionando — e o mais estável possível - enquanto as equipes de desenvolvimento querem utilizar as tecnologias mais novas disponíveis para conseguir atender às demandas no menor tempo possível. A realidade deu espaço para o surgimento de novas metodologias de desenvolvimento ágil: abordagens diferenciadas como DevOps estão em voga e novas tecnologias e linguagens de programação mostram-se imprescindíveis para a sobrevivência de qualquer empresa.

Nesse novo cenário dos negócios digitais, os applications servers de antiga geração baseados em Java Enterprise Edition estão perdendo espaço. Um estudo do Gartner de novembro de 2016 já apontava queda de até 9,5% no modelo de tecnologia e sinalizava que em 2019, ou seja, daqui a dois anos, menos de 35% das novas aplicações serão criadas na plataforma de desenvolvimento Java.

Mais Lidas
 Uso de WANs definidas por software deve crescer 90% até 2020
De olho no futuro, Autopass investe R$ 16 mi em TI e migra para nuvem
HP supera Lenovo e retoma liderança mundial na venda de PCs no segundo trimestre
Inteligência artificial tornará a desigualdade social ainda pior, diz estudo
O estudo da consultoria trouxe uma repercussão no mercado e levou defensores da tecnologia a se pronunciarem. Porém, uma ressalva precisa ser feita. Muitos acreditaram que o Java EE como conhecemos deixaria de existir em pouco tempo, o que não é verdade.

Dentre as tendências de mercado levadas em consideração no estudo, o Gartner revela a necessidade de modernização constante das plataformas de aplicação. E nesse quesito, os softwares open source levam vantagem. Segundo o estudo de 2016, enquanto os principais application servers de tecnologia proprietária baseados em Java EE caíam 9,5% e 4,5% em 2015, os application servers de código aberto cresciam entre 23% e 50% em presença de mercado no mesmo período.

As plataformas modernas precisam fornecer uma infraestrutura ágil que permita colocar uma ideia em prática na maior velocidade possível e com o mínimo de interrupção do serviço e, para isso, a abordagem que está mais em voga é o DevOps, prática onde se fomenta a participação conjunta dos times de desenvolvimento e de operações e permitir a automação e padronização do ambiente de desenvolvimento sem perder a flexibilidade de incorporar novas linguagens e novas tecnologias.

Para atender às demandas dos usuários modernos, acostumados com a frequência de atualizações dos aplicativos móveis, e continuar relevante no mercado, novas linguagens e frameworks de desenvolvimento tem de ser experimentadas, pois resolvem problemas de tecnologia específicos e permitem aumentar a velocidade de inovação. Essas novas linguagens e frameworks estão dividindo o espaço com o Java EE, e não o substituindo. Cada linguagem tem a sua função, suas vantagens e seu uso específico. As plataformas modernas têm de permitir a convivência de todas essas novas tecnologias e estarem preparadas para abraçar tecnologias que ainda não foram criadas.


Além de novas tecnologias de desenvolvimento, novas estratégias de implantação também estão surgindo como Blue-green Deployments, A/B Testing e Canary Releases, pois é necessário implantar novos serviços sem interrupção.

Todas essas novas abordagens estão vindo de tecnologias open source, que estão impulsionando a inovação - o grande aumento da presença de soluções de código aberto se deve exatamente a isso. Podemos citar como exemplo: JBoss EAP, docker, Kubernetes, OpenShift, Wildfly Swarm, Vert.x, entre outros.

Mas quais seriam os benefícios do open source frente às demais soluções para justificar esse crescimento? A principal delas é o compromisso com a inovação – principal requisito do novo mercado de tecnologia. Os softwares open source são ótimas ferramentas para o gerenciamento de cloud, inclusive para as tão importantes aplicações cloud-native, além de serem aliados poderosos da inteligência artificial e da computação cognitiva, permitindo gerenciamentos de processos e criação de ambientes ágeis, eficientes, escaláveis e modernos sem lock-in, pois a liberdade de escolha de fornecedor é fundamental para se continuar utilizando a tecnologia que melhor atenda às empresas, não a tecnologia que amarra por motivos técnicos ou comerciais. Somente o open source te dá essa liberdade.

Além disso, outra grande impulsionadora dos softwares open source é a cultura colaborativa. Muito mais do que uma facilitadora das tarefas diárias, a tecnologia open source valoriza cada indivíduo que faz parte da comunidade, evidenciando a importância do todo e de cada um para gerar iniciativas. As comunidades open source não se restringem a desenvolvimento de software - onde se destacou e se desenvolveu - mas também em projetos de engenharia: um exemplo é a fundação e-NABLE, pioneira em projetar, fabricar e distribuir gratuitamente próteses 3D open source para pessoas carentes que precisam desse recurso e não têm como adquiri-lo. Nesse projeto, além da comunidade envolvida e de todos os criadores das próteses, os desenvolvedores, analistas, gerentes e diretores que geram, analisam e qualificam os softwares open source têm consciência do quanto são fundamentais ao processo.

Portanto, não é preciso ter receio quanto aos novos rumos do mercado de tecnologia. É necessário aprender com eles e gerar valor. É isso o que os softwares open source têm feito ao longo dos anos e o compromisso que vão continuar tendo, utilizando qualquer tecnologia aberta, que venha a se destacar na resolução de problemas tecnológicos, dividindo espaço com o já consolidado Java.

*Boris Kuszka é diretor de arquitetura de soluções da Red Hat, fornecedora de software livre e distribuições Linux.