• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Hipnoted

[Discussão] Vale a pena aprender C++?

36 mensagens neste tópico

Já me fiz muitas vezes esta pergunta...

Por um lado, apesar de não programar verdadeiramente em C há uns meses, considero que domino +- bem a linguagem. Agora pergunto-me se vale mesmo a pena aprender uma linguagem como C++ que como todos sabem é muito mais poderosa. E digo poderosa por facilitar em certos aspectos, por exemplo pode-se usar o POO entre outras coisas.

Em C++ temos vários exemplos de sucesso, como por exemplo os jogos. A maioria deles, ou pelo menos muitos são feitos em C++.

Por outro lado não estou a ver que vantagens teria eu em aprender C++.

Que me dizem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estou a ponderar começar a aprender a sério C++, pela razão que tu apresentaste, os jogos... :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom eu pessoalmente optei por D também domino +- o C, programo bastante em Java e precisava de uma linguagem nativa sem ser o C dado que não gosto lá muito de programar com ela lol, então pensei C++ ou D depois de analisar as coisas optei por, C++ tem uma sintaxe de OO bastante estranha para quem programa em Java, por outro lado D é bastante semelhante a Java nesse nível.

Quanto aos jogos isso é uma questão de tempos, é óbvio que provável mente C++ nunca venha a desaparecer mas vejamos que linguagens nativas de alto nível temos para alem de C++??? Até mesmo D ainda está um pouco verde embora eu ache que tem grande hipóteses de vir a substituir o  C++, bom mas jogos não é uma area que me interesse muito por isso não vou entrar muito por ai. Eu optava por D tal como fiz LOL mas isso é uma opção pessoal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician, sabes bem que eu também optei por D e já ando há bastantes dias a testá-la. A linguagem está realmente muito boa, o único problema é que como ainda é recente ainda não existem todas as bibliotecas que existem em C++, e para quem está a começar a aprender a programar jogos, escrever uma biblioteca de networking de raiz não é certamente a melhor ideia. Mas também tenho que dizer que já existem mesmo muitos bindings para D, e não é muito difícil fazer um binding simples para qualquer biblioteca que seja necessária ao projecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como gostava bastante de C, há dois anos atrás também decidi começar a aprender C++, mas cada vez acho que se justifica menos...

primeiro porque cada vez se usa menos o C++ no mundo do trabalho, depois porque acho que a linguagem foi um pouco mal pensada (pelo menos comparando com o Java), havendo muitas coisas que penso que podiam ser mais simples.

PS: citando programadores da área dos jogos, só escolham essa área se quiserem ser escravos ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bibliotecas de networking ??? explica lá isso...

PS: citando programadores da área dos jogos, só escolham essa área se quiserem ser escravos ;)

Foi o que disse ao triton lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, a comparação com outras linguagens é inevitável...

E realmente quando vejo código POO de C++ e outro tipo que não há em C fico baralhado tal é a confusão daquilo. ;)

Agora, eu não lancei este debate por querer programar algum jogo, se calhar um dia terei de o fazer nunca se sabe... Gostava era de ouvir o pessoal que domina mais de C++... Eu sei que não é muito, a maioria que posta neste quadro é mais de C...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PS: citando programadores da área dos jogos, só escolham essa área se quiserem ser escravos ;)

Porque dizes isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PS: citando programadores da área dos jogos, só escolham essa área se quiserem ser escravos ;)

Porque dizes isso?

tal como referi, estava a citar as palavras de um tipo que esteve numa conferência em que participei, e que trabalhava na área dos jogos.

mas também como é sabido, as editoras é que ficam com os lucros todos dos jogos... já para não falar na pirataria.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não sei como é que funciona com vocês, mas eu quero programar jogos pelo gozo que me dá, em termos profissionais isso já pode ser outra história. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho bem que voces escolham em não aprender. Assim passa a existir cada vez menos programadores de C++ o que aumenta os seus ordenados, tal como o que está a acontecer com os programadores de COBOL que são pagos a preço de ouro (talvez mais petroleo).

Quanto ao mal pensada... seguindo a filosofia que sempre seguiu, a pensar na eficiência e tendo em conta que já é bem velhinha, não acho que seja mal pensada. O Java no fundo até nem é muito diferente.

Aprender vale sempre a pena, eu se tivesse tempo aprendia tudo.

Trabalho... certamente também foi coincidência, mas a 1ª entrevista de emprego que fui foi para programador de C++, Infineon no Porto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
(...)mas a 1ª entrevista de emprego que fui foi para programador de C++, Infineon no Porto.

Vila do Conde se faz favor, vamos lá ver... insultar a minha terra é que não :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
(...)mas a 1ª entrevista de emprego que fui foi para programador de C++, Infineon no Porto.

Vila do Conde se faz favor, vamos lá ver... insultar a minha terra é que não :D

LOL

Peço perdão, mas como começou no Porto com a New Boston Select...

