Java, C#, C, C++, VB, PHP… Vai de que?

Sempre que inicio uma conversa com algum programador e toco no assunto linguagens de programação, uma coisa que sempre gera polêmica é a preferência por linguagens. Enquanto uns são defensores ávidos da plataforma Java e sempre enchem o peito para falar das vantagens oferecidas por ser multiplataforma, outros são Microsoft lovers e defendem a plataforma .NET como se fosse a única plataforma robusta existente no mercado sempre tocando no assunto interoperabilidade afirmando ser o que há de mais moderno no mercado, e isso sempre varia de programador para programador de acordo com a sua especialidade.

Muitos deles já trabalharam com outras plataformas, mas aquela história do amor a primeira linha é o que dizem ser o motivo por tais paixões. O programador, apegado à uma linguagem de programação, torna-se similar a um partidário de um partido político que irá se valer de todos os argumentos possíveis e imagináveis para tentar te convencer de como o seu “lado da força” é o melhor a ser escolhido, mesmo que nunca tenha ponderado o que de útil os outros também podem fazer. Quando me fazem a pergunta “Em que linguagem você programa?” minha primeira resposta é C# (CSharp) por ser a linguagem que mais me aprofundei até o momento mas juntamente a essa resposta digo “E em qualquer outra que for preciso!”.

O ponto em que eu gostaria de chegar é que linguagens de programação mudam apenas de nome, sintaxe e paradigma de desenvolvimento. Não importa se é Orientada à Objetos, se é Procedural ou se é uma linguagem dinâmica fracamente tipada, isso não faz a mínima diferença. A partir do momento em que você desenvolve seu conhecimento através de uma linguagem e aprimora sua lógica, migrar para outra plataforma é apenas uma questão de ter afinidade com as diferenças entre a linguagem pretendida e a linguagem que se domina, algo que em algumas semanas e um bom livro podem resolver facilmente, dependendo é claro de sua dedicação. O que devemos levar em conta é que independente de nossa formação, Ciência da Computação, Análise de Sistemas, Sistemas da Informação ou qualquer outro curso relacionado à área somos formados para desenvolver e criar tecnologias/soluções e tornarmos realidade aquilo que nossos clientes sonham para seus negócios, independente de usarmos a linguagem X, Y ou Z. Em nossas vidas profissionais vamos nos deparar com diferentes projetos, cada um com uma peculiaridade específica, que talvez envolva a utilização de diferentes tecnologias de modo que os seus objetivos sejam alcançados da melhor maneira possível sempre levando em consideração a excelência para o seu desenvolvimento.

Sim, você pode ter suas preferências, mas nunca feche os olhos para o que acontece ao seu redor, pois, linguagens, padrões e técnicas de desenvolvimento mudam rapidamente com o passar do tempo, e manter-se fechado apenas à uma plataforma pode ser um fator que coloque sua carreira em jogo por não estar aberto a novas experiências e deixando de lado o dinamismo que todo profissional de IT necessita ter em seu dia a dia.

Buscando referências um pouco mais concretas, de acordo com o livro The Pragmatic Programmer, nós, desenvolvedores, devemos aprender uma linguagem de programação por ano, ou seja, temos que nos atualizar, vivenciarmos novos conceitos, sairmos do nosso ‘quadradinho’, enxergarmos o mundo de possibilidades que nos envolve e tudo o que pode ser feito combinando diversas tecnologias. Dessa maneira, pode-se obter a excelência exigida em qualquer projeto e que independente do que for utilizado como tecnologia ele seja desenvolvido.

Portanto, não devemos deixar de nos fazermos a seguinte pergunta: “Será que se fechar em torno de uma única plataforma realmente irá trazer o sucesso profissional que temos buscado?”, pense nisso.

Marvin Ferreira

Mais artigos deste autor »

Sou mestrando em Engenharia da Computação pela Escola Politécnica da Universidade de São Paulo (POLI-USP), Bacharel em Ciência da Computação pela Pontifícia Universidade Católica de São Paulo (PUC-SP), possuo as certificações Microsoft Certified Trainer, Microsoft Certified Professional Developer e Microsoft Certified Technology Specialist. Atualmente sou Engenheiro de Software na ClearSale S/A, instrutor de treinamentos oficiais Microsoft e pesquisador do Laboratório de Engenharia do Conhecimento (KNOMA) da Escola Politécnica da USP.


