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

fnds

Que linguagem usar, POO?

46 mensagens neste tópico

Duas questões:

-o que é 'Programação Orientada a Objectos'?

-qual é a melhor linguagem para começar a programar pequeno programas?, já tenho conhecimentos em PHP, mas queria começar a criar aplicações gráficas desktop.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para aprender programar, não tem muita lógica ires fazer aplicações gráficas. A programação para criar o GUI é desnecessária e superficial.

Em relação a aprender OOP, acho que a melhor maneira de aprender é com Java usando o BlueJ.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Programação orientada o objectos ora bem deixa lá ver se consigo explicar de uma forma simples, tipo tem as linguagens funcionais que funcionam por métodos como o C, e normalmente o PHP embora este também dê para POO basicamente tens um conjunto de funções que se chamam umas ás outras ou bem no POO tens objectos um Objecto é como se fosse um "Tipo" que tem os seus próprios métodos (funções) e tem as suas próprias variáveis por exemplo o Objecto Pessoa tem a variável nome, idade, sexo e tem por exemplo os métodos maisVelho que incrementa 1 na idade assim podes criar vários objectos pessoa.

Mas isto é assim uma explicação um bocado "bruta" podes ver mais formalmente aqui http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objeto

Quanto a uma linguagem para começar se queres POO recomendo Java ou Ruby embora não tenha grande conhecimento sobre ruby pelo que vi é uma linguagem muito boa a nível e POO tal com Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

tens que separar as coisas, se queres aprender POO deves usar C++, C#, Java, Delphi...Penso que C# é muito simples de usar, em termos académicos normalmente usa-se Java ou C++.

Depois se queres apresentar os teus dados em aplicações já é outro passo!

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou Python, com Glade (GTK), wxGlade (wx), Tkinter...

É só escolher e é muito fácil de aprender a trabalhar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

Por acaso não concordo totalmente.

É preferível começar com Pascal, onde, acima de tudo, não tens corda para te enforcares como no C.

Depois, concordo, Java ou C# para o paradigma OO.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

Por acaso não concordo totalmente.

É preferível começar com Pascal, onde, acima de tudo, não tens corda para te enforcares como no C.

Depois, concordo, Java ou C# para o paradigma OO.

A sintaxe de Pascal é pouco semelhante a C/C++ ou Java ou C# por isso não acho que seja a melhor opção.

Concordo em começar com C ou D ou então porque não Java eu comecei com Java e depois é que aprendi C e D.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

Por acaso não concordo totalmente.

É preferível começar com Pascal, onde, acima de tudo, não tens corda para te enforcares como no C.

Depois, concordo, Java ou C# para o paradigma OO.

Nunca aprendi Pascal portanto não posso contra-argumentar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou indeciso entre c++ e c#, mas acho que vou escolher c++, tenho a ideia (não sei se errada) de que c# é mais para windows, como é usado no Visual Basic.... se estiver errado corrijam-me

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

tens que separar as coisas, se queres aprender POO deves usar C++, C#, Java, Delphi...Penso que C# é muito simples de usar, em termos académicos normalmente usa-se Java ou C++.

Depois se queres apresentar os teus dados em aplicações já é outro passo!

bom trabalho

tofas

podes-te especificar mais?

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

Por acaso não concordo totalmente.

É preferível começar com Pascal, onde, acima de tudo, não tens corda para te enforcares como no C.

Depois, concordo, Java ou C# para o paradigma OO.

Desculpa a ignorância, enforcar como

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Recomendo começares em C e passares para Java. É assim que fazem na minha universidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para começares a programar é C. Dps de perceberes bem C é que passas para POO (aconselho java).

Por acaso não concordo totalmente.

É preferível começar com Pascal, onde, acima de tudo, não tens corda para te enforcares como no C.

Depois, concordo, Java ou C# para o paradigma OO.

Desculpa a ignorância, enforcar como

Não ligues. Começa cm C...

http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

Quote: "We consider that the general adoption of Java as a first programming language is in part responsible for this decline." -> Java -> POO ... começa com uma linguagem de programação funcional tipo C.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um programador não tem de necessariamente saber C, embora seja muito útil perceber linguagens mais baixas (C vs Java ou C#).

Eu aconselho a começares por Java ou C#. São linguagens a que te restringes a usar o paradigma POO sem te preocupares com pormenores "irrelevantes". NÃO aconselho C++ porque torna o código mais complexo e mais extenso do que o que sugeri antes.

Depois de estares á vontade aconselhava toda a panóplia: C++, Python, Ruby.

Não acho que Python ou Ruby sejam indicados para começar, porque primeiro não são linguagens tão .. maduras (arrisco-me a ser linchado por dizer isto..) e porque são linguagens funcionais, e penso que para começar é um crime aprender uma linguagem funcional.

Se quiseres ler livros, pede aqui que deixo uma lista, cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao que é OOP recomendo que procures a resposta na wikipedia (na versão em inglês porque é mais completa)...

Quanto à linguagem recomendo-te Python (com um excelente OOP), ou Perl. Depois passa para C e depois e depois para C++ (para teres o OOP numa linguagem não interpretada)

Java não é uma boa linguagem para começar. É mesmo bastante má!

C não é OOP!

Um programador não tem de necessariamente saber C

Eu acho que tem porque é uma base importante para qualquer outra linguagem. Nem que seja só para comparar.

Eu aconselho a começares por Java ou C#

São péssimas linguagens para começar!

Não por serem difíceis mas por não criarem as bases necessárias.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A eterna discussão do sexo dos anjos :)

