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

magician

Porquê Java ou Python ou Ruby ... para 1º Linguagem ?

16 mensagens neste tópico

Bom seja o que Deus quiser !

Digam de vossa justiça o porquê de determinada linguagem X ser a ideal para iniciar as lides de programação.

Já ouvi muitas opiniões mas nada de dados concretos do porquê, vamos lá força nisso !

PS : Assim quando começarem aquelas discussões offtopic nós mandamos para aqui lol fica topo brainstorm.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não digo que Python ou Ruby ou Java ou whatever deva ser a 1ª linguagem porque como toda a gente sabe, todas as linguagens têm os seus prós e os seus contras. O que acontece é que Python, tem mais prós que outros (e a seguir vem outro dizer que a linguagem x é que tem), mas pronto. É de fácil aprendizagem, tem incontáveis bibliotecas do próprio Python como feitas por terceiros. Promove o Código-Aberto, é multi-paradigma e super-poderosa (mais que o Super-Homem). Mais não digo por agora porque me estão a chamar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Concordo com o Tharis. Python tem TUDO à mão para o begginer. Com poucas semanas de python e com boas pesquisas na net, podemos fazer aplicações úteis e eficazes. Não sei se com as outras é igual, mas pelo menos... com Python é assim :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok então eu digo porque acho que linguagens como Python, Ruby  e PHP não são boas para um begginer lol e atenção que gosto bastante de Ruby, é muito simples.

Mas gostaria que me explicassem uma coisa quando dizem de fácil aprendizagem em que se estão a basear? tipo porque dizem isso?

Eu aprendi Ruby em 2 dias assim o básico python também mas não gostei e devo dizer que se não fosse as boas bases de C e Java que tenho a coisas não tinha sido assim tão simples! Por isso não percebo porque dizem que python é de fácil aprendizagem.

Bom mas voltando à questão, ora bem python, ruby, php etc... são giros e tal são úteis para fazer pequenos scritps, de baixo custo isso concordo e é bom tá claro, mas também é mau, porque alguém que começa a programar e não tem ideia a mínima do que está a fazer, acaba por programar como costumo dizer à marretada e é ai que estas linguagens falham porque muitas vezes deixam o programador fazer o que lhe apetece muitas vezes não sendo a forma correcta de o fazer nem a melhor.

Já para não falar na parte de serem dinamicamente tipadas, é giro sim senhora mas para começar cria maus hábitos.

Quanto a terem muitas libs não vou comentar :P

Em resumo são boas linguagens disso não há duvida, agora não para quem está a começar, defendo que se deve começar com regras e depois de ter essas regras bem assentes se deve usar então aquilo que facilita a vida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende da maneira como te ensinam IMO. E depende da maneira como aprendes.. Aprendes mais depressa a programar "bem" em Python do que em C ou em Pascal, again, IMO. Tens é que ter um bom explicador (ou boas fontes de leitura). E quem diz Python, diz outra linguagem que seja fácil de ler/escrever.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@post inicial: Depende. Se for para começar a criar atracção com a programação, Visual Basic é uma boa escolha para aplicações off-line, PHP para fazer sites. Toda a gente gosta de ver o fruto do seu trabalho o mais rápido possível, não é verdade? :P Para começar a desenvolver raciocínio lógico? Pascal/Python/PHP. Porquê? Python por causa da semântica do código (posso fazer if not x in y: em vez de, por exemplo, if(!in_array($x, $y)) (PHP)). Embora PHP não possua essa semântica toda, as funções que tem para os 1001 ofícios colmata essa lacuna. Pascal? Bom, é simplesmente a linguagem mais usada para iniciar na programação, 'nuff said. :)

Em relação às libs, não se deve classificar uma linguagem quanto às libs que existem para a mesma mas sim pela facilidade de as criar. Para mim, Python é melhor que PHP, por exemplo, no uso de objectos. Não estou a falar de OOP (atributos públicos, privados, encapsulamente, wtv), mas a facilidade de criar objectos. Eu não me vejo a criar classes em PHP, seja em que situação for, mas também não tenho outra opção para além das arrays. Em Python, encontro sempre vantagens em usar classes.

Em relação à sintaxe, a sintaxe exótica do Python incute logo nos "principiantes" a necessidade de indentar o código por exemplo (em Python é mesmo por obrigação da linguagem, mas nas outras linguagens é obrigação das limitações que temos de memória :)).

