Jump to content

C++ ou Java?


Gabriel Netto

Recommended Posts

Acabou de concordar com o que eu disse anteriormente: apenas "argumentos" de alguém que nunca utilizou Java corporativamente, e baseia suas informações simplesmente pelo que lê na internet.

Complicado conversar com alguém que não tem argumentos propios, muito menos propiedade para falar de algo que não sabe.

 

Não quero ficar aqui guerreando pra provar qual linguagem é a melhor. Apenas sou claro o suficiente pra saber que cada uma tem suas vantagens e desvantagens, bem como suas especialidades.

Onde trabalho mesmo, muitas rotinas são realizadas em C++, e que se fosse em Java certamente não seria desempenhada tão bem. Assim como há outras em php, asp, c, python, cobol, e cada uma com suas particularidades.

 

Se você ainda não atingiu esse nível de maturidade, sinto muito, mas o mercado está tendo cada vez menos espaço para pessoas com essa mentalidade.

 

Grande Abraço!

Link to comment
Share on other sites

Cara, faz o favor de ler o artigo. Eu me informo, ao contrário de você que parece que só conhece uma coisa e trata como se fosse o melhor. Eu já programei BASTANTE em Java, Pascal, C++, C#, Python, Javascript, Ruby, a linguagem que você imaginar. Muito fácil falar bem de quem paga teu salário, mas quero ver tentar coisas diferentes e ainda dizer que é perfeito tudo de bom uau.

 

Queria que você convencesse o autor do post, que só quer saber qual linguagem é melhor pra um iniciante, e não mercado mercado mercado hurr durr.

Link to comment
Share on other sites

Já foi falado no tópico alguns motivos para ele escolher x ou y. Vai depender dos objetivos dele, com qual linguagem ele conseguir melhor afinidade também, independente de qual for. É só pesar as vantagens e desvantagens de cada uma, como foi dito pelos nossos amigos acima.

 

Edit:

E ninguém está aqui pra convencer(ou seria converter?) ele para determinada linguagem. Acredito que a intenção de todos foi mostrar as características de cada uma, e o autor decide a melhor pra ele. Ninguém precisa convencer ele a ser pró-java ou pró-c++.

 

Edited by Felipe Moraes
Link to comment
Share on other sites

Olha brother eu amo de paixão c++, sou suspeito pra falar, mas se fosse optar entre as duas com certeza seria c++, porém para mercado é bem expressivo que java é mais bem remunerado e tem mais vagas.

 

Porém atualmente tem um forte tendência do C# dominar o mercado, a começar pelo xamarim que é algo fabuloso. A ideia dele é você escrever um único código e esse código ser compilável pra praticamente qualquer plataforma(entenda iOS, Windows, Unix) sem se quer sair do IDE. Além disso existem as ferramentas como visual studio e etc, que são de fato muito boas.

O Windows também está tendendo a unificar o seu sistema, transformando tudo em um só, seja ele Xbox, mobile ou desktop e exterminando a arquitetura win32, e isso é realmente crítico.

O C# é meio que uma mescla do java com o c++, já ouvi professores meus dizendo que eles pegaram o melhor de cada linguagem, mas ai já é mais uma questão de opnião. Sem duvidas é uma boa escolha para aprender, porque por mais que o c++ seja foda em questões de performance, perdesse muito tempo no desenvolvimento, e tempo é dinheiro.

 

E só complementando, eu sei que não é exatamente o que tu perguntou, mas simplesmente programar também não serve, uma coisa que tu nunca pode deixar de lado é banco de dados. Porque sistemas são programas operando em cima de banco de dados, um sistema eficiente tem que casar os dois: um banco bem modelado com um programa ágil e que execute querys de forma inteligente.

 

Edited by dalvorsn
Link to comment
Share on other sites

16 horas atrás, dalvorsn disse:

Olha brother eu amo de paixão c++, sou suspeito pra falar, mas se fosse optar entre as duas com certeza seria c++, porém para mercado é bem expressivo que java é mais bem remunerado e tem mais vagas.

 

Porém atualmente tem um forte tendência do C# dominar o mercado, a começar pelo xamarim que é algo fabuloso. A ideia dele é você escrever um único código e esse código ser compilável pra praticamente qualquer plataforma(entenda iOS, Windows, Unix) sem se quer sair do IDE. Além disso existem as ferramentas como visual studio e etc, que são de fato muito boas.

