« O que você faz de diferente quando não está na frente do computador?Google App Engine: skip_files patch »

Engessamento Conceitual

09/05/2008

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.


Email por Walter Cruz em Linguagens, Geek life, Frameworks
Tags: javascript, orientação a objetos, paradigmas, protótipos

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

10 comentários

Comentário de: Rodrigo Cacilhas [Visitante] · http://montegasppa.blogspot.com/
Já dizia com razão o velho ditado que «toda unanimidade é burra».

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
09/05/2008 @ 13:48
Comentário de: Walter Cruz [Membro] Email · http://waltercruz.com
Como você, eu tb aprecio a diversidade acima de tudo! Manda bala aí no artigo ;)
09/05/2008 @ 13:52
Comentário de: Yguaratã [Visitante] · http://www.yguarata.com
ótima analogia com os instrumentos musicais! :)
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.
09/05/2008 @ 15:12
Comentário de: Ricardo Cardim [Visitante]
Interessante o comentário sobre a linguagem C.

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"
09/05/2008 @ 17:49
Comentário de: Micael [Visitante] Email · http://aiatola.net
*****
Excelente artigo.

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
09/05/2008 @ 17:54
Comentário de: Thiago Silva [Visitante] · http://sourcecraft.info
Ecma4?? ECMAScript++ cabe bem aqui (com todas as implicações sutís deste nome).

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
09/05/2008 @ 18:54
Comentário de: Samir [Visitante] · http://samirmamude.com
***--
Sinceramente prefiro o javascript do jeito como está, com protótipos, first-class objects, etc..

abraços.
:>>
09/05/2008 @ 19:14
Comentário de: Rodrigo Cacilhas [Visitante] · http://montegasppa.blogspot.com/
Poxa gente,

Protótipo é uma forma tão eficiente e limpa de instanciação quanto classe, só diferente. :roll:

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
09/05/2008 @ 23:02
Comentário de: Danilo M. Oliveira [Visitante]
***--
Eu aprecio muito JavaScript por ser muito fã de programação funcional.

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.
18/05/2008 @ 23:19
Comentário de: Eduardo Padoan [Visitante] · http://djangopeople.net/edcrypt/
O problema não é JS ser protipado. É não suportar (out-of-the-box) deferential inheritance.
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 :)
20/05/2008 @ 11:29

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
PobreExcelente
=> :!: :?: :idea: :) :D :p B) ;) :> :roll: :oops: :| :-/ :( >:( :'( |-| :>> ;D :P :)) 88| :. :no: XX( :lalala: :crazy: >:XX
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))

You can just use your OpenID to provide your name, e-mail and url.

Busca

Recomendações

Folhas de Relva = Leaves of Grass

Estatísticas

Esse blog tem 165 posts e 536 comentários, com posts publicados no período de 15/08/2005 a 21/07/2008.

powered by b2evolution free blog software