Em relação a ter Java como primeira linguagem, isso é muita confusão para quem está a começar a dar os primeiros passos e o mais certo é desistir. Ainda a semana passada tive aqui uma rapariga que entrava em parafuso com VB por não perceber onde tinha que definir uma variável global (as in, dentro de todo o form), imagino como ela ficava se eu lhe metesse à frente uma class de Java... PHP ou Python também têm classes, mas podes programar sem ter de as usar, sem teres de declarar tipos de variáveis, etc. E o mesmo se aplica ao C. Uma das coisas que sempre me afastou do C foi o ter de definir tipos de variáveis e não poder/saber mudar esses tipos a meio do programa, sem contar que a falta de funções auxiliares também ajudou, mas isso já é outro caso. :) C++ é "igual" a C, adicionando apenas objectos e "aquela cena gira do << e >> que na minha opinião é como se não existisse neste caso", pelo que não faz grande sentido começar por C++ em vez de C.

Quando a Ruby, sinceramente não tenho opinião bem formada sobre Ruby. Pelo pouco que vi, parece-me ser uma linguagem que leva o uso de OOP ao extremo mantendo uma extrema simplicidade (coisa que se assemelha a Python, e que me agrada bastante).

Há quem defenda derivados do Lisp (Scheme anyone?) para iniciar, mas sinceramente, a sintaxe de Lisp/Scheme faz-me confusão. :D Idem aspas para o Haskell.

The last but not the least, C#. Pelo que tenho visto ultimamente, C# parece-me mais uma excelente linguagem para iniciar na programação: VB, versão ranhosisse-free. Sintaxe simples e parecida com a de linguagens que iram aprender de certeza (C(++)/PHP/Java), traz o hábito de declarar tipos de variáveis (inicializá-las), mostra resultados rapidamente (VB-like).

PS: Desculpem aí qualquer erro/falta de sentido/wtv, mas estou a morrer e foi uma sorte conseguir escrever este post :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto é um tema um pouco complexo. Tendo em conta as linguagens existentes, se calhar pode ser mais vantajoso aprender uma baseada em C pois é piscar logo o olho a uma carrada de outras linguagens, só por isso, porque de resto considero uma desvantagem apra um principiante começar por linguagens que sejam de mais baixo nivel.

Não sou muito a favor de se começar com exercicios tipo "faça um programa que escreva um triangulo de caracteres na consola". Isso é desmotivante e atrofiante. Penso que o aprendiz se deve sentir desafiado a fazer coisas que realmente funcionem, para as espectativas se poderem moldar conforme a ambição.

Assim sendo, sou da opinião que se deve começar por uma linguagem que seja facil de aprender.

Logo, as mais simplificadas são na minha opinião as melhores.

python e php ou matlab são boas escolhas para quem partilha da minha opinião.

A grande vantagem do python, é ser tão moderna e de ter sido feita a pensar numa carrada de aspectos que as outras ignoram. Por exemplo: a indentação define um bloco e uma newline uma instrução. Isto faz todo o sentido.

Quem diz isto diz muitas outras coisas como a facil manipulação de classes e uso de membros, ponteiros incrementais implicitos, etc.

Estas coisas tornam tudo muito mais facil, poupando assim código de escravo e muito importante tambem retiram dos ombros do programador a preocupação de escrever bom código.

O código python no geral é bom porque a linguagem assim o facilita.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais uma discussão do sexo dos anjos...

A minha opinião sobre o assunto: E porque não?

Isso mesmo, em vez de pensares "porquê" Java ou Python, pensa "e porque não Java ou Python?" Existe alguma coisa contra ser java ou python ou seja que outra linguagem for? Não vejo onde, Java é complicado, sinceramente não vejo onde possa ser, VB dá para veres logo o "fruto do teu trabalho" então e Java não dá? E Python? E C#? E todas as outras que possuem um IDE com editor de interfaces gráficas.

Continuo a achar que qualquer linguagem, serve, o que se devem preocupar é em aprender a programar e não em aprender a linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi,

Eu comecei a programar em Pascal, é não me arrendo nada, até porque actualmente programo em Delphi, e o Delphi partiu da linguagem Pascal, serviu-me os conhecimentos  :)

