| « O que você faz de diferente quando não está na frente do computador? | Google App Engine: skip_files patch » |
Engessamento Conceitual
Toda pessoa tem suas preferências em relação a uma série de assuntos, tecnologias e opções. Nós, que trabalhamos com tecnologia, não somos exceção a isso. Muitas vezes discutimos apaixonadamente sobre nossas tecnologias preferidas. E muitas vezes, não deixamos de incorrer em alguns erros no processo.
Recentemente, no PlanetPython foi veiculado um texto de wjbyral, mostrando algumas razões porque ele não gostava de javascript. Entre as razões citadas estão o fato de javascript não ter namespace e o sistema de objetos de javascript. Javascript não é uma linguagem orientada a objetos clássica, como Java, Python, ou qualquer outra que você possa lembrar. Ela segue o conceito de protótipos. Existe um tipo de 'desejo coletivo' de que javascript se torne uma linguagem orientada a objetos mais convencional, com construtores e herança de forma mais tradicional. Aliás, isso já está sendo feito, com o ecmascript4.
Há um tempo atrás, eu dei uma olhada em como está ficando a especificação. Meu primeiro pensamento foi: 'estragaram a linguagem!'. O padrão adiciona toda o arcabouço comum da orientação a objetos tradicional: construtores, herança, etc. A linguagem passa a ser multi-paradigma: além dos protótipos, teremos agora a herança comum. Fora o fato de, em muitos sentidos, javascript ter um certo sabor de linguagem funcional. Uma maravilha não? Porém, o fato é que eu gosto da linguagem como é agora.
Trabalho com linguagens orientadas a objetos, mas isso não quer dizer que eu despreze outros paradigmas. Todos eles tem a sua beleza e a sua vez. Pra que esse sentimento uniformizador das coisas? Qualquer cristalização em torno de algum conceito fatalmente me aborrecerá. A orientação a objetos é boa? Com certeza é. Mas é necessariamente melhor que o paradigma funcional, por exemplo? Talvez seja para os casos x e y, mas não para o z.
Isso me lembra outro conceito, que trazemos do mundo da informática para outros lugares de forma equivocada. Esperamos que o último computador seja sempre melhor que o anterior. Mais memória, mais velocidade de processamento, um HD maior e, claro, sempre a um preço menor do que aquele que você comprou seis meses atrás. Mas nem todos os lugares isso é assim: um piano Fender Rhodes e uma Fender Stratocaster terão sempre o seu valor e não serão necessariamente piores que seus equivalente mais modernos.
Nem sempre a próxima linguagem ou a próxima moda será inerentemente melhor que as anteriores. Para cada caso e situação certamente haverá uma ferramenta melhor. E para o bem de todos, é bom que diferenças de pensamento sempre existam.
Endereço de trackback para este post
Trackback URL (clique direito e copie atalho/localização do link)
10 comentários
Até entendo por que essa tendência a buscar uma homogeneidade e padronizar de forma mutilatória: preguiça. Só há apenas uma forma de fazer algo, conhecendo-a você pode dizer que conhece tudo.
Agora, se há diversidade, sempre há algo a ser aprendido.
E essa é a beleza socrática!
Mas nem todo mundo se empolga com o conhecimento real.
Tenho mais o que comentar além disso, mas aí já daria outro artigo.

[]'s
Cacilhas, La Batalema

a stratocast sempre vai ser a ideal para certos tipos de musica, por exemplo. agora fazendo a analogia reversa (do mundo da musica de volta para o mundo da computacao), talvez isso seja o caso entre os sistemas operacionais e a linguagem C.
bom texto.
No meu ponto de vista, essa linguagem é muito utilizada justamente por dar liberdade ao programador a fazer da forma que bem entender e exigir do mesmo que faça da forma correta.
Como existe a tentativa de fazer um Fordismo nos meios de produção de Software, java é enaltecida e frameworks que fazem o "trabalho sujo" de escrever JavaScript pra você são coroados.
Ainda espero que empresas de TI enxerguem o quão importante é ter profissionais diversificados em seu "plantel"
Odeio radicais, que odceiam isso.
Todo fanático é cego. Gosto de javascript e orientação a objeto mais clássica, aprendo a usar cada uma e é para isso que somos pagos.
Valeu
Mas, diferente de outros consórcios que promovem o desenvolvimento de uma linguagem (e que eu passaria uma noite inteira tirando sarro por diversão), a minha impressão é que o pessoal do ecma4 não tem muito pra onde correr e eles sabem disso. É menos uma escolha e mais um destino trágico, eu acho. À eles, minha simpatia.
"Qualquer cristalização em torno de algum conceito fatalmente me aborrecerá."
Vai ler sobre OMeta =P
abraços.
Protótipo é uma forma tão eficiente e limpa de instanciação quanto classe, só diferente.
Cada tipo tem suas vantagens e desvantagens.
E ainda Lua traz o melhor dos dois mundos ao emular instanciação por prototipagem sem duplicação desnecessária de dados, com o uso de metatabelas.
Se tivéssemos alcançado a unanimidade eliminando a instanciação por protótipo ou a instanciação por classe, talvez a sacada de Lua não tivesse ocorrido.
Quando há variedade, há evolução.
[]'s
Cacilhas, La Batalema
Ok, não sei muita coisa de JavaScript, mas descobri que ela é uma excelente linguagem funcional. Com currificação e tudo mais!
Se eu tivesse tempo sobrando eu pegaria JavaScprit pra aprender...
Esse artigo aqui é bem interessante:
http://www.crockford.com/javascript/javascript.html
Concordo 100% porcento com o ele.
Muitos acham que JavaScript é linguagem de lammer, de gente que quer roubar os cookies dos outros, de fazer firulas numa página web, etc. e até acham que Java e JavaScript são a mesma coisa.
Aff!
E não sabem realmente que JavaScript é uma incrível linguagem multi-paradigma.
http://en.wikipedia.org/wiki/Differential_inheritance
Alguns poderiam argumentar que o modelo de orientação a objetos da Io language, por exemplo, é mais poderoso que o do Python, e eu não duvidaria muito não