17 Comentários

Marvin Ferreira
2

Bom Wellington, não vejo nenhum problema em ser especialista em alguma linguagem, tanto que eu mesmo busco um aprofundamento mais específico, a principio, em uma única plataforma.
Mas o que vejo hoje são muitas pessoas que se “fecham” e não percebem que virando as costas para as oportunidades que estão ao seu redor apenas diminuem as chances de destaque no mercado, ou seja, você acaba se tornando um profissional que serve apenas para determinado tipo de projeto, deixando de obter experiência com as demais oportunidades que poderiam agregar um valor considerável ao seu desenvolvimento profissional.

Abraços,
Marvin Ferreira

Diego Cardoso
3

Marvin,

Bom dia, parabéns pelo excelente artigo !

Concordo plenamente com a sua opinião, acredito que seja essencial você ser especialista em uma determinada linguagem, mas não deixar de conhecer outras para que não perca eventuais oportunidades de emprego que possam surgir no decorrer da demanda de projetos.

Sou estudante de Sistemas de informação e estou no penultimo ano, comecei a estagiar recentemente e para minha própria surpresa que sempre estudei java, estou trabalhando com C# + ASP.NET.

Estou achando excelente a oportunidade e ja penso em trabalhar com o C# também, mas como todo ínico estou com muitas idéias para projetos, muitas dificuldades e pouco tempo para elaborar tudo isso rs.

Abraços e novamente parabéns pelo artigo !

[ ]´s

Diego Cardoso

Felipe Kautzmann
4

Excelente artigo Marvin, parabéns.

Também concordo com sua opinião e com o amigo Diego que hoje em dia você deve se especializar em alguma linguagem, porém, como você disse: não deixar de enxergar o que está saindo do forno pois nossa área felizmente está em constante mutação.

Procuro manter essa visão, sempre pesquisando e obtendo informações sobre o que há de novo no nosso mundo.

Trabalho com .NET a alguns anos e atualmente tive que encarar o Mobile Development, foi o que me apareceu aqui na New Zealand onde estou morando atualmente, só utilizo outras linguagens quando não tenho alternativa, como por exemplo: paralelamente ao meu projeto .NET Mobile estou desenvolvendo uma aplicação para Android o que me força correr para C++ que não é minha especialidade, assim como o crescimento do iPhone que não posso ficar de fora, o que me força correr para o Objective-C 2.0.

Essa é a minha visão, e como um bom programador e Geek não gosto de ficar por fora de nada.

Um abraço e continue com seus artigos.
Cheers from NZ ;)

Júlio César ( TENACCO)
5

Olá, Marvin…
Estou começando a descobrir esse lado agora; estou no mundo digital a 03 anos e cada ano que passa, me interesso mais. – Eu era hyppie, vivia alienado a tudo! Graças a Deus, me regenerei. rsrsrsrs… isso não vem ao caso.
Com esse artigo, muito bem elaborado; você me tirou uma dúvida que me atormentava desde que resolvi seguir a carreira e buscar me aprofundar mais. Qual a melhor linguagem de programção?!*
Vlw, man
Bons ventos

eder
6

primeiramente parabns pelo topico.
eu estou começando com o C# .net e asp.net
meu professor é programador em vb, java, e C#

oq ele me disse é nun fik preso apenas em uma linguagem
e ter uma visão de mercado

Adalberto Olegario
8

