Estou, como todos, a ficar velho.

Estou com menos paciência para aprender tecnlogias novas, linguagens novas, novos paradigmas. Isto parece um contrasenso completo, dado que se "se não queres aprender, não trabalhes em IT". Portanto neste momento não quero aprender coisas novas, quero utilizar o conhecimento adquirido ao máximo e ser mais produtivo a criar novas soluções. Quero investir o meu esforço em criar novas soluções, novo software que de alguma forma resolva problemas ou entretenha o utilizador. Fiz a lista das tecnologias em que eu deveria investir de forma a estar preparado para o futuro e dividi-as à boa forma clássica: cliente e servidor.

Servidor:

ASP.NET(C#) + RIA Services + Azure

Neste "lado" as tecnologias são simples:

- uma forma de criar e entregar páginas dinamicas e serviços (ASP.NET);

- automatização do processo de validação e entrega de serviços (RIA Services). Podia acrescentar aqui Entity Framework, Data Services, etc. Mas vou manter a lista simples.

- espaço e forma escalável para colocar as aplicações e dados em produção em que não me preocupo com a infraestrutura, sistemas operativos, patching e gestão e apenas me preocupo com o meu código e os meus dados (Windows + SQL + Azure Storage)

Se o que é executado no servidor pode parecer menos "exciting" do que o que corre no cliente, é neste lado que poupamos mais dinheiro, onde a eficácia do código está directamente ligada a uma redução de custos. Está longe da vista mas perto da carteira.

Cliente:

Aqui a realidade é aparentemente inversa à do servidor. Brincamos às aparências para as nossas aplicações parecerem maiores e melhores que o valor obtido pela informação que transmitimos. A performance não está ligada à carteira directamente, mas está ligada ao coração. Compramos o que gostamos e queremos acreditar que funciona porque gostamos.

- o "form factor" que utilizamos é essencial. É o nosso primeiro interface para a informação. O meu PC tem que ser "giro", "bonito", "fazer conjunto com a minha personalidade" tal como uma carteira tem que fazer conjunto com os sapatos. Se os fabricantes de PCs perceberam isto tarde, os produtos que se avizinham mostram que este sector aprendeu a lição. Já não queremos PCs com um i5 ou i7, queremos aquele modelo giro da marca X ou Y que tem multitouch ou dois ecrãs ou... Chegaram os slates e chegarão mais e melhores PCs com novas formas de interacção. (Não me estou a esquecer do Kinect, apenas não é para já)

- para fazer código que funcione no maior número de dispositivos a forma melhor é garantidamente em HTML4 + jQuery, quando o HTML(5) for uma realidade a nível de adopção, tenho toda a esperança que possa utilizar HTML e jQuery para fazer a maior parte das funções simples. A forma mais performante de fazer código para o interface com o utilizador é sem dúvida Silverlight. Com uma "verdadeira"(que me desculpem os puristas) linguagem de programação e com uma completa distinção entre layers, o Silverlight continua(e continuará) a fazer muito que o HTML não faz. Além disso é a melhor forma que tenho de ter apenas um código que corre no Windows, na Web e no Windows Phone.

- Espero que com o IE9 e o IE "vNext" a fronteira entre aplicações nativas windows e aplicações web se desvaneça. É nesse sentido que o IE(e o Silverlight em especial com o NESL) é uma peça fundamental dado que a integração com o Windows permite criar uma sinergia e transparência entre ambientes. Não basta ser mais rápido ou ter o interface mais limpo, é preciso tirar proveito do sistema operativo.

Daqui podemos aumentar a complexidade ou tentar simplificar o desenvolvimento mas estas são sempre as peças básicas do jogo. Ou será que me esqueci de alguma?