2º linguagem? - Dúvidas e Discussão de Programação - Portugal-a-Programar
2º linguagem?
Por Gust, 15 de Setembro de 2006 em Dúvidas e Discussão de Programação
Eu já programo eu bocadito em Python.
Gostava de partir para outra mas não faço ideia do que sera melhor.
Pensei em C++ mas pelos vistos está a fica "old-fashioned".
Queria algo que desse para aprofundar os conhecimentos e que seja relativanmente facil de arranjar informação.
Java já programa java a coisa de 3 anos e todos os dias aprendo coisas novas, tem 1 oceano inteiro de informação e tem recursos para tudo e mais alguma coisa
É possivel que axes um pouco dificil ao inicio mas depois de perceberes o basico é tudo intuitivo
o problema do Java é que convém aprender programação orientada aos objectos para se programar correctamente.
por isso eu aconselhava o C primeiro, mas é apenas a minha opinião...
Sugiro-te o C# ou o JAVA pois penso que são as linguagens com mais futuro neste momento.
O Python é orientado a objectos.
O c já não está um boca do fora?!
Nem por isso, C é a linguagem-mãe, qualquer um que saiba C adapta-se fácilmente às outras linguagens...
quanto à parte do Python ser orientado a objectos, é verdade, mas não tanto como o Java. eu nunca programei em Python, mas a maior parte do código que já vi nem se notava que aquilo era uma linguagem orientada aos objectos...
quanto à parte do C, se calhar, em termos comerciais, é uma linguagem com pouco futuro, mas, tal como o Hipnoted referiu, depois de aprender-mos C é muito fácil aprender a sintaxe de linguagens como o Java, C++, C#, etc.
O paradigma de OO é bastante diferente de usar apenas procedimentos. Não é só a sintaxe que temos de aprender. Se assim fosse podias ficar pelo C e simular OO, mas só o farias se aprenderes como funciona o paradigma OO.
Eu uso algum OO em Python e pode-se fazer coisas engraçadas.
Gust, eu ando a aprender C (enquanto estudo Python). Aconselho-te que continues a aprender Python na sua vertente OO, depois podes passar facilmente para Java ou C#.
Realmente quem aprende C depois passar para outra linguagem é facil mas nao aconselho C simplesmente porque está a cair muito em desuso.
Em relação a C# tambem gosto mas fica um bocado dependente do SO por isso é que aconselho mais o java para alem disso é um linguagem que com o tempo tem sempre coisas novas, tens java para desktop (J2SE) , webpages(J2EE), dispositositivos moveis(J2ME) tens java para o principal e depois dentro de cada um huiii tens um mundo J2ME entao nem se fala para alem disso java da-te suporte para tudo o que são novas tecnologias.
Comecei em python à pouco tempo, sendo programador de Java há coisa de 5 anos devo dizer que apesar de oa autores considerem python orientado a objectos, e até certo ponto pode ser, pyhton tem nada de OO comparado com Java.
Em python podes usar OO mas quando chegares a Java e tiveres de saber polimorfismo, herança e uma coisa que o python não tem, encapsulamento, ai sim vais ter algumas dores de cabeça
herança e uma coisa que o python não tem
O Python tem herança.
Desculpem, a frase devia ter sido:
(...)tiveres de saber polimorfismo, herança e encapsulamento, uma coisa que o python não tem,(...)
Python tem herança múltipla, polimorfismo e encapsulamento. Pode não ter é da forma a que estás habituado no Java, porque possui mecanismos mais eficazes.
Sugiro-te que procures mais informações sobre o paradigma OO na linguagem Python... eu sou muito novato neste paradigma, mas foi o que li depois de pesquisar sobre o tema.
Python tem herança múltipla o que é não é assim tão bom, tem polimorfismo, mas não tem encapsulamento. Segundo o que está no manual do python um programador tem de ser correcto e invocar apenas os métodos de que precisa. Encapsulamento que se basea na boa vontade do programador não pode ser chamado de encapsulamento. Sim é possivel dar a volta a isto e criar encapsulamento "quase" real, mas é algo que cada programador tem de acrescentar. Não existe uma palavra reservada que impeça um programador de aceder a um campo.
Tens razão não é como estou habituado em Java, quando comecei a primeira coisa que me incomodou foi mesmo isso, "E agora como é que bloqueio o acesso?Métodos públicos?Privados?Protegidos?Então onde está o encapsulamento!?", se verificares todos os módulos da linguagem permite acesso indiscriminado aos seus métodos e atributos, eu só não rebento com um módulo base da linguagem porque não quero
Quanto a mais eficazes discordo, se consideras o facto de um programador poder ultrapassar as tuas validações e atribuir valores absurdos a campos dos teus módulos mais eficaz então não preciso dessa eficácia .
Desculpem se não me fiz entender nos posts anteriores, sei que python tem OO mas não é a melhor implementação, baseia-se muito na boa vontade do programador, se tenho o hábito de dizer que um programa tem de ser desenhado à prova de idiotas o mesmo se pode dizer de uma linguagem de programação
Concordo com tudo o que disseste. Eu quando falei da eficácia, referia-me ao Java ter métodos mais eficazes que o Python. Desculpa se a minha frase foi confusa.
Python tem apenas um semi-encapsulamento (public e privado).
Sim, o maior obstáculo de um programador é o utilizador.
Bem já vai para aqui uma confusao axo ke com isto tudo ele já tá com mais duvidas do que tava de inicio
C# dependente de SO??? Deves estar a confundir-te não??
Nunca deves ter ouvido falar do Mono??
Para ficares a saber mais: Mono
Conheço mono de trás para a frente
Mas a nivel de desempenho ainda nao esta ao nivel do .NET framework é como VB tambem existe mas linux mas o desempenho não é tão bom.
Depois desta luta toda acho que java será uma boa 2ª lingua.
Penso que sim, não te vais arrepender!
Fizeste uma boa escolha! Também optei por Java como segunda (já estudei outras, mas considero Python como a minha primeira linguagem que aprendi a sério) linguagem, mas primeiro aprende as bases de OO no Python, depois entendes o conceito no Java que é um instante.
Pá java é do melhor e a melhor maneira de o aprender é ir fazem aos poucos para alem disso tamos cá para ajudar
Qual a diferença entre java, java2 e jsp?
Java é a linguagem de programação em é java2 a plataforma tanto quanto sei
Em relação a JSP tambem conhecidas como servlets faz parte do J2EE e é uma extenção do java para web, com ela é possivel criar paginas dinamicas server-side tal como com php ou asp.