Para mim os sistemas no futuro serão poliglotas

Olá

Sim, já sei. Você vai dizer que os sistemas atuais já são poliglotas porque usam no mínimo umas 4 ou 5 linguagens (Java ou similar, XML, SQL, HTML, Javascript, LINQ, etc.). Só que estou falando de linguagens de programação mesmo.

Não acredito que seja bom para uma empresa ter programadores que saibam uma única linguagem de programação. Os problemas hoje em dia são muito variados. Há linguagens que resolvem determinados problemas com maior facilidade. Por exemplo: alguém já usou R? No que se propõe (análise de dados) dá um baile no Java.

Se a empresa adota programação em par, é óbvio que não adianta contratar especialistas. Precisará de gente poliglota.

E gente disposta a aprender mais linguagens. Por exemplo: ainda não existe mas poderá existir um dia uma linguagem especialista para estatística de alto nível que não exija muito conhecimento matemático.

Bem, é o que penso. Se fosse você, realmente seguiria a dica de aprender novas linguagens. E se fosse responsável na contratação levaria isto em conta.

Mais do mesmo mas não custa reforçar…

[]s
Luca (que mesmo prestes a completar 65 anos ainda aprende novas linguagens)

Eu procuro sempre aprender sobre outras linguagem!
Um pouco de tudo!
Pra mim é importante que eu saiba várias linguagem!
Variação, você não fica preso só em uma!!

vlw

Desde quando foi criado a 2a linguagem de programação os sistemas já são poliglotas e comunicam-se por meio de interfaces comuns.

Mas precisar escrever UM sistema usando linguagens diferentes, não sei se compro essa visão (desenvolvimento web por exemplo, HTML, JS, CSS, etc).

olá!

Tem muita empresa que ainda usa uma linguagem como gold hammer, o que falta pra mim seria o esclarecimento da empresa que tal linguagem é mais vantajosa em tal situação e lógico desenvolvedores que tenham conhecimento para desenvolver um software bem feito. O difícil é ser bom em 3… 4 linguagens, pois em cada uma se gasta quase uma vida para aprender.
Mas acredito que no futuro será mais facil trabalhar com multiplas linguagens já que a integração entre elas esta se tornando cada vez mais fácil. Qual linguagem esta aprendendo agora luca?

Muita gente aprende só o que está na moda, quase nunca vai mais a fundo assim.

Eu usei R no meu Tcc, no começo achava um porre, pq raios eu não poderia fazer em Java. Depois que vi a facilidade que era pra fazer operações com matrizes, realmente mudei minha opinião.

Claro que isso foi só um exemplo, mas a maioria dos programadores não está preparado para pensar de maneira out-of-the-box. E nem a maioria das empresas.

Com a tendencia da maquina virtual rodar várias linguagens, espero que agora cesse cenário mude. Todo mundo só tem a ganhar.

[quote=mario.fts]Muita gente aprende só o que está na moda, quase nunca vai mais a fundo assim.

Eu usei R no meu Tcc, no começo achava um porre, pq raios eu não poderia fazer em Java. Depois que vi a facilidade que era pra fazer operações com matrizes, realmente mudei minha opinião.

Claro que isso foi só um exemplo, mas a maioria dos programadores não está preparado para pensar de maneira out-of-the-box. E nem a maioria das empresas.

Com a tendencia da maquina virtual rodar várias linguagens, espero que agora cesse cenário mude. Todo mundo só tem a ganhar.
[/quote]

Olha, eu não prenderia a respiração esperando.

A maioria dos programadores não pensam out-of-the-box por n motivos, duvido muito que seja algo a ser resolvido por uma evolução na JVM.

O que nos leva ao por quê a maioria das empresas não conseguem chegar neste nível:

Os recursos são escassos. Programador Java você encontra aos montes. Programadores de R experientes são raros, e por serem raros são caros, e treinar um programador em R até ele ficar experiente também é caro. Se a empresa tem alta rotatividade de funcionários, multiplique o problema por 1000.

Aí o diretor/gerente/etc tem que pensar lá na frente, considerando a experiência do time, tempo para entregar o produto, tudo, é mais barato fazer o trabalho em Java ou em R?

[quote=Luca]Olá

Sim, já sei. Você vai dizer que os sistemas atuais já são poliglotas porque usam no mínimo umas 4 ou 5 linguagens (Java ou similar, XML, SQL, HTML, Javascript, LINQ, etc.). Só que estou falando de linguagens de programação mesmo.

Não acredito que seja bom para uma empresa ter programadores que saibam uma única linguagem de programação. Os problemas hoje em dia são muito variados. Há linguagens que resolvem determinados problemas com maior facilidade. Por exemplo: alguém já usou R? No que se propõe (análise de dados) dá um baile no Java.

