Linguagem para iniciar POO - Dúvidas e Discussão de Programação - Portugal-a-Programar
Linguagem para iniciar POO
By alexmgarcia, January 18, 2010 in Dúvidas e Discussão de Programação
Já tenho algum conhecimento sobre programação sequencial e portanto queria avançar para programação orientada a objectos.
Qual a linguagem que me aconselham para aprender POO?
Já me disseram Java; também já me aconselharam C#. Qual devo escolher?
Isso depende do que já conheces e do que queres fazer no que toca a programação.
Se já programas em C, se calhar o ideal seria C++, por ser uma evolução directa do C, irias sentir-te mais confortável e oferece uma boa base para Java (não sei C#, por isso não comento a esse respeito).
Se por exemplo quiseres trabalhar em web, então poderias começar por aprender Perl e/ou PHP (acho Perl muito mais interessante e mais útil).
Mas como disse antes, tudo depende do que já fizeste antes e do que queres fazer depois...
O que quero é aprender POO para no futuro tirar proveito de classes e objectos.
Eu já programo qualquer coisa em C e consigo estruturar os algoritmos. Queria mesmo era passar de programação sequencial para objectos.
ruidias 0
C# é sem duvida alguma a linguagem a seguir!
C# é 100% POO, ao contrário de outras linguagens que aqui falaram.
Se queres aprender algo para o futuro, pensa assim:
a) Linguagem para desenvolver para windows:
R: C#
Linguagem para desenvolver para a web? (websites):
c) Linguagem para desenvolver webservices?
d) Linguagem para desenvolver para windows mobile?
c) Linguagem para projectos middleware?
A coisa fica mais simples de escolher, não é?
E o Java não é "100% POO" também? Para além disso é multi-plataforma de forma oficial.
Eu aconselho a começares com Python, tem uma curva bastante suave de aprendizagem e depois de aprenderes consegues entrar na boa em qualquer outra linguagem de programa orientada a objectos....
Para não falar nas inúmeras bibliotecas muito versáteis: redes, robôs, computação gráfica, encriptação, etc.... O Google usa Python aos pontapés, curiosidade, o Youtube foi feito em Python....
Apesar de eu não ter começado por esta linguagem (infelizmente), aconselho vivamente....
A diferença é negligenciável, e para a maioria das situações nem se nota. O facto de, por exemplo em Java teres tipos de dados primitivos e em C# todos serem objectos, é uma diferença tão pequena que nem vale a pena pensar nela. E só a existência de tipos primitivos faz das outras linguagem não serem puramente orientadas a objectos.
C, C++, Python, Java, D, J#, F#, VB, só para mencionar algumas, onde a maioria é suportada pelo Visual Studio pelo que o IDE não é desculpa.
PHP, Python, Java, Groovy, Rails, para não entrar nas mais antigas.
Python, Java, PHP...
Todas as suportadas pelo .net.
Escolher a linguagem com os parâmetros dados acima não faz qualquer sentido. Para todos eles existem várias alternativas e nenhum deles realmente ajuda.
Com o falco indicou, se já sabes C, passar para C++ vai ajudar a que te sintas mais confortável, os conceitos de POO podem ser estranhos para quem está habituado a outros paradigmas, e ter uma base familiar pode ajudar bastante. No fundo, se o objectivo é aprender POO, as duas que poderia indicar seriam C++ e Java, talvez por serem as que mais usei, há quem se dê bastante bem com Python, pela simplicidade aparente, a mim sempre me fez confusão . Todas elas possuem boa documentação e boas ferramentas de desenvolvimento, desde IDEs a suporte em simples(ou menos simples) editores de texto. A forma como aplicam os conceitos OO é ligeiramente diferente mas nada de especial.
Escolhe uma e usa essa para aprender, mais tarde se for necessário podes saltar para outra linguagem com mais facilidade. Se o objectivo é seguir programação, será muito natural que tenhas de usar mais que uma linguagem.
Se é para "fazer umas coisas" recomendo as linguagens open-source.
Caso queiras fazer da programação, futuro profissional... recomendo que comeces a dedicar-te a outra área, algo com futuro.
Praticamente todas as linguagens são "open-source", as implementações é que podem não ser.
Não é por não ser 100% OOP, que a linguagem deixa de poder ser utilizada dessa forma, ou que deixa de servir para aprender OOP.
Não acho sequer que C# seja uma boa solução para web quando comparado com outras.
E ficar preso a plataformas m$?
Window$ não é o único sistema operativo relevante, muito menos na área dos dispositivos móveis.
Quando a ser boa solução para midleware, queria ver-te fazer soluções para midleware fora de window$ com C#...
Se ignorares tudo o que não é m$, talvez seja uma escolha que faça sentido, mas ignorar tudo que é m$, não é algo que faça sentido...
Software Livre/Open Source Software são modelos de licenciamento que têm tantas soluções de nível profissional, quanto qualquer outro modelo.
Ou achas que o Google não é profissional?
Ou achas que o Sapo não é profissional?
Ou achas que o Amazon não é profissional?
Ou que Bolsa de Valores de Nova York não é profissional?
Ou que a NASA, não é profissional?
Ou a Lockheed-Martin, Toyota, BBC, Mitsubishi, Cisco, Opera, Juniper, Siemens, Oracle, IBM, HP, Dell, etc...