Futuro das linguagens de programação

Eu sei que muitas discussões, e tópicos sobre linguagens já existe, mas quero propor uma para um âmbito atual, pensando a longo prazo e nós que obtenha maiores benefícios.

Posso estar sendo falho em algum questionamento, peço que me corrijam.

Fui apresentado ao mundo “Open-Source” e estou caindo de cabeça, deixando de lado sempre que possível tecnologias “enterprise”, principalmente por eu achar que pode me proporcionar um maior aprendizado.

Então me deparei na seguinte questão: Qual linguagem escolher para investir e me aprofundar no momento, Python, Ruby, Go, C#(.Net Core), alguma outra que não citei ?

Já descartei PHP e Java, por opinião pessoal, acho as outras opções mais atrativas, mas nada é 100% a questão de apenas “querer”.

Com certeza o foco não é apenas uma, sei que não existe bala de prata, porem preciso me focar “unicamente” em uma agora, colhendo os frutos(exp, aprendizado etc) futuros amanha, para poder trilhar em outros caminhos.

Começando pela web, qual delas poderiam delas dariam um retorno “maior”, seja para Rest, Full-Stack etc:

  • Continuara com relevância no futuro ?
  • Atende bem em diversos tamanhos/contextos de projetos ?
  • Menos receita de bolo e mais diversidade ?
  • Foco na Tecnologia/Atualidade/Desenvolvimento ?
  • Apesar do contexto ser web, que possa contribuir em novos rumos, mobile, segurança etc

Talvez possa ter faltado alguma, mas não me veio agora, conforme o debate, as coisas podem se abranger.

Se poderem contribuir com opinião e experiencia de vocês, ficarei grato.

1 curtida

A pergunta que você fez é basicamente “qual linguagem escolher que não vai me dar nenhum arrependimento” (frisando a palavra nenhum). Tal linguagem não existe.

Qual é o seu objetivo profissional?

Linguagens são só ferramentas, e a transição entre elas fica mais fácil conforme se ganha experiência. A ferramenta que você precisa aprender e usar depende do objetivo que quer atingir. Se seus objetivos passam por aprender Java (por exemplo), evitá-la não lhe trará vantagem alguma.

Eu não cogitava aprender C# nem PL/SQL, mas parte dos meus objetivos me levaram à aprender um pouco de ambas. Contrastando com isso, PHP, a qual eu fiz um grande investimento em aprender, hoje está em terceiro plano.

Abraço.

3 curtidas

Como o colega @TerraSkilll falou, depende do seu objetivo. O futuro pode ser esse, é o que os mais jovens gostam, mas querer não é poder. Se o objetivo for o grande mercado, pode não adiantar querer ficar na crista da onda pra depois chegar na hora H o forte do mercado ainda for Java e .NET ‘clássico’. Importante é acompanhar as coisas novas e quando for o momento fica tranquilo migrar de conhecimento e se dedicar. Como o colega explicou, fica mais fácil conforme for ganhando experiência no que realmente for trabalhar. Mas ignorar o que é muito usado no presente, como Java, é perigoso. Mas enfim, depende de você falar seu objetivo real, em startups por exemplo costuma ter isso que você quer.

1 curtida

Cara, vamos lá… Está no GUJ e não quer aprender Java? Pede pra sair que tu é moleque!! :smiley:

Brincadeiras à parte, acho que aprender uma nova linguagem não é difícil, desde que você já conheça uma linguagem do mesmo paradigma.

Então, aprenda uma linguagem orientada a objetos, uma linguagem funcional, uma linguagem lógica (Prolog, por exemplo), etc… Vá aos poucos e não caia na ilusão de que vai aprender uma linguagem e acabou.

1 curtida

@TerraSkilll, obrigado por sua resposta.

Por agora meu objetivo é “web” e caminhar para o que tem de atual nela.
Sei que não usarei somente uma linguagem, como falei la em cima, quero escolher uma agora, para esse momento “web”. Passarei por diversas linguagens, projetos, plataformas, diversas situações de aprendizado(assim espero rs’).

Quantas linguagens/ferramentas não vão surgir daqui para frente e etc ? nenhum momento pegarei uma delas e usar como bala de prata.

Abraços

Concordo plenamente com você @javaflex, por isso tudo tende a buscar um equilíbrio.
Meu objetivo agora é web, por parte do servidor, já que no cliente não tem “saída”.

Não disse que vou focar apenas em uma e não aproveitar as oportunidades de conhecimento que surgir, eu falo no agora, o depois o tempo ira dizer.

