Smalltalk: o Big-Bang das linguagens de programação
A alguns dias atrás, fiz aquele teste da linguagem de programação, que foi divulgado em diversos blogs por aí. O resultado que eu obtive foi Smalltalk… quer dizer, é difícil para mim dizer isso, mas eu admito que, na primeira vez que fiz o teste deu Visual Basic. No entanto, como eu me importo com a minha dignidade, refiz o teste.
De qualquer forma, fiquei curioso pra ver se tal teste tem algum fundamento e resolvi ir atrás de informações para começar a aprender um pouco sobre Smalltalk. Aliás, não é de hoje essa minha curiosidade, visto que diversas publicações sobre design de software, padrões de projetos e frameworks possuem cases interessantíssimos em Smalltalk. Se você se interessa por este assunto, então com certeza você deve ter lido o livro de padrões de projeto da GoF (Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides). Se você ainda não leu este livro, então compre agora… é uma ordem!
Quer um exemplo da grande importância do Smalltalk para o mundo da Computação? Então tá… sabe o MVC (coisa que você já está de saco cheio de tanto ouvir falar)? Pois então… o MVC foi um framework Smalltalk para criação de GUIs. E sabe o que é mais impressionante nisso? É que esse padrão de projeto foi descrito pela primeira vez em 1979, em um dos laboratórios de pesquisa da Xerox!! Nossa… são vinte e oito anos… o MVC é mais velho que eu! Se você for uma pessoa curiosa, com certeza você deve se perguntar:
Cacete! Como é que algo “inventado” há quase trinta anos atrás ainda continua forte, ainda mais considerando que, no mundo da Computação, alguns poucos anos são suficientes para que mudanças completas aconteçam?
E isso não acontece só com o MVC, visto que diversos outros frameworks Smalltalk foram cruciais para definir diretrizes e padrões que são utilizados, de uma forma ou de outra, até os dias de hoje.
Enfim… voltando ao assunto. Depois de algumas pesquisas na internet, acabei por encontrar este paper, que promete introduzir Smalltalk a programadores com conhecimentos em Java (conhecimentos em C e C++ também são úteis). Este paper, assim como diversos outros sites sobre o assunto, recomendam o Squeak, uma implementação bastante popular da linguagem e ambiente Smalltalk baseada no (e largamente compatível com o) sistema Smalltalk-80. Para quem usa Ubuntu, basta usar o Synaptic e instalar os pacotes squeak* para ter um ambiente Smalltalk funcionando. Veja, abaixo, uma screenshot do Squeak rodando:
Em breve postarei as minhas impressões sobre o assunto, talvez algo mais para esclarecer as dúvidas que tive durante o meu aprendizado. Se você conhece algum site, livro ou qualquer coisa relacionada a Smalltalk que acha interessante divulgar, deixe um comentário, assim podemos espalhar o conhecimento mais rápido.
PS: Para que este post não fique só no blá-blá-blá, veja esta screencast, onde uma aplicação web é desenvolvida em quinze minutos (bem no estilo das screencasts do Rails)… vale a pena assistir (embora eu ainda prefira o WebWork).
Foto por: eMaringolo.
Tags: design, framework, mvc, smalltalk, squeak

3 de maio de 2007 às 3:24 pm
Uma observação, nada a ver com o tema do post….
“(embora eu ainda prefira o WebWork).”
A galera ainda tem um medo de dizer “Struts 2″ hein!
Um nome muda tudo…
AHUhaUHAuHau
3 de maio de 2007 às 3:27 pm
Hahahah!!! Confesso que o nome Struts ainda me dá calafrios, mas parece que isso já é diferente.
Agora é só acostumar a chamar o WebWork de Struts2 :S
3 de maio de 2007 às 3:45 pm
O meu deu Javascript. Até que gostei…
3 de maio de 2007 às 5:03 pm
O texto do JavaScript é massa, tem tudo a ver. Mas o texto do Visual Basic é cruel:
Brochante!
5 de maio de 2007 às 12:41 pm
O problema do smalltalk é que não se tem fontes decentes de informação e todos os livros são um lixo, e muuuito velhos.
5 de maio de 2007 às 1:09 pm
Estou tendo problemas em encontrar materiais e referências sobre o assunto e, devo admitir que está bem complicado conseguir informações sobre o assunto.
7 de maio de 2007 às 12:01 am
Foi a falta de material pra estudar que me demotivou, putz, chega a ser broxante.
Mas o que mais me admira sobre textos de smalltalk é que os caras conseguem fazer coisas simplíssimas verdadeiros mistérios. Falam metaforicamente e tudo mais…
O que mais se acha são textos pra iniciantes que não falam nada sobre como programar em smalltalk!
7 de maio de 2007 às 12:04 am
Ha e o melhor livro que achei foi Prentice Hall - Dolphin Smalltalk Companion.
Eu achei esse livro quando já tinha desistido de aprender smalltalk. Ele fala mais diretamente sobre como motar aplicativos.
Espero que ajude.
7 de maio de 2007 às 12:22 am
Acredito que esse misticismo, se é que pode ser chamado assim, em torno do Smalltalk se deve ao fato do novo paradigma introduzido por ela (e outras linguagens), que foi a orientação a objetos. Na época, talvez o poder em torno dessa abordagem mexeu um pouco com a cabeça dos desenvolvedores hehehe… provavelmente alguns desses desenvolvedores se achavam capazes de soltar um Hadouken, afinal, é só mandar a mensagem hadouken para o objeto.
A propósito, valeu pela indicação do livro, com certeza é de grande ajuda! Vou ver se encontro mais informações sobre ele…
[]s!
9 de maio de 2007 às 8:02 pm
Bem q vc poderia escrever um post aqui sobre onde o SmallTalk pode ser mais usado, onde ele mais atua (se é q atua em algum lugar), enfim.
9 de maio de 2007 às 10:38 pm
Na verdade eu não comecei a estudar sobre Smalltalk com a finalidade de utilizá-lo em projetos e tal, mas sim por mera curiosidade. Então, daqui a um (bom) tempo, quando já estiver familiarizado com a idéia do Smalltalk e suas ferramentas, talvez possa escrever algo a respeito.
Mas, enquanto esse dia não chega, você pode enviar um e-mail pro pessoal da Objective Solutions… essa é uma das únicas (se não a única) empresa brasileira que utiliza Smalltalk. Com certeza eles saberão responder essa sua pergunta.
Um abraço.
6 de julho de 2007 às 2:29 am
O meu deu Prolog:
You enjoy looking for different ways to solve a problem. You take longer to solve them, but usually come up with more than one solution.
Apesar de estar contente com o resultado, me pareceu um pouco demais. Não sou tão fã de recursividade.