Terça-feira, Março 18, 2008

Simplicidade como?

Estive esta semana pensando como poderia desenvolver determinado software, queria algo muito simples, algo que pudesse me divertir e também ganhar uma grana afinal ninguém é de ferro :-).

Este sistema deveria rodar na web, para poder ser acessado por bom número de pessoas.

Então fui a escolha das tecnologias Java, Ruby, Python, Smalltalk, logo parei e pensei, quero algo simples então vou usar o que vai ser mais fácil para mim: Java, pronto decidi como seria o servidor, agora precisava decidir como salvar meus objetos(Ops aqui já complicou um pouco), que forma usar já que não tenho servidor próprio e meu limite de memória é 100MB?, prevalência de objetos nem pensar, então me restou o nem tão bom assim e velho banco de dados(ficou um pouco mais complicado), meu servidor me oferece dois bancos, MySQL e Postgree optei pelo MySQL já que meu servidor diz que posso ter até 10 beses deste banco enquanto Postgree eu poderia ter somente uma. Agora tinha que escolher fazer objeto relacional ou usar JDBC direto, qualquer uma que escolhesse já aumentaria a dificuldade de implementação, fui então em busca de uma solução no google, com a pesquisa: “java object simple persistence”. Nos resultados escolhi um, que me pareceu bem simples e funcionava com MySQL e não havia necessidade de fazer anotações(mapeamento), o escolhido foi beankeeper, realmente simples, mas mesmo assim no início tive que me bater um pouco com o tutorial, coisa de uma manhã, mas ok o cara funcionou. Pronto servidor estava preparado.

Agora tinha que definir que tecnologia de interface com usuário para web, aqui meu desespero aumentou muito, inicialmente pensei: vou usar o XUL tecnologia disponível no Firefox, já possui todos os componentes que eu queria, parecido com html, pode ser usado tanto na web quanto no desktop. Mas pensei, quantos dos meus amigos usam Firefox, então fiz uma pesquisa rápida, o resultado foi desesperador, 80% usam Internet Explorer ou seja, se desenvolvesse no que seria mais simples pra mim, seria usado por apenas 20% dos meus amigos.

Novamente que tecnologia escolher, Flex, Silverlight, Applet(Swing), DHTML, sem contar que esta escolha deveria levar em conta minhas limitações como designer. Então de cara já eliminei o Flex e o Silverlight, a disputa estava entre applets(Swing) e dhtml, lembrem-se que estou falando de interface com usuário e para eu usar applets meu cliente tem que ter a máquina virtual java. No meu caso de preferência com a versão 6, já que dá para fazer algumas brincadeiras legais com Java2D. Aqui um problema grave, pois o download da vm, custaria a meus usuários o download de 15MB aproximadamente. Novamente uma pesquisa rápida com meus amigos e o resultado: 90% desistiria pela demora e a dificuldade de começar a usar, espero que a vm com download por demanda não demore muito. Por estes motivos fui direcionado para dhtml.

Qual tecnologia de dhtml usar? extjs, DOJO, yui, etc...?

Novamente tinha que lembrar das minhas limitações como designer.
Então o escolhido foi o extjs, por ter um visual já pré-estabelecido e agradável.

Usando extjs nos remete ao uso de AJAX(no meu caso sempre troco o X por JSON), então mais complexibilidade, fazer a comunicação ser JSON. Meu servidor tem que responder as requisições AJAX no formato JSON e receber também nesse formato, já viram que é necessário fazer o parser tanto na chegada da requisição ao servidor para objetos e na resposta de objetos para JSON. Mais muita complexibilidade.

Com isso tudo o que era para ser legal ficou muito chato e complicado.

Como gostaria de fazer tudo em desktop(Java Swing/Java2D/Prevayler ou DB4O), comunicando via http usando objetos serializados ou até mesmo usando XUL(Firefox) com uma applet de comunicação para enviar e receber objetos serializados.

Mas e a quantidade de usuários?
Dar manutenção e manter os usuários motivados a usar?
Simplicidade no inicio do uso, já que a web é a forma de marketing que vende quando a pessoa ainda tem vontade de comprar, ou seja, ofereço uma opção de software, que o usuário pode usar imediatamente ao receber o impacto de uma chamada ao site, sem precisar instalar, simplesmente esta disponível para uso.

Sou forçado a usar uma forma complicada e chata de desenvolver, para ficar aderente a esse modelo de marketing, sem contar nas limitações que este formato(web) me forçam.

Com isso posto(referência a um jornalista da região onde nasci), até o próximo post.

0 comentários:

Quem sou eu

Minha foto
agnaldo4j
Sou alegre, gosto de fazer amizades e quando possível ajudar quem precisa.
Visualizar meu perfil completo

agnaldo4j's shared items