Java pode ou vai acabar?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Thiagosc wrote:Eu duvido que todos esses "membros da comunidade" que dão palestras ou palpites sobre linguagens e estão ouriçados por causa desse novo filão chamado DSL realmente saibam sobre o que falam. Vi uma palestra no TheServerSide de um pessoal da ThoughtWorks onde, obviamente, falavam sobre DSLs e Ruby e a patética explicação sobre o porquê Lisp é pioneiro em tudo é por causa da "sintaxe horrível, e isso faz as pessoas pensarem em que tipo de DSL ficaria melhor". Haha. São esses os "especialistas"? Eles não são especialistas, são apenas deslumbrados pelo que não sabiam há pouco tempo atrás que ao invés de procurar investigar mais além, se deram por contentes e agora esperam capitalizar este "next big thing".

Você, inevitalmente, pela flexibilidade-sem-complexidade do Lisp acaba criando formas de gerar código automaticamente ou criando uma forma de descrever um domínio mais facilmente. Nada novo aqui.


E você viu algum dos especialistas dizer que não é assim? Que LISP não dá condições de fazer isso?

O interesse inicial da criação da linguagem era exatamente esse, que outras pessoas pudessem extender a linguagem criando novas micro-linguagens através das bases que ele provia. É óbvio que não há nada de novo aqui o problema é que não é simples nem trivial fazer esse tipo de coisa. Lisp nasceu a frente do seu tempo, a orientação a objetos nasceu a frente do seu tempo, programação paralela utilizando o modelo de atores também surgiu a frente do seu tempo, as pessoas simplesmente não entendiam ou, mais comumente, não viam uso prático pra isso quando surgiu.

Um dos grandes responsáveis pelo disseminação da orientação a objetos (para o bem e para o mal, quanto mais gente, mais gente sem competência) foi o surgimento e o crescimento do Java como linguagem mainstream, eu duvido muito que se não fosse o Java nós tivéssemos tanta gente por aí enchendo a boca pra dizer que "programa orientado a objetos". A mesma coisa é Erlang e outras linguagens orientadas a concorrência, até pouco tempo atrás se preocupar com concorrência era uma coisa de louco ou quando você tinha que escrever aplicações como servidores web, hoje com máquinas com tralalá processadores e você quer se aproveitar deles, precisa se procupar com concorrncia ou usar linguagens que facilitem isso.

Até então as pessoas não tinham visto muita vantagem ou até uso prático pra DSLs, até porque até pouco tempo atrás o nível de abstração era relativamente baixo, encontrar linguagens com bibliotecas de estruturas de dados, IO e threads todas prontas e funcionais não era fácil, especialmente se você estava escrevendo aplicações pra rodar em diversas plataformas, além do mais, as aplicações que se escreviam ontem não são as mesmas que se escrevem hoje. A complexidade que nós temos nas aplicações de hoje exigem linguagens mais expressivas e domínios mais complexos.

Lisp já fazia isso? Claro!

Mas quem aqui programa em Lisp? Quem aqui conhece bibliotecas pra threads em Lisp? Onde é que você vai achar mão de obra pra dar suporte numa coisa dessas?

O mundo e os problemas são bem maiores do que parecem ser. Sempre.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
Thiagosc
GUJ Master

Membro desde: 27/04/2006 21:01:27
Mensagens: 1134
Offline

Maurício Linhares wrote:E você viu algum dos especialistas dizer que não é assim?


Sim, eu vi.

Maurício Linhares wrote:Que LISP não dá condições de fazer isso?


Provavelmente aquele que os brilhantes funcionários da ThoughtWorks imaginam ser Lisp. Segundo eles toda essa história de mini-linguagens em Lisp era por causa da "sintaxe horrível" e não algo inerente à linguagem.

Maurício Linhares wrote:O interesse inicial da criação da linguagem era exatamente esse, que outras pessoas pudessem extender a linguagem criando novas micro-linguagens através das bases que ele provia. É óbvio que não há nada de novo aqui o problema é que não é simples nem trivial fazer esse tipo de coisa.


Em Lisp isto é simples e trivial. Talvez não seja em Ruby ou em Java.

Maurício Linhares wrote:Mas quem aqui programa em Lisp? Quem aqui conhece bibliotecas pra threads em Lisp? Onde é que você vai achar mão de obra pra dar suporte numa coisa dessas?


O mesmo poderia ser dito de Ruby ou qualquer outra linguagem não mainstream, mas isso não justifica sair dizendo bobagens por aí.

A questão não é que Lisp fez primeiro, mas sim que Lisp fez de um jeito mil vezes melhor, e agora "criam" algo com uma finalidade similar, mas muito mais complexo. Não existe razão para tornar as nossas vidas já tão castigadas por verdadeiras abominações da engenharia, assim como o Spring, ainda pior.
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Thiagosc wrote:
Maurício Linhares wrote:O interesse inicial da criação da linguagem era exatamente esse, que outras pessoas pudessem extender a linguagem criando novas micro-linguagens através das bases que ele provia. É óbvio que não há nada de novo aqui o problema é que não é simples nem trivial fazer esse tipo de coisa.


Em Lisp isto é simples e trivial. Talvez não seja em Ruby ou em Java.


Opa, pra quem sabe bem Lisp (ou Common Lisp, que é o que se usa no mundo real) isso é simples e trivial. Lisp é uma das linguagens com sintaxe mais alienígena que eu já vi na vida (talvez perca pra Brainfuck, mas essa não conta) e não é nem um pouco simples nem trivial aprender a programar usando ela, principalmente porque levar as pessoas a pensar de forma "funcional" ainda vai demorar um bocado. o revival de linguagens como Smalltalk, Scala, Erlang, Ruby e Python são um ótimo primeiro passo pra que as pessoas percebam que nem tudo é orientação a objetos e elas provavelmente vão fazer pela programação funcional o que Java fez pela orientação a objetos e um dia nós podemos até ter um monte de gente programando em CL num futuro não muito distante, o problema é que as pessoas querem entender e usar DSL agora e em Lisp vai ser complicado deles conseguirem quem faça.

Se teve gente da ThoughtWorks ou da Banca do Zezinho falando que Lisp não foi feita pra criar DSLs, é uma infelicidade pra quem disse tal absurdo, mas eu não acredito nem um pouco que nós vamos ver no curto prazo gente se voltando pra Lisp pra mexer com DSLs, por mais que o Paul Graham esperneie. E falando em Lisp, quem quiser fritar o cérebro sempre pode ler esse ótimo livro que está disponível gratuitamente na internet -> http://www.gigamonkeys.com/book/

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
pcalcado
Moderador
[Avatar]

Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline

Mauricio, o cara é troll de carteirinha, chega chutando o balde e não dá nenhum argumento ("Java não serve pra fazer isso, nem Ruby, ponto final. Me ouçam. Eu sei do que falo, por favor!" sem nenhum argumento...). Diz que viu um vídeo que fala X, Y e Z e não dá nem link ("provavelmente els pensam isso, imbecis", provavelmente é dose...). Enfim: o bom e velho troll thiagosc de sempre, fala um bando de merda, causa alguma comoção e some por algum tempo (mas não larga o forum). Qualquer dúvida é só consultar o histórico do usuário.

Engraçado como é tudo questão de perspectiva, ele já perdeu o título de pior troll. O rato*louco deu um banho feio e ganhou o título. Hoje em dia o thiagosc nem é mais troll, é bichinho de estimação do fórum.

Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
[Email] [WWW] [Yahoo!] [MSN]
eliziario
JavaChild
[Avatar]

Membro desde: 13/04/2006 20:14:50
Mensagens: 137
Localização: Rio de Janeiro / Teresópolis
Offline

