segunda-feira, 2 de outubro de 2017

Java SE 9 e Java EE 8 anunciados

A Oracle anunciou recentemente a disponibilização geral do Java SE 9 (JDK 9), da plataforma Java Enterprise Edition 8 (Java EE 8) e do Java EE 8 Software Development Kit (SDK). As coisas estão definitivamente mudando no mundo Java.

Após este lançamento, haverá dois lançamentos de recursos Java por ano. As novas versões Java vêm com muitos recursos, incluindo um novo sistema de módulos voltado para proporcionar maior escalabilidade, segurança aprimorada, melhor gerenciamento de desempenho e desenvolvimento mais fácil na plataforma de programação mais popular do mundo. Outro desenvolvimento importante que vale a pena mencionar, é que o Java EE 8 está se movendo para o Eclipse Foundation e provavelmente terá um novo nome.

Java SE 9

O Java SE 9 vem com mais de 150 recursos novos. No entanto, o destaque do Java SE 9 é o Java Platform Module System, também conhecido como Project Jigsaw, projetado para desenvolvedores para montagem fácil e confiável e manutenção de aplicativos sofisticados. O sistema de módulos é fundamental para tornar o JDK mais flexível, o que significa que os desenvolvedores podem agrupar apenas as partes do JDK que são necessárias para executar um aplicativo ao implantar na nuvem.

“Essa versão do Java SE proporcionará a milhões de desenvolvedores as ferramentas atualizadas que precisam para continuar a construir aplicativos da próxima geração com facilidade, desempenho e agilidade”, disse Georges Saab, vice-presidente de desenvolvimento do Java Platform Group da Oracle.
O Java SE 9 inclui:

  • Jshell: oferece um Read-Eval-Print-Loop interativo para desenvolvedores realizarem uma fácil exploração de APIs e recursos de linguagem.
  • Melhorou o Javadoc com uma função de pesquisa dentro da documentação da API para permitir que os desenvolvedores aprendam novas APIs, assim como informações onde cada módulo define classe ou interface.
  • Aprimoramento das APIs Stream: agora é possível remover/retirar condicionalmente itens de um Stream, iterar sobre os elementos de uma Stream e criar um Stream a partir de um valor anulável ao expandir o conjunto de API Java SE que pode servir como fonte para Stream.


Planos Java 9: a Oracle também anunciou várias mudanças sobre como Java SE e o Java EE serão desenvolvidos e lançados posteriormente. Eles irão se concentrar não somente em APIs melhoradas, como também em recursos de linguagem e JVM. Os lançamentos serão disponibilizados em março e setembro de cada ano, começando em março de 2018.

O lançamento de atualizações será estritamente limitado à correções de problemas de segurança, regressões e bugs em recursos mais recentes com duas atualizações por recurso antes do próximo lançamento.

A Oracle também estará fornecendo compilações OpenJDK sob a Licença Pública Geral (GPL). Ela irá contribuir previamente com recursos comerciais para o OpenJDK e quer tornar a Oracle JDK e OpenJDK mais alinhados.

Java EE 8

Java EE 8 Oracle, Eclipse e outros membros da comunidade estão trabalhando agora para mover as tecnologias Java EE para a Eclipse Foundation. A Oracle mencionou isso no anúncio e prometeu seu apoio contínuo à comunidade Java EE e à Eclipse Foudation.

Os principais recursos do Java EE 8 incluem:

  • Suporte HTTP/2 no Servlet 4.0
  • Nova API de ligação JSON e vários aprimoramentos no JSON-P 1.1
  • Expansão do JAX-RS para suportar eventos Server-Sent e uma nova API de cliente reativa
  • Nova API de segurança para aplicativos baseados em nuvem e PaaS
  • Múltiplos aprimoramentos do CDI, incluindo suporte para eventos assíncronos

A Oracle pretende relicenciar as tecnologias Java EE lideradas pela Oracle e as tecnologias relacionadas ao GlassFish, para a fundação e apresentar uma estratégia de branding para a plataforma dentro da própria fundação, incluindo um novo nome para Java EE. Isso incluiria RIs, TCKs e documentação de projeto associadas.

A Oracle pretende habilitar o uso de nomes de pacotes Java e nomes de especificações de componentes para JSR existentes para fornecer continuidade. Ele procura recrutar e habilitar desenvolvedores e outros membros da comunidade, bem como fornecedores, para patrocinar tecnologias de plataforma e levar a plataforma para dentro da fundação. Isso incluiria a potencial incorporação das tecnologias Eclipse MicroProfile na plataforma.

