Programação por objectos

Status
Fechado a novas mensagens.
Java. VB não me agrada e C++ idem.
Apesar de haver por aí uns quantos que dizem que C++ é a linguagem de Deus :P.

Dessa lista, escolheria Java sem pensar duas vezes.
 
Pessoalmente, DETESTO Java. Se pudesse voltar atrás no tempo, ia a 1994 e provocava a falência da Sun Microsystems um ano antes do ínicio do pesadelo. Assim o mundo estava completamente livre dessa praga. Pena que nem o Doc Brown nem o Mark Gottlieb vão com a minha cara para me emprestarem uma máquina do tempo por uns minutinhos (bem... na prática são 14 anos, mas não vamos por aí...)

Agora a sério...
Eu já usei várias por isso vou mostrar as razões que me levaram a mudar para uma ou para outra.
Comecei com C++ (digamos que fiz um "upgrade" à minha experiência com C). Durante algum tempo usei reference counters e cenas parecidas. Muito mau.
Uma linguagem OO deve abstrair o programador da máquina o mais possível. O programador deve preocupar-se com o problema e não com a máquina.
- Um dos principais guidelines do design de Ruby
Depois, no liceu, nas aulas de TLP e EOTD usei VB6. O pessoal ficava todo contente porque podia fazer janelas num instante. Mas classes e objectos, nem vê-los. Digamos que VB6 é uma linguagem "orientada a eventos" e não a objectos.

Um dia, depois de ouvir falar no .NET Framework "Ah, .NET para aqui, .NET para ali" fiquei curioso. E então passei uns bons dias a ler documentação na MSDN Library.
Achei espectacular a organização simples, intuitiva, e consistente da biblioteca de classes. E então comecei a fazer o "upgrade" mental de VB6 para VB .NET. Ainda escrevi uns quantos programitas.
Mas nunca gostei daquele género de sintaxe. Qualquer coisa sem pontos-e-vírgulas ou chavetas faz-me confusão na cabeça. C e C++ ficaram demasiado entranhados nos meus neurónios. Então aprendi C#. E fiquei "agarrado".
Depois, na Universidade, em Paradigmas da Programação 4, tive de aprender e usar Java. Bem, para mim foi como fazer um downgrade.

Recentemente aprendi Ruby por curiosidade. É uma linguagem em que TUDO são objectos (tudo inclui tudo mesmo: linhas de código, funções, números,...) e é bastante orientada aos problemas e não à máquina. Mas em termos de performance... pior que Java (para já! A Microsoft está a desenvolver uma implementação baseada em .NET que promete ter uma performance aceitável). Recomendo para ensinar alguns princípios, ou para escrever algum código "didáctico", mas não para escrever verdadeiros programas.

Em suma:
Se quiseres performance, afasta-te de Java ou Ruby.
Se quiseres escrever código sem tendência para memory leaks ou segmentation faults: C++? Não obrigado. Gestão de memória manual é sempre algo que deve ser evitado por essa mesma razão.
Se quiseres facilidade de criação de aplicações com UI: Visual Basic .NET.
VB6 nunca. VB6 NÃO deve ser considerada uma linguagem orientada a objectos!
Se quiseres "brincar" um bocado com objectos: Ruby.
Se quiseres programar a sério: C# (mais genericamente, qualquer linguagem para o .NET Framework). Recomendo a leitura das design guidelines para o .NET Framework, pois ensinam boas práticas, coisa que raramente acontece quando se aprende OOP (e mesmo outras linguagens).

P.S.: De certeza que Deus não usa uma linguagem tipo C++. Ele deve usar qualquer coisa do género declarativo, tipo Haskell. Acho que Ele gosta de conceitos como funções "puras" e ausência de "side-effects". Já para não falar do controlo total sobre o tipo de dados RealWorld que Ele possui.
 
Eu tenho trabalhado sempre com C++, produzindo algumas aplicações OOP e cinseramente só tenho a dizer bem. Até porque fazer coisas como gestão manual de memória é algo que até gosto.

Quanto às outras duas linguagens que indicas-te, VB, pelo que conheço, acho-a um bocado esquisita para OOP. Já JAVA, só tenho ouvido maravilhas quanto ao OOP desta linguagem, por isso...

Quanto estava na tua situação (vai fazer um ano este mês que comecei com C++), escolhi o C++. No entanto, JAVA foi outra hipótese que coloquei em cima da mesa.

Tu é que sabes aquilo a que te adaptas melhor. Se queres ter mais algum trabalho, mas quanto a mim gratificante, ou então queres mais portabilidade, vai para C++. Se preferes algo mais específico, JAVA é a opção.

Vá, cumps
 
Tu é que sabes aquilo a que te adaptas melhor. Se queres ter mais algum trabalho, mas quanto a mim gratificante, ou então queres mais portabilidade, vai para C++. Se preferes algo mais específico, JAVA é a opção.

Normalmente, JAVA é considerado mais portável que C++, apenas necessita de uma JVM(pelo menos).
Aqui é mais um voto para o Java, por razões explicadas acima.
A framework .net é igualmente boa, mas não é tão portável como o JDK.

Discutindo apenas os aspectos de "portabilidade" de uma linguagem.
 
Já tive uns tutoriais na net e não gostei muito de VB...

Estou inclinado para java... mas queria comprar um livro porque não gosto nada de tutoriais da net confudem-me bastante ... que recomendam?

(Se conhecerem um tutorial mesmo bom avisem =P)
 
Status
Fechado a novas mensagens.
Back
Topo