Sua empresa está pensando em fazer a transição do java para outra tecnologia? [fechadas]

9

Como todo desenvolvedor de Java sabe, a Oracle comprou a Sun e o futuro do java parece pouco claro, especialmente porque a Oracle quer monetizar a JVM. Java como uma linguagem também tem sido obsoleta nos últimos anos, a não inclusão de fechamentos é um exemplo (que pode ser incluído no java 1.8). Ao mesmo tempo, algumas novas tecnologias, como Ruby, Scala e Groovy, estão sendo usadas. para entregar sites complexos.

Gostaria de saber se existem empresas ou organizações que estão conversando, fazendo picos ou começando a usar uma tecnologia diferente, com a idéia de parar de usar java para projetos de campo verde, da mesma maneira que há 15 anos as empresas migraram do C ++, perl e outras tecnologias para Java. Também estou interessado em saber quais são as impressões disso, por exemplo: planejando migrar para uma tecnologia diferente em 2 anos.

Para ser claro, não estou perguntando qual tecnologia é melhor. Estou perguntando se sua organização está pensando em deixar o Java para outra tecnologia.

Augusto
fonte
11
Groovy e Scala não são dependentes da JVM? Nesse caso, eles também estão preocupados com a Oracle que deseja monetizar a JVM.
POSIX_ME_HARDER 14/02
Você está certo. Isso terá impacto na adoção de Scala, Groovy ou JRUby em empresas que desejam a jvm comercial em vez da jvm aberta. Deixarei a pergunta original intocada, pois acho que algumas empresas podem pagar pela JVM comercial para usar um idioma diferente.
Augusto
Como desenvolvedor Java, discordo de sua declaração "como todo desenvolvedor Java sabe". Eu acho que o futuro do Java é a) claro eb) brilhante. Tenho certeza de que algumas pessoas podem querer pagar mais pelo pacote de suporte "premium" do Oracles, mas para aqueles de nós que planejam aderir à versão gratuita e de código aberto do Java (que não está indo embora!), Então é um pouco irrelevante.
Mikera
Mikera, você mencionou o código aberto, mas alguns dos influentes desenvolvedores de java que costumavam liderar projetos de código aberto agora estão liderando projetos em outros idiomas, portanto, sua "energia" é desviada do java. Verifique todas as estruturas incríveis disponíveis para Scala, Groovy ou Ruby. Não tenho números para apoiar isso, mas pode ser interessante verificar quantas "linhas de código" foram comprometidas com repositórios de código aberto nas diferentes linguagens mainstream e tendências.
Augusto

Respostas:

9

Nem um pouco - na verdade, estou investindo pesadamente em Java como uma plataforma na minha empresa (uma startup que desenvolve aplicativos e ferramentas SaaS para mineração de dados).

Aqui estão os motivos:

  • Escolher Java como plataforma não significa que você precise usar Java como linguagem. Usamos o Clojure como a principal linguagem de desenvolvimento de aplicativos, passando ocasionalmente para Java, quando necessário. Mas outras linguagens JVM como Scala e Groovy também são ótimas.

  • Pessoalmente, não estou preocupado com a Oracle . A principal implementação do Java quase certamente continuará sendo de código aberto ( OpenJDK ) e disponível gratuitamente. Se a Oracle fez algo estúpido, outras grandes empresas (acho que a IBM e o Google em particular) investiram demais em Java para deixar isso escapar, e elas poderiam facilmente continuar desenvolvendo o Java sem a ajuda da Oracle.

  • A JVM é um ótimo ambiente de execução . Plataforma cruzada, desempenho muito alto, tecnologia JIT de otimização extremamente boa. É perto o suficiente da velocidade nativa que eu não me importo com a quantidade fracionária que é mais lenta que o C / C ++, e essa sobrecarga é mais do que compensada pela coleta de lixo adequada e um ambiente de execução de código de código gerenciado etc.

  • Java possui um ótimo ecossistema de bibliotecas de código aberto . Na verdade, eu diria que é o melhor ecossistema global de qualquer idioma. Isso significa que a maior parte do "trabalho pesado" em termos de infraestrutura já foi realizada, com uma qualidade extremamente alta. E o fato de que a maioria das coisas necessárias é de código aberto significa que você não tem o custo (em termos de dinheiro e tempo de gerenciamento) para obter licenças.

  • O Eclipse é um ótimo IDE e fornece uma cadeia de ferramentas fantástica para o desenvolvimento de aplicativos corporativos robustos. Usamos a integração Maven, JUnit, Git / SVN e várias outras ferramentas disponíveis como plug-ins do Eclipse. Tudo "simplesmente funciona".