Fonte: Imasters

quinta-feira, 28 de setembro de 2017

Aprovada a API de segurança do Java EE (JSR-375)

A API de segurança do Java EE, JSR 375, foi aprovada no início de Agosto. Todos os membros do comitê executivo do JCP votaram "Sim", com nenhum voto "Não". A Intel não votou no JSR.

O JSR aperfeiçoou o gerenciamento de usuário, utilização de alias para senhas, mapeamento de regras, autenticação e autorização. Tais melhorias foram modeladas visando facilitar a implementação da API de segurança na nuvem. (Detalhes do JSR 375 foram apresentados pelo InfoQ em Novembro de 2014.)

O site do projeto foi movido para https://github.com/javaee/security-spec. O repositório contém a especificação e 20 issues abertas, possivelmente encontradas após a criação da implementação de referência no Glassfish.

A caminhada do Java EE 8 não tem sido fácil, mas existe uma luz no fim do longo túnel com os recentes JSR aprovados. A Oracle também considera mover o Java EE para uma fundação open source. O diálogo recente com a comunidade é um importante passo para o aumento da transparência da plataforma. Mais detalhes possivelmente serão divulgados na conferência anual da Oracle JavaOne no começo de Outubro. Não se esqueça de verificar conosco, pois a InfoQ irá fornecer uma ampla cobertura.

Fonte: InfoQ

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.

sexta-feira, 23 de junho de 2017

Canadá quer mais profissionais de TIC do Brasil, conheça as áreas em alta

A Québec International, agência de desenvolvimento econômico da cidade de Québec, realiza a quinta edição da missão de recrutamento virtual no Brasil. O objetivo é apresentar oportunidades de trabalho para profissionais qualificados de tecnologia da informação e comunicações (TIC) na capital da província que fica na região canadense de língua francesa — a maior em extensão territorial e considerada o berço da América francesa. Os interessados devem ter domínio total do idioma francês.
Para ocupar as vagas, a missão planeja atrair graduados em ciência da computação, construção de computadores, engenharia elétrica/eletrônica, além de tecnólogos em informática. Os cargos mais demandados são os de analista funcional, analista de negócios de TI, analista tecnológico de infraestrutura web, analista programador e inteligência de negócios (BI), analista programador Java, analista programador .Net, arquiteto de sistemas, arquiteto de software, consultor funcional, SAP SD, desenvolvedor .Net, desenvolvedor back-end Java, desenvolvedor de base de dados de software e web PHP e técnico em armazenamento e virtualização.

A área de TI na cidade de Québec e na região metropolitana reúne cerca de 530 empresas, que geram mais de 15,4 mil empregos.

“Trata-se de um mercado estratégico por apresentar uma cultura profissional muito semelhante à de Québec. Os brasileiros demonstram facilidade de integração à sociedade quebequense e disposição em desenvolver a língua francesa”, avalia Janaina Kamide, conselheira em atração de talentos da agência.

Para se candidatar, é preciso criar um cadastro no site e enviar o currículo em francês até o dia 13 de agosto. Em caso de avaliação positiva, uma entrevista com os gestores das empresas será agendada para o período de 11 a 19 de setembro, via Skype. Vale salientar que a participação na missão é completamente gratuita.

Se o profissional cumprir as exigências e for aprovado, o empregador o fará assinar um contrato e dará início aos trâmites de imigração, para a obtenção do visto que possibilita trabalhar e residir legalmente na cidade de Québec. Todo esse processo junto ao governo local é de responsabilidade da empresa contratante.

Os candidatos poderão ainda assistir a uma webinar, que acontecerá no dia 29 de junho (quinta-feira), às 19h30, e poderá ser acessada pelo link. O evento apresentará dicas de como preparar um curriculum vitae à la québécoise. A transmissão será em francês, mas os interessados poderão enviar dúvidas em português e receber respostas via chat.

Fonte: Idgnow

segunda-feira, 8 de maio de 2017

Red Hat e IBM se opõem ao projeto de modularização do Java 9