Na minha opinião um desenvolvedor deve se tornar especialista em C# e programador em java e .NET que são a sensação do momento ,lembrando que o C# é a linguagem base e que um especialista em C#,C,C++ vai ser quase que automaticamente especialista em qualquer linguagem de alto-nivel no qual a maioria das linguagens de hj são derivadas dele.
Muitos se amarram e até brigam para defender liguagem A ou B e se esquecem da onde elas foram inspiradas ou até mesmo que C# é utilizado para escrever sistemas operacionais, da para perceber o tamanho do poder de fogo desta linguagem.
Novas Linguaguem são criadas todos os anos por questão de Marketing e necessidade do mercado vender novas tecnologias,mas nada se cria tudo se copia e se evolui assim como o C,C#,C++ derivou da linguagem BCPL , e tantas outras derivam dela.
Acredito que para se obter sucesso na area ser especialista em C é fundamental ter boa pratica com Java e .NET extremamente necessario ja que são as linguagem do momento assim sendo uma livre e a outra proprietaria e acredito que a briga entre as duas daqui para frente vai ser boa ja que a Oracle agora detem o controle do java.
Fica a dica para ser um bom programador
Se torne especialista em C,C#,C++ , se aprofunde em Java ,e .NET que estão na moda o ingles fluente é indispensavel e lembre-se outras linguagem vão entrar no mercado e se tornar popular assim como java e .NET mais se vc tiver bom conhecimento em C tudo fica mais facil.

Anderson
9

Bom comentário Adalberto, vc só não entendeu q c# é uma das linguagens de programação da plataforma .net da Microsoft e nenhuma das outras q vc falou deriva dela. A verdadeira linguagem mãe do c++, java e c# é o puro “C”. As demais ssão apenas dialetos da liguagem “C”. Esta sim, é a mais usada no desenvolvimento de sistemas operacionais e outros softwares de base.

Diangelisj
10

O que realmente importa é programar, ter uma base bem fundamentada, ver qual das alinguagens você cria mais afinidade ir atrás de mais conhecimento, claro, sempre de olho aberto para todas as linguagens. Concluíndo programar é o que importa.

PS: comecei com visualbasic, andei por várias linguagens, dei uma passadinha por C++ hoje estudo Java e faço mais coisas com php, sempre beliscando outras linguagens… como diria o “ET Bilu” Busquem o conhecimento;
=]

Marco
11

Linguagens são apenas ferramentas na mão de programadores. Não existe “essa linguagem é melhor que aquela”, cada linguagem possui sua particularidade.

Douglas
12

