plentz:
Dos que necessitam saber (programadores, analistas de negócio, etc), a GRANDE maioria já sabe inglês (por mais básico que seja), até porque a maioria das linguagens da programação é em inglês. Pros que conhecem o basicão seria praticamente aprender algumas “keywords” extras.
Os keywords tradicionais “if”, “while”, “class” são fáceis pois bastam serem aprendidos de uma vez e depois nunca mais. Isso já é o que todas as linguagens têm em comum.
A class library já é mais complicado especialmente para iniciantes que tem dificuldade com o inglês. Não é razoável esperar que todo mundo com 15 anos saiba falar inglês fluentemente, e quem aqui já trabalhou no exterior sabe que o inglês praticado nessas escolinhas não ajuda muito também. Muitos que acham que “sabem inglês”, não sabem tanto assim.
No caso de DSLs novas palavras seriam adicionadas além dos keywords tradicionais, exigindo um conhecimento mais profundo da lingua inglesa, isso fora do que já é tradicional. O indivíduo deverá entender a lógica que determinado trecho retrata numa língua não convencionada por padrões como uma linguagem comum, como o Java ou C++, onde a lógica em si seria dada por esses keywords.
A pergunta é: não seria uma desvantagem a diversidade e liberdade de se criarem DSLs nesse quesito?
Talvez o argumento “closer to English” seja bom para alguns contadores de feijão americanos com medo que seus trabalhos sejam enviados para fora.
plentz:
Aqui você mostra que não entendeu a idéia de DSL. Pense e responda: O que está errado:
- Nós programadores pegarmos a realidade do mundo e adaptarmos para o mundo das linguagens da programação?
, ou
- As linguagens tentarem se aproximar cada vez mais de uma representação real?
Não existe “mundo das linguagens de progração”, existem convenções adotadas para representar determinados conceitos abstratos, e através do uso desses conceitos descrevemos uma solução.
DSLs apenas transformam um punhado de conceitos envolvidos em uma infinidade não determinada de conceitos. Afinal de contas, o que limita a diversidade é a criatividade do programador, apenas, e existem muitos programadeiros que se acham gênios por aí.
O uso disso não é ruim, mas o abuso sim, e o abuso é o que me refiro. Especialmente pelo hype irracional que vemos por aí hoje em dia.
digno de nota: próximo da lingua humana é muito diferente de mais próximo da “realidade”, pois a linguagem é apenas roupagem para as idéias. Qualquer um que fale mais do que uma língua sabe disso. Vendo por esse lado, talvez OO chegue mais perto de uma idéia, pois usa símbolos, do que uma DSL.
Não, a necessidade de se aprender um idioma completamente alienígena para se fazer qualquer coisa como é com alguns frameworks em Java.
A curva de aprendizado…
Você não entendeu. Nem todas as empresas tem 6 funcionários apenas. Basta numa empresa grande o suficiente onde não haja uma forma de forçar um determinado padrão por vários departamentos, ou vários departamentos que diferentes empresas prestadoras de serviços atendam, para se criar a inconsistência de se ter DSLs em diversas línguas, ou pior, em inglês macarrônico.
Visão macro, veja pela visão macro! É lógico se o seu projetoé só você, a sua consciência e Deus isso não vai fazer sentido, mas a dedução é esperada de seres humanos inteligentes.