DSL - Sintaxe da linguagem com Internacionalização - Viável ?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

O problema é o seguinte:
Hoje em dia, em alguns casos para deixar a DSL com um entendimento mais fácil utilizando Ruby (E até onde eu sei em todas as linguagens) é preciso abrir uma classe e adicionar um método traduzido que faça delegação para o método em inglês.

Séra que seria viável que alguma linguagem tivesse internacionalização na sintaxe para facilitar a criação de DSLs internas, como é feito hoje utilizando Ruby ? Acredito ter algumas implicações de performance talvez ou algo do tipo, mas fica ai o questionamento.

Talvez exista alguma coisa que eu não conheço ainda.



This message was edited 1 time. Last update was at 03/01/2008 15:11:56


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Na verdade isso não é um problema trazido pelas DSL's.

Mas sim sobre aquele velho emaranhado de códigos inglês/portugues dentro de uma aplicação.
Algumas empresas padronizam isso(ou seja, tudo inglês), mas nem sempre é simples assim.

Apesar dos pesares, eu realmente acreditar que em língua materna a coisa fica mais legível, porém acho que a solução(ou a melhor delas) para isso é trabalhar com inglês mesmo, afinal o inglês já virou necessidade básica da TI.

Logo, não viável.

Mudando de assunto, quanto a performance não deve ter relevância alguma.

This message was edited 1 time. Last update was at 03/01/2008 15:06:45


Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

nbluis wrote:Apesar dos pesares, eu realmente acreditar que em língua materna a coisa fica mais legível, porém acho que a solução(ou a melhor delas) para isso é trabalhar com inglês mesmo, afinal o inglês já virou necessidade básica da TI.

Diga isso para uma Corporação onde especialistas que tratam do negócio não tem o inglês como necessidade para fazer bem seu trabalho.

nbluis wrote:Logo, não viável.

Posso saber baseado em que ?

This message was edited 1 time. Last update was at 03/01/2008 15:17:00


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

emerleite wrote:
Diga isso para uma Corporação onde especialistas que tratam do negócio não tem o inglês como necessidade para fazer bem seu trabalho.

Ai fica complicado.
Nesse caso prefiro continuar no portuenglish.

emerleite wrote:Posso saber baseado em que ?

Como eu disse acima, apenas opinião pessoal.
Digo, vai pegar toda a core API de uma linguagem e traduzi-la ? Isso eu acho inviável.
Repito, opinião pessoal.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

emerleite wrote:
Séra que seria viável que alguma linguagem tivesse internacionalização na sintaxe para facilitar a criação de DSLs internas, como é feito hoje utilizando Ruby ?

Qual o seu ponto de vista quanto a isso ?? Acha viável ?

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Bem, foi por isso que eu criei o tópico heheheh. Na verdade ainda não sei, até porquê desconheço alguma linguagem que tenha esse recurso.

O Compilador teria que carregar os construtos da linguagem de um arquivo i18n da vida antes de começar o trabalho. Não sei em que nível de complexidade isso chegaria, mas seria interessante. A verdade é que se eu estivesse nos EUA desenvolvendo pra empresas que tem o inglês como main language, talvez não teria nem pensado sobre o assunto.

This message was edited 1 time. Last update was at 03/01/2008 15:43:41


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

emerleite wrote:
O Compilador teria que carregar os constructos da linguagem de um arquivo i18n da vida antes de começar o trabalho.

A.... isso sim deve ter um impacto grande.....

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
pcalcado
Moderador
[Avatar]

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

Não consegui entender o que você quer nem como DSL ajudariam nisso.


" preciso abrir uma classe e adicionar um método traduzido que faça delegação para o método em inglês. "

Qual o "problema" (ou qual a solucao) em escrever estes em portgues?

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]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Exemplo da própria linguagem (sem dsl):

Não seria melhor para o especialista se fosse:

Eu poderia adicionar um método chamado vezes à classe Fixnum delegando para times para ficar da forma que eu quero e por ai vai (Isso que eu quis dizer com abrir a classe). Mas imagina fazer isso toda vez que eu precisar.

Se esse código não estiver inserido num contexto de uma DSL realmente não faz sentido algum pois o desenvolvedor tem que saber, mas para o especialista ficaria mais fácil.

Por isso a questão da linguagem ser internacionalizável. Pode ser uma viagem completa da minha cabeça, mas é chato ter que conviver com isso.


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Phillip,

Resolvi montar um exemplo bem básico porém executável da forma que tenho que implementar sempre.

Reafirmo que sem estar montando uma DSL não vejo valor algum em fazer isso, pois o programador tem que conhecer. Mas pensando na criação de uma DSL, fatalmente é necessário fazer isso, pelo menos aqui no brasil.

Agpra imagine que esses métodos (puts, times) pudessem ter internacionalização. Seria interessante, não? Mas o motivo todo do tópico é saber se é viável implementar uma linguagem de programação com suporte a isso, por exemplo o Ruby em português.

This message was edited 1 time. Last update was at 04/01/2008 13:02:31


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

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

Viável sempre é, o problema é que vai ser muito difícil de se conseguir internacionalizar tudo. Acho que no contexto de uma DSL pequena que vai ser usada pra simplificar a vida de um usuário não tão leigo assim pode até ser, mas pra programar de verdade eu acho muito complicado.

É trabalho demais.

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

Ah tá, entendi.

Então, este é o problema de escrever código em português. Não conheço nenhuma linguagem da atual geração que vá ter uma resosta para isso. O problema não é a linguagem em si e sim milhares de bibliotecas que você deveria traduzir.

Se isso realmente for um problema, dado que numa DSL o escopo (e por consequência o métodos chamados) são poucosnão deve ser tão ruim criar apenas versões traduzidas dos métodos e classes que você vá usar. Só lembre que DSL != linguagem natural.

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]
Emerson Macedo
Virtual Machine Man
[Avatar]

Membro desde: 01/08/2006 16:55:28
Mensagens: 689
Localização: Rio de Janeiro - RJ
Offline

Pois é, imaginei que não houvesse nada do tipo para ajudar nesse problema. Talvez teria alguma economia de código.

Mas pensando pelo lado que você falou, pode ser que isso não faça muita diferença. Como ainda estou estudando sobre o assunto e não fiz nada profissional concreto, não enfreitei os problemas ainda pra saber como resolverei, mas da pra ter uma idéia.

Quanto a DSL != linguagem natural, sua preoculpação é absolutamente válida, pois tenho visto muita gente confundir as duas coisas. Apesar de estar iniciando em DSLs, este conceito nunca esteve distorcido na minha cabeça.

This message was edited 2 times. Last update was at 05/01/2008 01:21:03


Emerson Macedo Leite
PMP - Ping-pong Master Player
CSM - Counter-Strile Manager
http://codificando.com

"Porque, assim como o relâmpago sai do oriente e se mostra até o ocidente, assim será também a vinda do filho do homem." - Mateus 24:27
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team