Sobre as transições, por isso tenho focado nos conceitos, principalmente OO e HTTP, para poder aplicar em qualquer linguagem.

Obrigado por sua resposta.

Sobre a brincadeira, cada um tem sua posição, respeito… rs’

Brincadeira, eu reforcei la em cima que não quero aprender somente “uma”, mas no momento que quero focar em “web”, quero também poder focar em apenas uma linguagem, botando os conceitos na praticas e pegando experiencia.

Porque como você disse e nos sabemos, aprendendo bem os conceitos a aplicação deles fica mais fácil, principalmente na transição de linguagens.

Por estar “entrando” agora, quero fazer o possível para não repetir os erros dos que já passaram por aqui, deixando um longo aprendizado.

Foco é por ai mesmo, funcional eu penso em GO ou Elixir, mas quero concretizar a OO primeiro.

Obrigado por sua respostas @esmiralha

Realmente, estava muito animado em me dedicar no “momento” em Python ou Ruby:

Python, por querer investir em segurança ofensiva futuramente. Ruby, por futuramente se a linguagem Crystal-lang se estabelecer, investindo na mesma. Alem de serem POO.

Mas estive pensando, C# poderia ser uma linguagem mais robusta que as anteriores, porem tem o lado “mainstream” e gostaria de continuar no open-source, onde acabei de entrar, pensando assim no .NET Core, apesar de ser novo, parece que é o que microsoft ira seguir. Uma renovação na stack do .net, com uma associação ambígua entre o .Net e o .Net Core, evoluindo juntos. E quando eu for investir em desenvolver mobile, posso optar por Xamarin(Apesar de não rodar em linux) alem de Java.

Porem ainda estou indeciso, estive pensando em desenvolver uma “pequena” aplicação com cada uma das 3, mas não sei se isso seria suficiente para determinar alguma coisa, já que tem de haver um equilíbrio de vontade e necessidade.

Depois dessa escolha, me dedicaria em um projeto “Pessoal” para aprendizado, experiencia e um sistema rodando.

Sim, .NET Core com certeza é o futuro do .NET. Apesar de open source está sob o investimento da Microsoft. É muito importante acompanhar, onde os conhecimentos do .NET atual serão bem aproveitados, e o C# totalmente. Se quer escolher algo secundário pra somente brincar, é uma escolha certa. Mas pra ganhar dinheiro no mercado, dentro do cenário do seu post, as empresas ainda vao pedir muito .NET ou Java por um bom tempo.

1 curtida

Desde que fale HTTP[1], backend web você pode usar qualquer linguagem.

[1]

1 curtida

Estou ciente @pfk66, só que não quero escolher “qualquer linguagem”, pensar bem antes.

No cliente eu concordo com vc, não tem saída.

Se as pessoas estão usando mais apps nativas do que o browser, então a tendência é o mercado concentrar nos desenvolvedores nativos.

1 curtida

É muito bom estar sobre cuidados da Microsoft, “equilíbrio” dos dois mundos, alimentando os dois lados.
O bom de ter essa dualidade, é que idependente dos .Net, utilizara os “mesmos” conhecimentos, problema se for versões mais antigas.

Estou vendo que é isso:

Mercado Enterprise-> Linguagens "conservadoras"
Mercado de Startup-> Linguagens/Tecnologias “atuais”, diversificada.

Não seria para “brincar”, pois isso influencia/resulta em muitas coisas, por isso é difícil escolher.

1 curtida

Se não tivéssemos essa divisão, entre o lado enterprise e “livre” ?

Porque eu encher dessa forma:

Mesmo que tenha ferramentas estabelecidas, existe uma coisa para cada situação. Vejo muitas empresas/sistemas rodando em cima de ferramentas ultrapassadas e eu sinto ate um desanimo, onde eles poderiam utilizar uma coisa melhor para uma situação, muitas das vezes usam uma coisa só para tudo.

Um exemplo, na minha cidade(que não estou agora), tem uma empresa/startup, la eles utilizam varias linguagens, mas não por “diversão” e sim proposito, por exemplo, eles usam elixir por ser eficiente em um determinado problema.

Isso que me anima, não deixo de me importar com o “produto”, mas também me importo em usar o que for correto e “atual”, não que Java e C# não sejam, pelo contrario, são dos monstros do mundo do Desenvolvimento, total respeito pelos dois <3, mas não servira para tudo, talvez tenha outra tecnologia com maior eficiência para aquela finalidade.