A modularização — divisão de software em partes distintas — será o recurso-chave do Java SE 9 (Standard Edition), que está programado para o fim de julho. Mas a IBM e Red Hat se dizem preocupadas com a possibilidade de que o plano do módulo base possa levar a incompatibilidades com aplicações e sistemas corporativos desenvolvidos em Java.

Em um boletim recente, Scott Stark, vice-presidente de arquitetura para o grupo JBoss da Red Hat, levantou preocupações que a empresa e outros membros do comitê executivo do Java têm em relação ao desenvolvimento do JSR 376 (Java Specification Request) referente ao Java Platform Module System, chamado de Projeto Jigsaw.

"O Jigsaw é o projeto de desenvolvimento de um novo sistema de módulos que tem trabalhado com sucesso para modularização do Java em si, mas ainda não testado amplamente em implantações de produção de aplicações reais em cima de Java Virtual Machine (JVM) [programa que carrega e executa os aplicativos Java]", disse Stark. "Há casos de implantação de aplicativos que não são possíveis sob Jigsaw ou exigiriam uma significativa rearquitetura."

A expectativa é que o JSR 376 forneça uma base para o Java Enterprise Edition 9 até o fim de 2018. Mas Stark tem suas dúvidas. "As limitações do Jigsaw quase certamente impedem a possibilidade de termos o Java EE 9 baseado no Java Platform Module System, como para fazê-lo exigiria que os fornecedores de Java EE eliminassem completamente a compatibilidade, interoperabilidade e paridade de recursos com versões anteriores da especificação Java EE."

O VP do grupo JBoss disse ainda que em alguns casos, a implementação do Jigsaw contradiz anos de práticas recomendadas para implantação de aplicativos modulares.

Os principais pontos do Jigsaw são baseados em uma abordagem reducionista de transmitir a compatibilidade de concepção, disse Stark. "Isto funciona com a modularização do Java em si, mas torna-se restritivo para os casos de uso mais amplos de implantações de aplicativos."

O Java Modular, que será entregue com o Java Development Kit 9 (JDK), em 27 de julho, promete ajudar a melhorar a escalada do Java em sistemas menores. O sistema de módulos em foi baseado no JSR 376. "Aplicando as filosofias que façam sentido para modularização e encapsulamento da plataforma Java, a especificação realmente reduz a capacidade dos desenvolvedores de aplicativos se adaptarem facilmente a implementação específica de um sistema de módulos", disse Stark.

Stark argumenta que a implementação do Jigsaw exigirá milhões de autores e usuários do ecossistema Java para superar os grandes desafios para seus aplicativos e bibliotecas, especialmente se eles lidam com serviços, carregamento de classe ou reflexão.  O plano resultará em uma arquitetura nova, não testada e comprovada, para a implantação de aplicativos de forma modular. Poderá haver dois mundos Java de desenvolvimento de software: uma para Jigsaw e outro para todo o restante, cobrindo o Java SE Classloaders, OSGi e o Java EE e muito mais, diz ele.

Padrões introduzidos dentro Jigsaw podem ser difíceis de corrigir, mesmo em uma versão posterior, por criar problemas de compatibilidade com versões anteriores e mais recentes, disse Stark. "O resultado será um ecossistema Java cada vez mais enfraquecido no espaço de servidor com o aumento da utilização de linguagens como Go."

Em sua crítica de aproximadamente 9,5 mil palavras ao Jigsaw, Stark também levanta questões envolvendo o serviço de carregamento, incluindo personalização e extensibilidade. O Jigsaw altera substancialmente o comportamento do ServiceLoader API e pode afetar a compatibilidade, disse ele. Stark também mencionou a estabilidade como um problema, já que o Jigsaw não especifica a ordem em que os serviços são retornados dentro de uma camada.

Tim Ellison, da IBM, em um post em uma lista de mailing do openjdk, feito na semana passada, disse que as preocupações de Stark demonstram que "ainda há muito trabalho para que a comunidade chegue a um acordo sobre o padrão proposto". A IBM vai votar não no JSR 376, disse ele.

Devido à sua complexidade, modularidade já foi adiada no Java SE 8, lançado em março de 2014, a Java SE 9, adiado devido a essa mesma complexidade.

sexta-feira, 7 de abril de 2017

Futuro do suporte às funcionalidades da linguagem Java 8 no Android

No Google, sempre tentamos fazer a coisa certa. Às vezes isso significa ajustar nossos planos. Sabemos o quanto nossa comunidade de desenvolvedores Android se importa com o suporte às funcionalidades da linguagem Java 8, e estamos mudando a maneira que oferecemos esse suporte.

