Engessamento Conceitual

por Walter Cruz on 09/05/2008
in Linguagens, Geek life, Frameworks

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


Notice: Undefined index: comment_secret in /home/walter/repositories/whissip-dev/blogs/inc/comments/model/_comment.class.php on line 161
  1. 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

  2. Walter Cruz (Member) Email says :

    Como você, eu tb aprecio a diversidade acima de tudo! Manda bala aí no artigo ;)

  3. Yguaratã says :

    ó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.

  4. Ricardo Cardim says :

    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"

  5. Micael Email says :
    *****

    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

  6. Thiago Silva says :

    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

  7. Samir says :
    ***--

    Sinceramente prefiro o javascript do jeito como está, com protótipos, first-class objects, etc..

    abraços.
    :>>

  8. 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

  9. Danilo M. Oliveira says :
    ***--

    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.

  10. 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 :)

Share Your Thoughts


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

Sua URL será exibida.
PobreExcelente
(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.))
Subscribe to comments by email

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