Seria fantástico, e acredito que deva existir algumas empresas que tem um pouco dos dois lados, vendendo/desenvolvendo ótimos produtos, ganhando uma boa grana, sem deixar de utilizar tecnologias novas ou o que for correto.

Talvez esteja doido, mas sou puxado para isso e por querer “arriscar” no diferente.

A palavra chave aqui é “eficiente para um determinado problema”.

Qual problema você está tentando resolver?

1 curtida

A pergunta do @pfk66 é bem válida. Se não é para brincar só para se preparar para o futuro, então terá que antes de tudo ter um caso real, para depois saber o que escolher, isso não envolve só o que queremos.

1 curtida

Nesses casos a ideia dar certo é o mais importante. Como não tem heranças de legados e tem muitos jovens nessas startups, o clima de liberdade é maior, sendo natural usarem o que é mais novo, claro que uma escolha responsável, que já seja confiável e eficiente para produção.

1 curtida

@javaflex e @pfk66, preferi responder sem vincular a respostas de vocês para poder invitar aos dois:

A principio quero desenvolver um projeto “completo” e com “todo” processo de engenharia/segurança.
Colocando em pratica, ganhando “experiencia” e aprendizado pratico. E quem sabe se esse projeto vingar, poderá gerar frutos financeiros, mas por hora é por experiencia.

O motivo do grande dilema de não escolher logo uma linguagem sem pensar, é que vai gerar um conhecimento que não devera ser utilizado uma vez e sim progredir em outros resultados, emprego?, Outros Projetos? e etc, fora que nunca saberei tudo, principalmente em um único uso.
Como no Cliente Web não tem para onde fugir, o que muda é o “framework”, então não tem saída rs’.

É um sistema de geolocalização, vou utilizar a API do google maps.

Pretendo utilizar 2 clientes: Um sera web com SPA com Vue.js ou outra, e o outro seria mobile com java ou xamarin.

No lado do servidor, quero servir os clientes com uma REST, que é aonde eu não determinei uma ferramente.

O banco esta entre um relacional como Postgresql ou um noSql

Por base seguirei a arquitetura MVC, parece ser bem estabelecida e utilizada.

Já tenho bastante coisa para aprender/praticar, vou fazer uma parte de cada vez, porem tenho que determinar a back-end.

Sobre eu não querer uma linguagem enterprise, por visar Ruby, Python e ate mesmo agora o C# “livre”, é pelo fato de parecerem mais flexíveis e não presas/pré-determinadas a uma stack sempre, proporcionando um maior aprendizado.

Ex: .Net é preso ao windows, dês em produção e desenvolvimento.

Esta questão de ser “preso” muitas vezes não é problema. Muitas empresas preferem manter investimentos em servidores Windows pela parceria e garantida da Microsoft. Em relação a mobile, tem empresas que só trabalham com iOS. Mas se o seu objetivo não for atender somente um cenário específico, vai ter que se preocupar mais com um leque de tecnologias e infraestrutura. Em relação a mobile, a forma mais profissional é desenvolver nativo pra cada plataforma, fora isso é decisão estratégia buscar solução “cross plataform”, onde para casos de sucesso mundial em mobile não costuma ser a melhor escolha. Já back-end é mais tranquilo usar soluções que funcionem em mais de uma plataforma, por tanto que seja eficiente para produção de acordo com a infraestrutura e não seja uma tecnologia obscura e fora de cogitação.

Foque em uma coisa de cada vez, foque em 1 client + back-end claro. E cuidado com esses frameworks js, a cada dia aparece um novo.

Se está em dúvida entre Python ou Ruby pesquise bastante comparativos para tirar suas próprias conclusões experimentado ambas.

1 curtida

Concordo com essa preocupação, mas eu falo sobre um maior desprendimento no desenvolvimento também.

Realmente, principalmente por IOS e Android terem as maiores parcelas desse mercado. Sei que é o melhor seria mesmo desenvolver em cada uma, mas penso no xamarin por me trazer uma “praticidade”. Faz tempo que estou de olho nele, pelas propostas oferecidas e parece uma melhor performasse que as “hibridas”. Sobre a infraestrutura no mobile, você fala dos aparelhos/versões?

É o que pretendo, formando a “base” na web, parto para mobile, que dará a pratica “real”.
Sobre frameworks js, vou utilizar por causa da construção de SPA, pensei em Backbone também, não queria ir direto a um Angular, dizem que é o que tem maior curva de aprendizado, então conheci Vue.js, parece ser promissor e com uma curva de aprendizado melhor.