Pois é, e então isso volta ao ponto: não dá pra implementar AR Rails-Like em Java.
Concordo em parte. Parece que o seu ponto vista é exclusivamente de consultor, onde pegam uma pessoa do mercado, ela faz o sistema, e tchau. Numa empresa que conta com uma equipe fixa de funcionários via CLT ou via PJ, mas que sejam mais ou menos fixos, não é tão simples pois a rotatividade é razoável mas não a ponto de trocar o arquiteto e todos os desenvolvedores a cada projeto.
Além do mais se a empresa é uma empresa de TI ela provavelmente terá produtos que deseja oferecer a seus clientes. Simplesmente abandonar uma plataforma com a qual está compremotida até o pescoço e escrever tudo do zero é inviável na maioria dos casos. Apenas se houver demanda forte do mercado por outra (tipo, seus possíveis clientes pedindo), e já vi gente migrando para o Java por causa disso.
O fato de Java não ser bom para uma coisa não justifica a outra. Nenhuma linguagem é boa para tudo, mas aí é necessário mais do que simples contagem de keystrokes e cenários fantasiosos.
Um exemplo de exagero é o vídeo de propaganda do Rails, que mais parece um Wizard do Word onde o usuário entra com alguns dados e pronto. O problema é quando se sai dos “trilhos”, o fácil já não é tão fácil.
Se pensarmos pela mentalidade de muitos que usam Ruby amanhã todos largaríamos o Java para usar VB. Quer coisa mais fácil para fazer aplicações comerciais do que VB? Mas isso torna o VB a melhor linguagem do planeta e um Java-killer? E porque que tem gente que ainda prefere desenvolver usando Java com Swing ou SWT? Não seria melhor usar só VB pois é muito mais rápido e mais fácil?
[quote=juzepeleteiro]
Cara, não me leve a mal, eu acho Java do caramba. Mas tem seus pontos fracos (assim como fortes) e adimitir isso é muito bom para qualquer profissional.[/quote]
Apenas acho que as vantagens de determinadas linguagens são exageradas e os testemunhos beiram o absurdo. Trabalho com outras linguagens script e perto delas o Java parece o sinônimo de “ordem” e elas o de “caos”.
O problema que eu tenho com Ruby é o mesmo que eu tenho com Spring, simplesmente “é tudo de bom”. Você já viu algo sem falhas?
Você olha e pensa “Mas em que situações eu usaria isso?”, depois procura algum depoimento de pessoas experientes na tecnologia à procura de situações práticas e nada. Lê sites e tutoriais, acha tudo muito normal, com algumas exceções horríveis aqui e ali e outras legalzinhas aqui e ali, mas não o suficiente para entender todo o “cheerleading”. Procura perspectivas futuras e encontra filosofias…
Acho que falta um pouco de pé no chão.
Tua opinião tem fundamentos, mas tb não precisa gastar tanto keystroke assim. Tá parecendo:
BufferedReader br = mew BifferedReader(new InputStreamReader(socket.getInput()));
Não sei se você já pegou algum projeto em VB, mas eu já. Estava em um até 2 meses atrás. Dói.
Taí uma coisa que deve-se pensar muitooo bem antes de começar a desenvolver algo: Swing ou SWT. Não que eu tenha trabalhado já com alguma delas, mas até onde sei e já ouvi relatos, .Net para desktop, está anos (anooos) à frente.
Olá
Como é sabido aqui no GUJ, eu não tenho a menor idéia para que serve um programa desktop que funcione isolado. Até costumo dar os exemplos daqueles programas do milênio passado tipo Office que não permite que o chefe em Ipanema trabalhe na mesma planilha que o funcionário na Tristeza.
Me mate uma curiosidade. Acho que a resposta deve ser sim mas em todo caso pergunto: Com .NET é fácil fazer sistemas que enviem e recebam mensagens http/https? Com Java + HTTPClient é tranqüilo.
[]s
Luca
Sim, é sim. WebService com .NET por exemplo é a coisa mais linda do mundo. Melhor até do que o XFire, nos usamos sempre o .NET como inpiração no XFire.
Um abraço,
Jose Peleteiro
Lembrei agora, tempinho atrás saiu um artiguinho sobre ActiveRecord no IBM-DeveloperWorks.
http://www-128.ibm.com/developerworks/java/library/j-cb03076/
Ah, sim, e é escrito pelo Bruce Tate.
[quote=Luca]Me mate uma curiosidade. Acho que a resposta deve ser sim mas em todo caso pergunto: Com .NET é fácil fazer sistemas que enviem e recebam mensagens http/https? Com Java + HTTPClient é tranqüilo.
[]s
Luca[/quote]
Luca, não programo nadinha em .Net, mas na empresa tem bastante gente nele. E já ouvi muita melação na parte de criar webservices por exemplo com .Net, que chega a ser estúpido de tão simples. Mas como ainda não vi na prática não posso te afirmar.
Olá
Diego, falo de programas trocando mensagens HTTP/HTTPS mesmo usando URLConnection powered by HTTPClient porque este é o ambiente que eu vivo desde 2001. Alguns dos sistemas desktop que eu trabalhei até trocavam web services mas eram de servidor para servidor nas camadas de servidor.
[]s
Luca
[quote=plentz][quote=Luca]Me mate uma curiosidade. Acho que a resposta deve ser sim mas em todo caso pergunto: Com .NET é fácil fazer sistemas que enviem e recebam mensagens http/https? Com Java + HTTPClient é tranqüilo.
[]s
Luca[/quote]
Luca, não programo nadinha em .Net, mas na empresa tem bastante gente nele. E já ouvi muita melação na parte de criar webservices por exemplo com .Net, que chega a ser estúpido de tão simples. Mas como ainda não vi na prática não posso te afirmar.[/quote]
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
Qualquer semelhança com
@WebMethod
public String helloWorld()
{
return "Hello World";
}
Não é mera coincidencia. Foi tudo inspirado no .NET
Java já esta bem perto, mas ainda não chegou lá principalmente por que você têm que configurar um servidor de WebService (pode ser o interno do XFire por exemplo, que utiliza o Jetty), e no caso do .NET é só jogar no IIS. Mas com os novos servidores JEE 5, não sei se ainda é necessário.
[quote=Thiagosc][quote=juzepeleteiro]
Mas, no cenário que eu estou falando, empresas contratam um arquiteto de solução (normalmente de uma consultoria) que faz um estudo do projeto e chega a uma conclusão, que pode ser aquele projeto é melhor em C, eles vão contratar uma consultoria especializada para desenvolver em C. Não estou falando de ter um time que saiba todas tecnologias. Mas chamar o time que sabe aquele que a deve ser usada.
E nem todos os argumentos para essa decisão são técnicas. Coisas como preço, prazo, mão de obrar no mercado, fornecedores, desejos do cliente entre outras são avaliadas.
Não estou falando de ficar mudando a tecnologia de um projeto e etc, nem que qualquer um vem e muda uma coisa. Mas existe um cara, o arquiteto de solução, que têm esse papel e essa capacidade.
[/quote]
Concordo em parte. Parece que o seu ponto vista é exclusivamente de consultor, onde pegam uma pessoa do mercado, ela faz o sistema, e tchau. Numa empresa que conta com uma equipe fixa de funcionários via CLT ou via PJ, mas que sejam mais ou menos fixos, não é tão simples pois a rotatividade é razoável mas não a ponto de trocar o arquiteto e todos os desenvolvedores a cada projeto.
Além do mais se a empresa é uma empresa de TI ela provavelmente terá produtos que deseja oferecer a seus clientes. Simplesmente abandonar uma plataforma com a qual está compremotida até o pescoço e escrever tudo do zero é inviável na maioria dos casos. Apenas se houver demanda forte do mercado por outra (tipo, seus possíveis clientes pedindo), e já vi gente migrando para o Java por causa disso.[/quote]
Sim, se for uma empresa de TI e tiver condições de ter somente uma equipe. E melhor se manter em uma tecnologia, mas sempre procurando se expecializar nela. Eu acho muito triste uma empresa de TI que não investe na melhoria continua dos seus profissionais e na modernização das técnicas de desenvolvimento. No final no final isso significa aumento da qualidade e desempenho. Uma empresa de TI que ainda utilize Struts pôr exemplo está perdendo dinheiro. A não ser que a estratégia dela seja contratar mão de obra do mercado barata e sacrificar a qualidade do desenvolvimento. Mesmo em uma empresa de TI, a função de arquiteto de solução qualificado é muito importante. E uns dos pontos que ele vai analizar na hora de escolher a arquitetura (linguagem, framework, metodologia, design guidelines) e a mão de obra disponivel.
Uma empresa que não é de TI, não deve se meter com TI, a não ser que ela estruture um departamento de TI, cujo o negocio seja TI. Inclusive cobrando aos outros departamentos pelo desenvolvimento. (senão todo mundo que tudo, quando ninguem mete a mão no bolso).
O fato de Java não ser bom para uma coisa não justifica a outra. Nenhuma linguagem é boa para tudo, mas aí é necessário mais do que simples contagem de keystrokes e cenários fantasiosos.
Um exemplo de exagero é o vídeo de propaganda do Rails, que mais parece um Wizard do Word onde o usuário entra com alguns dados e pronto. O problema é quando se sai dos “trilhos”, o fácil já não é tão fácil.
Se pensarmos pela mentalidade de muitos que usam Ruby amanhã todos largaríamos o Java para usar VB. Quer coisa mais fácil para fazer aplicações comerciais do que VB? Mas isso torna o VB a melhor linguagem do planeta e um Java-killer? E porque que tem gente que ainda prefere desenvolver usando Java com Swing ou SWT? Não seria melhor usar só VB pois é muito mais rápido e mais fácil?
Você tá pré-julgando, assim como têm radicais em Ruby têm radicais em Java, ou você nunca vi um apaixonado por Java falar que java era a coisa mais perfeita do mundo, principalmente em briginhas de Java x .NET? Nem por isso Java é linguagem ruim. Assim é com o Ruby, têm gente falando que Ruby é a solução para a paz mundial, têm gente tentando fazer de Ruby a solução para a paz mundial e têm gente simplemente utilizando o melhor disso tudo.
Os que fazem barulhos sempre são uma minoria, mas que gritam bem alto.
No demo do Rails, o cara quis mostrar como é fácil fazer uma coisa básica e um marketing também. Você nunca viu uma demostração do Sun Creator? Parece também que desenvolver uma aplicação completa leva agora 5 minutos. Se sua aplicação for só um mapa do google.
E marketing, acontece lá, e acontece aqui também. Mas nem por isso deixei de usar Java ou Ruby.
[joke=on]O GUJ deveria ter um ranking dos tópicos mais longos :D[/joke]
Mais ou menos, e dependendo de como tu for analisar, o .Net está apenas alguns meses afrente.
E se a gente for fazer essa mesma comparação depois que o Mustang for lançado, ai não vai precisar muito esforço pra por o Java net frente.
Mais ou menos, e dependendo de como tu for analisar, o .Net está apenas alguns meses afrente.
E se a gente for fazer essa mesma comparação depois que o Mustang for lançado, ai não vai precisar muito esforço pra por o Java net frente.[/quote]
Sim, o Java esta evoluindo e o .NET também, esse tipo de comparação que você fez deveria ser feito com o próximo .NET com o próximo Java.
No próximo .NET, ate aonde eu sei, virá com uma nova ideia de desktops, aonde o Office 2007 é o primeiro dessa leva, que parece ser bem legal.
O Java pelo o que eu sei também vai vir com bastante coisa, mas honestamente eu ainda não gosto de Java para desktop.
Para mim, coisa comop VM como serviço (compartilhada) e integração com o sistema operacional (coisa que parece o próximo java vai ter) são ensenciais.
Olá
De http://www.guj.com.br/posts/list/75/36529.java#194394
[quote=José Peleteiro]
[quote=saoj]
Entendi. Teria que criar os sets/gets dinamicamente, e isso não dá em Java, certo ?[/quote]
Certo.
[quote=saoj] A não ser que alterássemos o byte code em tempo de execução tipo JDO.
Alguém aqui tem experiencia com isso ? [/quote]
Também não dá. Em tempo de execução seria até possível, mas quando você tiver programando, como você vai fazer? Vai dar erro de compilação por que o método(get/set) ou o atributo não existe.
Mas há uma luz no fim do túnel, no Java6 o APT pode modificar uma classe, e esse auto-mapeamento poderia ser feito pelo APT. Mas só no Java 6.[/quote]
De http://www.guj.com.br/posts/list/75/36529.java#194399
[quote=Phillip Calcado]
Não adianta, Sérgio, por causa do static bingind o compilador vai esperar que a classe chamada tenha o método para compilar sua classe, este método não pode ser criado dinamicamente.
O que dá pra fazer é usar algo como o APT ou um outro pré-processador mas aí eu acho que você está tentando tornar uma linguagem estáatica dinâmica e se for rpa fazer isso é melhor usar Groovy ou JRuby.[/quote]
Tchan, tchan, tchan…
[color=darkblue]Seus problemas vão acabar …[/color]
Vejam:
Java 6 compilará fonte dentro de uma aplicação pronta
De passagem vejam também:
Java 6 permitirá misturar scripts com código Java
[]s
Luca
Eu acho que com a possibilidade de Java 6 se tornar mais fácil e dinâmica, com recursos de compatibilidade de self-compiler e cross-script, então ela permitirá que surjam frameworks e métodos diferenciais de hoje em dia, quem sabe teremos um framework mais poderoso e mais fácil que o RoR?
Eu como desenvolvedor .net e java posso responder a pergunta sobre “.net pra desktop”
Sobre o .net ser melhor que java pra desktop:
Pode ter certeza que depende muito do programador, SIM, depende.
Fazendo uma comparação entre java e .net pra windows:
SIM, .net ganha do swing MAS, por incrível que pareça amigos, SWT vs VS2003, o SWT ganha! SIM, o swt tem componentes que o VS2003 NÃO TEM! Sério mesmo. Eu tenho preferência pelo SWT, mas como não sou O programador quente em java, mesmo eu utilizando o SWT, no VS é bem mais rápido, no VS você cria, compila e gg. É só executar o .exe e tá rodando, mesmo se estiver precisando de bibliotecas de terceiros. Já no SWT, como meu conhecimento em cima do ant é baixo a unica coisa que eu tenho que fazer é mover o projeto do eclipse pro netbeans e dar um build lá.
SWT é tão rápido quanto o VS2003
Mas o VS2005 bate forte o SWT, tem muitas coisas novas nele e, o VS2005 acabou tornando o c# um poderoso “java wanna be” pra desktop (windows). Há integração com os produtos da microsoft e já tem até hibernate pra ele (já faz um tempinho que o .net ganhou o n-hibernate e nesse VS2005 já tem generics IGUALZINHO do java).
Concluindo: vai de programador pra programador, c# não tem muita diferença pro java, mas eu particularmente prefiro o java, eu não conseguir até agora fazer MVC no .net nem em desktop muito menos na web, nem em SWT ainda não consegui fazer MVC, então fica elas por elas lol). Mas .net eu respeito, é uma tecnologia digna de ser considerável párea pro java (por favor, não quero dizer que JEE > .net, porque .net distribuído só o asp.net que é legalzinho, o resto é LIXOOOOO), .net pra leitura de XML MATA A PAU! É ANIMAL! Rápido e simples de fazer, pra criar webservices SIM, é muito rápido e fácil, pra manipular arquivos é simples, tu faz um File.Delete( “Caminho do arquivo” ); e pronto, deleta ele. Mas .net = windows, distribuição = IIS, ele não tem nenhuma chance em outras plataformas. Por isso java ganha fácil.
Comparar java com .net em ambiente windows é complicado. É a mesma coisa que fazer um jogo de futebol sendo o .net um time que joga em casa. O java sim pode ganhar, mas nem sempre.
Mas sobre o java vs .net pra desktop
Aqui vai umas screenshots de um programinha de gerência de redes que eu criei, adivinhem em que?
Antes de falar mal de java pra desktop, favor olhar essas imagens
http://img526.imageshack.us/img526/6292/networkscan11dq.png
http://img368.imageshack.us/img368/3927/printermib17jp.png
http://img526.imageshack.us/img526/739/printermib28su.png
http://img263.imageshack.us/img263/2363/chartwizard9vz.png
http://img263.imageshack.us/img263/7126/main6bq.png
http://img526.imageshack.us/img526/6773/tables1ke.png
putz agora que eu ví que escreví viZualizar
Olá
Leozin, algums dúvidas totalmente fora do tópico principal desta pasta:
-
Este programa que parece muito bom, com belas imagnes foi feito com SWT?
-
Em .NET você usa C# ou VB?
-
Os programas que você chama de desktop rodam confinados em rede local ou trocam mensagens HTTP (não obrigatoriamente web services) pela Internet?
-
O SWT é melhor do que o Swing em quais quesitos?
a) Rapidez de desenvolvimento;
b) Melhor desempenho
c) Maior número de facilidades e componentes gráficos
[]s
Luca
Sim, totalmente em SWT, somente os próprios gráficos (que são JPanels, por causa do JFreeChart) e os relatórios (por causa do JasperReports)
Somente um projeto que eu tenho que lidar com vb.net, o restante dos projetos que eu lido são em C#
[quote=Luca]
3. Os programas que você chama de desktop rodam confinados em rede local ou trocam mensagens HTTP (não obrigatoriamente web services) pela Internet?[/quote]
Independente, eu poderia ter citado um termo melhor, tal como “não-web”, mas se for pra utilizar isso, poderia dizer que utilizando arquitetura RMI é melhor que a com+ da m$
[quote=Luca]
4. O SWT é melhor do que o Swing em quais quesitos?
a) Rapidez de desenvolvimento;[/quote]
Mesma velocidade, em desenvolvimento depende do programador, mas não vejo diferença na velocidade do desenvolvimento e SIM, no resultado do desenvolvimento. Bom, depois que criaram o matisse, o desenvolvimento de interfaces no swing ficou mais rápida e melhor.
[quote=Luca]
b) Melhor desempenho[/quote]
Particularmente eu acho o SWT mais rápido que o swing, acho que pelo principal fato de ele ser “nativo” ao sistema que tu usa, mas ao contrário do swing, o swt precisa ter uma dll no mesmo diretório do teu jar =/
[quote=Luca]
c) Maior número de facilidades e componentes gráficos[/quote]
Sim, há mais componentes que o Swing e a forma de construir os mesmos são diferentes também. Só falta uma coisa pro SWT ficar “pefeito”: É ter um matisse pra ele. Mesmo eu criando as interfaces com GridLayout foi bom, deu pro gasto, mas se tivesse um matisse seria mais rápido e mais legal, principalmente pra criação dessas telas pequeninas
Espero ter ajudado