14 de abril de 2007

FISL 2007 - Balanço segundo dia

Aqui vai minha opinião sobre o segundo dia (13/04) do FISL:

- A quantidade de gente circulando deve ter caído pela metade neste segundo dia, o que me surpreendeu, já que me parece mais natural o pessoal ser liberado do trampo numa sexta-feira. Com isso não consegui avaliar se a estrutura de suporte melhorou ou se foi a quantidade de gente a menos que impactou, já que não houveram quedas de luz e nem baixas no link.

- Menos gente circulando, menos gente se interessando sobre o trabalho do JavaFree, logo mais palestras puderam ser assistidas. Porém minha opinião continua, palestrar fracas e sem necessidade.

- A primeira palestra que assisti do dia foi "O Presente e o Futuro da Propriedade Intelectual: um debate internacional". Palestra nada técnica, mas que abordava uma tema super atual e ainda não resolvido.
Com este "boom" do software livre, de quem é o direito intelectual? Pense em um projeto open source e que o Joãozinho contribui para este projeto. Um belo dia o desgraçado processa os responsáveis pelo projeto por direitos intelectuais no código que ele contribuiu. E aí, de quem são os direitos?
Tudo indicava que eu teria estas respostas na palestra, afinal dois "fodões" em propriedade intelecual estariam falando sobre o assunto, porém, na minha humilde opinião, apenas os problemas foram relatados e propostas de solução que é bom, NADA !!!

- Mas não desisti da minha pergunta, parti logo em seguida para a palestra "Novos Modelos de Negócio com Propriedade Intelectual", fiquei exatos 10 minutos, tempo para me convencer que ali também não me dariam respostas.

- Indo para a alçada mais técnica, fui assistir a palestra "Developing With KDE4", que apresentou os novos recursos para o desenvolvimento de aplicações desktop no KDE. A palestra só carimbou a minha conclusão sobre o assunto, que C++ apesar da idade, ainda está engatinhando no desenvolvimento deste tipo de aplicação.