O Windows também está tendendo a unificar o seu sistema, transformando tudo em um só, seja ele Xbox, mobile ou desktop e exterminando a arquitetura win32, e isso é realmente crítico.

O C# é meio que uma mescla do java com o c++, já ouvi professores meus dizendo que eles pegaram o melhor de cada linguagem, mas ai já é mais uma questão de opnião. Sem duvidas é uma boa escolha para aprender, porque por mais que o c++ seja foda em questões de performance, perdesse muito tempo no desenvolvimento, e tempo é dinheiro.

 

E só complementando, eu sei que não é exatamente o que tu perguntou, mas simplesmente programar também não serve, uma coisa que tu nunca pode deixar de lado é banco de dados. Porque sistemas são programas operando em cima de banco de dados, um sistema eficiente tem que casar os dois: um banco bem modelado com um programa ágil e que execute querys de forma inteligente.

 

 

Já ouvi por alto sobre o xamarim também. Na verdade ouvi falar da ideia, mas não sabia que esse era o nome da ferramenta. É promissor, tem tudo pra dar certo e torço pra que dê.

Muito bem lembrado. C# é um ótimo ponto de partida para o autor do tópico também. Possui uma excelente performance também, orientação a objetos e a sintaxe é muito próxima de Java. Não manjo de c#, mas é uma boa opção sempre. =):

 

Realmente a parte de banco de dados foi importante citar também. Geralmente em muitos tutoriais sobre determinada linguagem já encontra referências sobre banco de dados, mas é sempre bom já ter uma noção. 

 

 

Abraçoss

 

 

 

 

Edited by Felipe Moraes
Link to comment
Share on other sites

Em 23/08/2016 at 00:02, Bernardo disse:

Então a linguagem ser um monstro que tenta implementar tudo é bom? Temos aqui um exemplo de visão de programador vs analista bem claro. De qualquer forma as ferramentas de Java são todas ruins (o dia que o Maven for pelo menos próximo ao npm ou pip, ou o Ant ao menos funcionar como o CMake a gente revisa isso), a JVM dá muito pau e não existe segurança melhor que controlar sua própria memória.

 

Foda-se o mercado, o mercado não traz inovação, o mercado traz mais do mesmo, é por isso que existe manutenção infinita de tudo que é em Java, se não fosse assim não teria nada pra fazer nas fábricas de software. De qualquer forma no Brasil as faculdades só usam Java, então teu primeiro parágrafo não tem sentido.

 

De qualquer forma, faz sentido falar de segurança e controle numa linguagem fechada e ditada por uma empresa?

 

Toma aqui a "versão web" de C++ que você quer ver: http://cppcms.com/wikipp/en/page/main https://github.com/ipkn/crow http://siliconframework.org/ http://www.treefrogframework.org/

Ou que tal é bom o suficiente pra você se o facebook usar? https://code.facebook.com/posts/1503205539947302/

 

E se for responder quota o post, não fica usando "falaram" "ouvi"

Ehhh melhor não. Quanto mais coisas em Lua melhor, primeiro por ser mais dinâmico e fácil de mexer, segundo que quanto mais você muda as sources pior fica de conseguir ajuda de alguém, não é uma boa ideia pra se seguir. De qualquer forma, faz um fork no github e manda o link que eu posso tentar ajudar =):

tu acha?

Mas tirar códigos inúteis que só serviriam caso o foco fosse o Tibia msm, ent, vale a pena? Na prática deixaria mais fácil a manutenção e adição de outros sistemas, eu acho ehaueahu

 

Em 24/08/2016 at 02:12, dalvorsn disse:

Olha brother eu amo de paixão c++, sou suspeito pra falar, mas se fosse optar entre as duas com certeza seria c++, porém para mercado é bem expressivo que java é mais bem remunerado e tem mais vagas.

 

Porém atualmente tem um forte tendência do C# dominar o mercado, a começar pelo xamarim que é algo fabuloso. A ideia dele é você escrever um único código e esse código ser compilável pra praticamente qualquer plataforma(entenda iOS, Windows, Unix) sem se quer sair do IDE. Além disso existem as ferramentas como visual studio e etc, que são de fato muito boas.

