[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Linux e java



Gustavo,

Gustavo Noronha Silva wrote:
> [...]
É... essa é a mesma impressão que eu tenho, também... O gandhi
do quilombodigital é um ótimo programador de java e ele realmente
gosta da coisa. Mas ele me contou de umas libs java que só funcionavam
em Windows... acaba por aí a multiplataformicidade.

Os únicos casos em que vi isso foram apis que queriam fazer coisas específicas de plataforma, no caso era uma api que permitia fazer io com arquivos do Excel (não, não era parte da solução, era parte da especificação do cliente :( ). No mais nunca tive problema com relação a capacidade de rodar em múltiplas plataformas. Já vi programas rodarem em Windows NT, Windows 2000, Solaris, Slackware e Debian, sem nenhuma alteração. Desenvolver em uma plataforma e fazer a publicação (deployment) em outra é uma das coisas mais comuns no meu trabalho.

Algo que é muito comum acontecer em aplicações desktop proprietárias, é o cara desenvolver em java e fazer o instalador utilizando algum InstallShield da vida, ou tomar decisões de projeto da aplicação assumindo que rodará no Windows.

A questão é que esse negócio do java é mais pra dizer que o
bytecode roda em qualquer máquina virtual, o que é verdade, mas
um código C bem escrito também pode compilar em diversas plataformas,
a única diferença é que você precisa de um binário pra cada uma.

Sim, neste aspecto você tem toda razão.

A vantagem de java em relação a C é o nível de abstração proporcionado pelo fato de ser orientada a objeto e possuir garbage collector. C++ também é orientado a objeto, mas o nível de abstração é baixo, você ainda é obrigado a gerenciar ponteiros, o que não é nada abstrato. (Não estou dizendo que ponteiros são ruins, eles tem o seu uso e fazem toda a diferença em certos contextos; mas te levam a pensar em termos de posição de memória, o que não ajuda muito quando se quer abstrair destas questões para poder concentrar-se no problema a ser resolvido).

Você só esbarra, mesmo em C, em código mal escrito ou em libs
uniplataforma. Como exemplo, meu primeiro programa em C usando
Gtk eu compilei pra GNU/Linux e Windows, e funcionava bem...

É verdade, contra código mal escrito não há linguagem que se salve. (Os compiladores podiam lançar algum warning mandando o cara ir dormir).

Devo dizer que acho a GUI do java (swing né?) uma coisa linda,
extremamente coerente e etc.

E pesada, eu ousaria completar. Isto está melhor hoje por dois motivos, as máquinas virtuais melhoraram e o as máquinas reais também, nenhum dos dois é mérito desta api (é swing sim).

Acho que java deve ser uma ótima linguagem para fazer servlets,
mas parece deixar bastante a desejar, ainda, para aplicações
desktop comuns. Tem um maluco fazer um programa gráfico em java
pra acessar o Debian Bug Tracking System (procurem o arquivo da
debian-devel).... vamos torcer pra que ele nos prove o contrário.

Não só para fazer servlets, mas para fazer programas que rodem no "servidor". O grande ponto fraco da plataforma java é justamente a questão da quantidade de recursos computacionais exigidos para ter um mínimo de usabilidade. No servidor a quantidade de recursos computacionais é grande (ou pelo menos focada para aquilo) e, depois de um certo ponto, ele otimiza absurdamente a aplicação, quando, a grosso modo, um objeto começa a ser muito utilizado, ele torna-se um gargalho para o sistema e é otimizado (compilação dinâmica, mas também utiliza outras formas de otimização). Chamo a atenção para o fato de não ser mérito da linguagem java, mas da implementação.


Como já foi dito: o negócio é testar e tirar suas conclusões,
xml e java não vão salvar o mundo, mas têm sua utilidade.

Realmente a propaganda é exagerada.
Mas o foco da linguagem é programação comercial, um reino antes (e ainda na verdade) era dominado por VB, que era mais utilizado por uma questão de propaganda do que por mérito do produto.

A linguagem java realmente não é o melhor dos mundos, mas ao aliar abstração (utilizando orientação a objeto) com márquinas virtuais e apis muito bem implementadas ela se torna extremamente poderosa para programação comercial.

[]'s Jonas



Reply to: