-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adiciona rascunho 'escolhendo uma linguagem de programação'
- Loading branch information
Showing
1 changed file
with
60 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
+++ | ||
title = 'Escolhendo uma linguagem de programação' | ||
summary = 'O que são, quais os tipos, como escolher e alguns debates.' | ||
date = 2024-06-09 | ||
author = ['Kauê Fraga Rodrigues'] | ||
draft = true | ||
+++ | ||
|
||
De boa? Meu objetivo aqui é falar um pouco sobre linguagens de programação. O que são, quais tipos existem, como escolher uma linguagem para determinada situação e minha opinião em alguns debates relacionados. | ||
|
||
Vou começar contextualizando, então se quiser pular, vá para ["linguagens de programação"](#linguagens-de-programação) ou ["como escolher uma linguagem de programação"](#como-escolher-uma-linguagem-de-programação). | ||
|
||
Primeiramente, o que é uma linguagem de programação? | ||
|
||
> Uma linguagem de programação é um conjunto de símbolos e regras usado para se comunicar com o computador. | ||
Pense assim: uma linguagem de programação é como um idioma. Usamos o inglês para nos comunicarmos com aqueles que entendem inglês e, da mesma forma, precisamos usar um idioma que o computador entenda. | ||
|
||
E que linguagem o computador entende? | ||
|
||
Sim, é a tal **linguagem de máquina** ou os "zeros e uns" que você já deve ter ouvido falar. Algo assim: `01011000100010100110100010101010001000001011000010111111010`. Enquanto nós vemos uma sequência de números binários o computador enxerga uma instrução ou sequência de instruções. | ||
|
||
Beleza, mas onde entra a linguagem de programação nessa história? | ||
|
||
As linguagens de programação usam estruturas, palavras e simbologias conhecidas por nós humanos. Isso facilita o processo de comunicação. O código de uma linguagem de programação é transformado em linguagem de máquina quando passa por um compilador ou interpretador, dependendo do tipo da linguagem (compilada ou interpretado). AQUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII | ||
|
||
Antes de avançarmos, quero comentar sobre **sintaxe** e **semântica**. | ||
|
||
> A sintaxe é a forma, a estrutura das declarações de uma linguagem de programação, enquanto a semântica é o significado dessa forma/estrutura, o que ela quer dizer. | ||
Você diz "eu sou inteligente" ao invés de "eu inteligente" porque sabe que existe uma **estrutura** formal necessária para expressar seu pensamento. Você é inteligente, esse é o **significado** da sentença. Se você mudar o verbo "sou" para "estou" vai perceber que a estrutura se manteve, porém o significado não é o mesmo, em outras palavras, a semântica mudou mas a sintaxe continuou a mesma. | ||
|
||
## Linguagens de programação | ||
|
||
## Como escolher uma linguagem de programação | ||
|
||
--- | ||
|
||
Linguagens de programação para abordar: | ||
|
||
- Java (mercado) | ||
- Kotlin | ||
- Python (casos de uso, curva de aprendizado) | ||
- Rust (poder e segurança, curva de aprendizado, ecossistema) | ||
- Go (poder e simplicidade, ecossistema) | ||
- Javascript e Typescript (web, node/bun e comunidade) | ||
- Elixir (paradigma funcional e casos de uso) | ||
|
||
Critérios para escolher uma linguagem de programação ("o que considerar na hora de escolher?"): | ||
|
||
- Hype e comunidade | ||
- Mercado | ||
- Curva de aprendizado | ||
- Objetivo (pessoal/profissional e projeto) | ||
- Ecossistema (Compilador/interpretador, gerenciador de pacotes, documentações, biblioteca padrão) | ||
- Paradigma (geral, funcional, oop) | ||
|
||
Falar das minhas experiências com as linguagens (opinião). Typescript, Python, Go, Rust. | ||
|
||
Falar por que não existe "a melhor linguagem de programação". Papo de bala de prata, construtor e suas ferramentas. |