Se a empresa adota programação em par, é óbvio que não adianta contratar especialistas. Precisará de gente poliglota.
[/quote]

Quem usa R não está preocupado com coisas como objetos distribuidos, escalabilidade,segurança de acesso, aplicações web, camadas, etc…
As aplicações poderão usar muitas linguagens, mas apenas usarão uma plataforma.

Tudo bem quem gosta de aprender linguagens, muitas linguagens… isso de nada adianta se não entender a plataforma onde essas linguagens funcionam. O cara que aprende Scala ainda tem que saber o que uma JVM, como se instala, configura, etc…

Não, claro que não. Mas é mais um passo. A facilidade de integração, compartilhamento e etc ajudam bastante. Vão haver empregos pros que souberem só uma linguagem, e empregos que necessitem de um conhecimento mais amplo. Acho que no futuro vc deverá saber N linguagens, sendo que pelo menos umas 2 muito bem.

A partir do momento que a demanda aumentar, a oferta vai acompanhar, quem não acompanhar estará legada a ficar em nichos específicos.

Claro, isto é apenas a minha opinião.

[quote=Bruno Laturner]O que nos leva ao por quê a maioria das empresas não conseguem chegar neste nível:

Os recursos são escassos. Programador Java você encontra aos montes. Programadores de R experientes são raros, e por serem raros são caros, e treinar um programador em R até ele ficar experiente também é caro. Se a empresa tem alta rotatividade de funcionários, multiplique o problema por 1000.

Aí o diretor/gerente/etc tem que pensar lá na frente, considerando a experiência do time, tempo para entregar o produto, tudo, é mais barato fazer o trabalho em Java ou em R?

[/quote]

Não é porque programadores R são caros e a empresa não tem recurso que eles não dão as caras por lá. Mas porque nesses lugares quem escolhe a linguagem a ser utilizada são diretores e gerentes de TI. Alias, qualquer profissional que se preze deveria fazer o mesmo e não trabalhar em locais desse tipo. Nada contra gerentes e diretores, mas o que eles devem dizer é O QUE deve ser feito, e não COMO eu devo fazer, estipulando uma linguagem.

Empresas assim usam Java por causa que seus programadores são de 2a categoria comparado com frameworks milagrosos (e gratuitos!), que fazem o real trabalho.

Por esta razão os programadores precisam aprender paradigmas ao invés de (apenas) linguagens.

Aprender uma linguagem só para fixar um paradigma e compreender suas bibliotecas, componentes e apis.

Um bom programador Java se vira em C#, afinal tem if, else, for, tem construtor, tem metodo static. Vai ter alguma dificuldade, mas poder olhar um model, um controller, etc, direto nos fontes, é razoavelmente tranquilo.

Quem sabe perl pode aprender ruby ou python com alguma facilidade. O importante é não ser xiita e achar que a linguagem X é a ultima bolacha do pacote.

E que plataforma seria essa?

Olá

Só complementando…

Citei R como exemplo, poderia ter citado Matlab, SPSS ou outra coisa qualquer. Não creio que um programador R seja caro porque acho que nem existe. Basta uma lidinha no fim de semana e na 2a feira já se pode fazer alguma coisa.

Há vários meios de se integrar as diversas tecnologias de modo simples e ágil. Os fãs de SOAP não precisam esfregar as mãos…

Outra consideração desta vez nada a ver com sistemas completos mas com trabalhos do dia a dia.

Empresas gigantes vivem resolvendo problemas pequenos. Há quem pense que trabalhar em empresa grande é lidar somente com problemas complexos mas na prática pode não ser verdade. Há que fazer pequenos relatórios para outros departamentos, há que mostrar resultados graficamente e muitas outras pequenas coisas. Tenho um amigo que é diretor comercial de uma grande e conhecidíssima empresa. Ele reclamou que lhe faltam informações no dia a dia e isto faz com que perca negócios. Lá faltam justamente profissionais de TI capazes de suprir as necessidades mais imediatas popis estão todos envolvidos nos projetões que nunca ficam prontos e que poucos aprenderão a usar já que foram projetados para serem genéricos.

A mim parece contraproducente usar Java para fazer CRUD para gerar um relatório (sem falar no risco do Javaneiro querer usar Jasper reports e exportar para Excel quanto tudo que lhe pediram foi uma tabela). Para que escrever trocentas linhas se há outras linguagens e ambientes como Ruby/Rails ou Python/Django que chegam ao mesmo resultado com menos esforço e mais rapidamente? Tudo bem, sou fã do jfreechart. Mas para mostrar um grafico rápido o gnuplot dá de dez a zero. Na maioria das vezes são coisas rápidas que nem sempre são muito usadas, servem apenas para satisfazer necessidades momentâneas.

O grande risco para a empresa não é a salada de pequenas aplicações que ficará de legado. A maioria atende a um pequeno grupo ou departamento que sabe se virar com ela. Nem sempre precisam rodar na mesma JVM. Estou falando de resolver pequenos problemas com agilidade.

