2 pontos por GN⁺ 2024-05-27 | 1 comentários | Compartilhar no WhatsApp

Hurl, uma linguagem excepcional

Visão geral

  • Hurl é uma linguagem criada para explorar uma linguagem que usa tratamento de exceções como seu único fluxo de controle.
  • A linguagem começou a partir de uma conversa entre Nicole Tietz-Sokolskaya e amigos do Recurse Center.
  • Este site fornece documentação sobre o uso do Hurl, exemplos, guia de depuração e FAQ.

Instalação e uso

  • O código-fonte do Hurl está disponível no repositório do Hurl.
  • Se você encontrar bugs ou erros, patches por e-mail são bem-vindos, mas é necessário ceder todos os direitos sobre o patch.
  • Isso é para manter o relicenciamento e o licenciamento comercial.

Sintaxe e filosofia do Hurl

  • Hurl é uma linguagem centrada em tratamento de exceções.
  • Implementa o fluxo de controle apenas com tratamento de exceções.

Padrões comuns

  • O fluxo de controle é gerenciado por meio do tratamento de exceções.
  • Estruturas de controle tradicionais (por exemplo, if, for) não são usadas.

Biblioteca padrão

  • Hurl oferece uma biblioteca padrão.
  • Inclui diversos recursos baseados em tratamento de exceções.

Exemplos

  • São fornecidos vários exemplos de código.
  • Com os exemplos, é fácil entender como usar o Hurl.

Depuração e erros

  • Um guia de depuração é fornecido.
  • Ele explica como lidar com erros de forma eficaz.

FAQ

  • Fornece respostas para perguntas frequentes.
  • Aborda problemas comuns que podem surgir ao usar Hurl.

Elogios ao Hurl

  • Erika Rowland: "Este monstro é lindo, e eu nunca gostaria de tocar nele. Não quero que meu nome seja associado a isso."
  • Nicole Tietz-Sokolskaya: "Decidi tornar esta linguagem realidade. Desculpem."
  • Mary McGrath: "🤮" (isso pode ser usado como citação?)
  • nate (@nmoo@mas.to): "Anormal certificado™!"

Código-fonte

  • O código-fonte do Hurl e deste site está disponível no repositório do Hurl.
  • Patches por e-mail são bem-vindos, mas todos os direitos devem ser cedidos.

Licença

  • Este projeto pode ser usado sob uma destas três licenças:
    • AGPL-3.0
    • GAL-1.0 (Gay Agenda License)
    • licença comercial
  • Você pode escolher uma das três licenças para uso.

Opinião do GN⁺

  • Linguagem centrada em exceções: Hurl adota uma abordagem única ao colocar o tratamento de exceções no centro do fluxo de controle, substituindo estruturas tradicionais de controle. Isso exige uma nova forma de pensar por parte dos desenvolvedores.
  • Valor educacional: Hurl pode ajudar a compreender em profundidade a importância do tratamento de exceções e como utilizá-lo. Em especial, mostra com clareza os problemas de usar exceções da forma errada.
  • Questão de praticidade: Usar Hurl no trabalho pode ser desafiador. Para desenvolvedores acostumados a estruturas de controle tradicionais, pode representar uma grande barreira.
  • Colaboração com a comunidade: O código-fonte do Hurl é disponibilizado como open source e incentiva a participação da comunidade. Isso pode ter um impacto positivo no avanço do projeto e na correção de bugs.
  • Escolha de licença: Ao oferecer várias licenças, amplia as opções para os usuários. Isso contribui para aumentar a flexibilidade do projeto.

1 comentários

 
GN⁺ 2024-05-27
Comentários do Hacker News

Resumo da coletânea de comentários do Hacker News

  • É importante exigir namespaces e imports ao projetar uma linguagem de programação

    • Exigir namespaces e imports facilita o entendimento do código.
    • É melhor não permitir efeitos colaterais no nível mais alto.
  • Opiniões sobre tratamento de exceções

    • O tratamento de exceções dificulta o contrato entre chamador e chamado.
    • É melhor tratar exceções por meio de valores de retorno, como em Go ou Rust.
    • Seria bom se a IDE pudesse detectar dinamicamente todas as exceções não tratadas e permitir encontrar facilmente onde elas ocorrem.
  • Exemplo de uso de toss

    • toss é usado principalmente quando uma função retorna vários valores.
    • Não é útil, exceto nos casos em que não há retomada imediata.
  • A linguagem Hurl e o sistema de condições

    • Hurl é semelhante ao sistema de condições de Smalltalk/CL.
    • O sistema de condições oferece várias opções de reinício.
  • Uso do domínio .wtf

    • O mundo seria melhor se mais coisas usassem a extensão de domínio .wtf.
  • Linguagem semelhante a efeitos algébricos

    • É parecida com uma forma fraca de efeitos algébricos, mas ainda assim é interessante.
  • Sentimentos mistos sobre a linguagem Hurl

    • Não gosto da linguagem Hurl, mas ela tem um certo ar de elegância.
    • Seria bom se houvesse uma sintaxe que distinguisse exceções retomáveis de exceções não retomáveis.
    • A biblioteca padrão não deveria ter sido substituída por funções comuns de retorno de valor.
  • Diferença entre toss e hurl

    • hurl pode ser capturado, mas toss não pode.
    • Fico preocupado se, ao usar muito Hurl, as pessoas vão me chamar de tosser.
  • Estrutura da linguagem toss

    • toss percorre a pilha em busca de um manipulador de exceções e retoma a execução como se nada tivesse acontecido.
    • É possível injetar comportamento adicional em tempo de execução.
    • Em código orientado a objetos, a injeção de dependência é feita por meio de construtores de serviço, mas toss usa um "manipulador de toss".