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

wrproject

vale a pena aprender c#?

43 mensagens neste tópico

boas pessoal, eu sou iniciante em C, brevemente tou a pensar avancar em c++.

tenho reparado que o c# cada vez ta a ganhar mais terreno.

muita gente diz que o c/c++ permite criar aplicacoes mais sostificadas, outras dizem que é o c#.

a minha pergunta é: qual das linguagens permite criar aplicacoes mais sostificadas e com qualidade, o c/c++ ou o c#? fico a espera da vossa resposta.

cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A qualidade da aplicação depende do programador, não da linguagem.

Isto é, qualquer uma das linguagens te permitirá a criação de aplicações de qualidade, desde que faças por isso.

Podes dizer que C# te facilita o trabalho, muito devido ao IDE usado e às ferramentas e assistentes que o mesmo oferece e que os IDEs de C/C++ ainda não possuem.

Não sei que conhecimento de programação tens, mas pela minha experiência, se souberes Programação Orientada a Objectos, C# é uma linguagem fácil de usar e aprender quando usada em conjunto com o Visual Studio 2005, se não souberes POO, C# usando VS2005 poderá fazer com que consigas fazer aplicações para desktop e com interface gráfica sem grandes conhecimentos, novamente, o que ajuda é o IDE e não a linguagem.

Resumindo, até em Javascript se fazem aplicações sofisticadas e com qualidade, veja-se o exemplo da tecnologia AJAX, que embora não seja só Javascript, faz muito uso da mesma e permite criar aplicações muito boas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ao mesmo nível em que sentido? Comparar linguagens é extremamente complicado, e é minha opinião que não se deve fazer, uma linguagem adapta-se consoante o projecto em causa e todas as condicionantes que o mesmo contém.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

por exemplo, existem funcoes de baixo nivel que o c oferece, o c# tambem oferece neste sentido?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também já fiz essa pergunta embora depois de ter explorado um pouco a linguagem vi que não se encaixava nos meus padrões de desenvolvimento lol principalmente porque programa em linux e C# fora do Windows ainda está muito verde e por isso decidi continuar a aprofundar o Java :(

Quanto a C++, pá concorde que C deve ser das linguagens que se deve aprender mas C++ não sei pk do que vi não gostei muito e por isso estou a optar por D mas isso vai dos gosto e jeito de cada um não podemos todos programar no mesmo lol.

por exemplo, existem funcoes de baixo nivel que o c oferece, o c# tambem oferece neste sentido?

Se te referes a apontadores se não me engano C# também permite isso mas não esquecer que C/C++ são linguagens nativas C# é uma linguagem interpretada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vamos tentar manternos no tópico senão daqui a minutos estamos a discutir as virtudes e falhas de Java :(

Ainda não percebi em que sentido tentas colocar ao mesmo nível.

São duas linguagens orientadas a objectos. C# é uma linguagem mais nova e supostamente aprendeu com alguns erros de Java e de C++, no entanto, na minha opinião, é POO para programadores de VB, isto no que toca à plataforma de Microsoft. Possui muitos dos pormenores do VB, e isso não é um elogio, é mesmo uma falha. Por outro lado, e novamente se usares tecnologia de Microsoft, nomeadamente o VisualStudio 2005, tens um IDE que é uma ferramenta bastante poderosa e que ajuda bastante no desenvolvimento.

C++ é uma linguagem mais velha, definida com um standard mais que revisto, mas cujas ferramentas, pelo menos no que toca ao desenvolvimento de interfaces gráficas, deixa muito a desejar. É uma linguagem onde é necessário saber programar muito bem, e torna os erros coisas bastante destruidoras. Mas é uma linguagem bastante usada, com muitas provas dadas e com caracteristicas que a fazem linguagem de eleição em muitas situações.

Uma é na generalidade interpretada e outra é sempre compilada nativamente. Qualquer uma das duas possui uma enorme comunidade e material de apoio, e qualquer uma das duas permite fazer qualquer tipo de aplicação.