O risco é aparecer um consultor que convença a diretoria a integrar tudo via SOAP com uma IDE escravizadora que gera 43 mil linhas de código + XML para que um tal programinha responda a algum outro. A empresa investirá milhões, comprará diversos aplicativos e no fundo o cara lá do outro departamento queria mesmo era aquele CRUDezinho que ele já sabia usar.

[]s
Luca

Olá

Perfeita esta observação. Afinal até fizeram faculdade para ter este conhecimento.

A escolha do modo de resolver o problema deve ser motivo de reunião da equipe. É claro que a diretoria pode opinar mas deve ponderar bem as opiniões dos especialistas.

Não são muito estimulantes os exemplos que conheço de empresas que adotaram como política a concentração de tudo no mesmo ambiente. O que a diretoria tem que exigir e bastante é a qualidade das soluções e o bom atendimento aos usuários, o que pelas merdas que ouço falar é coisa ainda bem negligenciada.

[]s
Luca

Usei o R como exemplo também, pode colocar ${LINGUAGEM DE PROGRAMAÇÃO DE PROPOSITO GERAL} lá pra surtir um efeito melhor. Mesmo assim eu perdi comlpetamente a idéia que você queria dizer.

Antes do teu complemento, também fiquei pensando que o que falta mesmo é mais programadores empreendedores, ou um empreendedor que saiba programar, pelo menos um deles em cada setor da empresa. Programador no sentido de uma pessoa que saiba usar a mais poderosa ferramenta que um computador pode executar: programas que façam programas feitos por esta pessoa.

Mas enfim, o pessoal do setor jurídico costumam ter feito Direito, e não tem a mínima idéia sobre computadores. E o mal da especialização, passar a saber somente sobre a tua área, e desconhecer ferramentas que possam te melhorar.

[quote=peczenyj]Por esta razão os programadores precisam aprender paradigmas ao invés de (apenas) linguagens.

Aprender uma linguagem só para fixar um paradigma e compreender suas bibliotecas, componentes e apis.

Um bom programador Java se vira em C#, afinal tem if, else, for, tem construtor, tem metodo static. Vai ter alguma dificuldade, mas poder olhar um model, um controller, etc, direto nos fontes, é razoavelmente tranquilo.

Quem sabe perl pode aprender ruby ou python com alguma facilidade. O importante é não ser xiita e achar que a linguagem X é a ultima bolacha do pacote.[/quote]

Oi,

++;

Concordo completamente com você.

Tchauzin!

Na minha visão, é sempre melhor a iteração entre n linguagens do que o uso de uma em um projeto, por exemplo, a mescla de rails com java, pode criar uma aplicação poderosa vide o twitter que migrou para scala o backend do serviço, mas manteve a interface em rails.

Existem alguns casos que pelo menos eu paro e penso, isso aqui seria tão simples em outra linguagem, o interessante é que quando mais a JVM se popularizar como ambiente para linguagens de programação, mais vai beneficiario quem usa Java, pois podemos unir o melhor de diversos mundos.

Cada linguagem foi construida com um proposito, e para isso elas são melhores, não da pra usar a mesma linguagem para tudo.

Eu tbm sou adepto ao poligotismo (ahauhuhauhah, palavra feia).

Pior que é feia mesmo, poliglotismo é mais bonita :stuck_out_tongue:

@ Topic

Luca, poderia você dar uma opinião a respeito do futuro em relação a integração de sistemas? Você acha que a demanda por integração sempre vai existir, principalmente nesses sistemas distintos feitos em N linguagens? ESB vai continua crescendo?

Olá

[quote=Leozin]
Luca, poderia você dar uma opinião a respeito do futuro em relação a integração de sistemas? Você acha que a demanda por integração sempre vai existir, principalmente nesses sistemas distintos feitos em N linguagens? ESB vai continua crescendo?[/quote]

A demanda por integração sempre existirá. O que acredito cairá e até acho que já caiu, é o uso de soluções complexas tipo aquelas geradas por IDEs com milhares de linhas de código + XML, em outras palavras, SOAP+WS*+some vendor+$$$$$.

Sobre SOA e integração usando REST, uma apresentação interessante pode ser vista em http://www.slideshare.net/cesare.pautasso/soa2010-soa-with-rest

O uso de ESBs ainda faz sentido. Afinal eles servem para rotear mensagens e eu ainda acredito muito em mensagens assíncronas. O Apache Camel é um bom exemplo. Só não sei se para integrar coisas internas de um sistema sempre será adequado partir com todo este poderio. A maioria dos caso será resolvida de forma bem mais simples. Muitas vezes apenas através da base de dados (via telas que chamam outras linguagens ou processos batch)

[]s
Luca