C# ou java - Qual é melhor?
HTML-код
- Опубликовано: 22 авг 2024
- C# ou Java - Qual é o melhor? Essa é uma pergunta que nunca parece ter uma resposta definitiva. Mas não se preocupe, estamos aqui para mergulhar fundo nesse debate e fornecer todas as informações para você entender melhor sobre as diferenças entre cada uma, qual tem o melhor desempenho, quais as áreas que você pode atuar e a nossa opinião sobre o mercado para cada uma.
Não se esqueça de se inscrever no canal 😉
Confira nosso blog: kodus.io/insig...
Siga nossas redes sociais:
GitHub: github.com/ezD...
Linkedin: / kodustech
Instagram: / kodustech
#CSharp #Java #linguagensdeprogramação
Mano, C# tem muita sintaxe diferente que é mais produtiva, não somente na escrita, mas também na hora de buildar é mais “inteligente”, os exemplos foram extremamente básicos, mas na vivência do dia a dia é nítido essa diferença.
Sobre classes, as “variáveis” se chamam de campos e é recomendado que sejam privadas, o Java utiliza métodos de acesso, já o C# utiliza propriedades com “métodos mágicos” que são um açúcar sintático para os métodos, inclusive em C# não se criam os campos, estes são criados dinamicamente em tempo de execução.
De modo geral o C# visa a produtividade, ficando em performance e legibilidade de código, já o Java visa a integridade e retrocompatibilidade diminuindo a manutenção do código, ambos são pontos importantes, mas vai de cada um.
Valeu por complementar Bruno!
Observo dessa forma:
Java tem mais vagas, porém tem mais concorrência porque é a "linguagem padrão" das faculdades.
C# tem muitas vagas também, porém, menos concorrência. Das linguagens mais famosas o c# parece ter a menor concorrência em relação a candidato/vaga.
Mas após aprender c# eu gostei bastante. Bem atualizada, boa de codar e a documentação é boa demais!
Talvez por conta da "febre do javascript" os criadores de conteúdos priorizem menos o c#, afinal o que conta hoje são os views, mas vejo que c# tem potencial para ser o hyper para os próximos anos por conta do excelente trabalho que a Microsoft está fazendo.
Eu percebo também que a quantidade de cursos didáticos de c# tem um acervo menor que outras linguagens famosas, mas, o que tem já é suficiente para te fazer evoluir.
mas os programas feitos em c# funciona no linux e mac?
@@mikaelmendes340 Sim
@@mikaelmendes340 eu programo em C# usando Arch Linux. é uma linguagem multiplataforma.
A documentação realmente é muito boa, sem falar que também tem português
Não existe documentação melhor do que a do C# e dos produtos da microsoft em geral, isso foi um dos grandes pilares que me motivou a começar por C#, porém, por causa de um curso do senac que eu fiz o "De para" para o java, e gosto bastante. A documentação não é boa, mas os livros ajudam muito.
Estudo C# Há quase um ano, foi amor à primeira vista KKKKKKK
Canal incrível, conheci hoje e já tô maratonando, sucesso!
eu tambem kk
eu deixei de estudar python para estudar C#. estou amando. kkkk muito bom mesmo.
@@romulodeoliveira7333 o ruim do c# é encontrar conteudo atualizado em português, tô estudando ingles pra aprender com os gringos.
@@romulodeoliveira7333 cara realmente kkk eu deixei php (que é horrivel) para ir pra C#, namoral muito boa essa linguagem
C# is life kkkkk
C#. Obrigado, até mais
SIIM!!!
Que eu lembre, o principal incentivo para a Microsoft criar a .NET foi uma questão de licenciamento do Java que não lembro de cabeça agora qual foi.
Java não lidava muito bem com os nativos do Windows, o que fez a Microsoft criar sua própria versão do Java, o J++, porem ela fez com que o J++ só rodava em Windows, isso feria o licenciamento do Java, então a SAM processou a Microsoft, ai nasceu o C# com .Net.
Iniciei faz cerca de 2 meses como estagiário em desenvolvimento JAVA e antigamente eu atuava somente com Python e agora estou conhecendo de fato a linguagem JAVA e estou me identificando :)
Espero que dê certo! JAVA é complicado mas não impossível. Boa sorte!!!
Ae😎
Boaaa!
Por mim não existe linguagem pior ou melhor e sim aquela que atenda bem o ambiente, pois com PHP que é tão mal falada já ganhei muito dinheiro, o triplo de muita gente que programa em JAVA, nessa altura do campeonato em penso é no meu bolso, se tiver gente me pagando bem pra dar manutenção em VB 6.0 ou C# WebForms tou dentro, pois esses sistemas jamais serão migrados devido ao custo altissimo que isso implica, até hoje o COBOL tá firme e forte.
Total mano! Concordamos 100%
Eu n quero nem saber também. Estudo java mas vou aplicar pra qualquer vaga de java ou c#. Sem me apegar a linguagem...
Só uma coisa pessoal, herança é diferente de implementação de interface. Ficou meio confusa a explicação nesse ponto e é importante que galera entenda que esses conceitos são diferentes. Quando você herda uma classe, você pode sobrescrever seus métodos quando a implementa, mudando o comportamento ou lógica já escrita pela classe “pai”. Quando você implementa uma interface, obrigatoriamente você deve implementar esses métodos ali definidos, pois ainda não estão implementados. Isso não é sobrescrever, já que não existe nada escrito antes.
Em suma, interface e herança servem para propósitos diferentes.
Muito obrigado por completar Marcos! ❤️
No C# o que eu gostei é Windows Form e WPF (Windows Presentation Foundation) uma tecnologia mais avançada para criar interfaces gráficas no Windows. O legal é que ele oferece recursos como animações, estilos personalizados, gráficos vetoriais e efeitos visuais sofisticados. Sem contar com a possibilidade de usar o Unity
Codei por anos em C# e Java, mas no meu ponto de vista, Java sai na frente por não estar em ambiente Microsoft, ter mais compatibilidade com sistemas baseados em unix(Linux e Mac), e lights thread's que está sendo implementado mo novo Java.
Mas minha escolha mesmo é nenhuma dessas duas, pra backend uso Rust em alguns cenários que preciso de performance, e golang no restante da aplicação. Mas existe outras linguagens com benefícios reais como o zig. Mas é de cada um, e da cultura da empresa. Hoje como CTO, começando projetos do zero e focados em escala, talvez até veja alguns cenários para usar o Java em alguns micro serviços(apache camel por exemplo), mas na aplicação principal não mudaria a stack de rust e go.
No final, o que importa sempre é o resultado, se foi pelo TS, JS, C#, Java, Kotlin, PHP, Ruby, Python, Go, Ruts e etc e está alcançando os resultados esperados, com o time engajado, os custos dentro das margens, pra mim é o que importa
Quer aprender todas as Linguagens ? Aprenda C++ depois o resto fica tudo mais fácil. C++ moderno ainda vale muito a pena.
O LINQ do C# é uma coisa animal, não sei como é em Java (pelo o que foi mostrado existe algo parecido)
Tem sim Arthur, Java trouxe nas últimas implementações.
Java era para se chamar Oak por conta de um grande carvalho em frente ao escritório do pessoal do *7 (Star Seven - Nome do Projeto do Java), mas ao descobrirem que já existia uma linguagem com esse nome a batizaram de Java por conta de ser de onde vem o café que a turma lá tomava.
Até hoje eu sou meio lesado para enteder o motivo de fazer algo private só para colocar o get and set, na verdade ter que acessar o atributo por um método void, e fazer dar esse giro só colocando .this. No mínimo teria ao meu ver ter uma validação de algo no Set por meio "cálculos" dentro do método para mudar o atributo, mas mesmo assim poderia ser public. Mas a galera só coloca o método get e set meio como se fosse um construtor pra passar os argumentos para o atributo. o código fica cheio de .this rs. Legal o vídeo que vcs mesmos questionam essa utilizaçao de um monte de método pra simplesmente setar um atributo.
Parabéns pelo vídeo!!
Espero ter uma qualidade no canal igual a sua!!!
Já deixei o like!!
Que isso mano, ficamos muito agradecidos! Tmj
Bom, Eu tenho o habito de usar o getter e setter como boa pratica JAVA, mas para diminuir a verbosidade, geralmente eu utilizo a lib lombok, ele transforma todos getter e setter em apenas uma linha de annotation.😅
Valeu por complementar e agregar Joao!
É bom saber os 2 e usar o melhor pra cada atividade.
Interessante. No entanto, eu recomendo a todos que visitem a documentação do .NET 8.0 e C#12 e sejam as novidades.
Xamarim é passado a Microsoft esta investindo no Maui para desenvolvimento Mobile com .Net C#.
Massa demais o MAUI
Pessoal, mil desculpas , mas antes de vocês falarem de qualquer linguagem, estudem e pesquisem... na comparação entre as duas linguagens você esqueceram de um monte de coisas, e em muitos pontos elas são totalmente diferentes... quer um exemplo ... Java não tem um front end tão forte do que o de C#. Outra coisa... o que você chamaram de funcional no final do exemplo em C# ... é o Linq.... um conceito que surgiu primeiro em C#, nem Javascript tinha isso na época, o C# foi criado pelo pai do Pascal/Delphi, de onde veio o conceito de propriedades. O grande problema hoje do Java é a Oracle, um elefante branco que vive por conta de seu nome, mas mesmo seu carro chefe que é o banco Oracle, está ficando pra traz em termos de não evoluir seus produtos.
Quem cuida da especificação Java não é a Oracle, mas sim a "Java Community Process(JCP)" formada por um comitê executivo envolvendo Microsoft, AWS, Oracle, IBM, Eclipse, Google, Red Hat entre várias outras empresas. A especificação do Java tem a participação da comunidade. A especificação Java é aberta, sendo sua implementação de referência a "openJDK" que é open source, gratuita. Porém, com base na openJDK, que é de código aberto, a Oracle criou sua implementação JDK que é proprietária. A diferença é basicamente só o suporte. O pessoal confunde. O Java é uma especificação aberta, que tem sua implementação de referência a openJDK que é open source. Porém, paralelamente a Oracle tem sua JDK proprietária, mas ninguém é obrigado a utilizar o JDK da Oracle. Vc pode utilizar o JDK da OpenJdk e de seus distribuidores (Microsoft, IBM, Eclipse, Zulu etc).
São duas linguagens incriveis! Só que o C# é uma linguagem limpa. Uma linguagem minimalista.
eu não diria minimalista, mas certamente é bem mais legível que java
@@hakuj0102minimalista é python kkkk
Que bate-papo legal sobre as duas linguagens...
Bem direto e sem "ataques" a uma ou outra, mas destacando os pontos de forma direta e imparcial.
Eu sempre gostei de Java, porém recentemente um amigo falou sobre C# e eu estou de vez em quando pesquisando um pouco sobre...
O que mais gostei é a unificação de documentação, frameworks e bibliotecas.
Tudo dá uma impressão de unidade e consolidação da plataforma e realmente parece que a Microsoft tem feito um bom trabalho..
Infelizmente Java perdeu um pouco de espaço devido a ter vários projetos (frameworks e bibliotecas) separados e que competiam entre si. Fora a burocracia inicial para se iniciar um projeto e configurar dependências..
Hoje correu atrás e já melhorou um pouco e ainda tem o ecossistema Spring que se tornou uma referência e "alavancador" do Java..
Nada me impede futuramente de mexer com C#, principalmente por ser muito parecido com Java e a questão da unicidade de documentação e framework, o que particularmente me agrada..
Ainda bem que tem o ecossistema Spring pra dar uma unificada e compensada nisso, do lado do Java....
Obs.: Sobre o funcional no Java, a Streams API (parte funcional do Java pra se trabalhar com fluxos) já existe um tempinho e foi lançada com o Java 8.
Ainda não vi sobre o LINQ, mas a parte funcional do Java está bem legal, permitindo um encadeamento e composição de funções bem fluído..
No mais, parabéns pelo conteúdo..
Inscrito :)
A base, a estrutura das duas linguagens são bem parecidas. Em um próximo vídeo vocês podem falar sobre as diferenças de framework utilizados em cada linguagem. Eu sempre trabalhei com Java e Kotlin e atualmente trabalho com Golang. Umas das coisas que eu mais gostava do Java era as bibliotecas, eu gosto do Spring Boot, o que tem de similar para desenvolvimento de API com C#?
Bem... A contrário do Java que tem vários frameworks, sendo o Spring o mais utilizado, o C# só tem um: .NET. Então é algo bem maduro.
Estou criando um interesse pelo C#. Sempre trazendo novidades. Um dos pontos fracos do Java consumo excessivo de RAM e boot inicial da aplicação (por isso alguns frameworks, como Micronaut tem surgido), e C# tem até minimal API que equivalente a um Express do Node. Bem enxuto. Não é preciso de bazuca pra matar uma mosca.
O que eu acho ruim do C#, a IDE (Visual Studio Code não é IDE) principal só roda no Windows (é Visual Studio IDE, não é o Code), embora digam que roda no Mac. Quem trabalha, diz que é a melhor IDE. Java pelo menos tem o Jetbrains e o velho e bom eclipse. Mas hoje em dia, tem tanta extensão pra Visual Studio Code que deixa tão parrudo quanto as IDEs e ainda tem a vantagem de ser agnóstico.
@@cauadasilvachagasdossantos1866 é verdade to na duvida entre java e c#, mas acho que vou de C# mesmo
Parabéns pela iniciativa, mas falta um pouco de preparo, vários momento trocando termos, até informações errôneas, acho importante fazer um script.
.NET tem multiplataforma também. Blazor é muito intuitivo.
Fala sério C# não precisa mais de Metodo main, net 6 em diante
Top Level Stament e o Java 21 tá tentando acompanhar isso.
Legal eu trabalho com free pascal (lazarus) e tenho o C# como a minha segunda linguagem de programação eu optei pelo c# pelo fato da linha de programação facil como o pascal. Eu indico pra quem quer aprender programar c#.
Linguagens compiladas são SEMPRE mais rápidas que linguagens interpretadas (dadas a mesma otimização de algoritmo e paradigma da linguagem). O problema - ou solução -- das duas linguagens citadas é o fato de rodar sobre uma VM que é, em si, uma grande camada entre o código compilado para esta VM e sua interpretação para o código binário de máquina. Por isso que, dada as condições acima de algoritmo e paradigma, não há como bater C e C++ ( se e somente se não pusermos o assembly no pário). Então é uma questão de trede-off, nada mais!!! ( e mercado = vagas de emprego)
Me indentifiquei com java...
Achei que era um acorde novo 😅
Na verdade C# é Dó sustenido
Só algumas observações importentes, galera: Java é uma linguagem de programação híbrida, com parte do processo sendo compilado para bytecode e parte sendo interpretado pela JVM, enquanto C# é uma linguagem puramente compilada, gerando um arquivo executável que é executado diretamente pelo sistema operacional.
Ou seja, tanto Java quanto C# performam bem mais que linguagens interpretadas, como javascript, php e python. A Latência que você disse acontece mais nessas linguagens intepretadas.
Só complementando... O Java agora com a graalVM também gera um executável para rodar diretamente no Sistema Operacional.
C# e outras linguagens da plataforma .NET compilam para CIL (MSIL), que meio que seria o bytecode do Java. Depois a CLR (A JVM do .NET), executa esse código CIL com JIT inclusive. No .NET 7/8 a compilação AOT foi implementada e ai sim, você tem a opção de compilar e executar diretamente pelo sistema operacional. O fato do output ser um ".exe", não necessariamente faz com que ele esteja sendo executado diretamente pelo sistema operacional, isso está relacionado a código gerenciado.
Tem programação funcional no Java desdo Java 8 lançado em 2014.
Só não curto muito no .NET a forma como tem que dar update manualmente no Migrations se mudar um atributo no model por exemplo, não sei agora se já dá update automático como no springboot ou se antes já dava e eu não sabia. Quem puder me responder também agradeceria. Hoje trabalho com Java, mas o C# é bacana, na minha opinião, ambas são tops, porém a melhor é a que lhe dá retorno financeiro
A briga está mais no banco de dados. Um programador C# chamou mysql de lixo
Cara, hoje eu trabalho com Typescript/Angular, Java/Quarkus, mas eu tenho uma saudade enorme de C#, puta liguagem legal, os frameworks para C# são muito bons, sem falar que existe todo um ambiente que Microsoft oferece pra quem programa em C#. Pode ser porque sou um apaixonado por C#, mas me parecia que era tudo mais amarradinho.
De fato é, tudo da microsoft se comunica muito bem, tudo amarrado e bem centralizado.
Muito bom cara. Vale apena investir ainda em Java ? Vi muita gente falando que após a Google focar no investimento de Kotlin e Golang, Java tá meio perdido, é verdade?
Em sistemas mobile, o Java já era. Daqui pra frente é basicamente sistemas legados. Porém, no backend web, em especial enterprise, o Java é o cara e continuará sendo por um bom tempo. Houve um tempo em que o Java tinha um reinado absoluto em praticamente tudo e com isso o Java sentou no trono e se acomodou. Porém, com o surgimento de novas linguagens, entre elas o Kotlin e o Golang, e incluiria aqui também a grande evolução do C#, fizeram o Java acordar e agora eles tem novas versões a cada 6 meses, para tentar tirar o atraso e acompanhar a modernidade. Vem evoluído muito. Então, sim, Java continua e continuará forte por muito tempo ainda. Porém, não mais com aquele dominio absoluto que tinha do mercado nos anos 2000, pois agora a concorrência é forte. O mercado vai ficar pulverizado e não mais só em ciam de uma ou duas linguagens, e isso, ao meu ver é ótimo.
@@devjosejunior Gosto do java, mas tenho esse raciocínio também, sobre o futuro do java...
C# é mais enxuto e mais eficiente. Outra coisa é como o C# lida exceções de nulos. O Java é muito ruim com isso
sei lá desisti de programar e virei eletricista
To quase indo por esse caminho também rsrs
Eletricista não ganha nada perto de um programador.
@@juliocesarminharotina2117 Na realidade de hoje sim, porém com a quantidade de jovens se inserindo no mercado essa realidade vai mudar.
Se você vai numa sala de nível médio e pergunta quais profissões a galera quer seguir, a grande maioria opta por carreiras na área de TI.
Em contrapartida as áreas técnicas vão ter falta de mão de obra devido a falta de interesse dos jovens por trabalho pesado, e a aposentadoria dos trabalhadores atuais.
Dessa forma lei da demanda tende a equilibrar o mercado entre essas profissões futuramente.
@@emersonassis5083 É verdade, além de programador, sou eletrotécnico, e ultimamente a demanda para profissões como eletricista e até mesmo pedreiro "estão em alta", pois não tem tanto profissional para a demanda.
Pessoal desvaloriza por ser um trabalho de muita força, porém pra quem gostar, vale a pena!
@@kingx5325 sou interessado nessa área de eletricista, você fez curso técnico ? e sabe me dizer se tem oportunidade para recém formados nessa área ? pois tenho medo de fazer o curso e não conseguir emprego por falta de experiência kkk
Oh, juventude sem teoria, como me entristeceis,
A ciência da computação é um mar vasto a desbravar.
Buscai a clareza, mergulhai na essência que permeais,
Erguei-vos com sabedoria, na jornada que está a se iniciar.
Byte code, MSIL, linguagem de máquina, entenda suas nuances,
JIT e bare metal, cada qual com seu propósito definido.
Tipada ou não tipada, perdido na névoa da ignorância.
Confusão do imperativo e declarativo, como notas musicais em conflito.
Versões atualizadas, exemplos de um conhecimento raso.
Que a dor do cientista encontre consolo no ensinar,
Imperativa e declarativa, duas visões de se expressar,
Para que o brilho da ciência da computação nunca se afunde.
No vasto oceano de código, a dor do senior se faz notar,
Mas com estudo e perseverança, a compreensão há de chegar.
Jovens aprendizes, erguei-vos com sabedoria e humildade,
E honrai a ciência da computação, com paixão e qualidade.
E eu achando que o java havia sido criado na oracle kkkkkkkk
Essa é facil kkk c# funciona
SIIM!!!
Eu sou time c#
to na duvida entre c# e java
Vai de c#
Cu é melhor
Eu fui JAVA, mas eu tive meus motivos
Dependendo do projeto será recomendado uma determinada linguagem, vai do perfil da tecnologia que pretende trabalhar ou que você se identifica. Acredito que saber as duas é um diferencial, mas como não é todo mundo que possui tempo pra isso, hoje eu recomendo Java, até porque pretendo chegar no Kotlin.
Enfim tenha em mente sempre buscar solucionar os problemas do seu cliente.
Voltei a estudar Java me baseando nos objetivos dos meus projetos pessoais e profissionais. Enfim acredito que Java seja bom pra quase tudo, e talvez um dia eu aprendesse C# para mexer com Unity no desenvolvimento de games, o que não é a minha prioridade no momento, seria mais por curiosidade e um "plus" nas skills, ainda mais por eu ser um gamer rs.
E Java eu "necessito" pois meu foco visa o que enxergo das necessidades back-end do mercado global, as grandes empresas sempre estarão precisando dessa linguagem, nem que seja pra dar manutenção.
Agora se gosta de mobile prefira uma linguagem nativa e seja feliz com Kotlin que muitos consideram um Java mais moderno (porém é recomendado aprender Java primeiro).
Na verdade Java está sem nenhuma atualização importante a muito tempo…
Tá sabendo legal
De fato Java ficou muitos anos sem atualizações, mas desde 2019 o Java vem tendo atualizações com mais frequência do que mesmo o C#, com o Java lançando novas versões a cada 6 meses enquanto o C# uma vez por ano. Muita coisa vem surgindo no Java desde então. O interpretador Java dentro do terminal (Jshell), inferência de tipos (VAR), Switch expressions, Text Block, Record Type, Classe selada e muitas outras coisas. No ecossistema Criação da GraalVM que é uma VM poliglota rodando várias linguagens (Python, JavaScript, Java, Kotlin, Scala, entre outras), Quarkus, Micronaut, etc. O Java (e seu ecossistema) vem se modernizando bastante nos últimos anos.
ainda bem, esse negócio de ficar atualizando a cada 3 meses não vira não.
Nenhum nem outro. Ambos são horríveis em questão de performance pra se fazer jogo.
O negócio é ir pra C C++ e até rust , pegar código nativo
SIIM!!
Nem todo mundo tá aqui pra fazer jogo
@@ScusaxX eu não faço só jogo. Faço software também.
@@ariondeno e jogo é o que? compartilhe algum projeto seu e explique o motivo de ele performar melhor na linguagem que escolheu vestir a camisa.
@@lisboasp por hora eu estou em prototipagem.
Tem a ver como é executado. Tanto Java quanto o Microsoft Java ou C#, geram código para uma VM.
Com isso vc não precisa cuidar da memória. C# só foi ter código nativo em 2015
No caso das que sitei, vc precisa conhecer mais a fundo estrutura de dados e arquitetura. Como o gerenciamento é manual pois o código é nativo, vem um negócio chamado ponteiro. Se vc souber usar sabiamente. Vc conseguirá maior desempenho.
Se não. Muitos problemas de falha de segmentação. No caso do Rust. O compilador já avisa e não deixa compilar até vc arrumar.