C# tem ainda webservices e pode ser usado em ASP.Net.

Se tivesse de te recomendar uma, recomendava C#, se deres um tiro no pé apenas perdes uma unha :)

Nota: D não vem substituir C++, há espaço para as duas :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim se a escolha recai entra C++ e C# também recomendo C# :( Mas isso vai depender do que queres fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

infelizmente o C# é cada vez mais solicitado no mercado de trabalho. no entanto, não tenciono dedicar-me a ela, devido aos problemas de portabilidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sei C e C#, C++ não sei, mas do código que vejo parece-me ser um bocado mais confusa do que C#, portanto eu dessas duas escolhia de caras C#, até porque é a minha linguagem preferida :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu estou muito virado a criar aplicacoes para dispositivos portateis(PSP, NDS,etc..), sei k o c da para criar aplicacoes para dispositivos portateis através do uso de bibliotecas especificas, mas será que o c# tem poder para isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É assim, se queres agora aprender POO esquece C++. C++ é dos piores hacks já feitos, pior mesmo só o POO em Perl. É uma completa salgalhada de ideias.

Parecendo-me que começas-te a aprender a pouco tempo, aconcelho-te C# ou Java. Ambas linguagens têm uma sintaxe muito parecida com C e que deverias adaptar-te bem, para além disso têm uma comunidade bastante grande em caso de problemas. Em C# tens o problema de não haver de momento muito suporte para além da plataforma Windows.

Tens também D como alguém já disse, que também é uma boa escolha mas é uma linguagem mais recente e portanto tem uma comunidade menor, o que em caso de resolução de dúvidas será mais complicado.

eu estou muito virado a criar aplicacoes para dispositivos portateis(PSP, NDS,etc..), sei k o c da para criar aplicacoes para dispositivos portateis através do uso de bibliotecas especificas, mas será que o c# tem poder para isto?

É assim o C# faz parte do .Net que tem uma versão para dispositivos móveis que é a Compact Framework. O meu trabalho no dia a dia é exactamente isso. Fazer aplicações para termináis portáteis industriais e o C# nesse aspecto é muito bom devido à plataforma .NET CF. Agora para a PSP e a NDS não sei se há uma versão de disponível. É uma questão de veres mas tenho as minhas dúvidas.

A qualidade da aplicação depende do programador, não da linguagem.

Se eu percebi bem, estás a dizer que 2 programadores com o mesmo nível, a fazer a mesma aplicação durante o mesmo tempo, um a usar assembly e o outro a usar C, vão fazer duas aplicações de qualidade igual?

C# é uma linguagem mais nova e supostamente aprendeu com alguns erros de Java e de C++, no entanto, na minha opinião, é POO para programadores de VB, isto no que toca à plataforma de Microsoft. Possui muitos dos pormenores do VB, e isso não é um elogio, é mesmo uma falha.

Podias explicar um bocado melhor? Não percebo o que queres dizer com C# é POO para VB? As duas linguagens estão em espectros opostos. VB tem um sistema de tipos dinâmico enquanto C# tem um sistema de tipos fortemente tipado, que por acaso ainda é mais rígido que o do C++.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens também D como alguém já disse, que também é uma boa escolha mas é uma linguagem mais recente e portanto tem uma comunidade menor, o que em caso de resolução de dúvidas será mais complicado.

A comunidade de D é muito pequena, mas todas as dúvidas que tenho são sempre esclarecidas no canal #d.tango @ FreeNode. Nesse canal costumam estar os developers da bibliotecas de D, developers dos compiladores, tudo malta muito skilled mesmo.

wrproject, recomendo-te que aprendas C# ou Java, na minha opinião é o melhor para a tua carreira profissional. :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya, vendo isso acho que vou aprender mesmo c#, mas ja agora digam-me uma coisa, para eu aprender c#, tenho que ter conhecimentos basicos em c e c++, ou só em c?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya, vendo isso acho que vou aprender mesmo c#, mas ja agora digam-me uma coisa, para eu aprender c#, tenho que ter conhecimentos basicos em c e c++, ou só em c?

