[SP-pm] Teen sells Perl cloud startup to ActiveState
Eden Cardim
edencardim at gmail.com
Wed Jun 15 09:08:47 PDT 2011
>>>>> "Solli" == Solli Honorio <shonorio em gmail.com> writes:
Solli> O outro motivo desta comparação é o fato do Sebastian ser o
Solli> criador de todos estes frameworks. Então se já não fosse
Solli> inevitável a comparação de tecnologia, temos também a
Solli> comparação da visão do Sebastian ao longo do tempo sobre um
Solli> mesmo assunto (framework de desenvolvimento). Quem já
Solli> acompanha o Sebastian ao longo deste tempo também sabe o
Solli> comportamento padrão dele, que normalmente significa a saída
Solli> de um projeto quando ele (o Sebastian) fica entediado.
Ele costuma ficar entediado quando a comunidade toma uma decisão
diferente da dele. Observa que o problema não é introduzir um "framework
concorrente", o problema é escrever um monte de código que faz quase a
mesma coisa que um projeto existente já faz (vide Catalyst::Lite).
Esse é o meu problema com o Mojolicious::Lite e o Dancer, não tem
nenhuma novidade semântica. Com algumas linhas de Catalyst dá pra emular
a semântica dos dois. Já a semântica do Web::Simple é muito mais
sofisticada, não dá pra fazer com nada que já exista, e foi por isso que
o Matt fez.
E aí vem o corolário: a falta de justificativa técnica pra se criar um
projeto desse nível de complexidade inteiramente do zero para apresentar
uma divergência semântica/funcional mínima é uma coisa que me deixa sem
reação racional, eu só posso presumir que seja alguma coisa humana.
Solli> Não sou especialista em linguística, portanto não consigo
Solli> explicar as coisas em termos técnicos, mas é uma percepção
Solli> geral de que escrever alguma coisa em Mojolicious é mais
Solli> atrativo/amigável do que no Catalyst. O Eden disse '... o
Solli> problema é a forma. O Pessoal do Catalyst ensina a forma
Solli> correta e não a mais fácil ...', e isto me fez pensar que ele
Solli> tem razão. Tanto é que quando a gente fala de Catalyst é
Solli> impossível não pensar em SER OBRIGADO a aprender TT,
Solli> DBIx::Class. Talvez não seja necessário, mas esta associação
Solli> é muito forte.
Mas até aí é só escrever um manual e renovar o design da página do
projeto, que certamente é mais fácil do que escrever um framework do
zero.
Solli> Quem conhece as pessoas que estão cuidando do Catalyst,
Solli> entende esta preocupação em transmitir a mensagem da
Solli> '... forma correta ...', pois eles tem experiências em
Solli> grandes projetos no dia-a-dia, e sabem que estes
Solli> conhecimentos completo e concreto de MVC (melhor escrevendo,
Solli> em Engenharia de Software) será importante para qualquer
Solli> coisa que ele for fazer.
O problema é que todo projeto grande começa como um projeto pequeno, e
depois o pessoal vem pedir suporte, se eles não tiverem um pensamento
minimamente estruturado, não tem como ajudar. A filosofia da comunidade
Catalyst (e das comunidades relacionadas, tipo Moose, DBIx::Class,
KiokuDB e cia) é de tentar estabelecer o mínimo de compromisso com uma
categoria específica de usuários em favor do grupo inteiro (de early
adopter a guru).
Solli> O Mojolicious tem uma apresentação mais despojada (atenção,
Solli> não estou falando de quantidade de linha de código e ou
Solli> dependência), mas intuitiva e mais atrativa. Para começar,
Solli> não sou obrigado a ser um hacker em outras coisas. Se eu
Solli> quero misturar o View no Controle, tudo bem, depois eu separo
Solli> isto. A proposta do View já está mais próximo do cara que
Solli> conhece HTML e Perl (eu não gosto disto, mas tenho que
Solli> admitir que me ajudou no inicio).
O problema é que nunca vão separar se não tiver suporte embutido no
software. Daí esse usuário vai se frustrar quando os mantenedores não
conseguirem adivinhar telepaticamente quais foram as gambiarras que ele
montou "intuitivamente" e vai acabar indo pra outras soluções depois que
o fascínio inicial com o framework passar, muitos desses vão pra outras
linguagens, inclusive, e vão culpar a linguagem inteira por isso.
Solli> É óbvio também a influência do Rail no Mojolicious, ou pelo
Solli> menos em parte do Mojolicious. Se você pensar numa aplicação
Solli> Mojolicious + Mongoose então, o negócio transmite uma
Solli> sensação de facilidade de leitura incrível. Mas, mesmo sem
Solli> ser especialista, me parece que o Mojolicious está quebrando
Solli> algumas regras do MVC, ou pelo menos flexibilizando as
Solli> regras.
É igual à sensação de facilidade que o windows transmite em contraste ao
linux ou bsd. Novamente, o problema é criar um core razoável, tendo
isso, vestir uma roupa bonitinha é fácil (o ubuntu tá mostrando isso).
Solli> E a influência não é apenas estética, é também comportamental
Solli> com relação a retro-compatibilidade. Somente depois de
Solli> começar a estudar o Rail (por curiosidade pessoal) eu entendi
Solli> porquê o pessoal de Ruby é louco por TESTE. Porquê uma versão
Solli> do Rail não é necessariamente compatível com a versão
Solli> anterior (e não é mesmo, eu estou me cansando de pegar um
Solli> documento que não funciona na versão do Rail que eu tenho
Solli> instalado, e quando vou ver é que estou com a versão mais
Solli> recente). O pessoal mais novo (principalmente o do Rail) acha
Solli> isto normal, tanto é que eles 'inventaram' o homebrew
Solli> justamente para ter várias versões do ruby/rail numa mesma
Solli> máquina.
Solli> O Mojolicious caminha nesta mesma estrada, quer um exemplo ?
Solli> Tente seguir de cabo-a-rabo o artigo http://sao-paulo.pm.org/
Solli> artigo/2010/Mojolicious, ele não vai funcionar na versão
Solli> corrente do Mojo. E como o Eden bem lembrou, o Sebastian não
Solli> mantem o histórico das versão no CPAN, então você terá que
Solli> manter contigo a versão do Mojo que está funcionando e
Solli> escrever muuuuiiiittttooooo teste na tua aplicação para saber
Solli> o que está quebrado na nova atualização.
Solli> Isto não é um problema para um early adopter, e precisamos de
Solli> early adopter.
É mas um early adopter que chega por conta da conveniência, vai embora
quando o sistema dele quebrar, pelo mesmo motivo.
Solli> O pessoal do Catalyst tem preocupação com estabilidade neste
Solli> momento, mais do que novas features. Apesar que não sei quais
Solli> novas features já não estão implementada no Catalyst. No
Solli> Catalyst temos implementação de serviços baseado em JSON,
Solli> XMLRPC antes dos frameworks 'corporativos' por exemplo, e
Solli> alterando apenas uma linha no código (ok, duas ... contanto a
Solli> chamado do módulo).
Olha, tem feature nova sim, mas o desenvolvimento das features não são
centralizadas no core, é orgânico e ecológico. Tá sempre saindo um ou
outro plugin/model/view/controller/engine. O trabalho do pessoal do core
tem sido mais na direção de adubar o solo, regar as plantas e criar mais
canteiros do que trazer novas sementes pro quintal. É a mesma receita da
apple store, das facebook apps e cia.
Solli> Visão do Militante Perl : Sempre que falamos de
Solli> Perl, invariavelmente falamos no CPAN. Qual é o nosso mantra
Solli> ? 90% do teu programa está no CPAN ! Se eu acho que
Solli> dependência é um problema, então vamos queimar o CPAN e jogar
Solli> fora a nossa real diferença em relação as outras linguagem.
Solli> Visão do Desenvolvedor : Sou um péssimo programador e muito
Solli> limitado. Estou muito longe da genialidade do Matt, do
Solli> Miyagawa, do Eden e de outros. Sendo assim eu prefiro confiar
Solli> no código destes caras do que do meu. Além do mais, mesmo um
Solli> programador limitado como eu, sabemos que reutilizar código é
Solli> uma boa prática em engenharia de software.
A questão não é ser gênio ou não, é o princípio de crowdsourcing, também
conhecida como a "Lei do Linus": "com uma quantidade suficiente de
olhos, todos os problemas são simples". Agora, se a filosofia do teu
projeto é baseada em evitar a agregação de mais olhos, teus problemas
vão ser todos complicados.
Solli> Visão do Sysadmin : O Eden comentou estes dias que o problema
Solli> da dependência é um problema de distribuição e não de
Solli> desenvolvimento de software, e ele tem razão. Sysadmin é um
Solli> bicho limitado (eu falo pq sou um programador limitar e um
Solli> sysadmin experto - mesmo assim limitado) e muito acomodado. A
Solli> pior sub-raça dos sysadmin é os de Windows, que prefere
Solli> baixar 1 giga de um executável (lá vão algumas horas) e
Solli> clicar em 20 telas e pronto, do que ficar baixando diversos
Solli> pequenos pacotes. Mas seja sincero, quem gosta de ficar
Solli> pesquisando dependências.
Cara, eu tenho uma opinião inconvencional sobre isso, mas vocês vão ter
que ler no blog que o email tá ficando grande. :)
Solli> Se isto não fosse verdade, as
Solli> distribuições de linux não teriam inventadas os sistemas de
Solli> empacotamento e viciado os sysadmin com simples apt-get
Solli> install. Precisamos explorar mais a questão da distribuição,
Solli> este sim é o problema.
Também acho, isso tudo tá igual o projeto de alfabetização de idosos no
campo que tinha cerca de 90% de abandono escolar: o problema não era a
técnica de ensino, era que os velhotes precisavam de óculos.
Solli> Resposta da equipe do Catalyst
Solli> A tempo, o Eden está trabalhoando no Catalyst::Lite
Solli> (https://github.com/edenc/Catalyst-Lite), que como ele mesmo
Solli> disse '... ficou igual ao Mojolicious::Lite sem precisar
Solli> escrever 23 mil linhas de códigos e já tem tudos os plugins
Solli> do Catalyst funcionando ...'
"A tempo", leia-se: "desde que essa thread começou" e escrevi mais
português do que código :)
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc
More information about the SaoPaulo-pm
mailing list