Sou programador, atualmente de Java EE, e gosto muito de desenvolver em java. Tanto Web quanto Swing.
Já programei Visual Basic, já me aventurei, de leve, no C/C++, Ruby (on Rails), Python, e até mesmo a antiga PL1 e Cobol….
Cada linguagem me levou a um estilo de programar diferente. Cada linguagem com suas caratrísticas, prós e contras…
Por exemplo:
VB: Programação visual, de janelas, orientado a eventos e somente Windows, cheio de DLLs para cá, ActiveX para lá, milhares de OCX.. etc…
PL1/Cobol: Programação estrutural, onde o programa começa e termina e deu. Você controla tudo o que deve ser feito, e da maneira como deve ser feito… deve ser bem escrito e formatado para que possa ser compilado.
C/C++: Nao preciso falar muito neh, bela linguagem de alto nivel, mas que pode nos levar à imensidão dos 0/1 da nossa maquina …
Ruby/Python: Linguagens mais novas, e de mais alto nivel, com muitos facilitadores para tudo, python ainda tem escopo definido por identação de código (Pode?). Pode ser feito muita coisa boa com elas também… São Orientadas a Objeto.
Java: Linguagem que nos dá segurança, está fortemente ativa no mercado de Web e é fraca para programação visual, tem muitos frameworks prontos, e acho ela bem flexivel, é Orientada a Objetos.

Mas diferenças entra linguagens não é o foco do post, mas sim como escolher com o que programar para resolver o meu problema.

Acho que cada um sabe do seu problema melhor do que ninguém. Por exemplo, no foco da web ( que é onde estou neste momento ): devo utilizar uma linguagem/framework que me dê mais agilidade mas que me deixe muito fixo em uma linha de programação, ou uma linguagem/framework que me deixe livre para criar da maneira que quero, mas porém isto vai custar um tempo…

Bom, o que eu gosto de fazer, é seguir alguns padrões de desenvolvimento, que sempre é muito bom, pois facilita o entendimento da infraestrutura do aplicativo, e depois do ponta-pé inicial, torna-se mais fácil a manutenção do software, justamente popr seguir um padrão. Gosto de utilizar frameworks, pois também seguem algum tipo de padrão, assim , procuro definir com que frameworks meu software será desenvolvido, antes mesmo de iniciar a produzí-lo, e traçar uma linha de raciocínio, desenvolvendo-a até criar uma gama de processos mais maduros.

Mas qual framework utilizar ?
Escolha o fm que lhe dê as features necessárias, sem degringolar demais seu aplicativo. Ou seja, um fm que não tenha milhões de coisas a mais do que você precisa, honerando assim o poder de processamente, nem um fm que tenha somente a metade das coisas ou que gere muito trabalho a mais para conseguir montar o processo que você necessita. Ou seja, você deve avaliar os vários fm que tem para cada tipo de software e para cada tipo de atividade, e ver qual mais se encaixa ajustadamente eu seu propósito. Lembre-se: A melhor ferramenta é aquela que faz o que você precisa !

Aqui cito alguns frameworks que conheço, tanto de ter trabalhado já ou só de ouvir falar pela internet, e aqui, estou falando somente os poucos que conheço para desenvolvimento web, mas existem milhares de fm para todos os fins.
PS: Caso queiram citar mais alguns, de qq linguagem, por favor, comemtem abaixo que completo o post…
Java:
Spring Framework – Framework Completo para uma aplicação Web e não Web. Todo modular.
Struts – Framwork MVC para web somente.
Ruby:
Ruby on Rails – Conhecidíssimo pela sua agilidade para desenvolver, e média curva de aprendizado.
Python
Django – Não sei se é somente um framework, acho que na realidade é mais do que isto, é todo um ambiente de desenvolvimento de execução que também gera muita agilidade.

