JLScript não é Open Source porque
O JLScript não é um projeto open source.
Isso significa que o código-fonte principal da linguagem, incluindo partes internas do interpretador, runtime, compilador, ferramentas centrais e outros componentes responsáveis pelo funcionamento interno do projeto, não é disponibilizado publicamente para livre acesso, modificação ou redistribuição.
A decisão de manter o núcleo do JLScript fechado faz parte da forma como o projeto está sendo desenvolvido e organizado.
O objetivo não é impedir que pessoas utilizem a linguagem, criem projetos, estudem sua sintaxe ou desenvolvam bibliotecas para o ecossistema. A proposta é proteger a implementação interna do projeto e manter um controle maior sobre sua evolução.
Usuários podem utilizar o JLScript através das ferramentas oficiais, documentação, bibliotecas e recursos disponibilizados publicamente.
O que permanece restrito é a implementação interna da linguagem.
O que isso significa na prática
O fato de o JLScript não ser open source não significa que a linguagem seja fechada para uso.
Desenvolvedores podem:
- escrever programas em JLScript;
- utilizar bibliotecas oficiais;
- criar aplicações;
- estudar a documentação;
- aprender a sintaxe;
- utilizar ferramentas do ecossistema;
- criar bibliotecas próprias;
- desenvolver projetos que utilizem JLScript;
- compartilhar código escrito em
.jls; - participar da comunidade;
- enviar sugestões e relatar problemas.
O que não é disponibilizado publicamente é o código-fonte interno responsável pela implementação principal da linguagem.
Isso inclui partes responsáveis pelo funcionamento interno, execução e desenvolvimento do núcleo do projeto.
Código escrito em JLScript
Existe uma diferença importante entre o código-fonte da linguagem e o código criado pelos usuários utilizando JLScript.
Um desenvolvedor pode criar um programa como:
va nome = "JLScript"
se (nome == "JLScript") {
mostrar("Olá!")
}
Esse código pertence ao projeto ou ao desenvolvedor que o criou, de acordo com a licença e os termos definidos por ele.
O fato de a implementação do JLScript ser fechada não significa que todo programa escrito utilizando a linguagem também seja fechado.
Um desenvolvedor pode, por exemplo, criar uma biblioteca em JLScript e decidir publicá-la como open source.
Outro desenvolvedor pode criar um sistema privado.
Outro pode desenvolver uma ferramenta gratuita.
Essas decisões pertencem ao autor de cada projeto.
Bibliotecas da comunidade
O ecossistema JLScript foi pensado para permitir que desenvolvedores criem suas próprias bibliotecas e recursos.
Essas bibliotecas podem possuir licenças diferentes da linguagem principal.
Por exemplo, um desenvolvedor pode criar:
minha-biblioteca.jls
e publicar essa biblioteca no GitHub utilizando uma licença open source.
Isso não altera a licença do núcleo do JLScript.
Dessa forma, o ecossistema pode possuir projetos abertos mesmo que a implementação principal da linguagem permaneça privada.
Por que o núcleo é fechado
A decisão de manter o código-fonte principal fechado está relacionada principalmente à proteção e ao controle do desenvolvimento da linguagem.
O JLScript ainda está em evolução.
Sua arquitetura, ferramentas, bibliotecas e sistemas internos continuam recebendo alterações.
Manter o núcleo privado permite que mudanças estruturais sejam realizadas de maneira controlada, sem que versões internas incompletas ou experimentais sejam tratadas como implementações oficiais.
Também permite manter uma única direção para o desenvolvimento do projeto.
A linguagem possui uma identidade própria, uma arquitetura própria e uma visão de desenvolvimento definida.
O código interno representa uma parte importante dessa identidade.
Segurança e integridade
Outro objetivo é proteger a integridade das distribuições oficiais.
Quando um usuário instala uma versão oficial do JLScript, a intenção é que exista uma origem clara para essa versão.
Distribuições oficiais devem ser identificáveis e separadas de versões modificadas por terceiros.
Isso ajuda a evitar situações em que uma versão modificada possa ser apresentada como se fosse uma versão oficial da linguagem.
O projeto busca manter uma diferença clara entre:
JLScript oficial
e:
software de terceiros baseado ou integrado ao JLScript
Isso também facilita a manutenção, correção de erros e distribuição de atualizações.
Controle de versões
As versões oficiais do JLScript são definidas pelo projeto.
Atualizações podem incluir:
- alterações na sintaxe;
- novos recursos;
- novas bibliotecas;
- correções;
- melhorias de desempenho;
- ferramentas adicionais;
- mudanças no runtime;
- melhorias no compilador;
- integrações com o ecossistema.
Manter o código principal fechado permite que essas mudanças sejam desenvolvidas e testadas antes de serem distribuídas oficialmente.
Documentação pública
Mesmo com o código-fonte fechado, a documentação da linguagem pode ser pública.
A documentação existe para explicar como utilizar o JLScript.
Ela pode incluir:
- sintaxe;
- funções;
- operadores;
- estruturas condicionais;
- laços;
- módulos;
- bibliotecas;
- comandos;
- exemplos;
- ferramentas;
- APIs públicas;
- comportamento esperado da linguagem.
Isso permite que desenvolvedores utilizem e aprendam JLScript sem precisar acessar sua implementação interna.
O objetivo é documentar como utilizar a linguagem, e não necessariamente como cada componente interno foi construído.
Transparência de uso
Ser um projeto de código fechado não significa esconder o funcionamento público da linguagem.
O comportamento da linguagem pode ser documentado.
Se uma função recebe determinados parâmetros e retorna determinado resultado, isso pode ser explicado normalmente.
Por exemplo:
mostrar("Olá")
não exige que o usuário conheça o código interno responsável por implementar mostrar().
O desenvolvedor precisa conhecer sua função, comportamento e forma correta de utilização.
Esse é o mesmo princípio utilizado em diversos softwares proprietários.
JLScript e software proprietário
O JLScript pode ser classificado como um projeto de código-fonte fechado ou software proprietário, dependendo da licença adotada oficialmente para sua distribuição.
Isso significa que a utilização do software é permitida conforme os termos definidos pelo projeto, mas o código-fonte principal não é disponibilizado sob uma licença de software livre ou open source.
É importante não confundir:
gratuito
com:
open source
Um software pode ser gratuito para uso e continuar sendo proprietário.
Da mesma forma, um software open source pode possuir serviços pagos.
São conceitos diferentes.
Distribuição
As versões oficiais devem ser disponibilizadas pelos canais definidos pelo projeto JLScript.
Esses canais podem incluir:
- site oficial;
- documentação oficial;
- repositórios públicos de documentação;
- ferramentas de instalação;
- extensões oficiais;
- páginas oficiais do projeto.
O uso de canais oficiais ajuda o usuário a identificar a versão legítima do JLScript.
Extensão para VS Code
A extensão do JLScript para o Visual Studio Code faz parte do ecossistema da linguagem.
Dependendo da forma como cada componente for distribuído, ferramentas auxiliares podem ter regras de licenciamento diferentes do núcleo principal.
Isso significa que o projeto pode decidir, por exemplo, tornar determinada ferramenta aberta no futuro sem necessariamente abrir toda a implementação da linguagem.
Cada componente pode possuir sua própria política de distribuição.
JLShell
O JLShell é uma das ferramentas relacionadas ao ambiente JLScript.
Ele fornece acesso a comandos como:
jls run
jls build
jls test
jls fmt
jls lint
Mesmo que o usuário possa executar esses comandos e conhecer seu comportamento, isso não exige que a implementação interna dessas ferramentas seja pública.
JLS AI
O mesmo princípio pode ser aplicado ao JLS AI.
O projeto pode disponibilizar funcionalidades para usuários sem necessariamente disponibilizar publicamente todo o código responsável por sua implementação.
A documentação pode explicar como utilizar a ferramenta, seus recursos e limitações sem revelar sua estrutura interna completa.
Contribuições
A ausência de código-fonte público não impede necessariamente a participação da comunidade.
Usuários ainda podem contribuir através de:
- sugestões;
- relatórios de erros;
- documentação;
- exemplos;
- bibliotecas;
- projetos;
- discussões;
- testes;
- feedback sobre novas funcionalidades.
A forma como essas contribuições serão aceitas depende das regras estabelecidas pelo projeto.
O que não é permitido
Sem autorização expressa ou uma licença que permita determinada ação, o fato de alguém conseguir utilizar ou acessar partes do software não significa que essa pessoa possui autorização para redistribuir, modificar ou publicar a implementação interna.
As permissões devem seguir a licença e os termos oficiais do JLScript.
Por isso, qualquer uso envolvendo redistribuição, engenharia reversa, modificação de componentes internos ou criação de versões derivadas deve respeitar os termos definidos pelo projeto e a legislação aplicável.
Possíveis mudanças futuras
A política de código-fonte do JLScript pode evoluir no futuro.
O projeto pode decidir abrir componentes específicos sem tornar todo o sistema open source.
Por exemplo, futuramente podem existir:
- bibliotecas oficiais abertas;
- SDKs públicos;
- ferramentas auxiliares open source;
- exemplos;
- extensões;
- APIs;
- projetos comunitários.
Isso não significa que o núcleo da linguagem precise seguir a mesma política.
O modelo pode ser híbrido.
Uma linguagem aberta para criar, não necessariamente aberta por dentro
A ideia principal é simples:
o JLScript pode ser aberto para uso, aprendizado, criação e expansão do ecossistema sem que sua implementação principal seja open source.
Desenvolvedores podem aprender a linguagem, criar aplicações, desenvolver bibliotecas e participar da comunidade.
Enquanto isso, o núcleo permanece sob controle do projeto.
Essa separação permite proteger a implementação principal sem impedir o crescimento da linguagem.
Resumo
O JLScript:
- não é open source;
- possui código-fonte principal privado;
- pode ter documentação pública;
- pode ser utilizado por desenvolvedores;
- permite a criação de projetos em
.jls; - pode permitir bibliotecas da comunidade;
- pode possuir componentes públicos no futuro;
- mantém o núcleo oficial sob controle do projeto.
A intenção é manter uma estrutura clara entre a linguagem oficial, suas ferramentas internas e os projetos criados pelos usuários.
JLScript é uma linguagem disponível para criar, aprender e desenvolver, enquanto sua implementação principal permanece protegida e controlada pelo projeto.
Top comments (0)