O Windows também está tendendo a unificar o seu sistema, transformando tudo em um só, seja ele Xbox, mobile ou desktop e exterminando a arquitetura win32, e isso é realmente crítico.

O C# é meio que uma mescla do java com o c++, já ouvi professores meus dizendo que eles pegaram o melhor de cada linguagem, mas ai já é mais uma questão de opnião. Sem duvidas é uma boa escolha para aprender, porque por mais que o c++ seja foda em questões de performance, perdesse muito tempo no desenvolvimento, e tempo é dinheiro.

 

E só complementando, eu sei que não é exatamente o que tu perguntou, mas simplesmente programar também não serve, uma coisa que tu nunca pode deixar de lado é banco de dados. Porque sistemas são programas operando em cima de banco de dados, um sistema eficiente tem que casar os dois: um banco bem modelado com um programa ágil e que execute querys de forma inteligente.

 

É, to tendo dificuldade nesse negócio de database. Dei uma olhada por cima já, e tá aparentando ser mais complexo que a programação em si, apesar de eu não ter adentrado mt na questão da orientação a objetos do C++ ent não posso falar mt sobre :\ 

 

 

Em 23/08/2016 at 21:26, Felipe Moraes disse:

Já foi falado no tópico alguns motivos para ele escolher x ou y. Vai depender dos objetivos dele, com qual linguagem ele conseguir melhor afinidade também, independente de qual for. É só pesar as vantagens e desvantagens de cada uma, como foi dito pelos nossos amigos acima.

 

Edit:

E ninguém está aqui pra convencer(ou seria converter?) ele para determinada linguagem. Acredito que a intenção de todos foi mostrar as características de cada uma, e o autor decide a melhor pra ele. Ninguém precisa convencer ele a ser pró-java ou pró-c++.

 

HEAUEAHUEA, me converteram pro C++ D:, mas ainda quero dar uma estudada em Java, a estrutura dela em si é bem "acolhedora" 

Brincadeiras a parte, é como tu disse. Teve um pessoal que se exaltou ehaueauh

Link to comment
Share on other sites

43 minutos atrás, Gabriel Netto disse:

tu acha?

Mas tirar códigos inúteis que só serviriam caso o foco fosse o Tibia msm, ent, vale a pena? Na prática deixaria mais fácil a manutenção e adição de outros sistemas, eu acho ehaueahu

 

É, to tendo dificuldade nesse negócio de database. Dei uma olhada por cima já, e tá aparentando ser mais complexo que a programação em si, apesar de eu não ter adentrado mt na questão da orientação a objetos do C++ ent não posso falar mt sobre :\ 

 

 

HEAUEAHUEA, me converteram pro C++ D:, mas ainda quero dar uma estudada em Java, a estrutura dela em si é bem "acolhedora" 

Brincadeiras a parte, é como tu disse. Teve um pessoal que se exaltou ehaueauh

 

Independente da linguagem que for utilizar, é interessante treinar a lógica de programação, algoritmos, estrutura de dados, etc. Quando for pegar orientação a objetos já vai ter uma base mais sólida.

A questão de banco de dados, comece pelo básico: como criar um banco, tabelas, montar querys para manipular os dados(inserir, remover, alterar e visualizar). Talvez possa parecer um pouco confuso em alguns tutoriais que falem de normalização, triggers, views, por isso deixe tópicos assim pra depois. Comece pelo feijão com arroz que você vai longe.

 

Abraços e boa sorte na caminhada.

Link to comment
Share on other sites

Não vou quotar pq o é muito grande ahuahuhuahua

 

Então, não, o ganho vai ser mínimo por ~retirar~ coisas do servidor. Em geral tudo que tu precisa fazer é em Lua, no TFS, muito raramente vc vai precisar mexer no C++, mas é bom saber pra poder mexer ou até mesmo contribuir com o server lá no github. É bom pq tem pouco dev brasileiro e o que tem ninguém aqui dá a mínima, por isso vc vê tanto conteúdo desatualizado.

Link to comment
Share on other sites

Em 21/08/2016 at 01:18, Bernardo disse:

Java é um lixo, é um espaguete maldito, a portabilidade é uma mentira deslavada e não existe, a sintaxe é uma porcaria, é lento e pesado que é um inferno. Só é usado porque exige uma quantidade imensa de retrabalho e recursos e isso é ótimo quando vc vende um serviço, pode cobrar seu cliente pela eternidade. Não acredite em elogios ao Java, a parte pra web que o cara citou ali em cima é uma desgraça de usar, só usa Java quem não conhece outra coisa ou é obrigado a usar.

 

C++ é uma linguagem excelente e melhorou muito recentemente, recomendo que vá direto pros padrões modernos como C++11 e C++14. Não precisa de livro nenhum, segue o http://learncpp.com/ e vai fazer alguma coisa pessoal pra treinar. Tem várias issues no repositório do TFS pra mexer, por exemplo.

 

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

 

eu sabia que isso ia dar um treta maligna kkkkkkkkkkkkkkkkk

Link to comment
Share on other sites

Em 25/08/2016 at 22:05, Felipe Moraes disse:

 

Independente da linguagem que for utilizar, é interessante treinar a lógica de programação, algoritmos, estrutura de dados, etc. Quando for pegar orientação a objetos já vai ter uma base mais sólida.

A questão de banco de dados, comece pelo básico: como criar um banco, tabelas, montar querys para manipular os dados(inserir, remover, alterar e visualizar). Talvez possa parecer um pouco confuso em alguns tutoriais que falem de normalização, triggers, views, por isso deixe tópicos assim pra depois. Comece pelo feijão com arroz que você vai longe.

 

Abraços e boa sorte na caminhada.

Eu já acho que ele deveria começar pela modelagem, entender o que é um banco relacional, como as tabelas se relacionam, cardinalidade e etc. Ai sim, depois de entendido isso ele passa pra querys e etc, que é a parte mais facil. O dificil mesmo é a parte de analise de requisitos, por isso que hoje em dia tu só ve aplicação merda, o cara manja de c++ ou qualquer outra linguagem pacas, ai na hora de projetar o banco acha que é so criar umas tabelinhas la e ta lindo, ai o banco vira uma carroça, e a manutenção é quase impossivel.

 

@Gabriel Netto

No caso do opentibia isso já está pronto, tu só precisa entender as relações.

 

Por exemplo:

* Um player está vinculado a uma conta, logo na tabela players o campo account_id é uma chave estrangeira da tabela account.

* Por questões de performance de pesquisa, como o banco relacional é baseado em algebra de conjuntos, você pode e deve determinar as chaves para pesquisas, e de preferencia que elas sejam numericas porque apresentam melhor performance

 

* player_storage: tabela que vincula storage a um player, recebe uma chave estrangeira de id do player, vamos supor que eu quero retornar todos os nomes dos players que tem a storage 56000 igual a '10'

select name
from players p
inner join player_storage ps
on p.id = ps.player_id
where ps.key = '56000' and ps.value = '10'

No caso de cima está no padrão ANSI, em outros bancos poderia ser diferente, como no oracle por exemplo, seria algo como:
 

select name
from players p, player_storage ps
where p.id = ps.player_id(+) and
ps.key = '56000' and ps.value = '10'

Isso e muita outras coisas de fato sao o que voce vai usar quando tiver programando, porém se você não entender a logica por tras disso a chance de fazer uma query defeituosa ou lenta é bem grande, ai varia de onde ta trabalhando, tem empresas que nem permitem isso, só os DBAs que mechem, ou pelo menos so passam sob aprovação e etc.

Acabei me prolongando muito, mas a mensagem é basicamente o seguinte, estude a parte teorica primeiro, não vá logo metendo a mão na massa, o mais importante do banco nao é saber fazer querys, é entende como as tabelas se relacionam, quais são as restrições de cada uma, o que acontece quando faz alguma ação sobre elas(update, delete e etc).

 

Caso queira entender de fato como isso funciona, aconselho a seguir esse tutorial, é extenso mas vale a pena.

http://www.devmedia.com.br/curso/curso-modelagem-de-bancos-de-dados-relacionais/409

Edited by dalvorsn
Link to comment
Share on other sites

@dalvorsn

Concordo plenamente com você, que modelagem é primordial para ele aprender. Só não acho necessário ele se aprofundar na questão de visões, triggers,etc, nesse momento.

Como os dados se relacionam, chaves primárias, estrangeiras é importante ele aprender agora, como você bem disse, até porque ele não vai conseguir montar as querys sem saber isso.

 

