Desabafo anti troll
Nossa, quando o Vini me falou que a discussão estava pegando fogo por aqui, eu imaginei que as pessoas estavam discutindo sobre o artigo, e não sobre a minha pessoa. Bacana ver que muitos não sabem argumentar com um artigo sem atacarem o autor.
Sinceramente, é tudo muito bacana e bonito quando você tem TEMPO para estudar algo a fundo. Tudo faz mais sentido. Eu estou aprendendo Lisp e Python com toda a calma do mundo e, nossa, como é agradável.
Agora, experimenta trabalhar meio período no qual você tem de entender o que querem que você faça, estudar meia dúzia de tecnologias e apresentar coisas no final do mês QUANDO VOCÊ É A ÚNICA DESENVOLVEDORA DO TIME. Na época eu entendia de Hibernate, pelo menos o suficiente, e estava aprendendo web services, e já tinha trabalhado com Java antes. Mas tive de pesquisar e aprender sobre BPMN, BPEL, descobrir o Liferay, como mexer no Liferay, entender um dos módulos do Liferay, como mexer nele, descobrir que ele usava Struts, como funcionava Struts, e nesse meio tempo ainda fazer prototipos para eu e meu orientador nos entendermos. Eu acordava cinco e meia da manhã de vez em quando porque tinha me tocado como resolver um problema que eu tinha passado dez horas do dia anterior tentando resolver.
Eu gostaria de ter tido a opção de dizer “olha, vou ali estudar tudo o que preciso direitinho e na ordem certa, volto daqui a uns seis meses”, mas não era uma opção, assim como não era fazer um portlet do zero pq eu já não tinha mais tempo.
Desculpa, mas eu não esperava que um texto que era um desabafo pessoal fosse ser usado para que as pessoas tivessem opiniões completamente distorcidas sobre o que eu faço e como eu trabalho.
E não me façam rir, se meu negócio fosse dinheiro (e só dinheiro) eu não estaria programando, pelo amor de deus.
Sim, eu sou inexperiente, como diabos eu teria muita experiência se eu só tenho 22 anos e só voltei a trabalhar com programação nos últimos dois anos? Mas certamente não comecei a programar ontem, e eu acho que mereço respeito mesmo ainda sendo, seilá, Júnior e não a mega boga master programadora ever.
E o Hibernate é bom, mas não o suficiente. Estou começando a ver coisas como NoSQL para ver se existem alternativas melhores. Hibernate já me salvou a pele algumas vezes, é sensacional quando EU estou fazendo a coisa a partir do zero. Talvez eu gostasse de Struts se eu estivesse desenvolvendo algo a partir do zero com ela e, olhando em retrospecto, talvez eu devesse ter feito isso. Mas sabe de uma coisa? Não tinha ninguém para me dar os passos certos, eu tinha alguns colegas, mas eles estavam em outros projetos e não podiam fazer muito além de dar uma ou outra dica (que em alguns salvaram algumas noites de sono, diga-se de passagem), mas na maior parte era um “quero isso, te vira”. E eu não sou a única, se alguém aqui já trabalhou em laboratório de faculdade talvez já tenha passado por algo parecido.
Fim do desabafo anti troll
O que me irrita em muitas frameworks é quando elas deixam o trabalho do primeiro programador mais fácil e o do segundo trabalhador um inferno. Eu passei SEMANAS até entender decentemente a estrutura de um mísero portlet que grava informações num banco, mostra na tela, dá algumas opções para o usuário…
Agora, me digam os grandes senhores do Java, isso é normal ou fui eu quem encontrei código macarronico pela frente?
Método (X argumentos)
Método(X - 1 argumentos) -> seta o outro argumento e chama o método anterior
Método(X - 2 argumentos) -> seta os argumentos e chama o primeiro método
…
Sério, QUE PORQUICE.
Ou então uma parte que tinha umas mil interfaces e blablabla, era redirecionamento para tudo quanto é lado até chegar onde você quer. DRY prá que te quero.
Algumas pessoas não entenderam exatamente o que eu quis dizer.
Eu NÃO falei que nós não deveríamos ter bibliotecas.
Eu NÃO falei que nunca deveríamos usar frameworks, ou até mesmo geradores de código - eu já usei alguns geradores para mapear tabelas e não tive problema alguma porque era um código simples e que eu sabia ler e mudar o que precisasse (tive um problema com um dos mapeamentos, mas foi dos menores problemas q eu tive no projeto :p) e sei como isso economiza tempo.
Minha crítica é quando a biblioteca/framework/API deixa de te economizar tempo e começa a aumentar o tempo para o coitado da manutenção que vai ter de ler métodos de nomes estranhos com redirecionamentos infinitos. Imaginem a vida do coitado que vai fazer uma modificação em um dos métodos e tem de passar um tempão estudando a framework para não quebrar o negócio inteiro… (mesmo que a pessoa entenda mto bem sobre fazer java para web, mas coitada dela senao tiver trabalhado com AQUELA framework em especial…)
Minha crítica é que, ainda que existam frameworks que estejam ajudando a tratar de problemas complexos, em muitos casos elas o fazem de maneira o código complicado de maneira quase exponencial!
Por isso agora que eu não estou mais em nenhum projeto eu dei vários passos para trás e estou voltando para as bases. Estou lendo o SICP para abrir meus horizontes e estudar algoritmos a fundo, estou aprendendo Python para conhecer uma linguagem que se aproxima muito mais do que eu considero agradável de se programar.
Por fim, para aqueles que disseram que sou inexperiente, que estou reclamando a toa…
Olha, nao sou NEM DE LONGE a única a pensar assim. O próprio Vini que abriu o tópico concordou comigo, e ele tem muitos anos de estrada com isso.
Eu não sou a única a querer APIs melhores: http://cacm.acm.org/magazines/2009/5/24646-api-design-matters/fulltext (esse texto me fez ver também que eu nunca quero trabalhar com .NET, -_-)
Aliás, sobre esse texto, acho que ele explica melhor do que eu sobre o que eu chamei de “bandaids”: algo de base não funciona como deveria, e vai-se tentando remediar isso… mas sempre são bandaids e, como tal, problemáticos. Muitos problemas seriam evitados se fosse possível escolher a linguagem mais adequada para o problema, para começo de conversa, já que em algumas linguagens certas resoluções são triviais em vista do que se tem em outras linguagens.
Nem a única que se “desencantou” com certos cenários do mercado atual: http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/ (esse me deixou mto feliz quando li, foi algo como “UAU, não sou só eu quem me sinto assim, talvez o problema não seja só comigo”.)
Como já falei, meu texto era um desabafo, e só isso. Para talvez dar para alguém a mesma sensação que eu tive de 'UFA NÃO É SÓ COMIGO" que eu tive ao ler o texto “Whatever Happened to Programming?”, e eu achei muito bacana ver relatos parecidos com os meus, assim como indicações e dicas do que fazer.
E, ufa, acho que respondi tudo o que eu queria. Eu acho.
(eu tenho uma certa dificuldade em escrever textos pequenos, sorry)