VidaGeek.net

Linux, Open-source, Programação e Produtividade

FISL 10: Seaside versus Rails

Na primeira palestra da qual participei (e a primeira que dei num evento público), falei, junto com o grande Fabio Kung, sobre Seaside, um arcabouço para desenvolvimento de aplicações para a Web escrito em Smalltalk. O Kung, é claro, falou de Rails.

O objetivo da palestra era mostrar que Seaside é muito melhor que Rails, mas o Kung não deixou (brincadeira!). Na verdade, o objetivo da palestra era mostrar coisas que são legais em ambos os arcabouços, e que um poderia aprender com o outro. É claro que nem tudo poderia ser copiado, já que as raizes dos dois tem algumas fortes divergências, como a aceitação do protocolo imposto pela Web (stateless) versus a subversão total dessa ideia (stateful, implementada pelo Seaside). Existem motivações para ambos: stateless, para respeitar a Web e ser mais escalável; stateful, para ser mais fácil de desenvolver e mais reutilizável.

Mostramos muito pouco de cada um dos arcabouços. A ideia era mostrar tópicos bem mais avançados. No fim, quase que não deu tempo de mostrar como criar um componente do Seaside.

Fiquei devendo uma resposta no meio da palestra. Quando falei que Seaside era baseado em componentes, inspirado no desenvolvimento para desktop, o Diego Plentz me provocou falando que era que nem VB; aliás, que VB era melhor porque, pelo menos, tinha uma interface gráfica para desenvolver componentes. Eu, com toda minha sagacidade, não consegui responder na hora :P. Mas a resposta é: VB não é linguagem o Seaside é baseado em componentes porque é fácil programar a interface pensando assim (senão o VB não era a linguagem inicial de tantos programadores por aí) e o Seaside melhora isso usando uma linguagem muito legal no lugar de VB.

As críticas que ficam a cada um dos arcabouços:

  • Rails: tem muita complicação no sistema de arquivos; para quê tantos arquivos e diretórios? Para que tantos arquivos de configuração? Por que a dependência do banco de dados, por padrão? Tudo bem, o escopo de Rails é bem pequeno, mas talvez as convenções estejam um pouco complicadas demais.
  • Seaside: faltam pacotes para acrescentar algumas tarefas comuns ao Seaside. Faltam, também, arcabouços de teste mais atualizados e com melhor documentação (não há um “Cucumber” e a documentação do SSpec). Por fim, o Smalltalk praticamente impõe uma IDE para você e impede o uso dos recursos utilizados em outras linguagens (SVN, pastebin, etc.)

Bom, é isso. Eu espero que as pessoas que compareceram a palestra tenham gostado e que eu tenha a oportunidade de dar novamente uma palestra no FISL. Foi uma experiência muito legal.

