Começando
Cada linguagem de programação tem sua própria forma de começar. Aqui está como criar um programa simples "Hello, World!" em cada linguagem.
Visão Geral das Linguagens
- JavaScript
- PHP
- Rust
- Go
- Python
- Zig
- C#
- C++
- C
- Java
- Ruby
- Swift
Tipo: Interpretado, tipagem dinâmica
Paradigma: Multi-paradigma (procedural, orientado a objetos, funcional)
Runtime: Node.js (lado servidor) ou navegador (lado cliente)
Instalação:
- Baixe em nodejs.org
- Ou use gerenciadores de pacotes:
brew install node(macOS),apt install nodejs(Linux)
Documentação Oficial: developer.mozilla.org
Verificação:
Após a instalação, verifique sua configuração:
node --versionTipo: Interpretado, tipagem dinâmica
Paradigma: Multi-paradigma (procedural, orientado a objetos, funcional)
Runtime: PHP CLI ou servidor web (Apache/Nginx)
Instalação:
- Baixe em php.net
- Ou use gerenciadores de pacotes:
brew install php(macOS),apt install php(Linux)
Documentação Oficial: php.net/manual
Verificação:
Após a instalação, verifique sua configuração:
php --versionTipo: Compilado, tipagem estática
Paradigma: Multi-paradigma (sistemas, funcional, recursos orientados a objetos)
Runtime: Binário nativo
Instalação:
- Instale via rustup.rs
- Comando:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Documentação Oficial: doc.rust-lang.org
Verificação:
Após a instalação, verifique sua configuração:
rustc --versionTipo: Compilado, tipagem estática
Paradigma: Multi-paradigma (procedural, concorrente)
Runtime: Binário nativo
Instalação:
- Baixe em go.dev
- Ou use gerenciadores de pacotes:
brew install go(macOS),apt install golang-go(Linux)
Documentação Oficial: go.dev/doc
Verificação:
Após a instalação, verifique sua configuração:
go versionTipo: Interpretado, tipagem dinâmica
Paradigma: Multi-paradigma (procedural, orientado a objetos, funcional)
Runtime: Interpretador Python (CPython, PyPy, etc.)
Instalação:
- Baixe em python.org
- Ou use gerenciadores de pacotes:
brew install python(macOS),apt install python3(Linux)
Documentação Oficial: docs.python.org
Verificação:
Após a instalação, verifique sua configuração:
python --version # or python3 --versionTipo: Compilado, tipagem estática
Paradigma: Programação de sistemas
Runtime: Binário nativo
Instalação:
- Baixe em ziglang.org
- Ou use gerenciadores de pacotes:
brew install zig(macOS)
Documentação Oficial: ziglang.org/documentation
Verificação:
Após a instalação, verifique sua configuração:
zig versionTipo: Compilado (JIT), tipagem estática
Paradigma: Orientado a objetos, multi-paradigma
Runtime: Runtime .NET (CLR)
Instalação:
- Baixe o SDK .NET em dotnet.microsoft.com
- Ou use gerenciadores de pacotes:
brew install dotnet(macOS),apt install dotnet-sdk-8.0(Linux)
Documentação Oficial: learn.microsoft.com/dotnet
Verificação:
Após a instalação, verifique sua configuração:
dotnet --versionTipo: Compilado, tipagem estática
Paradigma: Multi-paradigma (procedural, orientado a objetos, genérico)
Runtime: Binário nativo
Instalação:
- Instale o compilador:
g++(GCC) ouclang++(Clang) - macOS:
xcode-select --installoubrew install gcc - Linux:
apt install build-essential
Documentação Oficial: cppreference.com
Verificação:
Após a instalação, verifique sua configuração:
g++ --version # or clang++ --versionTipo: Compilado, tipagem estática
Paradigma: Procedural, imperativo
Runtime: Binário nativo
Instalação:
- Instale o compilador:
gcc(GCC) ouclang(Clang) - macOS:
xcode-select --installoubrew install gcc - Linux:
apt install build-essential
Documentação Oficial: en.cppreference.com/w/c
Verificação:
Após a instalação, verifique sua configuração:
gcc --version # or clang --versionTipo: Compilado (para bytecode), tipagem estática
Paradigma: Orientado a objetos, multi-paradigma
Runtime: JVM (Java Virtual Machine)
Instalação:
- Baixe o JDK em oracle.com/java ou adoptium.net
- Ou use gerenciadores de pacotes:
brew install openjdk(macOS),apt install default-jdk(Linux)
Documentação Oficial: docs.oracle.com/javase
Verificação:
Após a instalação, verifique sua configuração:
java -version javac -versionTipo: Interpretado, tipagem dinâmica
Paradigma: Multi-paradigma (orientado a objetos, funcional, procedural)
Runtime: Interpretador Ruby (MRI, JRuby, etc.)
Instalação:
- Baixe em ruby-lang.org
- Ou use gerenciadores de pacotes:
brew install ruby(macOS),apt install ruby-full(Linux) - Ou use gerenciadores de versão:
rbenv,rvm
Documentação Oficial: ruby-lang.org/documentation
Verificação:
Após a instalação, verifique sua configuração:
ruby --versionTipo: Compilado, tipagem estática
Paradigma: Multi-paradigma (orientado a objetos, funcional, orientado a protocolos)
Runtime: Binário nativo ou runtime Swift
Instalação:
- macOS: Incluso com Xcode (baixe pela App Store)
- Linux: Baixe em swift.org/download
- Ou use gerenciadores de pacotes:
brew install swift(macOS)
Documentação Oficial: swift.org/documentation
Verificação:
Após a instalação, verifique sua configuração:
swift --versionPré-requisitos
Antes de começar a programar, certifique-se de ter:
- Um editor de texto ou IDE (VS Code, Vim, IntelliJ, etc.)
- O runtime/compilador da linguagem instalado (veja as instruções de instalação acima)
- Acesso ao terminal/linha de comando para executar seus programas
- Conhecimento básico de linha de comando
Hello World
- JavaScript
- PHP
- Rust
- Go
- Python
- Zig
- C#
- C++
- C
- Java
- Ruby
- Swift
// JavaScript (Node.js)
console.log('Hello, World!');
<?php
echo "Hello, World!";
?>
fn main() {
println!("Hello, World!");
}
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
# Python
print("Hello, World!")
const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.print("Hello, World!\n", .{});
}
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
# Ruby
puts "Hello, World!"
import Swift
print("Hello, World!")
Executando Seu Primeiro Programa
- JavaScript
- PHP
- Rust
- Go
- Python
- Zig
- C#
- C++
- C
- Java
- Ruby
- Swift
node hello.js
php hello.php
rustc hello.rs
./hello
go run hello.go
python hello.py
zig build-exe hello.zig
./hello
csc hello.cs
./hello.exe
g++ hello.cpp -o hello
./hello
gcc hello.c -o hello
./hello
javac HelloWorld.java
java HelloWorld
ruby hello.rb
swift hello.swift
Principais Conclusões
-
Diversidade de paradigmas -- As linguagens vão do procedural (C) ao multi-paradigma (JavaScript, Python, Rust) ao foco em sistemas (Zig). Por exemplo, C mantém você próximo da máquina com um modelo procedural mínimo, enquanto Rust e Swift mesclam programação de sistemas com recursos funcionais e orientados a objetos. JavaScript e Python suportam múltiplos paradigmas: você pode escrever código imperativo, POO ou funcional no mesmo arquivo. Ao escolher uma linguagem, prefira C ou Zig para controle de baixo nível; Rust, Go ou Swift para desempenho de sistemas com ergonomia moderna; e JavaScript, Python ou Ruby para iteração rápida e amplo suporte de ecossistema.
-
Sistemas de tipagem -- Linguagens compiladas (Rust, Go, C++, Java, Swift, Zig) são estaticamente tipadas, o que significa que erros de tipo são detectados antes da execução do programa. Linguagens interpretadas (JavaScript, Python, PHP, Ruby) são dinamicamente tipadas, então você pode reatribuir variáveis para tipos diferentes (
let x = 42; x = "hello"em JavaScript). Tipagem estática oferece garantias mais fortes e melhor suporte de IDE; tipagem dinâmica favorece prototipagem rápida. Para bases de código grandes e de longa duração, prefira Rust, Go, Java ou C#; para scripts e protótipos, Python ou JavaScript geralmente são suficientes. -
Modelos de execução -- Linguagens compiladas (C, C++, Rust, Go, Zig, Swift) produzem código de máquina nativo; você executa o binário diretamente. JavaScript usa Node.js ou o navegador; Java usa a JVM; C# usa o runtime .NET. Python e Ruby usam interpretadores que executam o código fonte linha a linha. Binários compilados iniciam rápido e frequentemente rodam mais rápido; linguagens baseadas em runtime oferecem facilidade multiplataforma e recursos dinâmicos. Escolha linguagens compiladas para implantações críticas em desempenho ou standalone; escolha runtimes para backends web e aplicações multiplataforma.
-
Requisitos de ponto de entrada -- Linguagens estilo C requerem um
main()explícito (ex.:fn main()em Rust,func main()em Go,int main()em C). Python e Ruby executam código de nível superior desde a primeira linha;print("Hello")no topo de um arquivo roda imediatamente. Go requer tantopackage mainquantofunc main()no mesmo pacote. Java e C# vinculam pontos de entrada a uma classe (public static void main). Ao trocar de linguagem, observe essas diferenças: algumas esperam uma única função de entrada, outras executam scripts de cima para baixo. -
Configuração e verificação -- Cada linguagem tem seu próprio instalador e comando de versão:
node --version,python3 --version,rustc --version,go version, etc. Use esses comandos para confirmar seu ambiente antes de programar. Para linguagens de sistemas (C, C++, Rust, Zig), você normalmente compila e depois executa; para linguagens interpretadas ou baseadas em runtime, você executa o código fonte ou bytecode diretamente. Prefira os instaladores oficiais (ex.: rustup para Rust, instaladores SDK para .NET e Java) para a melhor experiência.