Nós decidimos adicionar o suporte às funcionalidades de Java 8 diretamente ao atual conjunto de ferramentas javac e dx, e desativar o toolchain Jack. Com essa nova direção, as ferramentas e plugins existentes que dependam do formato de arquivo de classe do Java deverão continuar funcionando. Seguindo em frente, as funcionalidades da linguagem Java 8 serão nativamente suportadas pelo sistema de construção do Android. Estamos planejando lançar isso como parte do Android Studio nas próximas semanas, e queríamos compartilhar essa decisão com vocês mais cedo.

Nós inicialmente testamos adicionar o suporte ao Java 8 via toolchain Jack. Com o tempo, percebemos que o custo para mudar o Jack seria muito alto para nossa comunidade quando consideramos os processadores de anotações, analisadores de bytecode e reescritores impactados. Obrigado por testar o toolchain Jack e nos fornecer feedback. Você pode continuar utilizando o Jack para construir seu código Java 8 até lançarmos o novo suporte. A migração do Jack deveria exigir pouco ou nenhum trabalho.

Esperamos que o novo plano prepare um caminho suave para que todos possam tirar vantagem das funcionalidades da linguagem Java 8 no Android. Nós vamos compartilhar mais detalhes quando lançarmos o novo suporte no Android Studio.

Fonte: Imasters

quarta-feira, 22 de março de 2017

Java 9 trará ajustes de limite de memória em containers Docker

O Java 9 ganhou uma mudança experimental para que a JVM consiga perceber que está rodando dentro de um container e ajuste os limites de memória de forma apropriada. Apesar do aumento da popularidade dos containers nos últimos anos, muitas ferramentas, incluindo a JVM, ainda dependem dos parâmetros do host para avaliar os recursos disponíveis, muitas vezes ficando sem memória com mensagens de erro desconcertantes. Essa mudança, que pode estar disponível para o público assim que o Java 9 for lançado, tenta prevenir vários destes cenários.

Tecnologias Container como Docker, Heroku ou Kubernetes são uma forma de máquinas virtuais leves baseadas no sistema operacional Linux. Assim, elas podem fornecer uma funcionalidade muito parecida com as máquinas virtuais mais rápidas e consumindo menos recursos, mas existem algumas desvantagens: enquanto as máquinas virtuais completas simulam uma pilha inteira de hardware dedicado, o que significa que o software existente funciona principalmente como esperado, as tecnologias de containers usam o hardware e o sistema operacional do host, o que significa que o software que se baseia em informações do host pode ignorar as restrições extras que os containers impõem.

Na JVM, se o limite máximo da memória é definido com -Xmx, ela irá configurá-lo como uma fração da memória física (tipicamente ¼, mas pode variar), e isso pode não levar em conta os limites impostos pelo container. A mudança proposta tenta prevenir esse problema ao verificar se a JVM está rodando dentro de um Control Group ou cgroup, uma tecnologia Linux como a maioria das tecnologias de container usadas para impor limites no uso de hardware e outros recursos. Se a JVM detecta que está dentro de um cgroup, ela tentará encontrar o limite de memória definido no container e considerará esse limite como a memória física disponível. Como ainda é experimental, a novidade somente será aplicada se ativada com a opção -XX:+UseCGroupMemoryLimitForHeap.

Incorporado ao Kernel do Linux em 2008 e redesenhado em 2013, o cgroups isola o uso de recursos e permite que aplicações controlem o acesso a memória, CPU, IO e rede, entre outros. Diferentes aplicações podem criar sua própria hierarquia de cgroups com limites diferentes por grupos, o que significa que uma aplicação não conhece, a priori, o grupo que a mesma irá executar. É por isso que a JVM só pode fazer uma suposição sobre cgroups e o limite de memória, divulgou o site InfoQ.

Fonte: Imasters

Google lança primeiro developer preview do Android O

Já faz um ano que o Google anunciou o primeiro preview do Android Nougat. Hoje, a empresa lançou o primeiro developer preview da próxima versão do seu sistema operacional móvel, atualmente batizado de Android O.

“Para este lançamento, queríamos nos concentrar em dar aos desenvolvedores tempo para testar compatibilidade, explorar novos recursos e enviar comentários que ajudarão a fazer do Android O uma ótima plataforma”, disse um porta-voz do Google ao site TechCrunch.

Entre as novidades do Android O estão:

Notificações: o Android O adicionou um novo recurso chamado de notification channels. Isso vai dar aos desenvolvedores a capacidade de agrupar notificações de seus aplicativos em grupos (digamos que você tem um aplicativo de notícias e deseja agrupar notificações por “política” ou “tecnologia”, por exemplo). Os usuários serão capazes de gerenciar essas notificações com base nesses canais.

Picture in Picture: os aplicativos de vídeo do Android O poderão se colocar em um modo Picture in Picture para que o vídeo continue sendo reproduzido depois de alternar para um aplicativo diferente.

Suporte para multitela: esse recurso parece estar voltados tanto para novos tipos de dispositivos quanto para Android no Chrome OS. Com isso, os desenvolvedores poderão lançar uma atividade em uma tela remota.

Navegação por teclado: esse recurso é voltado para Android Apps no Chrome OS e permitirá aos desenvolvedores dar melhor suporte para a navegação por seta e aba em seus aplicativos. “Com o advento do Android Apps no Chrome OS, estamos vendo um ressurgimento do uso de navegação por teclado em aplicativos Android”, diz o Google no anúncio de hoje.

Limites de background: os últimos lançamentos do Android colocaram uma ênfase pesada em melhorar a vida da bateria. O Android O coloca limites automáticos sobre o que um aplicativo pode fazer enquanto está no segundo plano. Esses limites se concentram em três áreas: transmissões implícitas, serviços em background e atualizações de localização. Para os desenvolvedores, isso pode realmente ser o mais abrangente dos novos recursos no Android O.

Novos recursos Wi-Fi: o Android O está adicionando suporte para alguns (relativamente) novos recursos de conectividade. O sistema operacional atualizado oferecerá suporte para mais recursos Wi-Fi Aware, como Neighborhood Aware Networking (NAN). NAN facilita a comunicação entre aplicativos e dispositivos sem um ponto de acesso à Internet no meio (ou qualquer conexão à Internet). O Google diz que está trabalhando com parceiros para oferecer suporte para NAN nos dispositivos “o mais rápido possível”.

Melhor interoperabilidade para aplicativos de chamada: o Android O facilitará a chamada de aplicativos para conversarem entre si e fazer chamadas pela rede de operadoras. Os desenvolvedores agora serão capazes de usar o novo framework Telecom para construir sua própria interface de usuário para fazer chamadas, e as chamadas serão exibidas e controláveis através de dispositivos Bluetooth com telas, como você encontraria em um carro.

Existem outros novos recursos e ajustes, que incluem ícones adaptáveis, suporte para monitores de cores amplas, suporte para codecs de áudio Bluetooth de alta qualidade, uma nova API de áudio nativa, melhor suporte para fontes e um WebView aprimorado que tem o modo multiprocesso habilitado por padrão.

O Google também observa que o Android O irá suportar uma série de novas APIs Java e que o Android Runtime agora é significativamente mais rápido, com alguns benchmarks registrando uma melhoria de 2x.

Como no ano passado, o Google promete que vai dar detalhes sobre o Android O na conferência de desenvolvedores I/O em maio. Se a empresa seguir o mesmo cronograma de lançamento do ano passado, provavelmente veremos os primeiros dispositivos com o Android O em um evento de hardware do Google em outubro.

Fonte: Imasters

Android ganha suporte para recursos de linguagem do Java 8

A equipe de desenvolvimento do Android revelou nesta semana que decidiu adicionar suporte para recursos de linguagem do Java 8 diretamente ao conjunto de ferramentas atual javac e dx e depreciar a toolchain Jack. Com essa mudança, as ferramentas existentes e os plugins dependentes do formato de arquivo de classe Java devem continuar a funcionar. Além disso, os recursos de linguagem do Java 8 serão nativamente suportados pelo sistema de build do Android. A equipe pretende lançar isso como parte do Android Studio nas próximas semanas.

Inicialmente, os devs do Android testaram a adição de suporte para Java 8 através da toolchain Jack. Com o tempo, eles perceberam que o custo de mudar para Jack era muito alto para a comunidade, quando eles consideraram os processadores de anotação, analisadores de bytecode e rewriters impactados.

A equipe espera que o novo plano possa fazer com que todos aproveitem os recursos da linguagem Java 8 no Android.

Fonte: Imasters

terça-feira, 14 de março de 2017

Java EE 8, Quando mesmo?

No blog da oracle, foi anunciada as datas do cronograma de lançamento do JAVA EE 8, segue abaixo:

Apesar do mês de fevereiro ser curto, para o Java foi um mês de muito trabalho

A programação da plataforma Java EE 8 (JSR 366) foi atualizada da seguinte forma:

Revisão Pública - Abr / Mai 2017
Projeto Final Proposto - Junho de 2017
Versão Final - Julho de 2017 (!)

O período de revisão pública do CDI 2.0 está quase concluído, portanto, certifique-se de fornecer seu feedback para o JSR 365 ,ou seja, ... agora!

O JAX-RS 2.1 Early Draft está quase pronto; Veja aqui para obter um detalhe maior. Neste projeto, a API de eventos enviados pelo servidor mudou bastante. Para mais detalhes, verifique aqui e aqui (JAX-RS 2.1 m04).

O Bean Validation 2.0 (JSR 380) EG lançou um Early Draft. Para saber mais sobre o BV 2.0, você pode querer ouvir este episódio do JBoss Community Asylum.

Servlet 4.0 (JSR 369) passou com êxito a sua votação de renovação e, entretanto, o Servlet EG está evoluindo em relação ao seu Early Draft.

A API de Segurança (JSR 375) EG também está na etapa de preparar seu Rascunho Inicial.

Também foi anunciado que há a intenção de fazer uma Release JPA Maintenance para Java EE 8.

JSF 2.3 e JSON-P 1.1 já entraram no período da Balança de Revisão Pública. Isso significa que essas 2 especificações estão ficando muito perto de ser finalizado!

Finalmente e se você quiser contribuir, certifique-se de assistir ao 2o Webcast Adopt-A-JSR que foi recentemente publicado pelo JCP.

Fonte: Oracle´s Blog

quarta-feira, 22 de fevereiro de 2017

Java EE 8 finalmente vai sair, revela Oracle

Depois de oito meses de atraso, a Oracle finalmente colocou data para lançar o Java Enterprise Edition 8: julho de 2017. O Java EE 8 deveria ter aparecido no JavaOne 2016, em setembro, mas uma pausa no desenvolvimento do software o empurrou para o "primeiro semestre" deste ano.

A chefe da Oracle para o Java EE, Linda DeMichiel, estabeleceu a nova meta e revelou que um public review do EE 8 vai ser lançado em maio ou abril, com o beta final chegando em junho. "Estas são as principais datas com as quais estamos trabalhando", disse. 

A atualização provavelmente virá como um alívio para os desenvolvedores que dependem da plataforma da Oracle. O Java vem melhorando graças à sua comunidade, mas mesmo assim, a maioria dos engenheiros que se empenham no código trabalha na empresa.

O atraso começou quando a equipe de desenvolvimento da Oracle inexplicavelmente se ausentou em 2016, sem permissão, provavelmente devido a um mal-entendido entre os engenheiros de software, que se dedicaram a trabalhar na nuvem própria da empresa. 

Fonte: Canaltech

sexta-feira, 17 de fevereiro de 2017

Eclipse IoT anuncia suporte para OMA LightweightM2M 1.0 Device Management Standard

O Eclipse IoT Working Group, um grupo de trabalho colaborativo da Eclipse Foundation, anunciou nesta semana que o projeto open source Eclipse Leshan apoiará o padrão de gerenciamento de dispositivos LightweightM2M (LwM2M) 1.0 da Open Mobile Alliance (OMA), recentemente ratificado. O LwM2M tornou-se um importante padrão de Internet de Coisas (IoT) para gerenciar dispositivos de baixa potência e leves que são comuns para as soluções de IoT.

Eclipse Leshan é uma implementação baseada em Java do padrão LwM2M. Ele fornece uma implementação de servidor LwM2M que pode ser incorporada em qualquer plataforma ou solução de IoT. O Eclipse Leshan inclui algumas das funcionalidades de núcleo IoT necessárias para o gerenciamento de dispositivos, incluindo controle de acesso, conectividade de dispositivo, atualização de firmware, localização e estatísticas de conectividade.

Fonte: Imasters

Formatação de data e hora no Java 9 vai se aproximar dos Unicode Locale Standards

Uma série de alterações de formatação e análise foram incorporadas ao Java 9 para levar a Unicode Locale Data Markup Language (LDML) à linguagem. Essas mudanças foram supervisionadas por Stephen Colebourne, criador da popular biblioteca de data e hora JodaTime, precursora do novo componente java.time no Java 8. Respeitar o padrão Unicode proporcionará melhor interoperabilidade com outros sistemas não-Java.

LDML é a linguagem utilizada pelo Unicode Common Locale Data Repository (CLDR), um projeto do Unicode Consortium para coletar e armazenar dados de localidades de diferentes partes do mundo, permitindo aos desenvolvedores de aplicativos adaptar melhor seus programas a diferentes culturas. Entre outras coisas, o LDML lida com datas, horários, fusos horários, e com a formatação e análise de datas.

Fonte: Imasters

terça-feira, 24 de janeiro de 2017

Primeiro encontro técnico 2017[Especial MicroProfile]

Para começar o ano, o Soujava seguirá falando da iniciativa MicroProfile. Esta é uma iniciativa conjunta de  diversas empresas e comunidade com o objetivo de criar um profile Java para a arquitetura de microsserviços. Evento acontecerá em quatro dias diferentes, um dia para cada provedor do MicroProfile, e será a partir das 19:30 e você pode assistir diretamente de sua casa.

31 de Janeiro – RedHat
2  de fevereiro – IBM
7 de fevereiro – Payara
9 de fevereiro – Tomitribe

Saiba mais : https://soujava.org.br/2017/01/23/microprofile-2/


sexta-feira, 20 de janeiro de 2017

Oracle disponibiliza o Java RE v8 Update 121

A Oracle disponibilizou para download nesta semana o Java RE v8 Update 121 para Windows* e outras plataformas.

O Java Runtime Environment (ou Java RE) permite que os usuários executem jogos e aplicativos programados em Java, façam o upload de fotos em certos sites, conversem online, façam tours virtuais e usem serviços como treinamento online, transações bancárias online e mapas interativos.

Muitos serviços de internet banking no Brasil requerem a instalação do Java Runtime Environment no computador, por isso é extremamente importante mantê-lo sempre atualizado. Ele está disponível para download gratuitamente e em versões 32 e 64 bits para Windows.

De acordo com a Oracle, o Update 121 traz correções de bugs e correções para múltiplas falhas de segurança. Algumas das falhas corrigidas são de alto risco.

A lista com os bugs corrigidos pode ser vista aqui e a lista com as vulnerabilidades pode ser vista aqui.

*Java RE v8 não inclui suporte para o Windows XP.

Fonte: R7

sábado, 14 de janeiro de 2017

Abertas as chamadas de trabalho para o NoSQL-BA



Os banco de Dados NOSQL (not only SQL) foram criados, principalmente, para resolver problemas com aplicações web que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade. Esses tipos de banco de dados vem sendo usados com muita frequência em redes sociais como Twiter, Facebook, além de persistência em aplicações nas nuvens. Outro ponto importante a citar é a crescente adoção destas novas tecnologias, inclusive em mercados mais conservadores, tais como instituições financeiras e agências governamentais, seus motivos são diversos normalmente para solucionar problemas com flexibilidade, escalabilidade, latência e performance. Para demonstrar, compartilhar essas tecnologias foi criado o evento NOSQL-BA.

O evento está procurando pessoas que desejam compartilhar experiências, falar de cases de sucessos, apresentar tecnologias etc. relacionado ao tema NOSQL.


  • Palestra: Palestra normal do evento
  • Debate: Discussão com até quatro palestrantes
  • Mini Palestra: Apresentação de 15 minutos
  • Workshop: Um mini-curso (4 horas).


O evento acontecerá em Salvador entre os dias 30 de março até o dia 1 de abril em Salvador, em breve mais informações:

O prazo de envio é até 27 de Janeiro, sexta-feira.


Link: https://goo.gl/forms/gCMUQpJ4nR6EkWPx1

(OFF) Atlassian está adquirindo a Trello

A equipe do Trello anunciou em seu blog que a Atlassian está adquirindo a mesma.

Há cinco anos na conferência TechCrunch Disrupt em San Francisco foi foi lançado esta ferramenta que em números são mais de 19 milhões de pessoas usaram Trello para resolver muitos desafios diferentes, tanto pessoais como profissionais.