De facto ficou um pouco longe do Porto, quase que me perdia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso de serem mais bem pagos por haver poucos é relativo se também só aparecerem 2 ou 3 trabalhos por ano penso que não é lá muito rentável, mas tens de concordar com uma coisa no mundo da informática o caminho é sempre em frente :D surgem novas linguagem com vantagem e desvantagens mas uma coisa tem sempre que é uma maior produtividade e no mundo profissional a produtividade é a chave de muita coisa e é esse um dos pontos principais do sucesso do Java tem libs para tudo e mais alguma coisa oficiais ou não, consegues programar para tudo, Desktop, Web, Mobile, Cards e sei lá mais o quê e tem ferramentas de grande produtividade que se calhar linguagem como C, C++, D, etc... não tem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo plenamente com o factor produtividade, por isso mesmo não descarto Java.

Cada macaco no seu galho.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom eu acho que quando se escolhe uma linguagem se devem analisar as outras hipóteses equivalentes neste caso linguagens nativas, compiladas.

Que eu tenha conhecimento só conheço 3 C, C++ e D pelo menos a nível profissional. (Corrijam-me se estiver enganado!)

Quanto a C penso que toda a gente deve aprender é uma linguagem que não direi nunca mas que dificilmente vai morrer e é uma excelente linguagem de aprendizagem.

Depois C++ e D pá como já referi penso que D é a melhor opção embora ainda muito verde penso que dentro de uns 2 ou 3 anos no máximo 5 será sem duvida o topo das linguagens nativas, mas como tudo posso estar enganado a até pode não acontecer.

Agora que C++ possivelmente não irá sequer durar tanto como C isso não tenho duvidas alias até tenho 1 prof adorador de C e C++ e que diz isso mesmo C++ mais tarde ou mais cedo acaba.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei sei onde vão encontrar tantas certezas.

Os estudos sobre a linguagem C++ centram-se essencialmente nos metodos aplicados e nas Bibliotecas novas que vão aparecendo, que aumentam também a produtividade, veja-se o caso do QT, e as alternativas estudadas sobre gestão de memória. São essencialmente dois pontos importantes para aumentar a produtividade.

E isto claro sem alterar desnecessáriamente a sintaxe e chaves reservadas da linguagem. Isto faz com que se aproveite tudo aquilo que já está construido para traz. A filosofia do C++ é, se não é preciso não se mete, e o Java até nem foge muito a isto também, porque poucas alterações tem sofrido.

Agora quando se começa a introduzir coisas novas na base da linguagem perde-se a portabilidade que se tinha e o trabalho anterior. Quanto muito será aproveitado com algum esforço e alterações.

Eu até tenho uma opinião contraria do teu professor. Com a plataforma linux a ganhar terreno acho que o C/C++ será tido em conta como base de programação para sistemas Linux. E o C é bastante mais dificil de trabalhar do que C++ com uma diferença de performance que pouco ou nada se nota, principalmente na gestão de memória e debugging, um pouco também pela falta dos templates.

Sendo assim penso que o caminho mais logico para as plataformas Linux será optar por C++ (aplicações desktop), e Java (aplicações server side)

Agora basta olhar para soluções tipo KDevelop e verificar que não lhe falta factor produtividade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

shumy, tocaste num ponto que está em bastante evolução neste momento, o desenvolvimento de programas Desktop para Linux, e o que se tem assistido é a um grande crescimento do Python nesta área, basta ver a enorme quantidade de programas a serem lançados em Python mensalmente. Em C++ o número não é tão grande, a maioria das developers simplesmente não querem perder tempo a desenvolver em C++ quando existem alternativas muito mais produtivas, como Python e C# (via Mono).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

muito sinceramente ainda não vi motivos para o D deixar o C++ para trás.

linguagens como Perl, Python, Ruby, etc. são linguagens que tentam juntar o que havia de melhor quando foram criada nas várias linguagens de programação, mas passados alguns anos lá aparece mais uma linguagem que tem o melhor de todas as linguagens existentes agora e deixa essas linguagens temporais todas para trás...

o C e o C++ acho que são daquelas linguagens que dificilmente vão acabar. apesar de tudo, estão a perder importância porque o desempenho é cada vez menos importante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Rui Carlos, o Python no início até foi iniciado para facilitar a aprendizagem da programação, tal como o autor disse uma vez, a linguagem não foi pensada de raíz para ter performance.

D está a ganhar importância porque é uma linguagem nativa, tem a mesma performance que C e C++, e foi desenhada de raiz para ter funcionalidades existentes em todas as linguagens modernas. Se fores a ver bem, em C++ podes fazer tudo mas é sempre com uso de bibliotecas adicionais, e a sintaxe é horrível. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Rui Carlos, o Python no início até foi iniciado para facilitar a aprendizagem da programação, tal como o autor disse uma vez, a linguagem não foi pensada de raíz para ter performance.

e? alguma vez disse que tinha sido?

não percebi...

D está a ganhar importância porque é uma linguagem nativa, tem a mesma performance que C e C++, e foi desenhada de raiz para ter funcionalidades existentes em todas as linguagens modernas.

estás a confirmar a minha teoria :D