Finalmente, quais são as outras opções?

  • O .NET é a única plataforma com recursos comparáveis ​​e eu pessoalmente gosto de C #, mas ele trava você nas tecnologias da Microsoft (piores que o Oracle / IBM IMHO) e não possui a mesma amplitude do ecossistema de código aberto. Ótimo para lojas Microsoft, mas não se você quiser controlar seu próprio destino tecnológico. E sim, o Mono é fofo, mas não posso apostar em meus negócios em uma plataforma que possa ou não ser capaz de manter um nível de compatibilidade com o mainstream do .NET.

  • Depois, existem todas as outras ótimas linguagens que são muito boas no que fazem (por exemplo, Ruby, Python, PHP, Javascript), mas não oferecem um equivalente abrangente e atraente à plataforma Java. O risco é que você precise começar a colar muitas coisas em uma arquitetura um pouco menos que bonita. Não é um problema para a criação de sites, aplicativos rápidos e sujos, mas menos atraente para o desenvolvimento de produtos a longo prazo.

  • O C / C ++ é ótimo para programação de sistemas e jogos, mas é muito complexo / caro / inflexível para o desenvolvimento de aplicativos da web modernos.

  • E também existem as linguagens bonitas que eu amo como Haskell, que são fantásticas do ponto de vista acadêmico, mas simplesmente não têm a adoção / ecossistema da indústria necessária para torná-las uma opção de plataforma credível. Também posso obter a maioria dos benefícios da programação funcional moderna executando o Clojure na JVM .....

Então, sim, é uma decisão complexa. Mas tomei a decisão de Java acima de todas as outras opções depois de muita pesquisa e consideração consideráveis. Eu ainda tomaria a mesma decisão hoje.

ATUALIZAR

Algumas palavras sobre a escolha do Clojure na JVM como uma escolha de idioma. As principais motivações para isso foram:

  • Simultaneidade - Clojure tem uma história de simultaneidade única. Bem, assista a este vídeo que descreve alguns dos principais conceitos. Ele pode ser dimensionado de maneira confiável para arquiteturas de vários núcleos em massa, usando a Memória Transacional de Software . E ele consegue fazer isso sem muita sobrecarga (sem bloqueios!), O que é um feito notável da engenharia.
  • Programação funcional - Clojure é uma linguagem funcional que enfatiza a imutabilidade e funções de ordem superior. Não é tão puramente funcional quanto Haskell, mas é antes de tudo uma linguagem FP. Algumas pessoas dizem que isso ajuda você a escrever programas melhores.
  • Produtividade do programador - O Clojure obtém todos os benefícios de produtividade da filosofia código-é-dados do Lisp. Na prática, isso significa recursos macro incrivelmente poderosos e sintaxe simples, mas extremamente flexível, que você pode usar para definir seus próprios DSLs para qualquer problema com o qual esteja lidando.
  • Necessidade de uma linguagem dinâmica adequada para desenvolvimento e script rápidos - O Clojure pode ser usado em um ciclo padrão de compilação-teste-implantação, mas é realmente mais natural usar um REPL para desenvolver interativamente, modificando o ambiente de código em execução à medida que você avança. Por exemplo, eu uso o Incanter para poder plotar gráficos e visualizar dados em tempo real à medida que desenvolvo para ver os resultados das execuções em lote.
  • Interoperabilidade Java - a interoperabilidade Java do Clojure é muito eficaz. Objetos Clojure são objetos Java e vice-versa, portanto, é trivial chamar APIs e bibliotecas Java sempre que você precisar. Isso oferece todos os benefícios de todo o ecossistema Java de bibliotecas e ferramentas.
  • Boa comunidade - a comunidade de Clojure é pequena, mas dinâmica, amigável e crescendo rapidamente. Já existem muitos projetos de código-fonte aberto, como Incanter (computação estatística) ou Ring / Compojure (estrutura de servidor da web) ou no sentido anti - horário (plug-in Eclipse IDE)
