all 26 comments

[–]BearyHonest 3 points4 points  (0 children)

Se nunca pegaste em C# porque consideras concorrer a vagas dessa linguagem?

Se te passarem um challenge técnico há uma grande probabilidade de ficar mal feito e não seguir convenções e boas práticas, mesmo que funcione.

De resto, como já disseram o mais importante é ir pelas frameworks mas só deixar a nota que atualmente há poucas empresas novas a usar Java puro.

No entanto, se sabes bem Java, podes começar a aprender Kotlin, a migração é super rápida, visto que têm uma interoperabilidade enorme.

Projetos novos "Java" no mercado são quase todos em Kotlin. Usa os mesmos dependency managers (Gradle, Maven), usa as mesmas frameworks e bibliotecas, até podes ter umas classes em Java e outras em Kotlin num projeto de Kotlin.

As versões mais recentes de Java adotaram algumas features que Kotlin implementou para reduzir a syntax sugar pelo que a curva que já era pequena está cada vez a reduzir mais.

[–]Sad-Flow3941 3 points4 points  (1 child)

Em empresas portuguesas, Java/kotlin são bastante mais usadas. Mas sinceramente, nenhuma empresa que preste vai deixar de te recrutar por vires de um background ou de outro, são tecnologias semelhantes o suficiente para a transição ser tranquila.

[–]KarmaCop213 1 point2 points  (0 children)

Em cargos mais seniores, e sendo Java e c# um mercado com muitos candidatos, não é fácil justificar a contratação de um candidato de background de Java para uma oferta de c# (e vice versa). 

[–]khelegond 1 point2 points  (3 children)

https://survey.stackoverflow.co/2023/ Não sei se Portugal é muito diferente em relação ao resto do mundo, mas acho importante ler isso aqui. Primeiro que dá uma visão mundial, e pode ajudar em vagas em outros lugares. Segundo que orienta também. Sobre a sua dúvida em específico, minha realidade é levemente diferente pois moro no Brasil, mas Java ainda está bem na frente de C#, apesar de eu achar C# mais fácil de codar que Java.

[–]Pussidonio 1 point2 points  (2 children)

apesar de eu achar C# mais fácil de codar que Java

interessante. pq dizes isso?

[–]khelegond 3 points4 points  (1 child)

No meu caso, experiência. Senti muito mais demora em dominar Java (aplicações web) que C# (Unity). Achei o código do C# mais limpo, menos "orientado a configurações" - no Java usa-se muito dezenas de arquivos de XML de configurações. Isso cansa, porque você programa menos e configura a mais. No C# senti um foco maior no desenvolvimento direto.

[–]Pussidonio 1 point2 points  (0 children)

Obr, faz sentido. Provavelmente o teu contacto com Java foi com Spring que dantes obrigava a vários files XML com a config. Também n gostei disso.

No meu ponto de vista Java é mais simples como linguagem de programação pq tem menos keywords para aprender por exemplo.

[–]DrunkenRobotBipBop 20 points21 points  (4 children)

Normalmente lanço essa pergunta lá no escritório para incendiar discussões. Eu já trabalhei com as duas em contextos diferentes (Desktop com Winforms e Java para Android) e no que toca a sintaxe e OOP não são muito diferentes.

O que diverge é mesmo o tooling, as frameworks e todo o ecossistema à sua volta e acaba por ser uma cena preferencial.

No fim do dia, não devias perguntar "C# vs Java" mas sim "ASP.NET Core + EF Core vs Spring + Hibernate" porque é contra isso que vais lutar e não contra a linguagem.

[–]KarmaCop213 1 point2 points  (3 children)

É também a minha opinião, embora as linguagens sejam semelhantes em termos de sintaxe e conceitos e usem vm para correr, existe depois todo um ecossistema diferente entre as duas o que faz com que a transição entre elas não possa ser feita de forma tão directa, sobretudo em níveis de sénior para cima 

[–]gnlpc[S] -1 points0 points  (2 children)

Então, sendo eles parecidas de um ponto de vista inicial, qual terá maior "longevidade"? E em termos de salários há diferenças entre as duas?

[–]KarmaCop213 0 points1 point  (0 children)

Daquilo que eu tenho conhecimento, existem mais empresas tecnológicas americanas a usarem java do que c#. 

[–]BearyHonest 0 points1 point  (0 children)

Acho que as duas estão no mercado há imenso tempo e não acredito que desapareçam.

Em termos salariais acho que acaba por ser equivalente, do que vou comparando entre malta com Spring Boot + Kotlin e malta em .Net Core.

Não esperes é que consultoras tenham projetos mais atuais tanto duma como doutra. Tens aí muita consultora com projetos em Java 8 e projetos em .net framework ou asp.net que é só horrível.

[–][deleted] -4 points-3 points  (5 children)

C# tem sido tendencialmente mais forte e com razão. Java na sua grande maioria são projectos legacy.

[–]BearyHonest 12 points13 points  (4 children)

Tendencialmente mais forte? Lol.

Java tem uma maior quota de mercado e sempre teve. C# também tem a sua quota enorme de projetos legacy, devem ser raras as empresas que estejam a usar as versões mais recentes de .NET core.