Mas qual padrão seguir ?
Padrões de projeto e de desenvolvimento são somente definições que nos ajudam a organizar melhor nosso projeto e nosso software ( neste caso ), sendo assim, se você for trabalhar com uma equipe média ou grande, e for desenvolver um software que vai ser necessário uma manutenção posterior, ou um contínuo desenvolvimento, é sempre bom seguir os padrões de dedsenvolvimento do mercado, onde temos muitos que são já bastante extressados e assim possuem uma maturidade importante em seus processos e definições. Agora, se você vai fazer um software pequeno, curto, com poucos pessoas ( você mais 2 ou 3 ) e que não tem tanta complexididade, talvez seja mais demorado aplicar todo um padrão de desenvolvimento de mercado emcima deste software, do que apenas definí-lo de uma forma clara, e desenvolve-lo assim que possivel, gerando assim mais produtividade.

Todas estas são opiniões pessoais.

Conversando com um colega de trabalho, obtive algumas informações sobre o Spring Framework.
Dentre estas informações, estavam uma que dizia que este fw era o que realmente podemos chamar de framework, onde o mesmo tinha tudo que
necessitávamos para construir uma aplicação do zero facil e rapidamente.
Ou seja, com o Spring fw, temos muitas facilidades, desde nossas classes de negocio, transações, classes de acesso a dados, model-view-controller, etc…
Podemos ler aqui (http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25) com mais detalhes o que o Spring tem a nos oferecer.

Eu sinceramente estou começando agora a aprender a trabalhar com Spring, mas já estou fascinado com tamanha produtividade oferecida por este fw.
E ainda mais quando entro no seu site, na seção de documentação e me deparo com uma documentação vasta, detalhada e muito bem organizada de
todas as suas funcionalidades e características ( http://static.springframework.org/spring/docs/2.5.x/reference/index.html ).

Na real, eu chequei até aqui através do aprendizado do JPA (Java Persistence API), e fiquei bem contente.

Agora, para complpetar o desenvolvimento de uma bela aplicação, basta aprender a programar o ext (http://www.extjs.com), uma biblioteca
java script que é muito completa, para objetos visuais, efeitos de páginas, ajax, e outras cositas mas !

Na empresa onde trabalho, tem clientes que queram atualmente utilizar o Linux como servidor da aplicação J2EE que desenvolvemos, que
atualmente roda em Windows 2003 Server, e nisto acabou entrando a discussão sobre performance do sistema em diferentes SOs.
A aplicação roda sobre JBoss 4.05, acessando banco de dados Oracle XE atualmente, com JDK 1.5.07, JMS, EJB, DAO/DTO, e algumas outras coisas…

Mas me propronho o seguinte:
Criar uma aplicaçãozinha faça crie 10 threads, cada uma com um loop de 1000 escritas em um arquivo ( um arquivo para cada thread ).
Ao iniciar será monitorada a memória consumida, durante o processamento tb, e o tempo total de processamento de todas as thread.
Serão utilizados os SOs:
- Windows XP Professional
- Windows 2003 Server
- Debian Etch
- Suse Enterprise Server
Todos em Virtual Machines, em uma maquina igual , de repente na minha mesmo , um Pentium IV HT 2.8Ghrz com 1Gb de memoria RAM.
Postarei o resultado da 1º e da 2º execução da aplicação em todos os ambientes, todos com o mesmo pacote ( JBoss + Arquivo EAR ).
Aí tiraremos as duvidas quanto a performance de J2EE em Sistemas Operacionais diferente….

Eu estava com duvidas quanto a isto, e buscando resolver minhas duvidas achei este belo tutorial no Guj sobre como trabalhar com datas no Java.

http://www.guj.com.br/java.tutorial.artigo.8.1.guj

Realmente vale a pena dar uma lida, pq desta maneira se consegue fazer praticamente tudo que é necessário com datas…

© 2010 Sérgio Berlotto - Blog Pessoal Obrigado por nos visitar ! Assine o RSS para não perder as novidades! Suffusion WordPress theme by Sayontan Sinha