O Background do desenvolvedor .NET
Olá pessoal, esse é um dos post que estou devendo a muito tempo e já vou dizendo aqui que se você defende .NET e C# de maneira xiita e acha que PHP não serve pra nada é melhor parar de ler agora mesmo.
Antes de entrar no assunto principal do post preciso fazer uma introdução que envolve falar um pouco sobre a minha carreira e como entendo programação. Eu tenho 21 anos e comecei a programar aos 15 anos, tenho pouco tempo de experiência mas já consegui aprender algumas coisas legais. Eu iniciei em programação usando Delphi, logo no início achava tudo muito legal, afinal de contas sentia uma tal liberdade pois conseguia obter um resultado de diversas maneiras. Após uns 2 anos de Delphi me envolvi bastante com Java,PHP e ASP, nesse tempo estava aprendendo orientação a objetos e boas práticas de desenvolvimento. Logo após esse período que durou mais ou menos um ano comecei a trabalhar com .NET, inicialmente com VB.NET e depois foquei no C#.
Evolução, larguei o PHP e MySQL
Durante esse tempo programei usando plataformas Linux e Windows, editores ricos(VS) e simples (notepad ++) , eu como comecei do Linux com GEdit até chegar no windows + visual studio. Durante os primeiros anos e cada mudança de tecnologia eu pensava
“Meu deus, como eu consegui usar essa tecnologia ruim por tanto tempo? ahh agora eu evolui nunca mais usarei a tecnologia x!”
Assim que comecei a frequentar algumas comunidades .NET e conhecer desenvolvedores C# vi que muitas pessoas também pensavam como eu e investiam bastante tempo falando mal de uma ou outra linguagem ou até mesmo um editor.
Que chato! sempre visual studio + C#
Depois de algum tempo desenvolvendo em .NET comecei a sentir falta de usar Linux e outras tecnologias, linguagens e editores. Então voltei a desenvolver algumas coisas em Java e comecei a aprender um pouco sobre outras langs como Ruby, então estava parcialmente em contato com outras tecnologia. Comecei a frequentar grupos de outras linguagens e descobri que grande parte das pessoas lá não ficavam reclamando da sintaxe de atribuição de uma linguagem.
Durante a minha carreira tive a chance de conhecer excelentes profissionais e encontrei alguns “gurus” que me ensinaram que saber uma linguagem é legal, mas existe um conhecimento valioso que vai além de saber sintaxe. Desde que aprendi isso gostei a ideia e entre os últimos 20 livros técnicos que li acho que uns 2 ou 3 eram sobre linguagens, todo o resto é sobre aquelas letrinhas que todos nós sabemos ser importantes.
Se você usar a linguagem X e editor Y você será infeliz e amaldiçoado!
Escuto em muitas rodas de desenvolvimento primariamente .NET que se você usa PHP e MySql é impossível desenvolver bem ou ainda se você não usar o Visual Studio com resharper você não será produtivo. Até entendo esse pensamento quando parte de um inicialmente, mas as vezes encontro pessoas mais experientes pensando assim e amaldiçoando todas as outras possíveis soluções.
Sou mais que um desenvolvedor, sou um desenvolvedor .NET
Considerando que todos os programadores gostam de verdade de programação, e isso envolve ficar horas fuçando código ou ainda participar de competições ou perder finais de semana dentro de uma sala discutindo código é no mínimo estranho ver desenvolvedores que se denominam desenvolvedores .NET e C# e que não estudam outras linguagens.
Saber programar não envolve apenas conhecer sintaxe
Todos as pessoas que frequentam esse blog sabem do valor de coisas como Refatoração, testes unitários, orientação a objetos e princípios como DRY, e nenhuma dessas coisas é pertinente de uma plataforma ou linguagem, então como é possível desenvolver bem em C# e não conseguir entregar um software em VB.NET ? seu conhecimento de programação é muito mais amplo que sintaxe de uma linguagem e ainda mais acredite sua linguagem vai acabar ou se tornar obsoleta em breve
Ok, mas que .NET é melhor que Java é!
Pergunto sinceramente, qual o mérito de comparar linguagens de maneira depreciativa? Não é melhor acreditar que existe uma combinação de fatores onde pode ser viável usar a determinada tecnologia? você também não fica de saco cheio de usar a mesma linguagem 8/10 horas dia por um ano?
Conclusão
Acredito que se uma pessoa gosta mesmo de programação a linguagem não deve ser o mais importante, todos temos uma linguagem preferida mas não precisamos programar e defender apenas uma linguagem. Seguir a dica do programador pragmático de aprender ao menos uma linguagem por ano vai fazer com que você aprenda mais “programação” e ainda permite que você não fique entediado de escrever sempre o mesmo CRUD em C#. O framework .NET é muito rico, permite o uso de linguagens como Boo, IronPython e IronRuby. É isso pessoal, vamos largar o xiitíssimo e cair dentro do código, eu por exemplo ando muito tentado em começar a postar sobre outras coisas além do mundo .NET no blog, estou tentando evoluir também, vamos juntos!
Links
http://boo.codehaus.org/
http://dojorio.wordpress.com/sobre/
http://pragprog.com/the-pragmatic-programmer
Lendo seu post me lembrei bastante quando comecei me aventurar em LUA, uma linguagem que vc já deve saber, que foi criada por um professor da PUC aqui do rio, criava e desenvolvia meus proprios addons para WOW, e te digo é fascinante e revigorante para um programador expandir seus horizontes em outras linguagens, principalmente linguagens funcionais como LUA, pra nós programadores orientados a Objetos.
[...] profissional e apaixonado vai querer usar mais que um framework ou linguagem, já falei muito disso aqui. Seguindo essa linha de pensamento já estudei algumas linguagens famosas como Ruby, PHP e Python, [...]
Interessante seu ponto de vista, realmente é insuportável discutir com pessoas extremistas/xiitas defendendo uma linguagem X ou Y, acho legal que desenvolvedores tenham a mente aberta e saibam aproveitar melhor o que cada tecnologia pode oferecer. Também comecei a programar com o Delphi, logo parti para web com PHP e hoje estou no ramo Microsoft .NET, onde realmente me dediquei e aprendi orientação a objetos, design patterns e a programar de verdade. Hoje olho para o Delphi e vejo que o conceito de orientação a objetos é o mesmo, mas agora tenho uma visão mais ampla, assim como em java, onde encontro uma semelhança muito grande em sintaxe e até mesmo nas implementações de projetos. Mas uma coisa discordo: Por experiência própria, acredito que devemos nos especializar em uma tecnologia, seguir as tendências de mercado e não pular de galho em galho nas linguagens. O mais importante é conhecer a teoria, principalmente orientação a objetos, que independe de linguagem, e na prática nos especializar em uma linguagem, assim como estou fazendo com o C#/Java. A questão de enjoar de uma linguagem ou outra é relativa, as vezes trabalho 12/14 horas por dia programando e não reclamo da “sintaxe” repetitiva, o que pode se tornar chato demais é o projeto em que estamos trabalhando no momento.
Fala Jone, Obrigado pelo feedback. Talvez tenha me expressado mal no post, também não concordo com o “pular de galhos em galhos” o importante é estudar e práticar outras abordagens(tecnologias, langs,idiomas) afim de ampliar o horizonte e pensar fora da caixa. Quanto a sintaxe repetitiva talvez seja uma coisa pessoal(minha) tem dias que gostaria de trabalhar usando outra linguagem como lisp ou ruby. Agradeço pelo feedback.Abraços