Maurício Linhares wrote:
Um dos grandes responsáveis pelo disseminação da orientação a objetos (para o bem e para o mal, quanto mais gente, mais gente sem competência) foi o surgimento e o crescimento do Java como linguagem mainstream, eu duvido muito que se não fosse o Java nós tivéssemos tanta gente por aí enchendo a boca pra dizer que "programa orientado a objetos".


No Brasil? pode ser. Mas a primeira linguagem orientada a objetos realmente popular foi C++. E Java provavelmente só se tornou tão popular assim lá fora por causa de popularidade de C++, uma vez que Java lembra C++ (embora tenha coisas de Objective C como Interfaces que são muito parecidas com Protocols)

Isso foi só pra discordar um pouco nessa thread monótona, marcada pela civilidade e pela concórdia
[WWW]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

eliziario wrote:[No Brasil? pode ser. Mas a primeira linguagem orientada a objetos realmente popular foi C++. E Java provavelmente só se tornou tão popular assim lá fora por causa de popularidade de C++, uma vez que Java lembra C++ (embora tenha coisas de Objective C como Interfaces que são muito parecidas com Protocols)

Isso foi só pra discordar um pouco nessa thread monótona, marcada pela civilidade e pela concórdia


Mas a galera que começou a mexer com C++ conseguia programar "menos" orientado a objetos do que os programadores get/set do Java

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
eliziario
JavaChild
[Avatar]

Membro desde: 13/04/2006 20:14:50
Mensagens: 137
Localização: Rio de Janeiro / Teresópolis
Offline

Maurício Linhares wrote:
eliziario wrote:[No Brasil? pode ser. Mas a primeira linguagem orientada a objetos realmente popular foi C++. E Java provavelmente só se tornou tão popular assim lá fora por causa de popularidade de C++, uma vez que Java lembra C++ (embora tenha coisas de Objective C como Interfaces que são muito parecidas com Protocols)

Isso foi só pra discordar um pouco nessa thread monótona, marcada pela civilidade e pela concórdia


Mas a galera que começou a mexer com C++ conseguia programar "menos" orientado a objetos do que os programadores get/set do Java


Não necessariamente. Alguns dos melhores programadores que eu conheci vieram de C++. Muitos podiam até não escrever código OO apropriado, mas os programadores C++ que eu conheci tem boa noção de modularidade, de ocultamento dos dados internos do módulo. Mesmo em C puro é possível escrever bom código, e código legível, e a própria "aspereza" da linguagem acaba forçando o programador à ser bem cuidadoso. Eu não sou um Kernel Hacker, mas já fiquei horas lendo o código de scheduling do linux, e te garanto que aquele Cezão brabo ali é muito mais bem escrito/legível/modular que grande parte do código de uma série de projetos FOSS em Java cujo nome não mencionarei.
[WWW]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2668
Localização: Chicago, EUA
Offline

Java só vai acabar quando outra linguagem OO assumir o seu papel.

Ruby briga pau a pau no mundo web, mas no restante não dá nem para o começo.

Alguém seria louco para fazer um banco-de-dados, um sistema distribuído, um servidor de alta-disponibilidade em Ruby ou Phyton? Não que não possa ser feito, mas acho que Java se dá melhor para esse papel.

Minha opinião é que uma dynamic scripting language é mais interessante para fazer regras de negócio e algoritmos. Já para fazer sistemas mais parrudos, concorrentes, distribuídos e de alta-disponibilidade Java dá um show. E existe coisas para o qual velocidade conta e muito. Nesse quesito Java dá show também e hoje em dia rivaliza com C++.

Alguém já trabalhou com as nova API de concorrencia do Java? Classes como ConcurrentLlinkedQueue, ConcurrentHashMap, etc. são coisas muito poderosas e avançadas. Conseguiu-se abstrair uma complexidade incrível ali dentro. Temos isso em Ruby, Phyton ou qualquer outra linguagem? Em termos de concorrencia Java dá um show! Temos NIO em Ruby ou Phyton?

Tipos atrapalham a vida quando o que queremos é flexibilidade, expressividade e pragmatismo, mas oferecem robustez quando estamos programando um sistema mais crítico ou que vai servir de infra-estrutura para outro.

Não sou muito experiente nisso, mas minha opinião é que Java ainda vai continuar muito tempo por aí... Chegou-se num patamar onde os benefícios são gigantescos e as desvantages ou problemas muito pequenos se comparados aos benefícios... Acho complicado isso mudar no curto/médio prazo...

This message was edited 2 times. Last update was at 28/12/2007 01:17:52


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

saoj wrote:Java só vai acabar quando outra linguagem OO assumir o seu papel.

Ruby briga pau a pau no mundo web, mas no restante não dá nem para o começo.

Cara, ruby é uma maravilha para shell scripting, quando você precisa de algo mais que shell e não quer apelar para perl. Eu já escrevi montes de scripts de processamento de logs em ruby.

saoj wrote:
...
Alguém já trabalhou com as nova API de concorrencia do Java? Classes como ConcurrentLlinkedQueue, ConcurrentHashMap, etc. são coisas muito poderosas e avançadas. Conseguiu-se abstrair uma complexidade incrível ali dentro. Temos isso em Ruby, Phyton ou qualquer outra linguagem? Em termos de concorrencia Java dá um show! Temos NIO em Ruby ou Phyton?


Eu já, fiquei um ano em projetos que usavam e abusavam delas. As collections são úteis pacas, principalmente as que usam algorítmos lock-free. De resto java ainda é uma bosta para programação paralela - linguagens como erlang tem uma fundação muito mais sólida nesse quesito.

Quanto A NIO em ruby ou python, suponho que você se refira a mmap, flock, select e non-blocking i/o, que são os recursos do SO exportados por essa API. Vejamos:

Python tem mmap, flock, select e non-blocking i/o via fctlr /ioctl. Tem também suporte a low-level networking (ICMP, RAW, etc), unix sockets e outras coisas que Java não tem acesso fácil.

Ruby tem flock, select e non-blocking i/o. Ruby fica devendo no suporte a mmap. Porem tem também suporte a dns, unix sockets e low-level control via ioctl e fctl por ai vai.

saoj wrote:
Tipos atrapalham a vida quando o que queremos é flexibilidade, expressividade e pragmatismo, mas oferecem robustez quando estamos programando um sistema mais crítico ou que vai servir de infra-estrutura para outro.

Não sou muito experiente nisso, mas minha opinião é que Java ainda vai continuar muito tempo por aí... Chegou-se num patamar onde os benefícios são gigantescos e as desvantages ou problemas muito pequenos se comparados aos benefícios... Acho complicado isso mudar no curto/médio prazo...


Tipos são tão uteis quanto você os quiser tornar interessantes. Java fez um péssimo serviço nesse aspecto, poderia ter um sistema muito mais poderoso e prático. Porém para isso existe Scala.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
cmilfont
JavaBaby
[Avatar]

Membro desde: 23/02/2005 10:58:35
Mensagens: 84
Offline

pcalcado wrote:
Contraponto: Há este mesmo tempo atrás (seja qual for) era muito dificil usar um computador. Hoj em dia miha mãe sabe fazer macros no excel (que é uma DSL). Aliás, ha não muito tempo atrás digitar um documento ou cadastrar coisas era tão complexo que havia um departamento só para isso nas empresas. Hoje uma menina que de tecnologia não sabe nada fica rica escrevendo templates em HTML pro myspace. A tecnologia para desenvolver software está ficando cada vez mais acessível e cada vez mais os usuários estão desenvlvendo seus softwares, sejam macros, personalizações de template ouregras de negócio em DSLs.


Fui contratado no inicio de 2001 para participar da localização do ERP JAVA da Minimal de Portugal, eles usarem pnuts como uma espécie de DSL interna, não conhecíamos o termo DSL e o termo Fluent Interface acredito que sequer tinah sido "inventada". pnuts nesse sistema funcionava como as duas coisas, tinhamos uma Fluent Interface para os programadores extenderem as funcinoalidades e uma DSL própria para tratar alguns dominios especificos como por exemplo as regras que a partir de documentos refletiam na contabilidade e no estoque... acho que o sistema foi iniciado em 98 mas não tenho ideia de quando meteram pnuts para fazer isso, mas deve ter sido antes de 2000 quando a empresa foi estabelecida aqui e me falaram que já veio dessa forma.
https://pnuts.dev.java.net/


pcalcado wrote:
Quanto ao livro, este ano deve sair o do Fowler e o do Neal Ford. A literatura atual e bem fraquinha. Talvez aqui você encontre algo que te seja útil http://fragmental.tw


voce não tem data em primeira mãos, Shoes? liga pro chefe e sonda

http://www.milfont.org/tech/
cmilfont
JavaBaby
[Avatar]

Membro desde: 23/02/2005 10:58:35
Mensagens: 84
Offline

Thiagosc wrote:
Tanto C, C++, Java, Ruby, etc, todos já nasceram obsoletos por causa do Lisp.


Porque Java e C++ nasceram obsoletos por causa do Lisp?

http://www.milfont.org/tech/
JohnJohn
Debugger
[Avatar]

Membro desde: 17/10/2006 18:32:40
Mensagens: 59
Offline

Poxa é bom ver os comentários de galera experiente ...
Tenho em minha cabeça aquela fissura em saber tecnologia para ganhar dindin ... No entanto me preparo para tirar certificações ...
Achava que pegando esse caminho conseguiria ser um profissional manda-chuva no mercado ...
Agora mesmo já estou pesquisando alguns assuntos aqui tratados que nem sabia o que era ...
Já estava pesquisando, não somente para começar estudar a respeito. Mas porque alguns dos comentários nem entendia muito bem.
Ano de 2008 estarei mais de olho nos blogs ...
Valeu

eu sempre desejei mudar o mundo, mas nunca me deram o código fonte ...
hoje tenho em minhas mãos: Bíblia!!!
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

cmilfont wrote:
Thiagosc wrote:
Tanto C, C++, Java, Ruby, etc, todos já nasceram obsoletos por causa do Lisp.


Porque Java e C++ nasceram obsoletos por causa do Lisp?


Porque Lisp é muito mais flexível que Java e C++, especialmente no que se refere a criação de dsls.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
rubinelli
JavaEvangelist
[Avatar]

Membro desde: 26/04/2005 11:18:25
Mensagens: 469
Offline

Maurício Linhares wrote:
cmilfont wrote:
Thiagosc wrote:
Tanto C, C++, Java, Ruby, etc, todos já nasceram obsoletos por causa do Lisp.


Porque Java e C++ nasceram obsoletos por causa do Lisp?


Porque Lisp é muito mais flexível que Java e C++, especialmente no que se refere a criação de dsls.


Provavelmente o maior propagandista do Lisp é o Paul Graham, um cara que ficou rico escrevendo um "shopping virtual" em Common Lisp nos primórdios da Internet. Ele provavelmente foi o primeiro a constatar que sempre que uma linguagem nova se torna popular, é porque ela acrescenta algo que o Lisp tem a uma linguagem consolidada

C++ adiciona um sistema de objetos a C.
Java adiciona uma virtual machine com garbage collection a C++.
Ruby adiciona blocos de código como tipos a Java.

[WWW]
jjose
Virtual Machine Man
[Avatar]

Membro desde: 22/05/2007 23:10:22
Mensagens: 663
Localização: Paraiba
Offline

PQ AS PESSOAS SEMPRE DAO ATENCAO PARA ESSE TIPO DE TOPICO

sempre que alguem cria um topico assim
como varios as pessoas entram para falar o que alguem ja flw


aff

Estatísticas mostram que no RJ você corre risco de levar um tiro antes mesmo de nascer.
No RJ proporção é de uma bala perdida por cada gota de chuva.
No RJ quando o assunto é bala perdida, o óbito considera causas naturais.

[Email] [WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team