Isso é daquelas perguntas que não têm um resposta única. Se souberes C ou C++ vais ter mais facilidade em aprender outra linguagem baseada nos mesmo paradigmas, mas não é necessário ter conhecimentos prévios para aprender C#.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A qualidade da aplicação depende do programador, não da linguagem.

Se eu percebi bem, estás a dizer que 2 programadores com o mesmo nível, a fazer a mesma aplicação durante o mesmo tempo, um a usar assembly e o outro a usar C, vão fazer duas aplicações de qualidade igual?

Sim, considero que a qualidade da aplicação, e por qualidade não digo funcionalidades, digo qualidade de código e de lógica de aplicação é a mesma. Dois programadores que tenham ambos um mesmo nível de conhecimento das suas linguagens farão um trabalho igualmente bom. Claro que um pode fazer o trabalho mais depressa que outro, não conheço IDEs para assembly :(, mas considero que mais que a linguagem é a capacidade do programador que importa.

C# é uma linguagem mais nova e supostamente aprendeu com alguns erros de Java e de C++, no entanto, na minha opinião, é POO para programadores de VB, isto no que toca à plataforma de Microsoft. Possui muitos dos pormenores do VB, e isso não é um elogio, é mesmo uma falha.

Podias explicar um bocado melhor? Não percebo o que queres dizer com C# é POO para VB? As duas linguagens estão em espectros opostos. VB tem um sistema de tipos dinâmico enquanto C# tem um sistema de tipos fortemente tipado, que por acaso ainda é mais rígido que o do C++.

Programo principlamente em Java, é a linguagem que mais gosto e na qual mais me entendo, sei C, um básico de C++. Uso .Net e consequentemente VB/C# por obrigação, sempre tive grande resistência em relação ao VB, não gostava da sintaxe nem da forma como a linguagem funcionava. Este ano tive a oportunidade de escolher entre VB e C#, claro que escolhi C#, toda a gente dizia que era melhor, que tinha mais funções/capacidade, isto falando dos meus colegas de curso. Depois de trabalhar com as duas a diferença não é assim tanta. Ok, são duas linguagens com principios diferentes, mas mesmo a documentação na MSDN dá a ideia que a microsoft se preocupou muito em que C# fosse fácil de usar para os programadores de VB, que são imensos.

Posso procurar uns exemplos e mandar-te, mas coisas como a aplicação do operador "new" a métodos, que mata completamente o POO, a necessidade de ter obrigatoriamente de marcar qualquer método que possa ser redefinido como tal, a forma como na sintaxe de C# se usam vectores, diferente de C/C++, enfim, uma quantidade de pormenores que fazem com que sempre que  estou a programar em C# me lembre de VB.

Também existem diferenças, a questão dos tipos de dados, com referiste, a não necessidade de colocar os parametros num método em VB conta a obrigatoriadade de colocares todos os parametros de um método em C#, e outras. Mas não são suficientes e são mais as semelhanças que as diferenças, por isso continuo a achar que é POO para programadores de VB, mas como disse é a minha opinião e vale o que as opiniões vale: nada :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A qualidade da aplicação depende do programador, não da linguagem.

Se eu percebi bem, estás a dizer que 2 programadores com o mesmo nível, a fazer a mesma aplicação durante o mesmo tempo, um a usar assembly e o outro a usar C, vão fazer duas aplicações de qualidade igual?

Sim, considero que a qualidade da aplicação, e por qualidade não digo funcionalidades, digo qualidade de código e de lógica de aplicação é a mesma. Dois programadores que tenham ambos um mesmo nível de conhecimento das suas linguagens farão um trabalho igualmente bom. Claro que um pode fazer o trabalho mais depressa que outro, não conheço IDEs para assembly :(, mas considero que mais que a linguagem é a capacidade do programador que importa.

Non sense. Se as linguagens não interessassem, como é que explicas a continua evolução das linguagens de programação?

Obviamente a qualidade de código vai ser afectado pela linguagem. Quanto melhor for a linguagem, mais esta permite ao programador focar-se numa solução para o problema do que pensar em como implementar a solução para o problema. Quanto mais complexo vão ficando os sistemas aplicacionais, mais é importante uma linguagem de mais alto nível para permitir ao programador cada vez abstrair-se na solução.

Se não o surgimento de C/C++, Java, C#, Python, Ruby, etc era desnecessário. Podia-mos estar ainda a programar em Fortran.

Podias explicar um bocado melhor? Não percebo o que queres dizer com C# é POO para VB? As duas linguagens estão em espectros opostos. VB tem um sistema de tipos dinâmico enquanto C# tem um sistema de tipos fortemente tipado, que por acaso ainda é mais rígido que o do C++.

Programo principlamente em Java, é a linguagem que mais gosto e na qual mais me entendo, sei C, um básico de C++. Uso .Net e consequentemente VB/C# por obrigação, sempre tive grande resistência em relação ao VB, não gostava da sintaxe nem da forma como a linguagem funcionava. Este ano tive a oportunidade de escolher entre VB e C#, claro que escolhi C#, toda a gente dizia que era melhor, que tinha mais funções/capacidade, isto falando dos meus colegas de curso. Depois de trabalhar com as duas a diferença não é assim tanta. Ok, são duas linguagens com principios diferentes, mas mesmo a documentação na MSDN dá a ideia que a microsoft se preocupou muito em que C# fosse fácil de usar para os programadores de VB, que são imensos.

Por documentação refereste às bibliotecas? É que se for é normal que seja similares, já que a documentação é referente ao .Net e não própriamente à linguagem em si. Se usares outra linguagem qualquer em .Net (sem ser VB/C#) irá usar a mesma documentação.

Posso procurar uns exemplos e mandar-te, mas coisas como a aplicação do operador "new" a métodos, que mata completamente o POO

Presumo que estejas a referir aos delegates. Primeiro os delegates não têm o propósito de ser estilo VB mas sim a tender para o funcional. Os delegates são uma tentativa de tornar as funções como cidadas de primeira classe ou seja adotar uma vertente pelo paradigma funcional (claro que a implementação no C# ainda está a anos-luz das ditas linguagens funcionais). A M$ está a tentar tornar o C# numa verdadeira linguagem multi-paradigma e tem ideias tiradas às linguagens funcionais. O C# 3.0 ainda reforça mais essa abordagem com o sistema de delegates melhorado, inferência de tipos, o LINQ, etc. Mas voltando aos delegates, neste momento os delegates é senão mais que uma notação facilitada de trabalhar com funções. Na realidade ao usares um delegate, o C# por trás está a criar uma classe e por a função nessa classe, e por isso é que precisas do "new", mas em Java é igual para além que tens de criar a classe à mão. Não sei se ainda é assim ou se houve desenvolvimento nessa área, já não pego em Java desde o 1.5.
a necessidade de ter obrigatoriamente de marcar qualquer método que possa ser redefinido como tal
Mas isso faz parte do POO, ou também vais dizer mal de teres que marcar um método como publico ou privado? O facto de poderes marcar um método redefenivel estás a por uma salvaguarda. Imagina que tens vários métodos alguns públicos outros privados que dependem de um método X, se puderes redefinir esse método X à vontade, os outros métodos que dependem dele podem deixar de funcionar em condições daí podes por essa restrição e manter o método como público e no entanto tens a salvaguarda que os outros métodos que dependem dele continuam a funcionar bem.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os meus "dois cêntimos": sim vale a pena aprender C#! É uma das linguagens mais requisitadas actualmente a nível profissional, isso só por si é razão suficiente para que se saiba, pelo menos, "martelar" a coisa.

Mas mais importante que saber C#, é conhecer o paradigma OO. Depois a linguagem que usares para a suportar passa a ser "secundário", quer seja C#, Java ou C++, se souberes OO, vais facilmente saltar entre linguagens que assentam neste paradigma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso nem me tinha lembrado dos delagates :(

Vou comentar apenas a útlima parte, a do POO, porque o resto está relacionado com a opinião que tenho, e como disse é apenas uma opinião, não quer dizer que eu esteja certo.

No caso do POO, em Java não tens de marcar todos os método como redefiniveis para os puderes redefinir. Isto é, se um método é público/protegido, então as subclasses podem redefini-lo, no C# isso não acontece da mesma maneira, tens de dizer que o método pode ser redefinido em todos os que queres que sejam.

O que eu acho que não seria necessário, porque quando desenhas um sistema sabes logo que métodos devem ser públicos, e assim poderem ser redefinidos, ou os que são privados e não podem ser redefinidos. O exemplo que deste é um mau exemplo, se vários métodos dependem de um método X, então das duas uma, ou o método X não devia ser público, ou a alteração foi mal feita porque redefinir um método significa reescrever a forma como ele funciona, não os parametros que devolve nem os que recebe, logo o método continuaria a funcionar e os que dependiam dele também, aliás, esse é o principio do encapsulamento, poder mudar o que quiser desde que não altere a interface de comunicação.

Neste ponto acho que dá mais trabalho ao programador ter de marcar um método público/protegido com mais uma palavra. Não tem sentido na minha opinião, mas novamente é uma opinião.

Na experiência que tenho, e sendo um programador de Java, a palavra reservada extra e a necessidade de ter de marcar explicitamente um método como redefinivel não são necessários, o Java não precisa disso e não funciona pior.

Mas o problema deve ser mesmo o de estar demasiado habituado a programar em Java, a visão tolda-se :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É assim, se queres agora aprender POO esquece C++. C++ é dos piores hacks já feitos, pior mesmo só o POO em Perl. É uma completa salgalhada de ideias.

Estou em completo desacordo com esta afirnação. O C++ não é nenhum hack nem nunca foi. A linguagem foi desenvolvida para ser uma linguagem OO e que veio colmatar inúmeras falhas do C. Para além disto, o C++ permite que código C seja integrável com as aplicações que cries, o que pode-se dizer que é uma "linguagem 2 em 1". Apesar de ter desvantagens como qualquer outra linguagem é uma linguagem madura, com muita documentação e usada em bastantes aplicações profissionais e em diferentes áreas de negócio. Se C++ não tivesse vantagens comprovadas na prática não era tão usada.

Os meus "dois cêntimos": sim vale a pena aprender C#! É uma das linguagens mais requisitadas actualmente a nível profissional, isso só por si é razão suficiente para que se saiba, pelo menos, "martelar" a coisa.

Mas mais importante que saber C#, é conhecer o paradigma OO. Depois a linguagem que usares para a suportar passa a ser "secundário", quer seja C#, Java ou C++, se souberes OO, vais facilmente saltar entre linguagens que assentam neste paradigma.

Claro que vale a pena aprender a programar em C#. Quanto mais não seja, pela piada de aprender uma linguagem cada vez mais usada hoje em dia. O importante é conhecer os conceitos que estão inerentes ao paradigma de POO e depois aplicá-los com uma linguagem à escolha que suporte este paradigma. E não existe apenas o Visual Studio da Microsoft para programar em C#, há também o Mono (http://www.mono-project.com/Main_Page) que é um editor que recomendo experimentarem e para além disso é open source.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E não existe apenas o Visual Studio da Microsoft para programar em C#, há também o Mono (http://www.mono-project.com/Main_Page) que é um editor que recomendo experimentarem e para além disso é open source.

Mono é a implementação alternativa da plataforma .NET. Deves estar a referir-te ao MonoDevelop, um IDE de C#. :(

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