Vale a pena criar uma linguagem de script para minha experiência pessoal de aprendizado?
A razão pela qual pergunto é que já existem tantas linguagens de programação disponíveis, sei que a minha nunca terá nenhum uso real além de fornecer uma boa experiência de aprendizado. No entanto, vejo desvantagens em apenas tentar criar uma linguagem de script como uma experiência de aprendizado: levará muito tempo e esforço para que eu possa estar fazendo algo mais "produtivo".
Criar uma linguagem de programação (incluindo rascunhos do objetivo, sintaxe, filosofia, intérprete, etc.) valeria a pena o tempo, o esforço e a experiência de aprendizado? Ou existem outros projetos dos quais eu poderia me beneficiar mais?
Respostas:
Desenvolva suas habilidades e seu portfólio
Na minha opinião, seria uma experiência de aprendizado muito boa, pois:
Então, eu vejo isso como produto, útil e geral "vale a pena".
Iniciar
Agora você pode usar abordagens diferentes, dependendo de quanto tempo planeja gastar com isso ...:
Comece pequeno
Prefiro recomendar que você comece pequeno . Eu nunca soube que ninguém escreveu diretamente uma linguagem incrível assim. Você tropeça e cai, e falha, e falha e falha . Então você obtém sucesso, na medida em que funciona, mas ainda é péssimo, para começar de novo. E você adiciona novos recursos e finalmente está ficando legal, mas de repente você percebe que há um conceito fundamental que você estragou no começo. Então você começa de novo ...
Parece muito educativo para mim.
Vá em frente (e compartilhe o link conosco).
Pequeno, como em "curto"
Mas, novamente, eu recomendo que você comece pequeno . Não tenha medo se as pessoas disserem que vai demorar muito código e tempo. Não necessariamente, se você não busca uma linguagem complicada. Alan Kay e outros engenheiros do Xerox PARC supostamente desenvolveram uma versão inicial do Smalltalk que cabe em uma única folha de papel , como um objetivo de concisão (leia Xerox PARC: Dealers of Lightning para obter detalhes sobre a história do PARC ). Parece uma abordagem boa, educacional e restrita o suficiente (desde que não sacrifique a legibilidade).
Pequeno, como em "restrito"
Você não precisa oferecer suporte imediato a um sistema de tipo avançado, funções de ordem superior e uma mistura de 42 paradigmas diferentes. Poderia ser apenas uma linguagem de expressão matemática.
Reutilize (e espreite) o Conhecimento de Outros
Você também pode querer dar uma olhada nas ferramentas usadas para escrever idiomas do zero. Você pode reimplementar tudo sozinho, mas talvez também valha a pena examinar os lexers e geradores de analisadores existentes, por exemplo.
E, obviamente, você pode querer ler sobre a construção do compilador em geral.
Agora, se modificarmos sua pergunta para "seria o uso mais produtivo do seu tempo?" torna-se uma questão totalmente diferente :)
Existem muitos outros projetos de aprendizado que você poderia enfrentar, e isso treinaria e mostraria suas habilidades igualmente bem, se não melhores. Depende do que você deseja buscar.
fonte
Eu digo vá em frente.
A implementação de uma linguagem de programação abrange uma ampla gama de tópicos, e você aprenderá muito sobre como as coisas funcionam. Você provavelmente viverá meia dúzia de tentativas fracassadas, mas a experiência de aprendizado é inestimável.
fonte
Projetar e implementar uma linguagem de programação (de brinquedo, mas completa) foi, na verdade, um dos exercícios (obrigatório?) Em uma das minhas aulas de CS da divisão superior (tanto na classe do compilador quanto na pesquisa da linguagem de programação, esqueço qual ...)
Então, pelo menos um professor de CS achou que sim.
Você terminará com uma apreciação muito melhor por todas essas "peculiaridades" que outros idiomas têm.
fonte
Levaria um tempo para fazer. Você planeja mantê-lo?
Estou assumindo que seu status financeiro não é infinito, então diria que não vale a pena. Você pode gastar seu tempo em outros projetos úteis que podem lhe render dinheiro. Lembre-se de que talvez essa não seja a resposta que você está procurando, mas, do ponto de vista lógico, eu diria que sua linguagem de programação pode não ser o projeto certo no momento. Eu consideraria isso se você fosse um cientista da computação aposentado e sentisse a necessidade de contribuir com a indústria. Parece que você tem uma forte paixão pela programação, e isso é ótimo. Mas, construindo uma nova linguagem de script inteira? Esse será um projeto extremamente longo. Nesse período, você poderia ter criado muitos aplicativos para lançar em seu portfólio. Eu acho que a pergunta é:
fonte
Meu conselho para você é
Não reinvente a roda
Você deve se perguntar:
Entendo que você deseja ter mais experiência de aprendizado e, por esse motivo, pessoalmente, acho que a criação de estrutura fornecerá mais experiência de aprendizado e com o bônus de que você / sua equipe / comunidade poderá reutilizá-la mais tarde, do que criar um script.
E esse quadrinho do xkcd é um pouco relevante, basta alterar "standards" para "language" também:
fonte