O Pascal obriga a conhecer bem os ciclos de condições, programação sem ambiente gráfico é mesmo so puro código isso faz o pessoal aprender melhor Códgo doque aprender Visual Basic que não insiste tanto na parte de codigo com o Pascal, em relação a Python nunca programei, por isso não me posso prenunciar sobre o assunto. Java não me parece o mais apropriado para começar.

Linguagem C, tambem é uma boa linguagem para quem quer começar a programar, porque insiste muito na parte de código, e no fundo é a base de toda a programaçao de uma maneira geral.

Cumps :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@djthyrax

Isso de python obrigar a indentar código é um bocado relativo quando programei em python não notei nada porque todos o código que faço por norma é indentado isso vai de cada 1, por acaso foi sempre um coisa que me preocupei e normalmente boas fontes de aprendizagem incutem essa necessidade.

Quanto ao Haskell e etc.... por acaso foi a primeira linguagem que aprendi na faculdade a passagem para Java foi um bocado dura mas também as duas linguagens não tem nada a ver uma com a outra, mas posso dizer que Haskell ajuda muito mais em lógica do que python com o if not x in y ou Java ou C.

Aquilo do declarar tipos é um dos pontos porque acho os python(s) mau para o inicio.

@pedrotuga

Depois de ler o teu post recomendo a passares os olhos por Ruby se achas python moderno lol

@jack

Porque dizes que Java não é bom para começar ?

Excelente POO, sintaxe tipo C que depois dá suporte para muitas outras linguagens, bom sistema de erros ao contrario de C muitas vezes, muito boas ferramentas de desenvolvimento e uma coisa que me tenho esquecido de referir tem um sistema de documentação excelente ainda não encontrei nada tão completo como o javadoc embora já existam outros bons.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais uma discussão do sexo dos anjos...

A minha opinião sobre o assunto: E porque não?

Isso mesmo, em vez de pensares "porquê" Java ou Python, pensa "e porque não Java ou Python?" Existe alguma coisa contra ser java ou python ou seja que outra linguagem for? Não vejo onde, Java é complicado, sinceramente não vejo onde possa ser, VB dá para veres logo o "fruto do teu trabalho" então e Java não dá? E Python? E C#? E todas as outras que possuem um IDE com editor de interfaces gráficas.

Continuo a achar que qualquer linguagem, serve, o que se devem preocupar é em aprender a programar e não em aprender a linguagem.

Penso que a obrigatoriedade de teres de usar objectos logo ao início em Java é mau. Como já foi dito aí num tópico qualquer, OOP só deve ser usado quando é justificado e apenas quando se conhece as vantagens de o Usar.

@djthyrax

Isso de python obrigar a indentar código é um bocado relativo quando programei em python não notei nada porque todos o código que faço por norma é indentado isso vai de cada 1, por acaso foi sempre um coisa que me preocupei e normalmente boas fontes de aprendizagem incutem essa necessidade.

Quanto ao Haskell e etc.... por acaso foi a primeira linguagem que aprendi na faculdade a passagem para Java foi um bocado dura mas também as duas linguagens não tem nada a ver uma com a outra, mas posso dizer que Haskell ajuda muito mais em lógica do que python com o if not x in y ou Java ou C.

Aquilo do declarar tipos é um dos pontos porque acho os python(s) mau para o inicio.

Repara na bold. Se não tivesses bases, sabias lá tu que devias indentar código... :P Em relação a Haskell, não sei programar esse "bicho", pelo que não posso comentar. Em relação ao não ter de declarar tipos, concordo um pouco contigo. Por um lado, quando se mudar para outra linguagem como C, vai-se ter dificuldades em não ter tanta flexibilidade, por outro, acho que para dar os primeiros passos, declarar tipos é um pouco "complicado". Mas pronto, já não concordo com esta minha afirmação quando falamos em VB, talvez graças aos casts automáticos.

@jack

Porque dizes que Java não é bom para começar ?

Excelente POO, sintaxe tipo C que depois dá suporte para muitas outras linguagens, bom sistema de erros ao contrario de C muitas vezes, muito boas ferramentas de desenvolvimento e uma coisa que me tenho esquecido de referir tem um sistema de documentação excelente ainda não encontrei nada tão completo como o javadoc embora já existam outros bons.