Posts Relacionados:

  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • Rails Vs Java e PHP
  • FISL 10: Agilidade e Qualidade de Projetos com Ruby on Rails
  • Inscrição de Caravanas para o FISL 8
  • FISL 8.0
  • FISL 10: Primeiro dia, organização e dojo
  • Linguagens de programação - Smalltalk
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    FISL 10: Primeiro dia, organização e dojo

    A décima edição do FISL começou ontem, na PUC-RS, em Porto Alegre. A localização não é novidade, mas a data terrível atrapalhou bastante as caravanas das universidades públicas. A citar, o IME-USP que, no ano passado, foi a maior caravana do FISL com mais de 50 pessoas, teve meras 14 pessoas vindo de ônibus conosco.

    Após uma sugestão (muito mal recebida) de mover o FISL para uma cidade que ofereça mais recursos, como Curitiba, houve promessas de, no ano que vem, termos um lugar melhor para realizar esse evento. Disseram que a governadora do Rio Grande do Sul estaria aqui, ontem, na abertura do evento. Não vi, mas não duvido. No horário da abertura, ocorria um Coding Dojo organizado pela galera do DojoSP no estande da Locaweb - ontem foi em Python, hoje, segundo o Daniel Cukier da Locaweb, será em Ruby.

    Se você não sabe o que é um coding dojo, apareça na sessão hoje, às 13h na sala MSL-PR, ou dê uma olhada nos posts:

    FISL 9.0: Coding Dojo
    Screencast do Coding Dojo

    O Jonas assistiu uma palestra com um desembargador brasileiro e o senador que escreveu o projeto de lei que rege sobre crimes virtuais. Mais tarde, ele vai escrever um post completo contando o conteúdo em detalhes. Parece que foi bastante interessante.

    Pena, que a organização do FISL impediu que os palestrantes respondessem uma pergunta bastante pertinente sobre o que o Governo tem em mente para impedir a interpretação errônea da lei, que poderia prejudicar pessoas. Impediu, porque, depois de a pergunta ser feita, o coordenador de mesa declarou que o tempo acabou. O palestrante pediu para responder apenas essa pergunta (que é extremamente pertinente) e recebeu um claro “Não.” na cara. Feio, organização do FISL, muito feio.

    Mais feio ainda impedir palestrantes de entrar na sala VIP (sala dos palestrantes) no final da tarde de ontem porque “a sala está reservada para as autoridades da abertura”. Palestrantes contam com a sala também para fazer coisas pertinentes ao FISL - terminar sua palestra, por exemplo!

    Que era o caso do Luiz, aqui do Vidageek, e do Fabio Kung. Eles vão se degladiar numa palestra hoje, às 16h na sala fisl6 (41-E), comparando os frameworks de desenvolvimento web Rails (Ruby) e Seaside (Smalltalk). Atenção no horário e local! A programação mudou e não alteraram na grade - é no espaço que parece estar vazio às 16h de hoje.

    Aliás, falando na grade de palestras… organização, se tem gaps vazios em algumas salas de palestras, por que não passaram mais algumas palestras inscritas e refutadas — muitas vezes, sem nem notas, nem comentários ou razões reais para não terem passado. Ouvi de um palestrante que passou na “segunda chamada” que ele tinha 4 aceitações fortes, uma rejeição fraca e não passou. Bizarro, hein? Outros nem receberam as notas ainda.

    Um grupo de pessoas da USP sugeriu trocar o sistema pobre de submissão e avaliação de palestras que se usa atualmente pelo sistema que é usado na organização todas as conferências mundiais da Debian. A organização disse que era tarde de mais pra isso - e a submissão de palestras não estava aberta ainda.

    Muitos por quês e muitas críticas. Fica uma sugestão: colocar mais pessoas de outros Estados na organização. Muita gente está achando que a organização está regionalista de mais. E isso é, provavelmente, a parte mais fácil de resolver.

    Posts Relacionados:

  • Dojo de Carro
  • FISL 9.0: Coding Dojo
  • Inscrição de Caravanas para o FISL 8
  • FISL 8.0
  • Séries
  • Evento de metodologias ágeis: Falando em Agile
  • Screencast do Coding Dojo
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    Squeak LogoSmalltalk é a linguagem de programação que tornou popular o paradigma de orientação a objetos. Inspirou as linguagens mais populares da atualidade: Java, Ruby, Python, etc. Mais sobre a história do surgimento de Smalltalk pode ser visto na Wikipedia (o artigo em inglês é mais completo).

    Um dos grandes atrativos da linguagem é a sintaxe, bastante diferente da convencional. Existem três tipos de chamadas de métodos:

    • Simples, sem argumentos: {objeto} {mensagem}
    • Com um argumento, binário: {objeto} {mensagem} {argumento}
    • Com vários argumentos, por seletores: {objeto} {mensagem} {argumento1} {cont. da mensagem} {argumento2} …

    Para tornar mais claro o último tipo, é necessário olhar para a declaração de um método que recebe vários argumentos, que é assim:
    umaMensagemComArgumento: objeto eOutro: arg1 eMaisUm: arg2
    Os parâmetros ficam intercalados no nome do método. Assim, uma chamada para esse método seria feita assim:
    destinatario umaMensagemComArgumento: 1 eOutro: 2 eMaisUm: 3

    Outra característica bastante interessante em Smalltalk é que tudo são objetos. Isso faz com que a linguagem não possua if, else, switch, while nem nenhum outro tipo de palavra reservada. Todos esses controles de fluxo são implementados como métodos de objetos Boolean.

    Um ponto que é positivo e negativo ao mesmo tempo é o fato de os programas em Smalltalk estarem muito atrelados ao ambiente de desenvolvimento que, por sua vez, é atrelado à máquina virtual. Não é tão simples fazer com que programas Smalltalk executem fora da IDE, que normalmente é o Squeak (que, aliás, é um ambiente de desenvolvimento bastante interessante e completo).

    Existem diversas bibliotecas interessantes para usar em Smalltalk. Cito, por exemplo, Magma (que implementa um banco de dados orientado a objetos) e Seaside (um servidor e framework web). Existe, inclusive, um site que hospeda gratuitamente aplicações em Seaside.

    Uma linguagem que segue de perto os conceitos de Smalltalk mas trabalha com protótipos ao invés de classes é Self. Self é um projeto da Sun que parece descontinuado, atualmente, apesar de bastante interessante.

    Achou interessante? Não gostou? Discorda de alguma coisa? Quer adicionar mais alguma coisa nesse post? Comente abaixo, no nosso fórum ou envie um e-mail para nós: admin at vidageek.net.

    Imagem via Kurtz-Fernhout

    Posts Relacionados:

  • FISL 10: Seaside versus Rails
  • Linguagens de programação
  • Desenvolvimento de jogos com o Morphic
  • Linguagens de Programação - Basic
  • Lambda the Ultimate
  • Linguagens de Programação - C
  • Linguagens de programação - C++
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 5 Comments
  • Filed under: Programacao