Linguagens.. tantas :|

AMSA

Suspenso
Boas pessoal.

Tenho aqui uma duvida em relação às linguagens.

As mais comuns são aquelas q toda a gente já sabe. Mas tenho umas duvidas qt à simbologia e relações:

Por exemplo, vejo muita gente a escrever: C C# C++

C é diferente de C# ? OU C e C# significa a mesma coisa? C++ difere mto do C(#)? Em q aspectos?

É esta linguagem q é utilziada para os microcontroladores? (C(#))?

Agora o VB. Vejo muita gente tb a dizer q trabalha em VB.NET? Qual é a diferença para o VB "normal", neste caso VB6?

Acho q deveriam criar um topico para os noobs, com todas as linguagens as suas aplicações e também para q quê cada uma serve e com quais se relaciona.

Abraços
 
As aplicações das linguagens não são estáticas. Isto é, muitas vezes podes fazer a mesma coisa usando as diversas linguagens. A única implicação que isso tem é a modularidade ou estrutura da solução.

C, C# e C++ são tudo linguagens diferentes.

C++ é a "aplicação" da orientação a objectos ao C. Ou seja, ao contrário do C podes aplicar o paradigma da programação orientada a objectos, ao mesmo tempo que consegues também ter coisas do C que não tens por exemplo em java ou em C#, de que são exemplo os ponteiros.

O C# foi uma linguagem criada pela microsoft para fazer "concorrência" ao Java. Tem a desvantagem de não ser multiplataformas, mas tem outras vantagens nomeadamente ao nível do desempenho, uma vez que não precisa de máquina virtual.

o .Net é uma framework de desenvolvimento. Não tem obrigatoriamente de ser suportada no VB, mas também no C#, no ASP para quem desenvolve páginas web, etc.

Facilmente consegues tirar mais informações googlando um bocadinho, nomeadamente se quiseres analizar em termos de métricas de desempenho ou se quiseres comparar as diferenças entre elas.
 
Então quer dizer que C é uma linguagem, C# é a concorrente do JAVA e C++ é oriantado ao C.

Então podemos dizer que o JAVA é melhor opção ao C#?

Em relação à começar a programar, quais são as melhores linguagens para começar?

Ouvi dizer que o python é bastante acessivel e nem sequer necessita de antecedentes.

Agora pergunto, qual será a logica hierárquica que devemos tomar?

Python -> JAVA -> Visual basic -> C (e assembly - no meu caso, pois quero iniciar-me nos PICs) -> C++ ?

Outra coisa, Visual Basic é igual ao VB6 ?

Cumps.
 
Sim, pode-se dizer que JAVA é melhor que C#, mas as duas têm a mesma função: POO.

Começaria por Pascal, só para ter umas "luzes" de algoritmia e de programação, seguia então para Python ou C, depois JAVA ou C++. Mas isto sou eu, se tens interesse que o teu código/programa seja portável a outros sistemas, não vás para C# pela razão que o xtr3me já deu.

Estou agora em C, e é bastante acessível (com documentação fica ainda melhor).

http://pt.wikipedia.org/wiki/Java_(linguagem_de_programação)
http://pt.wikipedia.org/wiki/C_sharp

Assim já ficas com umas ideias.
 
Última edição:
Porque é que se pode dizer que java é melhor que C#?

Eu acho precisamente o contrário. A única grande vantagem do Java é ser multiplataformas, mas em termos de desempenho o C# é muito mais rápido e com soluções muito mais "refinadas".

@AMSA:

A comparação que fizeste não é tão linear.

O C++, o C# e o Java são tudo linguagens orientadas a objectos. A diferença está em particularidades. No C++ tens acesso aos ponteiros, como tens em C, mas não tens em Java nem em C#. Em java tens a vantagem de ser multiplataformas, por causa da máquina virtual, mas por exemplo, se fores desenvolver aplicações que não precisas que sejam multiplataforma, é muito melhor usares C# (para mim claro).

Essa comparação que fizeste não está assim muito bem feita.

Eu acho que deves começar por Python, sim. É a minha recomendação. Não percebo é o que está na tua lista o Visual Basic a fazer.

A não ser que precises menos, é uma linguagem dispensável.

Todas elas são linguagens de programação. Das 3 (C, C++, C#) C é a única que não é orientada a objectos.

@loster:

não vás para C# pela razão que o xtr3me já deu.
O que é que eu disse, que lhe diz para não ir para C#?
 
Última edição:
Ele referia-se ao facto do C# não se multiplataformas, daí ter dito aquilo.

Ok.

Ent uma pessoa escolhe uma linguagem consoante o objectivo que quer.

Os meus objectivos primariamente é começar a entrar em contacto com o mundo da programação e neste caso ir ganhando desde já umas luzes até o inicio da univ.

Dps em seguida, ter conhecimentos para poder fazer pequenas aplicações pessoais e de uma maneira geral ter conhecimentos das linguagens existentes e como funcionam.

Por fim, ter os conhecimentos gerias de programação de modo a lançar-me no mundo dos PICs.

Fora isto, se bem que não é muito importante, temos então varias questões.

Antes de mais, referindo ao VB é o facto de ser uma linguagem utilizada para PICs.

Ent aqui vamos, o C++ e C# (e JAVA) são orientados à objectos. Mas quando a gente diz, orientada a objectos, o que significa objectos? Q objectos são esses? Quais as aplicações mais envolventes de volta destas 3 aplicações?

Em relação ao C, não se trata de uma linguagem orientada à objectos. Ent podemos dizer que anda na onda do PASCAL? "livre programação"(?)

Já agora o que são ponteiros? Existem algum livro teórico que faça referências a todo este conjunto de termos bem como a sua teoria?

Abraços (desculpem-me a noobiçe, mas todos começam assim)
 
Estás a pedir para te explicar conceitos que são próprios das linguagens.

Siceramente, isso (saber o que são objectos, saber o que são ponteiros, etc) só vais saber quando estiveres a estudar essas linguagens. Não é difícil explicar, mas perceber a aplicação prática só quando estiveres a estudar essas linguagens.

Escolhe uma linguagem para programar. Começa por Python (na minha opinião).
Percebe os paradigmas básicos, o que são ciclos, o que são funções, etc ...

Depois conforme fores escolhendo outras linguagens (c, java, c++, etc) vais adicionando a esses paradigmas básicos mais conceitos como o de objectos, ponteiros, polimorfismo, etc ...

Não entres nisso para já.

Vais ter várias cadeiras na faculdade onde vais falar sobre essas linguagens e depois então, aí, terás tempo para perceber isso.

Quanto aos livros, como é óbvio, existem. Só que os livros são direccionados para linguagens específicas. Não há nenhum livro que te explique todos os conceitos de toda a programação, porque cada linguagem tem os seus conceitos.
 
@ xtr3me

É possivel compilar java para native code. O GCJ ( http://gcc.gnu.org/java/ ) faz isso! Existem muitos outros que tambem o fazem. Lembrei-me de fazer uma pequena pesquisa por JIT e obtive os seguintes artigos, que me pareceram interessantes e no minimo pertinentes quanto a performance do Java.

http://en.wikipedia.org/wiki/Just-in-time_compilation
http://www.javaworld.com/javaworld/javaqa/1999-04/03-noruntime.html
http://disordered.org/Java-JIT.html
http://www.ibm.com/developerworks/library/j-native.html
http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages
 
Escolhe uma linguagem para programar. Começa por Python (na minha opinião).
Percebe os paradigmas básicos, o que são ciclos, o que são funções, etc ...

Depois conforme fores escolhendo outras linguagens (c, java, c++, etc) vais adicionando a esses paradigmas básicos mais conceitos como o de objectos, ponteiros, polimorfismo, etc ...

Hm. Então diz-me uma coisa - Qd te referes a "vais adicionando esses (..) etc" quer dizer, utilizar o mesmo raciocinio, certo? Não conceitos/regras, pois as linguagens são diferentes, certo?
 
Quanto ao .NET, o mesmo pode ser multiplataforma, a GNU tem o dotGNU ( http://www.gnu.org/software/dotgnu/ ) e tambem existe o Mono.

Como não tenho experiência em .NET não sei dizer se vão existir grandes incompatibilidades entre do framework da microsoft e os outros já referidos.

Seja como for, não vejo necessidade de alguem sem experiência em programação andar a mexer em vb (seja o "normal" ou o .NET), seja em C#. Mas isto sou eu que tenho alguma relutancia a linguagens da microsoft depois de há uns anos ter sido forçado a programar em vb6. Para quem tem origens de programação em TCL, Python, Perl e principal C foi a pior coisa que já fiz. Agradeço por nunca ter tido a brilhante ideia como newbie de ter começado pelo vb, a minha vida hoje seria muito mais complexa porque o C deu-me um background tão grande que se tornou muito facil adaptar-me a grande parte das linguagens seja em que paradigma for (mesmo que sejam paradigmas bem diferentes do que o C usa), é obvio que a experiência noutras linguagens ajudou muito.

Por isso como já disse antes C! No entanto penso que numa fase inicial andar com Pascal ou Python não seja uma má ideia.
 
Quanto ao .NET, o mesmo pode ser multiplataforma, a GNU tem o dotGNU ( http://www.gnu.org/software/dotgnu/ ) e tambem existe o Mono.

Não funciona bem. Pelo menos da última vez que usei não funcionava.

Foi por isso que tive de voltar a instalar windows nas minhas máquinas ...

Hm. Então diz-me uma coisa - Qd te referes a "vais adicionando esses (..) etc" quer dizer, utilizar o mesmo raciocinio, certo? Não conceitos/regras, pois as linguagens são diferentes, certo?

Alguns paradigmas são comuns. A sintaxe pode ser diferente, mas alguns paradigmas são comuns.

Programação funcional (dividir o código em funções), ciclos, etc são conceitos que há em todas as linguagens apesar de a sintaxe (forma como o código é escrito) ser diferente.

Depois há é, para além destes conceitos que são transversais à maioria das linguagens, conceitos que são mais específicos, nomeadamente os que se prendem com a programação por objectos (visto que há linguagens que não o permitem), gestão de memória (visto que há linguagens em que tens de o fazer explícitamente - como o C - e outras em que o garbage collection é feito automaticamente - como em java), ponteiros (que são utilizados em C e C++, mas não em Java ou C# - onde são usadas referências para os objectos), etc.
 
Última edição:
@ xtr3me

É possivel compilar java para native code. O GCJ ( http://gcc.gnu.org/java/ ) faz isso! Existem muitos outros que tambem o fazem. Lembrei-me de fazer uma pequena pesquisa por JIT e obtive os seguintes artigos, que me pareceram interessantes e no minimo pertinentes quanto a performance do Java.

http://en.wikipedia.org/wiki/Just-in-time_compilation
http://www.javaworld.com/javaworld/javaqa/1999-04/03-noruntime.html
http://disordered.org/Java-JIT.html
http://www.ibm.com/developerworks/library/j-native.html
http://en.wikipedia.org/wiki/Java_performance#Comparison_to_other_languages

Isso é verdade, em termos gerais o C# acaba por ter um desempenho melhor.

Acho que as próximas versões do Java vão trazer umas optimizações engraçadas, mas para já, apesar de ser um grande fã do Java, a não ser que queira desenvolver uma aplicação multi-plataforma, a minha preferência vai para o C#. Até por alguns extras, nomeadamente ao nível da framework .NET e de alguns recursos mais refinados que o C# tem em relação ao Java.
 
Nah, editores é diferente de compiladores.

Até podes usar o notepad. Depois cada linguagem tem o seu compilador.

http://techzonept.com/showthread.php?t=112178

Há muita gente que recomenda o Notepad++ para começar editar o código, visto que suporta diversas linguagens. Eu se programar em windows uso o visual studio (ou eclipse para java).


Recomendo logo a ambientarem-se com ide. Primeiro porque dá jeito e depois porque se começam desde logo a ambientar com aquilo.

Pode haver gente a discordar, mas se se habituarem a usar um ide com poucos ficheiros, depois quando já tiverem muitos, não há problema nenhum.

Ou seja, acho que devem começar com um editor simples e um compilador, para perceberem a mecânica da coisa. Que ficheiros são gerados, etc. Ao invés de usarem uma caixa negra como um ide, mas mal percebam isso, já não faz sentido usar ferramentas desse estilo.

Os ide existem para nos ajudar e são bastante úteis.

posto isto, podes começar com o notepad++, que diz quem usa que é bastante bom para começar.


Compiladores:

para C e C++ tens o gcc.
Java é o javac.

Python n tem compilador porque é uma linguagem interpretada. Precisas só do interpretador.
 
Última edição:
Pessoal outra perguntinha.

Qual os minimos requirements necessario para programar?

Um P2 350MHz + 256MB PC100 chega?

Abraços

EDIT: E quanto ao processador, há preferências quanto à marca? INTEL ou AMD?
 
Sim, serve perfeitamente.

Não te preocupes com isso.

Só quando trabalhares com ferramentas mais pesadas como SQL Server e Visual Studio é que precisarás de uma máquina melhorzita.
 
Porque é que se pode dizer que java é melhor que C#?

Eu acho precisamente o contrário. A única grande vantagem do Java é ser multiplataformas, mas em termos de desempenho o C# é muito mais rápido e com soluções muito mais "refinadas".

@AMSA:

A diferença está em particularidades. No C++ tens acesso aos ponteiros, como tens em C, mas não tens em Java nem em C#. Em java tens a vantagem de ser multiplataformas, por causa da máquina virtual, mas por exemplo, se fores desenvolver aplicações que não precisas que sejam multiplataforma, é muito melhor usares C# (para mim claro).

Umas correcções:

C# tem ponteiros
C# é multiplataforma (mono)
C# tem um runtime parecido com o JVM o CLR, todo o codigo é compilado para MSIL que depois é compilado para codigo maquina através do JIT (tambem se pode usar o ngen para geral logo codigo maquina).
 
Última edição:
Não sou grande expert na zona de programação mas pelo que já sei aconselho a começares pelo pascal, visto que é de fácil uso e como ja foi dito dá-te umas luses no que toca a algoritmia. Caso queiras usar visual basic, que também já aprendi, aconselho que o deixes para depois de teres um bom controlo do pascal.
abraço
 
Back
Topo