o D tem muitas (e não todas) das funcionalidades hoje existentes nas linguagem modernas, mas não tem todas as funcionalidades existentes nas linguagens modernas de daqui a uns anos. estão sempre a surgir novas funcionalidades, que fazem com que essas linguagens percam importância (não só o D, mas também o Python e companhia). isto só não acontece com o C e o C++ devido a sua importância histórica e por ter um compilador chamada gcc que é do melhor que há, ou com o Java (e provavelmente com o C#) por terem grandes empresas por trás.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sendo assim penso que o caminho mais logico para as plataformas Linux será optar por C++ (aplicações desktop), e Java (aplicações server side)

Não concordo pelo menos no que toca a Java apenas para ASS, Java é cada vez mais usado a nivel de AD para alem da sua performance ter vindo a melhorar bastante a partir da versão 1.4 o Java tem uma coisa que poucas ou arriscaria dizer mais nenhuma tem que é a 100% portabilidade um programa escrito em Java puro corre em qualquer SO desde que tenha Java e com as cada vez mais comuns "guerras" de S.O. Java é um grande marco na programação actual, mas é claro que se o programa for apenas para uma plataforma que seja uma programa tipo deamon convém que seja numa linguagem nativa agora se será C++ não estou tão certo.

Quanto ao Python como disse o triton não sei se essa grande massa de programa como referiste seja assim tão grande, parte das aplicações que tenho em python para linux são apenas F.E para aplicações escritas em C para shell embora existam app 100% python claro.

Quanto ao C# também já andei por essa terras :D lol é giro tem alguns pontos que Java não tem mas penso que tal como a maioria das linguagens MS vai acabar por cair por terra, mas é sem duvida das linguagens actuais que se aproxima mais de Java pena .NET ter uma performance ainda pior que a do Java e Mono então :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao C# também já andei por essa terras :D lol é giro tem alguns pontos que Java não tem mas penso que tal como a maioria das linguagens MS vai acabar por cair por terra, mas é sem duvida das linguagens actuais que se aproxima mais de Java pena .NET ter uma performance ainda pior que a do Java e Mono então :S

Não sei em que te baseas para dizer isso, mas nunca tive problemas com aplicações .NET e até programo nelas, é a minha escolha para desenvolver software para SO (Windows claro, o resto não me interessa). E para dizer a verdade, sempre tive mais "problemas" de performance com Java do que com .NET. Claro que as coisas evoluem e hoje em dia é quase ela por ela, mas no meu portátil, aplicações .NET continuam + rápidas que Java. Aqui ha uns tempos, evitava aplicações Java ao máximo... Por vezes não existia alternativas boas de software X, logo, não tinha remedio, mas tentava sempre ao máximo procurar uma alternativa pois eram lentas e ainda o são um pouco... Não tanto como há uns anos, mas ainda são.

Pequeno exemplo. Visual Studio 2005 muito mais rápido do que o Aptana, ou até mesmo o Eclipse só que este último nunca o usei muito pois nunca programei muito em Java. Mas o Nem se compara o VS IDE vs Aptana IDE, o primeiro é muito mais poderoso... Eu sei que são para objectivos diferentes e que o Aptana ainda tem que amadurecer um bocado... Mas e o Eclipse? Já deve tar bem maduro não? Mesmo assim, continua mais lento que o VS, até mesmo o VS2008 beta 2 a correr em VMware me dá mais rápido que um IDE feito em Java a correr no host. Mas pronto, isto é tudo no meu portátil, mas deve significar alguma coisa...

Não estou a dizer mal do Java, apesar de nunca ter tido muito interesse nele. Só não concordo com a performance...

E as linguagens MS vão acabar por cair por terra? O quanto te enganas... Cada vez se usa mais, cada vez existe mais empresas a contratar programadores para programar em .NET. VB.NET nem por isso, mas C#? Cada vez há mais e mais e então com as novas evoluções que os novos compiladores trazem, o novo framework, o Windows Vista. Não, não vai cair por terra, pelo menos num futuro próximo não vai, enquanto o Windows dominar o mercado. Um dia que o Mac OS X ou Linux dominem o mercado e/ou tenham uma quota de mercado em que deixe as coisas mais ou menos iguais, ai sim, pode ser que as linguagens MS se comecem afundar, até lá. Isso não vai acontecer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho bem que voces escolham em não aprender. Assim passa a existir cada vez menos programadores de C++ o que aumenta os seus ordenados, tal como o que está a acontecer com os programadores de COBOL que são pagos a preço de ouro (talvez mais petroleo).

Disso podes ter tu acerteza :D :D

Ate que enfim vejo alguem a nao degrinir o COBOL...

Tambem tou a ponderar ou C ++ ou JAVA ... tou mais inclinado para o JAVA tem aquela forte vertente de "correr" os programas em qualquer maquina...

cumps...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nazgulled, tens a certeza que o VS 2005 corre sobre .NET?

Sempre pensei que o IDE fosse C/C++, mas como nunca li nada sobre o assunto não faço ideia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora