notícias bbs artigos grupos / produções sobre

Life is too short for X, X = C++

HugoDaniel, há 15 anos

O que não faltam praí são zelotes do C++, essa linguagem inutil, argumentos típicos a seu favor são:

"É eficiente":

Na teoria 20% do tempo dos projectos em C++ está destinado para optimizações, visto que, como disse um dos 'reis' da computação, "premature optimization is the root of all evil". Na prática esse tempo é gasto a descobrir porque é que a memória do computador desaparece toda assim que se mete o programa a correr. Para grandes projectos as verificações necessárias para garantir uma estabilidade mínima fazem com que o C++ trabalhe muito (leia-se *MUITO*) abaixo dos 80% de performance conseguidos por outras linguagens de mais alto-nível. Para além de que o código (mesmo sem optimizações) simplesmente não é mantível, mesmo com um bom documento de requisitos. (win api anyone?)

"Dá-me controlo":

Se trabalhar em baixo nível é sinónimo de "ter controlo", então porque é que não estamos todos a programar em Assembly ?
Para além de que este argumento é falacioso pois só fazendo overload dos operadores new, e delete é que se consegue uma gestão de memória decente e a possibilidade de eliminar a maioria dos mallocs/frees do ciclo principal de execução (que em C++ acabam por ir todos lá parar, yupiii).

"É compatível":

Sim, existe um compilador de C++ para muitas plataformas. Pena que a linguagem seja incompatível até com ela própria. Graças ao name mangling do linker ter sido excluído das versões anteriores da especificação da linguagem (que, já agora, tem 310 páginas excluindo as libs), é *impossível* garantir que as bibliotecas feitas em C++ (.dll, .so ou .a) consigam ser linkadas por programas a serem feitos noutros compiladores (ou mesmo entre versões do mesmo compilador: YES). Solução: extern C em torno dos .h's e um nome único por função/instância de objecto, e boa sorte se a lib em questão fizer uso extensivo de templates ;)
http://en.wikipedia.org/wiki/Name_mangling#How_different_compilers_mangle_the_same_functions

"A comunidade é grande e existem muitos bons livros acerca da linguagem":
Existem também alguns manuais sobre como não-programar em C++, e outros tantos que explicam bastante bem porque é que a linguagem não presta. Estes são:
C++ Coding Standards, Effective C++, Exceptional C++, e mesmo o Design Patterns.

"É uma linguagem em desenvolvimento activo pela indústria"
Sim, e com uma especificação gigante (> 1000 páginas com libs), sem política de "deprecação", só vai ficar pior.

Podia ficar nisto a semana inteira, deixo aqui um link que resume bem estes e outros pontos:

http://www.fefe.de/c++/c%2B%2B-talk.pdf

ps, há 15 anos

c++ é tudo merda.

posta ai o teu engine em haskell.

HugoDaniel, há 15 anos

Isso é surpresa...

está a ser germinado.

zeroshift, há 15 anos

ah pah ... go make a demo about it

Jae686, há 15 anos

C++ ? Bah! Gimme C instead!

Anônimo, há 15 anos

É. Os computadores são uma merda. Antigamente é que era. Demos para abacos e o pessoal fazia mais que certas pessoas. Nem electrões tinhamos!

Sim, e com uma especificação gigante

Diz isso quem está à mais de 1 ano a aprender Haskell para meter um cubo a rodar...

HugoDaniel, há 15 anos

Faz um ano em Setembro. Mas é um granda cubo :D

ps, há 15 anos

deve ter prai 12 arestas!

Jae686, há 15 anos

Bem admito que gostei do " http://www.fefe.de/c++/c%2B%2B-talk.pdf "

Estou a aprender C++ nas horas livres, e nao curto muito alguns dos conceitos presentes na linguagem...

xernobyl, há 15 anos

Nesse pdf não vi nenhum caso real. Qualquer linguagem de programação como ferramenta que é tem as suas vantagens e desvantagens. Existem chaves de fendas e chaves de cruz por alguma razão. Acho que esses gajos que se metem a analisar essas merdas são parvos e não têm vida. Para que raio é que isso interessa a alguem? Quanto muito interessa a quem desenvolve compiladores.

12

Tags