Agora a Trello se junta a ferramentas  de colaboração como JIRA, Confluence, HipChat e BitBucket. 

Tanto os Trellistas como os Atlassianos compartilham a paixão por ajudar as equipes a trabalhar melhor em conjunto, diz em anuncio.

Eles também dizem no anuncio que continuará a operar como um serviço autônomo, para que não precise alterar uma coisa sobre a forma como está usando Trello atualmente.

Veja mais no anuncio oficial.

(Ops!) Google Go é indicada a Linguagem do Ano pelo Tiobe

Não deu para o Java desta vez: a Linguagem de Programação do Ano de 2016, segundo o Índice Tiobe, foi o Google Go.
A linguagem desenvolvida pelo Google apresentou um crescimento vertiginoso no interesse dos programadores no ano passado e passou a frente de todas as outras, inclusive o Java, vencedor de 2015.

De acordo com os organizadores do ranking, o Google Go disparou para o topo, “sem qualquer competição”, em termos de procura por parte dos desenvolvedores.”Os principais motores por trás do sucesso do Go estão na sua facilidade de aprendizado e sua natureza pragmática. Ela não é sobre conceitos teóricos como herança virtual e mônadas mas sobre experiência de mão na massa”, afirma o Tiobe em seu comunicado oficial.

Esse crescimento no interesse também se manifestou no índice de utilização da linguagem de programação, que saltou da 54ª posição em Janeiro de 2015 para o 13ª lugar em Janeiro de 2016. Os três primeiros lugares em utilização permaneceram inalterados, nas mãos do Java, C e C++, respectivamente.

O Índice Tiobe estabelece um ranking de linguagens de programação, classificadas pela frequência em que são consultadas na web em mecanismos de busca usando o nome da linguagem como termo de pesquisa. Criado por uma empresa holandesa, o sistema analisa dados do Google, Google Blogs, MSN, Yahoo!, Baidu, Wikipedia e YouTube desde 2002.


Fonte: Código Fonte

sábado, 7 de janeiro de 2017

Oracle promete Java 8 para este ano

2017 começou sendo um “feliz ano novo” para os desenvolvedores Java. A nova versão da linguagem (Java EE 8) deve ser lançada já nos primeiros meses do ano.

Já se vão mais de duas décadas desde o lançamento de Java, que tem sido a linguagem favorita para desenvolvimento, de acordo com o índice Tiobe, especialmente por causa de sua filosofia “Write Once, Run Anywhere” (WORA – Escreva uma vez, rode em qualquer lugar).

A Oracle fez um anúncio formal do lançamento de Java EE 8 em 2014, durante o JavaOne, com todo o roadmap e a expectativa de lançamento para o JavaOne 2016. O atraso foi indicado já em 2015, com previsão para o primeiro semestre de 2017.

A expectativa da comunidade é que com o lançamento da nova versão, Java solidificará sua presença, apesar dos fortes rivais e das rápidas mudanças nas tecnologias.

***


Fonte: Imasters

CDI 2.0 Beta é lançado

Context and Dependency Injection para Java EE (CDI) se tornou um dos componentes mais importantes da plataforma Java logo após o lançamento da versão 1.0, que foi parte de Java EE 6. Após mais de dois anos, agora o CDI 2.0 Beta 1 foi lançado, com uma lista de novas features. O Beta para RI (Weld 3.0 Beta1) já está disponível para download.

É importante testar o RI e descobrir a nova API. Os recursos estão listados no post do anúncio oficial, no blog do CDI.

De acordo com o post, as novas features do CDI 2.0 são:

As especificações foram dividias em 3 partes para adicionar suporte ao Java SE
API para fazer boot do CDI no Java SE
Observers (ex: events) ordering
Asynchronous event
Configurators para a maior parte de SPI elements
Possibilidade de configurar ou vetar métodos observer
Annotation Literals incorporado
É possível aplicar o interceptor nos producers
Alinhamento com features de Java 8 (streams, lambdas, repeating qualifiers)

De acordo com a empresa, a versão final do CDI deve estar pronta no final de fevereiro. Na sequência, os desenvolvedores começarão a trabalhar na versão 2.1, para adicionar novas features e utilizar o Java EE 8 completamente.

***

Com informações de http://www.c-sharpcorner.com/news/cdi-20-beta-gets-released

Fonte: Imasters