O que disse ao Knitter em relação ao OOP também se aplica aqui. Em relação ao resto, já reparaste que um newbie não vai usar 80% daquilo que referiste? :) PHP tem OOP, mas muito pouca gente o usa. Python tem lambda, map, filter, e é raro veres alguém que não seja já batido a usá-los.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na minha opinião qualquer linguagem que cumpra 100% com o paradigma onde se insere, quer seja imperativa, oo, funcional, etc., e que incuta boas práticas de programação é a melhor para começar.

Por exemplo, Pascal é excelente e o BASIC é mau, porquê?

Simples: o Pascal incute boas práticas de programação, não dá (modo geral) "corda para te enforcares" enquanto que o BASIC permite que se façam autênticas alarvidades que muitas vezes quem se está a iniciar nestas andanças nem sequer se apercebe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao resto, já reparaste que um newbie não vai usar 80% daquilo que referiste? :P PHP tem OOP, mas muito pouca gente o usa. Python tem lambda, map, filter, e é raro veres alguém que não seja já batido a usá-los.

Por favor não fales do OO do PHP aquilo nem se devia chamar POO, mas em todo o caso se repares muitos projectos de PHP pedem programadores de PHP com bons conhecimentos de POO.

Quanto a POO para iniciar ser mau pá não concordo mas pronto acho que é tão bom como a programação imperativa ou funcional e é das mais usadas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por favor não fales do OO do PHP aquilo nem se devia chamar POO, mas em todo o caso se repares muitos projectos de PHP pedem programadores de PHP com bons conhecimentos de POO.

Quanto a POO para iniciar ser mau pá não concordo mas pronto acho que é tão bom como a programação imperativa ou funcional e é das mais usadas.

Não deixa de ser OOP o que o PHP tem, até está melhor que o OOP do Python. E sou contra começar logo por OOP, é como começares por usar logo recursividade em vez de "iteratividade", nunca vais conseguir aproveitar todo o potencial da recursividade (OOP) se não souberes fazer as coisas usando "iteratividade" (programação imperativa). Once again, lá porque é das mais usadas, não quer dizer que seja bom para iniciantes, é como usares um Ferrari para aulas de condução.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação à pergunta original.

Isto tudo depende do que a pessoa pretende aprender. Na minha opinião, se a pessoa quer aprender uma linguagem apenas para desenrascar pequenas soluções "caseiras", então aprender Python, Ruby ou mesmo PHP (uhh medo!!!) penso que seja o mais aconselhável.

Agora se a pessoa está aprender uma linguagem, com o intuito de aprender programação para levar uma carreira profissional nessa área. Então fortemente desaconselho começar a aprendizagem com linguagens como Python ou Ruby, não que as linguagens sejam más, mas são multi-paradigmas. E na minha opinião, acho que uma pessoa obtém uma maior aprendizagem se aprender inicialmente através de linguagens focadas num paradigma, C/Haskell/Prolog etc. Da mesma forma que não se deve começar com uma linguagem OOP como C++ ou Java, já que esse paradigma é um subgrupo de programação imperativa, e de igual modo deve-se aprender uma linguagem sem OOP primeiro, como C ou Pascal. Acho que se uma pessoa começar com uma linguagem multi-paradigma, é demasiados conceitos para uma mente virgem. Enquanto numa linguagem pura, a mente está focada apenas naquele pequeno grupo de conceitos, para além de não correr o risco de mistura de conceitos.

E o mesmo se aplica ao C. Uma das coisas que sempre me afastou do C foi o ter de definir tipos de variáveis e não poder/saber mudar esses tipos a meio do programa
Para mudares de tipos a meio do programa em C é simples. Só tens de declarar as variáveis como void*.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pa não é por nada mas o suporte para POO em PHP é super completo.

No PHP4 estava um pouco limitado sim, mas foi reescrito no PHP5 e agora tem todas as funcionalidade que se um programador pode desejar para esse efeito.

Permite poliformismo e herança de classes sem qualquer problema, são as únicas vantagens que consigo ver numa abordagem POO. Não sei quais as grandes falhas que apontam ao POO do PHP.

Betovsky, por uma linguagem ser multi-paradigma não quer dizer que se tenham que abordar os paradigmas todos.

Eu sugiro linguagens de sintaxe simplificada e que sejam praticas de usar.

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