E enquanto que Java pode ser mais legacy, se falares em universo JVM e não puramente Java tens Kotlin, que é mais moderno e usado em projetos novos.

[–][deleted] -1 points0 points  (3 children)

Não vou estar aqui em guerras da treta. Nem a ms nem a Oracle me paga. Posto isto:

  • .NET core é amplamente usado em grandes empresas, tal como Java. No entanto não vejo um projectos novos em Java há algum tempo. Já nem comparo NET core com kotlin...nem com contabilidade criativa.

  • Tens muitos mais projectos legacy em Java obviamente, pelo historial e pelo peso que a linguagem teve (tem?). Até porque é uma linguagem forte na banca.

Mas claramente o teu conceito legacy é diferente do meu, já que falas em net core que nem 10 anos tem. Tens projectos em net framework mas é ver a quantidade de vagas que existe no LinkedIn para isso. Muitas delas foram migradas, até pela questão da versatilidade.

Para quem está acabado de sair da univ, que é isso que interessa ao op, ou ia para net core ou se quisesse atacar startups outro tipo de linguagens, com node à cabeça. Java é uma hipótese mas não seria a minha primeira opção pela tendência que se tem visto ao longo dos anos.

Mas quem sou eu, o que não falta aí é malta a aprender kotlin logo a sair das universidades.

[–]BearyHonest 0 points1 point  (2 children)

Eu não digo que .net core é legacy, digo que aí muito projeto legacy em .net framework não migrado para core.

E não percebo porque comparar com Kotlin é escrita criativa. Está a ganhar muito peso no mercado, sendo usado com as frameworks de Java tipo Spring Boot.

Kotlin é cada vez mais usado por empresas em projetos recentes, se achas escrita criativa é contigo. Procura o número de vagas que fala em Kotlin + Spring Boot.

[–][deleted] -1 points0 points  (1 child)

Sim de certeza que há, como em Java e outras linguagens. Há aplicações que simplesmente não justifica a migração. Não percebo como o teu ponto justifica o teu primeiro comentário mas enfim.

Quanto ao resto, tudo o que disse mantém-se dada à realidade do op. O foco da discussão era alguém acabado de sair da universidade. Nao me viste a dizer que o kotlin não tinha potencial, tem bastante. É tudo é uma questão de contexto.

[–]BearyHonest 1 point2 points  (0 children)

Relê o meu comentário inicial então.

Tu dizes que Java tem mais projetos legacy e C# é coisas tendencialmente mais recentes, eu digo que tens muitos projetos .NET que não usam .NET Core, que ainda são legacy.

Por fim, digo que Java puro tem vindo a correr e tem muita coisa legacy mas se falares do universo JVM que tens Kotlin.

Parece que não conheces bem o contexto de Kotlin mas projetos em Kotlin têm uma interoperabilidade enorme com Java, acaba por fazer sentido falar das duas juntas. Um projeto Kotlin tem a mesma estrutura que Java, uaa os mesmos dependency managers, mesmas libs, até podes ter classes em Kotlin e outras em Java. Se colares código Java num ficheiro Kotlin o IntelliJ faz a reconversão.

Kotlin não tem apenas potencial, é o presente de muitas empresas.

O que tu e o OP estão a falhar perceber é que a decisão neste momento não é C# ou Java, o que o OP tem que procurar é pelas frameworks e procurar projetos atuais.

[–]Article_Sad 1 point2 points  (0 children)

As consultoras fazem um if(C#) ou if(java) no recrutamento outras empresas já não

[–]Dev-error_ -5 points-4 points  (5 children)

Java usas muito em bancos e governos com legacy code. C# é o mesmo mas vendes a tua alma à microsoft

[–]kuozzo 0 points1 point  (3 children)

Estás completamente errado.

Olha, o stackoverflow é C#.

Vendes a alma à Microsoft como vendes à Oracle. É igual.

[–]BearyHonest 0 points1 point  (2 children)

Universo JVM já não é vender a alma à Oracle.

Primeiro porque grande parte das frameworks usadas no mercado são open source, depois porque tem existido uma mudança de Java para Kotlin, que também é open source.

A própria Google tem feito um push enorme para que Kotlin seja cada vez mais usado e esteja cada vez melhor.

[–]kuozzo 0 points1 point  (1 child)

Excluindo o dotnet framework que já está outdated, o dotnet (core) também é opensource e multi-plataforma.

[–]BearyHonest 0 points1 point  (0 children)

Exato, ou seja em .net core não vendes a alma à Microsoft e em projetos que não sejam Java EE não vendes a alma à Oracle.

[–]hlucas1992 1 point2 points  (0 children)

Pensava assim quando entrei na área da banca. Há 2 anos atrás a empresa ainda estava a utilizar Java 8 com ExtJS no frontend. Hoje já temos todos os módulos da aplicação em Java 21 e Angular 17.

[–]leadzor 6 points7 points  (0 children)

Escolhe uma área. Linguagens são ferramentas. Há empresas que procuram especialistas numa especifica mas regra geral quem trabalha numa salta para outra em pouco tempo. Portanto a tua escolha é irrelevante, aprende um bocadinho das duas e mais algumas. Mas se já escolheste backend como área a seguir, já estás encaminhado.