olha, um problema que vejo na área de programação é a desvalorização rápida do conhecimento.
é muito melhor você aprender idiomas como inglês, espanhol, francês, liderança, que nunca iram morrer, do que aprender tecnologias que sabe que logo iram acabar…(java, c#) .

linguagens de programação nascem e morrem, você perde 2~5 anos aprendendo e depois de um tempo não vale mais nada!.

conheço muitos ex-programadores que desistiram por não suportarem essa rápida desvalorização.

esse negocio de programador poliglota é coisa de Empresa, eu gostaria muito de conseguir um emprego que o requisito fosse apenas Java ou apenas C#, não há tempo para perder aprendendo várias linguagens, parte do tempo 8h você dedica ao trabalho, o resto do tempo você dedica a sua família, em todas as outras profissões esse é o ritmo.

conheço pessoas que trabalham em banco só fizeram faculdade porque precisava e trabalham em banco ganhando 3k + 10k plr + 700VR + premiações, tudo isso sem nenhum conhecimento técnico, apenas o básico de excel word, e a profissão tem chance de carreira, eles não aprendem coisas desnecessárias

QUER SER POLIGLOTA? VAI UMA DICA: APRENDA: CLIPPER, VB, DELPHI E MUMPS

Leonardo
13

Concordo com vc Douglas, um bom programador leva no mínimo dois para se especializar em um linguagem, vou começar com Java, pois gosto muito da sintase e do modo de programar de Java, e discordo de muita gente que diz que Java vai morrer, ela é uma das linguagens mas usadas para celular e dispositivos móveis, e nova onda do Android só vai aumentar a popularidade de Java.
Ficarei feliz de ser um bom programador Java e não vou entrar na onda de poliguota de linguagens. Como Douglas disse, preciso dedicar tempo para meus amigos e minha familia.

Wenderson Sampaio
14

Excelente matéria!!!

Eu começei a desenvolver em C# e aprofundei nessa linguagem pelo fato de que muitos desenvolvedores sempre me diziam: – “Escolha uma linguagem e se especialize nela”…
… e assim eu fiz.

Atualmente estou fazendo um curso de Especialização em Java… !!! – É isso mesmo!!!…

Nós, como desenvolvedores, devemos investir em nossas carreiras e, por “cresça que parível (incrível que pareça)” devemos nos preocupar com TODAS as pequenas coisas que podem fazer a diferença em um projeto de software. Digo isso porque o usuário final da aplicação e, principalmente, o cliente, NÃO QUEREM NEM SABER em que linguagem de programação foi feito o sistema…. eles querem é um sistema que atenda às suas necessidades.

Moral da história na visão do CLIENTE o que conta é:
– a “velocidade” do sistema (desempenho),
– as janelas, ícones e botões bonitinhos e fáceis de entender (interfaces),
– relatórios de todos os modelos e tipos (extração dos dados e interfaces),
– saber quem fez, alterou, excluiu etc… etc… (regras de negócios, logs, etc).
……. Diante de tudo isso, devemos deixar de lado o “apego idiota” por uma linguagem de programação e, diante das necessidades do cliente e sua infra-estrutura, analisarmos suas necessidades e, desenvolver um software em tempo hábil e, principalmente, que atenda a TODAS as necessidades do CLIENTE.
Dito tudo isso, o que nos resta é a DOLOROSA preocupação de aplicar o que aprendemos no meio acadêmico: Engenharia de Software, Levantamento de Requisitos, Documentação, Interface Homem-Computador, Usabilidade, etc.. .etc…

Para finalizar, não posso deixar de compartilhar uma experiência recente: um sistema em que fiz parte do desenvolvimento foi “rejeitado” por um cliente que, mesmo pagando mais caro pelo sistema atual” não quis comprar o nosso… que, “funciona via web”, “tem tudo o que o outro tem… e, mais alguma coisa”, é mais barato etc…. etc… mas, o cliente não quis pelo simples fato de gostar muito da inteface do sistema atual e então, me deixou ver o sistema… e, para minha SURPRESA era um sistema feito em Access 2010, orientado a objetos (consegui acessar via CTRL + SHIFT e visualizei as Classes …. etc… tudo arrumadinho) e, para cada tipo de formulário e relatórios, era exibido uma RIBBOM PERSONALIZADA (menu no estilo do Ms. Office), tinha um visual MUITO simples, “clean” e sugestionável (basta olhar para saber o que é, para que serve e o que deverá ser feito) .
Diante disso, minha ultima pergunta, na tentativa de ganhar o cliente foi: Esse sistema NUNCA te deixou na mão ou deu algum tipo de problema?…. Então o cliente respondeu: Já deu problema sim… umas 3 ou 4 vezes (isso com 5 anos de utlização do sistema), MAS, liguei para a empresa e, eles resolvam em 10 minutos e, em uma dessas vezes, o problema tinha sido o “computador central” (servidor com o .MDB back-end do sistema) que deu problema porque queimou a fonte.

FINALIZANDO: se tem alguém que possa “morrer de paixão” por algo (software) é o cliente e seu empreendimento!… – Nós desevolvedores ou analistas, temos é que “morrer” de estudar e trabalhar para desenvolver um projeto de software onde o produto final possa “conquistar e ser amado” por quem queira comprá-lo….

Marcos Antonio
16

Olá,
Concordo com as coisas ditas aqui. Mas o comentario do Wenderson Sampaio merece destaque e minha atenção.
..O CLIENTE..
A linguagem que o cliente normalmente pede é CU$$$$$$$$$TO.low
O cliente não sabe o que é MS.Net, C, C++, Pascal, C#, VB, VC++, C++BB…….
Não faz disferença.
Uso: QualquerC++.0800 – Gratis
Preferencia Microsoft Visual C++ 2010 Express.

Saudações mineiras.

Rafael
17

Boa noite.

Excelente matéria.

Muitos ficarão até impressionados porém sou de nascença programador COBOL e já fazem aluns anos que desenvolvo também em C# e não vejo o porque não ser o famoso programador Flex, com relação a linguagem o importante é atender as necessidades do cliente e concordo em grau e gênero com as colocações. Pretendo me aprofundar melhor em Java se tudo der certo, visto que o objetivo maior é atender a necessidade do cliente e colocar a disposição dele a ferramenta que irá auxiliá-lo melhor para atender o seu negócio.

Boa sorte a todos, continuem abrindo a mente pois é isso que nos sustenta, o conhecimento gera conhecimento.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!


3 × sete =

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>