<br>
<p align="center">
  <img src="./recursos/imagens/icone-delegua.png" alt="delegua" width="auto" height="130px">
  <h3 align="center">Linguagem Delégua</h3>

  <p align="center">
    Linguagem de programação 100% em português com suporte a múltiplos dialetos, como variações de Portugol (VisuAlg, Portugol Studio, Portugol IPT, Mapler), e outros (Pituguês, BIRL, Calango).</a>
  </p>

  <p align="center">
    <a href="https://designliquido.github.io/delegua-web/" target="_blank">Página Web com Interpretador Delégua para demonstrações</a>
  </p>

  <p align="center">
    <a href="https://designliquido.github.io/delegua-script/" target="_blank">Página Web com Delégua sendo executada dentro de tags script</a>
  </p>

  <p align="center">
    <img src="./recursos/imagens/badge-statements.svg" />
    <img src="./recursos/imagens/badge-lines.svg" />
    <img src="./recursos/imagens/badge-functions.svg" />
    <img src="./recursos/imagens/badge-branches.svg" />
    <a href="https://github.com/DesignLiquido/delegua/issues" target="_blank">
      <img src="https://img.shields.io/github/issues/Designliquido/delegua" />
    </a>
    <img src="https://img.shields.io/github/stars/Designliquido/delegua" />
    <img src="https://img.shields.io/github/forks/Designliquido/delegua" />
    <a href="https://www.npmjs.com/package/@designliquido/delegua" target="_blank">
      <img src="https://img.shields.io/npm/v/@designliquido/delegua" />
    </a>
    <img src="https://img.shields.io/npm/dw/@designliquido/delegua" />
    <img src="https://img.shields.io/github/license/Designliquido/delegua" />
  </p>

  <p align="center">
    Acompanhe a Design Líquido nas redes sociais:
  </p>

  <p align="center">
    <a href="https://twitter.com/designliquido" target="_blank"><img src="https://img.shields.io/static/v1?style=for-the-badge&message=Twitter&color=1DA1F2&logo=Twitter&logoColor=FFFFFF&label=" /></a>
    <a href="https://www.instagram.com/design.liquido" target="_blank"><img src="https://img.shields.io/static/v1?style=for-the-badge&message=Instagram&color=E4405F&logo=Instagram&logoColor=FFFFFF&label=" /></a>
    <a href="https://www.youtube.com/channel/UCJRn3B7r0aex6LCaOyrQtZQ" target="_blank"><img src="https://img.shields.io/static/v1?style=for-the-badge&message=YouTube&color=FF0000&logo=YouTube&logoColor=FFFFFF&label=" /></a>
    <a href="https://www.linkedin.com/company/design-liquido" target="_blank"><img src="https://img.shields.io/static/v1?style=for-the-badge&message=LinkedIn&color=0A66C2&logo=LinkedIn&logoColor=FFFFFF&label=" /></a>
    <a href="https://www.tiktok.com/@designliquido" target="_blank"><img src="https://img.shields.io/static/v1?style=for-the-badge&message=TikTok&color=000000&logo=TikTok&logoColor=FFFFFF&label=" /></a>
  </p>
</p>

## Introdução