Está muito bem explicado seus posts, parabéns man

 

Abraços

Link to comment
Share on other sites

Em 26/08/2016 at 02:11, Bernardo disse:

Não vou quotar pq o é muito grande ahuahuhuahua

 

Então, não, o ganho vai ser mínimo por ~retirar~ coisas do servidor. Em geral tudo que tu precisa fazer é em Lua, no TFS, muito raramente vc vai precisar mexer no C++, mas é bom saber pra poder mexer ou até mesmo contribuir com o server lá no github. É bom pq tem pouco dev brasileiro e o que tem ninguém aqui dá a mínima, por isso vc vê tanto conteúdo desatualizado.

Entendi. É porque, pasme, eu tô tendo mais facilidade em me aprofundar em C++ do que em lua, já que em lua os recursos de estudo são bem escassos :\ 

 

Em 25/08/2016 at 22:05, Felipe Moraes disse:

 

Independente da linguagem que for utilizar, é interessante treinar a lógica de programação, algoritmos, estrutura de dados, etc. Quando for pegar orientação a objetos já vai ter uma base mais sólida.

A questão de banco de dados, comece pelo básico: como criar um banco, tabelas, montar querys para manipular os dados(inserir, remover, alterar e visualizar). Talvez possa parecer um pouco confuso em alguns tutoriais que falem de normalização, triggers, views, por isso deixe tópicos assim pra depois. Comece pelo feijão com arroz que você vai longe.

 

Abraços e boa sorte na caminhada.

 

4 horas atrás, dalvorsn disse:

Eu já acho que ele deveria começar pela modelagem, entender o que é um banco relacional, como as tabelas se relacionam, cardinalidade e etc. Ai sim, depois de entendido isso ele passa pra querys e etc, que é a parte mais facil. O dificil mesmo é a parte de analise de requisitos, por isso que hoje em dia tu só ve aplicação merda, o cara manja de c++ ou qualquer outra linguagem pacas, ai na hora de projetar o banco acha que é so criar umas tabelinhas la e ta lindo, ai o banco vira uma carroça, e a manutenção é quase impossivel.

 

@Gabriel Netto

No caso do opentibia isso já está pronto, tu só precisa entender as relações.

 

Por exemplo:

* Um player está vinculado a uma conta, logo na tabela players o campo account_id é uma chave estrangeira da tabela account.

* Por questões de performance de pesquisa, como o banco relacional é baseado em algebra de conjuntos, você pode e deve determinar as chaves para pesquisas, e de preferencia que elas sejam numericas porque apresentam melhor performance

 

* player_storage: tabela que vincula storage a um player, recebe uma chave estrangeira de id do player, vamos supor que eu quero retornar todos os nomes dos players que tem a storage 56000 igual a '10'


select name
from players p
inner join player_storage ps
on p.id = ps.player_id
where ps.key = '56000' and ps.value = '10'

No caso de cima está no padrão ANSI, em outros bancos poderia ser diferente, como no oracle por exemplo, seria algo como:
 


select name
from players p, player_storage ps
where p.id = ps.player_id(+) and
ps.key = '56000' and ps.value = '10'

Isso e muita outras coisas de fato sao o que voce vai usar quando tiver programando, porém se você não entender a logica por tras disso a chance de fazer uma query defeituosa ou lenta é bem grande, ai varia de onde ta trabalhando, tem empresas que nem permitem isso, só os DBAs que mechem, ou pelo menos so passam sob aprovação e etc.

Acabei me prolongando muito, mas a mensagem é basicamente o seguinte, estude a parte teorica primeiro, não vá logo metendo a mão na massa, o mais importante do banco nao é saber fazer querys, é entende como as tabelas se relacionam, quais são as restrições de cada uma, o que acontece quando faz alguma ação sobre elas(update, delete e etc).

 

Caso queira entender de fato como isso funciona, aconselho a seguir esse tutorial, é extenso mas vale a pena.

http://www.devmedia.com.br/curso/curso-modelagem-de-bancos-de-dados-relacionais/409

 

Se desse pra dar rep+ aqui, eu dava até o botão parar de funcionar heaueahu. Já tava pensando em assinar esse site, e depois dessa recomendação, vou estar assinando msm. Espero que sejam bons ;s 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...