Mikera
fonte
Mikera, é exatamente isso que eu estava perguntando. Sua empresa está deixando o Java como idioma principal para o desenvolvimento de aplicativos e, em vez disso, usando o Clojure. Concordo com você, que a JVM não desaparecerá, especialmente com algumas empresas que investem em outros idiomas que são executados sobre a JVM. Você poderia compartilhar um pouco mais sobre o que estava por trás da decisão de usar o clojure como a principal linguagem de desenvolvimento?
Augusto
Claro, eu adicionei alguns comentários sobre por que Clojure em particular (eu também considerado Scala, que também foi muito promissor, mas Clojure ganhou por uma margem estreita por causa de sua Lisp-ness)
mikera
Obrigado pela explicação sobre por que sua empresa decidiu usar o clojure!
19311 Augusto
7

Tudo depende do cliente.

O Java sempre terá seu próprio pequeno nicho, onde as pessoas gravitarão por um motivo ou outro, pelos mesmos motivos pelos quais as pessoas gravitam para .php ou .net, mas, em última análise, depende dos requisitos e preferências do cliente.

Se um cliente diz ... Quero que este aplicativo esteja em java ... vamos dizer não? provavelmente não ... se eles disserem que realmente não nos importamos ... vamos escrever em java? provavelmente não, mas isso é apenas especulação.

Temos aplicativos escritos em java que têm uma longa história, mas parece que o cliente está substituindo meticulosamente TUDO pela marca windows .... oracle para sql server ... unix / linux com server 2008 ... e php e java com .net.

Se isso acontecer, sim ... a menos que um novo cliente entre e diga ei ... queremos que isso seja escrito em java ... estaremos usando .net.


fonte
Um grande varejista de automóveis dos EUA está fazendo algo semelhante, está começando a construir a maioria dos projetos greenfield em rubi, e não em Java.
Augusto
1

Primeiro, uma premissa: não trabalho em uma empresa de software.

Ok, usamos o Oracle como nosso banco de dados principal com todas as nossas informações importantes armazenadas nele. Por esse motivo, planejamos continuar usando o Java para qualquer coisa relacionada ao Oracle. A aquisição da Sun pela Oracle é um incentivo para continuarmos usando Java para qualquer coisa relacionada à Oracle.

Porém, todos os aplicativos de desktop são escritos em C #, pois tudo é baseado no Windows.

sange
fonte
0

Sua empresa está pensando em fazer a transição do java para outra tecnologia?

Para responder a sua pergunta. Não.

Como todo desenvolvedor Java sabe ...

Em empresas de qualquer tamanho significativo, geralmente não são os desenvolvedores que decidem questões como se a empresa deve se afastar do Java e buscar outra coisa. E para os tipos que tomam essas decisões, outros fatores além dos listados são importantes.

... o futuro do java parece bastante incerto, especialmente porque a Oracle deseja monetizar a JVM.

Pelo contrário, acho que o futuro está claro. A evolução do Java continuará em um ritmo lento, mas constante, e as principais tecnologias SE e EE continuarão livres. Para mim, a única área real de incerteza é o que acontecerá com o confronto entre Oracle e Google. Mas de uma forma ou de outra, espero que o Android / Davlik prospere como uma alternativa ao Java ME ... mas apenas para plataformas móveis.

Java como uma linguagem também tem sido obsoleta nos últimos anos, a não inclusão de fechamentos é um exemplo (que pode estar incluído no java 1.8).

Isso pode irritar os desenvolvedores, mas a "estabilidade" é realmente uma conseqüência da Sun / Oracle prestar atenção ao que a empresa deseja ... uma linguagem / plataforma com estabilidade a longo prazo.

Ao mesmo tempo, algumas novas tecnologias, como Ruby, Scala e Groovy, estão sendo usadas para fornecer sites complexos.

Novamente, da perspectiva da administração, o júri discute se essas tecnologias são melhores em todos os aspectos.

  • Os aumentos de produtividade alegados são realmente demonstráveis ​​a longo prazo?
  • O desempenho já está aí? Escalabilidade? Ferramentas e bibliotecas de terceiros?
  • Eles podem recrutar funcionários experientes?

Uma decisão no nível da empresa de mudar para um novo idioma tem custos e riscos significativos, especialmente se houver uma quantidade significativa de código existente no idioma "herdado".

Stephen C
fonte
@ Augustus - eu respondi sua pergunta; veja a primeira frase. Você está feliz agora?
Stephen C