Delégua é uma linguagem de programação baseada na língua portuguesa, usada para fins educacionais e comerciais pela Design Líquido, cujo código começou como uma variação (_fork_) da [linguagem Égua](https://egua.dev). A variação começou na versão 1.2.0 de Égua.

Delégua tem retrocompatibilidade parcial com a linguagem Égua e compreende sua extensão de arquivo (`.egua`), para
aplicações por linha de comando. Em outras palavras, todo programa escrito em Égua funciona no dialeto de Delégua correspondente. No mais, Delégua se diferenciou substancialmente de Égua com o passar dos anos, [e essas diferenças estão descritas em nossa documentação](https://github.com/DesignLiquido/delegua/wiki).

## Motivação

- Atualmente, há 300 milhões de falantes de português no mundo, seja como primeira ou segunda língua;
- A língua materna é substancialmente mais eficiente para expressão em passos lógicos do que uma segunda língua, com conjunto de evidências farto e [largamente documentado no meio acadêmico](https://www.researchgate.net/publication/382758173_The_Influence_of_Mother_Tongue_Thinking_on_Second_Language_Writing);
    - [A Importância da Linguagem Nativa para a Aprendizagem Significativa em Lógica de Programação](https://sol.sbc.org.br/index.php/sbie/article/view/12936)
- Como carreira, a programação é uma das formas mais eficazes de geração de emprego e renda com a aplicação de poucos recursos, especialmente quando em código aberto e acessível a todos. 
    - [Rendimentos 200% acima da média: por que o setor de tecnologia é o que mais paga no Brasil?](https://exame.com/carreira/com-rendimentos-200-acima-da-media-brasileira-estudo-revela-qual-o-setor-mais-bem-pago-do-mercado/)

### Cenário brasileiro

- [5% de toda a população entende inglês em algum nível](https://www.britishcouncil.org.br/sites/default/files/learning_english_in_brazil.pdf), seja ele elementar, intermediário ou fluente, [com apenas 1% sendo efetivamente fluente](https://www.youtube.com/watch?v=G3LdyaacfDI). Aqui consideramos "fluência" como a dominância de 10000 palavras em inglês, além de plena capacidade de leitura, escrita e conversação. [O Brasil está na 81a posição do English Proficiency Index, da Education First, organização focada em educação global](https://www.ef.com/wwen/epi/regions/latin-america/brazil), com pontuação abaixo de 500 e em queda contínua, nível considerado "baixo";
    - [Angola está na 110a posição, e nível "muito baixo"](https://www.ef.com/wwen/epi/regions/africa/angola/);
    - [Cabo Verde, na 89a posição, nível "baixo"](https://www.ef.com/wwen/epi/regions/africa/cabo-verde/).
- [Menos de 1 milhão de pessoas trabalha com programação](https://www.jetbrains.com/pt-br/lp/devecosystem-data-playground/);
- [Taxas de evasão em universidades para cursos de Ciência da Computação são alarmantes](https://carreiraemti.com.br/blog/mapa-do-ensino-superior-revela-385-de-evasao-em-cursos-de-ti/).
    - [Reprovações e trancamentos nas disciplinas de introdução à programação da Universidade de São Paulo: um estudo preliminar (2015)](https://repositorio.usp.br/item/002855292)


## Vantagens de programar em português

- **Acessibilidade e Compreensão:** Programar em sua língua materna, como o português, torna os conceitos de programação mais acessíveis e fáceis de entender, especialmente para iniciantes, reduzindo a barreira de entrada para novos programadores.

- **Facilita o Aprendizado:** A programação em português permite que os aprendizes concentrem-se nos conceitos de programação em vez de lidar com a barreira de um segundo idioma. Isso pode acelerar o processo de aprendizado, especialmente para pessoas que não têm fluência em inglês (ou 95% da população que possui o português como língua materna).

- **Melhor Comunicação e Documentação:** Programar em seu idioma nativo leva a uma comunicação mais clara e eficaz com colegas e clientes locais. Além disso, a documentação em português é mais fácil de compreender e seguir.

- **Contribuição para a Identidade Cultural:** Linguagens de programação em português contribuem para a preservação e fortalecimento da identidade cultural e linguística, promovendo o uso e a adoção do idioma em contextos tecnológicos.

- **Facilita a Localização de Erros:** Programar em português pode tornar mais fácil a localização e correção de erros de código, uma vez que os desenvolvedores podem compreender rapidamente o contexto dos problemas.

## Características
Delégua, a linguagem de programação totalmente em português, possui uma série de características que a tornam única e atraente:

### Acessibilidade

- **Simples e Completa:** Delégua é projetada para ser acessível a programadores de todos os níveis, desde iniciantes até experientes. Sua simplicidade e completude facilitam a aprendizagem.

- **Totalmente em Português:** Uma característica distintiva é que Delégua é desenvolvida inteiramente em português (mesmo), tornando-a acessível e amigável para aqueles que querem aprender como uma linguagem de programação funciona internamente.

### Tecnologia Moderna

- **Código aberto (_open source_):** Delégua é uma linguagem de código aberto e gratuita, que é e sempre será licenciada sob a MIT License, permitindo o uso sem restrições em quaisquer outras aplicações.

- **Modularidade:** A linguagem suporta a criação de módulos reutilizáveis, promovendo a organização e a manutenção do código.

- **Orientada a Objetos:** Delégua oferece recursos completos de programação orientada a objetos, incluindo classes, objetos e herança.

- **Multidialetos.** Delégua implementa dialetos de outras linguagens de programação em português populares em instâncias de ensino técnico e superior, como [Portugol VisuAlg](https://pt.wikipedia.org/wiki/Visualg), [Portugol Studio](http://lite.acad.univali.br/portugol/), [Portugol Mapler](https://portugol.sourceforge.io/) e [Portugol IPT](http://orion.ipt.pt/~manso/Portugol/menuEsquerda.html). Esses dialetos podem estar implementados neste repositório, ou em outros repositórios da Design Líquido, e também são em código aberto.

### Flexibilidade e Potencial

- **Depurável.** Usando um editor com suporte à depuração como o [Visual Studio Code](https://code.visualstudio.com), você pode inspecionar o seu programa, suas variáveis e executar linha por linha.

- **Portabilidade:** Delégua é executável em qualquer dispositivo que interprete JavaScript, tornando-a versátil e compatível com diversos sistemas operacionais e qualquer navegador de internet.

- **Traduzibilidade:** A capacidade de traduzir programas entre Delégua, Python e JavaScript aumenta a flexibilidade e as opções de desenvolvimento.

## Aplicações

- [Escrita de aplicações para Internet, usando o ferramentário (_framework_) liquido](https://github.com/DesignLiquido/liquido);
- Aplicações em React
    - https://www.stardust-app.com.br
- [Aplicações em React Native](https://github.com/0thigs/StarDust).

## Instalação

Delégua executa em qualquer dispositivo que interprete JavaScript, ou seja, computadores, celulares e tablets. Você não precisa instalar nada se não quiser. Utilize uma das seguintes opções:

- [Utilize nosso editor online](https://designliquido.github.io/delegua-web/);
- [Dentro do Visual Studio Code, instale a extensão da Design Líquido](https://marketplace.visualstudio.com/items?itemName=designliquido.designliquido-vscode). [Aprenda como executar e depurar seu programa aqui](https://www.youtube.com/watch?v=TQxLekzvBv8).

Para instalar no seu computador ou na sua aplicação, veja o projeto [`delegua-node`](https://github.com/DesignLiquido/delegua-node).

Para usar dentro de uma página de internet, entre _tags_ `<script>`, veja o projeto [`delegua-script`](https://github.com/DesignLiquido/delegua-script).

## Documentação

- [Delégua é documentada na Wiki deste GitHub](https://github.com/DesignLiquido/delegua/wiki).
- [A documentação técnica (gerada por TypeDoc) pode ser encontrada aqui](https://designliquido.github.io/delegua/).

## Compiladores

Delégua possui alguns compiladores implementados. Compiladores passam código Delégua para binário, gerando executáveis, cuja execução ocorre com a máxima performance possível. 

Para este núcleo, alguns compiladores são tradutores de Delégua para certos _assemblies_ (ou representações intermediárias), e que precisam de [`delegua-node`](https://github.com/DesignLiquido/delegua) ou alguma outra interface para funcionarem, como por exemplo, nossa [extensão para VSCode e derivados](https://github.com/DesignLiquido/vscode). Os detalhes da utilização podem ser vistos nos respectivos projetos. Aqui são implementados tradutores para as seguintes arquiteturas de processador:

- x64: NASM, YASM e FASM. Pode funcionar com MASM e GAS, mas requer algumas modificações pontuais na sintaxe de macros;
- ARM: Linux e Android.

Já outros compiladores demandam uma infraestrutura de código mais robusta e são projetos separados, que ou usam este núcleo diretamente, ou usam a sintaxe implementada no núcleo de forma independente. 
São eles:

- [`delegua-nativo`](https://github.com/DesignLiquido/delegua-compiladores), o compilador oficial da Design Líquido, independente de arquitetura de processador;
- [`delegua-llvm`](https://github.com/DesignLiquido/delegua-llvm), o compilador de código Delégua para LLVM, que pode ser usado para gerar código nativo para diversas arquiteturas de processador, incluindo x64 e ARM. É usado por `delegua-nativo`;
- [`cgd` (Compilador Geral Delégua)](https://github.com/FernandoTheDev/cgd). Documentação: https://fernandothedev.github.io/cgd/

## Contribuições e Comunidade

* Para contribuições, por favor, leia o nosso [Guia de Contribuição](./CONTRIBUINDO.md) antes de submeter uma _Pull Request_.
* [Veja nossas discussões atuais](https://github.com/DesignLiquido/delegua/discussions).
* [Temos um grupo no Discord](https://discord.gg/4tBxWSSbdV).

## Quem já Contribuiu

<a href="https://github.com/DesignLiquido/delegua/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=DesignLiquido/delegua" />
</a>
