Autor Tópico: Assinatura do Andre (Era: Apelidos)  (Lida 3028 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline Moro

  • Nível Máximo
  • *
  • Mensagens: 20.984
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #50 Online: 16 de Julho de 2008, 23:12:25 »
O Java estava no lugar certo na hora certa. Alguns pontos:

A portabilidade (no caso do Java extrema) no mercado corporativo é importante (empresas com mais de 1000 servidores não gostariam de ter só windows)
Pessoas cansadas de linguagens que prometiam simplificar o processo de desenvolvimento mais do que o razoável para grandes projetos,
Wintel não tem as máquinas para o mercado corporativo (50 procs, 100 procs),
OO e a engenharia de software estava bombando,
O Java utilizou uma série de coisas do C++ e tirou coisas úteis mas confusas ou criticadas (herança múltipla), a abordagem não foi pretensiosa (ninguém sonhou em fazer o mapeamento Objeto relacional tirando funcionalidades do JDBC por exemplo), e etc..
E era free, uma série de desenvolvedores OO começaram em Java

Hoje, o Java não representa mais uma linguagem, representa uma proposta de interoperabilidade que é extremamente importante.
“If an ideology is peaceful, we will see its extremists and literalists as the most peaceful people on earth, that's called common sense.”

Faisal Saeed Al Mutar


"To claim that someone is not motivated by what they say is motivating them, means you know what motivates them better than they do."

Peter Boghossian

Sacred cows make the best hamburgers

I'm not convinced that faith can move mountains, but I've seen what it can do to skyscrapers."  --William Gascoyne

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #51 Online: 16 de Julho de 2008, 23:49:57 »
Só se for no universo paralelo onde os applications servers em ambiente de produção rodam em Windows ! Cara, a escalabilidade/performance de applications servers em Windows é muito ruim. E, na boa, o .Net só começou a funcionar em 2007, 5 anos depois do J2EE, então estão atrasados até agora...
Mas muita coisa roda. Existe um crescente mercado para .net, a Microsoft está investindo pesado na criação de desenvolvedores. Muitas empresas novas, principalmente, que não tem código legado em Java estão aderindo ao .net. E .net em 2005 já funcionava, até onde sei. Eu trabalhava em uma empresa que estava começando a treinar seus desenvolvedores em .net.

hoje é melhor usar browser mesmo numa arquitetura cliente-servidor simples.
Isso não é lá muito verdade. Poucos meses atrás houve um grande 'hype' em aplicações web e tal, mas hoje perceberam que a coisa não é tão assim legal como acharam que fosse (lembram dos "Sistemas Operacionais" web-based? Pois é...). A maioria das aplicações web são bastante limitadas. Não existem soluções Desktop que deixaram de aparecer por causa da web (não que me venha a mente agora, pelo menos); as aplicações da web são de um campo novo, que já não existia no Desktop. E o que existia, não é lá muito bom.

Não dá para comparar a ausência do Java no Desktop com esse hype de 'web-based'.

E soluções corporativas ? Porte de funcionalidades que eram cliente-servidor ou stand-alone (leia-se 'clipão') ? Por que ERPs já desenvolvidos foram portados para Java ? Porque MySAP usa Java ? Porque a base do Oracle (não o OCI, mas de aplicações, drivers, e até o client) estão em java ? Por quê a Oracle comprou a BEA ?
Bem, eu não discordo. Na verdade coloquei errado meu ponto anterior: java está perdendo mercado corporativo porque ainda o tem.

E o "java está acabando" foi sensacionalista, confesso. :D ... Não que esteja prestes a acabar, mas o topo da curva acabou de passar...
« Última modificação: 16 de Julho de 2008, 23:53:47 por Oceanos »

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #52 Online: 16 de Julho de 2008, 23:53:28 »
A portabilidade (no caso do Java extrema) no mercado corporativo é importante (empresas com mais de 1000 servidores não gostariam de ter só windows)
Essa idéia de que "Java é portável" é resultado de puro marketing, no fim das contas. Java não tem nada além do que o Python tem em questão de portabilidade, por exemplo... Código C também é portável, só o desenvolvedor se adequar à certos padrões e tomar certos cuidados...

Offline gogorongon

  • Nível 30
  • *
  • Mensagens: 1.834
  • Sexo: Masculino
  • Não.
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #53 Online: 17 de Julho de 2008, 00:18:15 »
O excesso de bibliotecas mais atrapalha que ajuda: no desenvolvimento, você passa mais tempo procurando algo que faça o que você quer para Java do que efetivamente fazendo alguma coisa...
O pessoal da minha faculdade costuma ter esse tipo de dificuldade. Adivinha só o porquê...

Porque eles NUNCA usam a documentação do Java. Eles nunca usam a integração das IDEs com a documentação pra buscar as informações que precisam, quanto mais fazer download da documentação e instalar por conta própria. O único motivo pelo qual os computadores da faculdade têm a documentação instalada é porque eu ralei pra instalar e configurar todas as máquinas por conta própria, porque cansei do caos em que os computadores dos laboratórios estavam.

E mesmo assim, nunca vi um único idiota usar a documentação durante as aulas além de mim. Todos só querem saber de jogar alguma coisa no Google pra ver se acham as informações que precisam, quando está tudo debaixo do nariz deles. Tenho que admitir que se tem uma coisa na qual Java se sai melhor do que qualquer outra linguagem que já conheci é na documentação; a documentação do Java é tão completa e bem estruturada que dá pra aprender o funcionamento da maioria absoluta das classes sem esforço nenhum, e de quebra a gente ainda acaba descobrindo um monte de outras classes e métodos incrivelmente interessantes que a gente pode usar pra incrementar nossos programas. O único porém é que na minoria dos casos em que a informação não é fácil de achar ela é quase impossível, mas isso acontece muito pouco.

Para ler um arquivo com Java você precisa de umas três classes diferentes (que você tem que apropriadamente escolher entre várias)
Java obriga a gente a usar um monte de classes diferentes, mas quando a gente olha pra documentação dessas classes vê que elas têm um monte de outros recursos que a gente pode usar se quiser. Eu fui fazer uma calculadora tosca em Java e consegui fazer até ela formatar a exibição dos resultados de acordo com as configurações regionais do sistema operacional (por exemplo, nos EUA se usam pontos no lugar de vírgulas e vice-versa).

existe um "excesso de OO".
Não existe excesso de OO, existe falta de elementos de linguagens estruturadas. Mas mesmo assim eles implementaram coisas como classes que podem ser usadas sem serem instanciadas e outras gambiarras que nada mais são do que recursos de programação estruturada travestidos de orientação a objetos.

Código C também é portável, só o desenvolvedor se adequar à certos padrões e tomar certos cuidados...
...como escrever várias versões de certas partes do código de acordo com os sistemas operacionais para os quais vai compilar. E toda a propaganda da portabilidade do Java não se resume ao código, mas também aos executáveis. Você pode pegar um executável de Java criado em Linux e rodar no Windows diretamente. Até aplicativos pra celulares rodam diretamente nos desktops. Tem algumas exceções porque parece que a JVM não consegue rodar 100% igual em todos os sistemas operacionais, mas no geral a portabilidade do Java é muito boa.

Offline Oceanos

  • Nível Máximo
  • *
  • Mensagens: 8.924
  • Sexo: Masculino
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #54 Online: 17 de Julho de 2008, 00:38:09 »
O pessoal da minha faculdade costuma ter esse tipo de dificuldade. Adivinha só o porquê...

Porque eles NUNCA usam a documentação do Java. Eles nunca usam a integração das IDEs com a documentação pra buscar as informações que precisam, quanto mais fazer download da documentação e instalar por conta própria. O único motivo pelo qual os computadores da faculdade têm a documentação instalada é porque eu ralei pra instalar e configurar todas as máquinas por conta própria, porque cansei do caos em que os computadores dos laboratórios estavam.

E mesmo assim, nunca vi um único idiota usar a documentação durante as aulas além de mim. Todos só querem saber de jogar alguma coisa no Google pra ver se acham as informações que precisam, quando está tudo debaixo do nariz deles. Tenho que admitir que se tem uma coisa na qual Java se sai melhor do que qualquer outra linguagem que já conheci é na documentação; a documentação do Java é tão completa e bem estruturada que dá pra aprender o funcionamento da maioria absoluta das classes sem esforço nenhum, e de quebra a gente ainda acaba descobrindo um monte de outras classes e métodos incrivelmente interessantes que a gente pode usar pra incrementar nossos programas. O único porém é que na minoria dos casos em que a informação não é fácil de achar ela é quase impossível, mas isso acontece muito pouco.
Isso não resume todo o problema. É possível ter problemas mesmo lendo a documentação. Existe muita redundância e muita coisa em Java, esse é meu ponto.

Java obriga a gente a usar um monte de classes diferentes, mas quando a gente olha pra documentação dessas classes vê que elas têm um monte de outros recursos que a gente pode usar se quiser. Eu fui fazer uma calculadora tosca em Java e consegui fazer até ela formatar a exibição dos resultados de acordo com as configurações regionais do sistema operacional (por exemplo, nos EUA se usam pontos no lugar de vírgulas e vice-versa).
Java não é única nesse ponto... Aliás, esse ponto é algo que todas as linguagens praticamente empatam.

Não existe excesso de OO, existe falta de elementos de linguagens estruturadas. Mas mesmo assim eles implementaram coisas como classes que podem ser usadas sem serem instanciadas e outras gambiarras que nada mais são do que recursos de programação estruturada travestidos de orientação a objetos.
Repare minhas aspas. Usando um exemplo em Python:

Código: [Selecionar]
f = open("arquivo")
print f.read()

Isso abre um arquivo, retorna um objeto em f em Python e imprime o conteúdo na tela. Simples, prático e sem frescuras. Em C o código é semelhante. O problema não é falta de procedimentos, é a prolixidade e o excesso de classes para fazer alguma coisa...

...como escrever várias versões de certas partes do código de acordo com os sistemas operacionais para os quais vai compilar.
Em casos extremos, muitos extremos. Você resolve 90% dos seus problemas procurando bibliotecas portadas.

Cabe lembrar também que em Java a portabilidade não é absoluta.

E toda a propaganda da portabilidade do Java não se resume ao código, mas também aos executáveis. Você pode pegar um executável de Java criado em Linux e rodar no Windows diretamente. Até aplicativos pra celulares rodam diretamente nos desktops. Tem algumas exceções porque parece que a JVM não consegue rodar 100% igual em todos os sistemas operacionais, mas no geral a portabilidade do Java é muito boa.
Qual é a utilidade prática disso, no fim das contas? Python é uma linguagem interpretada e é mais portável ainda que Java: você não precisa nem compilar! E nem de longe se fala tanto da portabilidade dela como se fala em Java... Por isso eu digo que há muito marketing...

Offline FZapp

  • Administradores
  • Nível Máximo
  • *
  • Mensagens: 6.943
  • Sexo: Masculino
  • El Inodoro Pereyra
    • JVMC
Re: Assinatura do Andre (Era: Apelidos)
« Resposta #55 Online: 17 de Julho de 2008, 00:46:27 »
Aì a portabilidade do Java ganha peso no caso de ser possível criar uma estrutura maior, pela orientação a objeto, e ser possível trabalhar em camadas (n-Tier), montar apliccation servers, etc.

Mas enfim, voltando, não existe panacéia nem linguagem perfeita.

Só para lembrar um caso que me vem à mente, um doido na empresa que trabalho hoje escreveu um serviço em Java (um segmentador de arquivos)... só que se esqueceu que já estava num broker (ECX, não, não devem conhecer), que por sua vez chamava uma lista de processos, e este processo em Java, que (imaginem) ainda abria sua bendita JVM, ... é como colocar um elefante numa garrafa !

Tem processos em PERL muito mais eficientes que fazem isso consumindo menos, e portanto mais práticos também.

E olha que Java é meu ganha-pão (principal) desde 2000, mais ou menos.
--
Si hemos de salvar o no,
de esto naides nos responde;
derecho ande el sol se esconde
tierra adentro hay que tirar;
algun día hemos de llegar...
despues sabremos a dónde.

"Why do you necessarily have to be wrong just because a few million people think you are?" Frank Zappa

 

Do NOT follow this link or you will be banned from the site!