- Finalmente uma palestra envolvendo Java "Apache Struts 2 - Turbinando o Desenvolvimento Web", e como a maioria sabe meu conhecimento em frameworks é quase nulo, boa hora para conhecer um pouquinho mais sobre o assunto. Conclusão, eu já sabia Struts 2 =(.

- Por fim, uma palestra sobre um assunto que curto muito, que é fazer baixarias com banco de dados. A palestra "PostgreSQL Babilônico - O banco de dados de muitos idiomas" tentou mostrar as diversas formas e linguagens para estender o PostgreSQL, interessante o assunto. Porém o palestrante não ajudou, com sua aversão ao desenvolvimento orientado a objeto e com o seu discurso "Parem de fazer selects burros e lógica de negócio nos seus objetos, façam isso no banco", fui obrigado a tapar o ouvido o resto da palestra. Além do figura ter gastado mais tempo e atenção preparando o currículo dele do que a própria apresentação, pois "estender" com "x" é dose amigo.

- Outra atração do dia foi o "TUX", muito engraçado o cara, fazendo várias bobagens pelo fórum, zoando com todo mundo. Ele foi se meter a bobo lá no JavaFree e tomou umas porradas, ta filmado hehehe.


- Ahhh, o cafézinho com as gostosas servindo, para "estresse" geral, continuaram no segundo dia =D.

9 comentários:

tsilva disse...

"[...] na minha humilde opinião, apenas os problemas foram relatados e propostas de solução que é bom, NADA !!! [...]"

Eu não estava nesta palestra (gostaria de ter ido, mas não pude) e, portanto, não sei o que os palestrantes se proporam. Porém, pelo título, entendo que oferecer uma solução para o problema não é, necessariamente, o objetivo, mas discutir as facetas dos problemas. Não foi este o caso?

"[..] a palestra "Developing With KDE4", que apresentou os novos recursos para o desenvolvimento de aplicações desktop no KDE [..]"

Na verdade, esta era a proposta, mas não foi cumprida. O Aaron, mesmo correndo, mau tocou na superfície, no que tange a programação Qt4 e KDE4. A maior parte da palestra mostrou apenas o que desenvolvedores KDE 3.x já sabem.

"A palestra só carimbou a minha conclusão sobre o assunto, que C++ apesar da idade, ainda está engatinhando no desenvolvimento deste tipo de aplicação [...]"

!? Você se refere a aplicações desktops? Poderia elaborar esta conclusão?

"[...] pois "estender" com "x" é dose amigo."

Está claro sua insatisfação (e, embora tenha visto esta palestra em outro evento, não me lembro o suficiente para fazer comentários técnicos), mas não acha injusto publicar este tipo de comentário? Especialmente um erro que envolve este termo, dado que milhares de programadores escrevem "extends" no dia a dia. Sério, isso foi completamente desnecessário.

[]'s
Thiago Silva

Giovane Roslindo Kuhn disse...

Blz Thiago,

Sobre a palestra de propriedade intelectual, eu realmente esperava obter algumas direções, afinal o título mencionava o "futuro da propriedade intelectual", além da chamada detalhada da palestra mencionar os rumos que estão sendo tomados na OMPI. Vacilo meu não ter conversado com os palestrantes na saída.

Sobre a palestra do Aaron, para mim ela cumpriu o objetivo, já que conheço pouco de desenvolvimento KDE. Apesar de corrida, ele conseguiu me passar os principais recursos no desenvolvimento desktop utilizando este tipo de plataforma.

Desenvolvo desktop em C++ há um ano, vindo do desenvolvimento Java/Swing. Minha bronca é a falta de produtividade e reutilização de interfaces (telas) no desenvolvimento desktop em C++. Julgo que esta falta de reutilização é pela forma com que os callbacks estão amarrados a implementação desta window.
Estender qualquer funcionalidade desta window exige um "pouco" de código, que ao meu ver outras linguagens estão bem a frente.
Não usei ainda o esquema de signal-slot, mas acredito que isso resolva o problema que citei, aliás, achei muito boa esta solução no Qt4.

Finalizando, sobre a palestra do PostgreSQL, não tenho dúvidas da competência dos caras, só ver o currículo. Mas achei altamente "injusta" a forma com que eles tentaram vender a idéia "vamos programar no banco". O cara baixou o nível com os programadores OO sem conhecimento de causa. Acredito que minha alfinetada sobre o português não tenha chegado perto do cometido pelo palestrante.

Abraço !

tsilva disse...

"Desenvolvo desktop em C++ há um ano, vindo do desenvolvimento Java/Swing. Minha bronca é a falta de produtividade e reutilização de interfaces (telas) no desenvolvimento desktop em C++."

Quanto a falta de produtividade, talvez eu não tenho como argumentar muito. Mas sobre as telas, ainda não estou certo de que entendi o que está dizendo. Você se refere ao ambiente KDE, quando diz que há falta de reutilização de telas?

"Julgo que esta falta de reutilização é pela forma com que os callbacks estão amarrados a implementação desta window."

Não creio que isso aconteça com Qt/KDE e, também, não conheço toolkits que obriguem esta amarração. Que tipo de experiência teve que o levou a chegar a estas observações?

"Finalizando, sobre a palestra do PostgreSQL, não tenho dúvidas da competência dos caras, só ver o currículo. Mas achei altamente "injusta" a forma com que eles tentaram vender a idéia 'vamos programar no banco'."

Hehe, ok! Acho que te entendo (me lembro de ter sentido algo semelhante vendo palestras como esta).

Giovane Roslindo Kuhn disse...

Falo em reutilização de telas (Windows, Pane, Widgets, Components, Whatelse) nos toolkits que pesquisei (Fox, WxWidgets, Qt, LGI, Gtk).

Exemplo simples de uma tela de login que eu quero reutilizar em diversos projetos. Infelizmente o toolkit me obriga a implementar o evento "OnClick" no fonte da tela de login. Concorda?

Porém as necessidades podem mudar de uma aplicação para outra no evento "OnClick", como estender isso?

Hoje eu herdo esta tela de login para cada um dos projetos, sobrecarrego o evento "OnClick" para a necessidade de cada uma das telas. Na minha opinião isso gera um fonte a mais totalmente inútil e improdutivo. Apesar do exemplinho bobo, qual a tua experiência para este tipo de situação?

Acredito que signal-slot elimina esta situação, já que a tela de login apenas dispara o evento, não sabendo quem , nem quantos vão tratar o mesmo.

tsilva disse...

"Falo em reutilização de telas (Windows, Pane, Widgets, Components, Whatelse) nos toolkits que pesquisei (Fox, WxWidgets, Qt, LGI, Gtk). Exemplo simples de uma tela de login que eu quero reutilizar em diversos projetos.

Infelizmente o toolkit me obriga a implementar o evento "OnClick" no fonte da tela de login. Concorda?"


Certo, agora entendi. Qual o toolkit que te obriga isso?? Como bem observou, é inviável fazer com que o programador estenda as classes para tratar eventos. Neste caso, até uma classe Button teria que ser estendida para que você programasse seu evento onClick, por exemplo. Penso que talvez tenha deixado passar algo despercebido, pelo menos, no que se refere a Qt, Gtk e wxWidgets.

Em Qt, por exemplo, dado o widget loginView com o signal onClick() e um objeto loginController com um slot doLogin(), poderiamos conectá-los assim:

connect(loginView, SIGNAL(okClicked()), loginController, SLOT(doLogin()))

Em GTKmm:

loginView.signal_okClicked().connect(sigc::mem_fun(loginController, &LoginController::doLogin))

Em GTK (lembrando que é um parto estender "classes" com este toolkit), tendo o widget loginView com o evento "okClicked", e a função doLogin, poderiamos ter algo semelhante à:

g_signal_connect (G_OBJECT (loginView), "okClicked", G_CALLBACK (doLogin), NULL);


Em wxWidgets eu não sei (o URL do tutorial não está abrindo aqui), mas eles utilizam macros para associar os eventos, se bem me lembro.

"Hoje eu herdo esta tela de login para cada um dos projetos, sobrecarrego o evento "OnClick" para a necessidade de cada uma das telas. [...] qual a tua experiência para este tipo de situação?""

Isso, de fato, não é bom e você tem razão em exigir abordagem melhor. Mas em nenhum framework que utilizei fui forçado a estender classes para configurar os eventos ou fazer com que meus eventos sejam associados em nível estrutural.

"Acredito que signal-slot elimina esta situação, já que a tela de login apenas dispara o evento, não sabendo quem , nem quantos vão tratar o mesmo."

Sim, signal-slot elimina esta situação, assim como a biblioteca C++ sigc, etc. Embora eu também seja fã da abordagem do Qt, é bom dar uma olhada nas muitas de suas críticas negativas, também.

Espero ter ajudado =)

[]'s
Thiago

Giovane Roslindo Kuhn disse...

Opa...

Fox e WxWidgets trabalham com macros para definir eventos, Wx é a que estou utilizando atualmente.

Gtk achei uma afronta a quem já fez telas em Java, e principalmente em ferramentas RADs. Acho um absurdo o quanto precisa programar para fazer uma feature.

Sobre Qt a única coisa que fez eu não usar na época, foi a esquema de licença deles, que impede eu fechar a minha aplicação.

Java resolveu essa questão através de Listeners, acho que funcionou MUITO BEM, conseguindo separar a implementação de quem dispara um evento qualquer, da(s) implementação(ões) que trata(m) este evento.

Qq forma valeu pelas dicas Thiago !!!

Claudio Miranda disse...

Olá Giovane, legal que a palestra sobre Apache Struts 2 tenha contribuído para que seu entendimento sobre as novas funcionalidades do Struts 2 fosse rápido e claro. Infelizmente o tempo foi curto para mostrar tudo o que pensei em mostrar, se quiser conhecer mais sobre o Struts 2, visite o portal do projeto: http://struts.apache.org

Giovane Roslindo Kuhn disse...

Olá Cláudio, seja bem vindo ao blog.

Realmente a gente acha que 1 hora é bastante coisa, mas quanto falamos de palestras técnicas, parece que este tempo some !!!
Ainda mais falando de um framework tão grande quanto o Struts 2. Qualquer forma você conseguiu apresentar os pontos fundamentais, acho que foi uma boa palestra.

Parabéns.

Anônimo disse...

Eu prefiro extender com X a "não houveram quedas de luz" e "cafézinho". :-)

Estender com S é uma aberração. Uma aberração oficial... hehhehe