Qualquer linguagem é boa desde que ensinada correctamente. POO em Java ou em C++ ou em Python é o mesmo, POO é POO, e conhecendo as 3, o POO de Java é o melhor, mas isso é a minha opinião.

Comecei com C, não perdi nem ganhei nada por ser em C e não noutra linguagem. Tem uma sintaxe que é parecida com quase todas as outras linguagens que aprendi, talvez por ter sido a primeira todas as outras me parecem com C em qualquer ponto ou diferem de C em qualquer ponto.

Passei por tantas linguagens que sinceramente, acho que são todas boas e todas más, depende de como te ensinam, se te ensinarem a programar, qualquer linguagem serve, se te ensinarem a linguagem X ou Y então talvez estejas a aprender mal.

Escolhe uma, aprende o paradigma que ela usa, aprende a programar, depois concentra-te na linguagem.

Melhor para aplicações gráficas é a que escolheres, sinceramente, existem bons IDEs numa ou noutra, piores em algumas, mas se souberes programar na linguagem o IDE é só algo que acelera a produção não é algo que se imponha na produção, ou pelo menos não devia ser.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exatamente. Agora chega a um ponto em que é uma questão de preferência. Pronto chegamos a um acordo.

Seja Java ou Python, C# ou Ruby é bom é que aprendas POO. É um mundo à parte e que torna a programação.. infinitamente mais simples.

Qualquer dúvida coloca por aí

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora por falar em Ruby embora nunca tenha programado a serie com esta linguagem é segundo sei uma das poucas se não a única linguagem actual que é totalmente OO, ou seja tudo nela é um objecto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora por falar em Ruby embora nunca tenha programado a serie com esta linguagem é segundo sei uma das poucas se não a única linguagem actual que é totalmente OO, ou seja tudo nela é um objecto.

Referes-te a uma linguagem pura OO. Existem várias, assim de imediato há também SmallTalk.

Tens também C#. Apesar de não ser pura, também não é "impura"... é assim para o meio. Tens as classes e tens os tipos primitivos, como em Java, mas ao contrário de Java, os tipos primitivos também funcionam como instâncias de classes. Teres 42.ToString(); é válido. A vantagem é que os tipos primitivos ficam alocados na stack, ao invés dos objectos que ficam alocados na heap. Por isso é que em C# tens também structs, que são similares às classes, mas que como os tipos primitivos, ficam alocados na stack. Acaba por ter a vantagem dos 2 mundos...

Em relação ao tópico, concordo totalmente com o Knitter. É por isso que recomendei Java + BlueJ. Acho que a combinação para aprender OOP é do melhor. Não tenho conhecimento que exista algum IDE tipo BlueJ para as outras linguagens.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora por falar em Ruby embora nunca tenha programado a serie com esta linguagem é segundo sei uma das poucas se não a única linguagem actual que é totalmente OO, ou seja tudo nela é um objecto.

Correcto. Acaba por ser útil.

Uma das features do Ruby que eu venero e que gostava de ver espalhada por tudo o que é linguagens de boa gente é poder redefinir classes "on-the-go". Alterar métodos e acrescentar assim á tonta.

Outra cena engraçada é que como a syntax daquilo não és obrigado a por os () quando chamas métodos podes fazer do género

class A

{

    int graus;

    int graus

    {

        return graus * CONSTANTE_FARENHEIT;

    }

}

(são dos primeiros exemplos da linguagem para quem ficar curioso)

Por acaso esse funcionalidade tem bue pinta :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só outra coisa que me lembrei e que é uma coisa MUITO importante em OO é Overloading, que tanto o Ruby como o Python não têem. É considerável a falta que faz, porque torna impraticáveis muitos dos padrões mais conhecidos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Overloading é teres funções com o mesmo nome, mas com argumentos diferentes.

Isto utiliza-se logo nos constructores:

public class Person {

     String name;
     String phoneNumber;

      public Person(String name){
         this(name, "N/A");
     }

    public Person(String name, String phoneNumber){
         this.name = name;
         this.phoneNumber = phoneNumber;
     }
}

Exemplo da wikipedia

Depois é utilizado em métodos:

Para um jogo de pedra papel tesoura..

ANTES

class Pedra
{
    void joga(Peca p)
    {
        String tipo = p.getClassName();

        if (tipo == "Pedra")
        {
            "Empate";
        }
        else if (tipo == "Papel")
        {
            "Derrota";
        }
        else if (tipo == "Tesoura")
        {
             "Vitoria";
        }
     }
}

DEPOIS

class Pedra
{
     void joga(Pedra p)
     {
         "Empate";
      }

     void joga(Papel p)
     {
         "Derrota";
      }

     void joga(Tesoura t)
     {
         "Vitoria";
     }
}

Além de isto ser muito mais fácil de acrescentar novos tipos de peças (acrescenta-se mais um método), é mais rápido (overloading é mais rapido que if's) e é mais simples de ler o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O PHP também peca nisso. Deve-se tudo às linguagens em que não é preciso especificar o tipo da variável e portanto não dá mesmo para implementar estas capacidades.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuo a achar que nao deves começar cm uma linguagem POO. Já leste o artigo que indiquei no post anterior?

É que se vais para alguma área de eng. informatica entao aconselho mesmo uma linguagem tipo C que é funcional...ou entao faz cm no IST...aprende Scheme  :biggrin:

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