V é uma nova linguagem de programação de código aberto e estaticamente tipada criada por Alexander Medvednikov. V promete ser simples, rápido e seguro para construir um software de manutenção. Várias linguagens influenciaram o design do V, incluindo Oberon, Swift, Kotlin e Python.

Saiba mais sobre o V, seus recursos e como ele se compara a outros idiomas.

Coisas que você pode fazer com V

V tem muito poder e você pode usá-lo em praticamente qualquer setor, incluindo programação de sistemas, desenvolvimento web e desenvolvimento de jogos. A linguagem é direta, rápida e segura.

V oferece uma ampla gama de poderosas bibliotecas gráficas para desenvolvimento de jogos. Eles se baseiam em GDI+/Cocoa Drawing e OpenGL para aplicativos 2D/3D mais sofisticados.

V tem um módulo de interface do usuário que emprega kits de ferramentas GUI nativos para aplicativos móveis, WinAPI/GDI+ para Windows, Cocoa para macOS e desenho personalizado para Linux.

Razões para tentar V

Embora V seja uma nova linguagem, esses benefícios a tornam uma opção legítima.

instagram viewer

Simplicidade

Para construir seu projeto, você só precisa executar:

v.

Você não precisa configurar um ambiente de compilação, criar um makefile, importar cabeçalhos ou configurar um ambiente virtual. Se você deseja instalar novas bibliotecas via vpm (Gerenciador de pacotes V), basta executar

v instalar <nome do pacote>

Segurança

Por padrão, V tem:

  • variáveis ​​imutáveis
  • estruturas imutáveis
  • opção/resultado e verificações de erro obrigatórias
  • tipos de soma
  • genéricos
  • argumentos de função imutáveis

e não:

  • nulo
  • sombreamento variável
  • comportamento indefinido
  • variáveis ​​globais (podem ser habilitadas para aplicativos de baixo nível como kernels, via sinalizador)

Velocidade de compilação

Algumas linguagens de programação são mais rápidas que outras, em termos de execução ou compilação. V é tão performático quanto C. Possui tempos de compilação de cerca de 110k loc/s com um backend C e aproximadamente 1 milhão de loc/s com backends nativos e tcc. V também evita alocações desnecessárias para fornecer uma abordagem de codificação sem abstração simples.

Gerenciamento de memória

V não usa um coletor de lixo, o que o torna diferente de linguagens como Go e Java. Em vez disso, o V gerencia a memória em tempo de compilação, mas funciona apenas para situações básicas. Você precisa gerenciá-lo manualmente para casos mais complexos.

Formatação para consistência de estilo de código

Você pode usar o vfmt formatador para formatar seu código V e melhorar sua legibilidade executando:

v fmt -w <your_filename>.v

Mensagens de erro amigáveis

As mensagens de erro de V são detalhadas, informativas e úteis. Dê uma olhada neste exemplo:

user.v:8:14: erro: `update_user` parâmetro `usuário` é mutável, você precisa fornecer `mut`: `update_user (mut user)`
7 | mut user := Usuário{}
8 | update_user (usuário)
| ~~~~
9 | }

Com a ajuda da mensagem de erro, você pode corrigir este código:

mut user := Usuário{}
update_user (usuário mut)

C++ vs. Vá contra V: Comparando as Três Línguas

Nestes exemplos, você pode ver como o código C++, Go e V difere em casos de uso de programação específicos.

Olá Mundo

Em C++:

#incluir <iostream>

inta Principal(){
std:: cout <<"Olá Mundo!"<< std:: endl;
}

Em Go:

pacote a Principal
importar "fmt"

função a Principal(){
fmt. Imprimirln("Olá Mundo!")
}

Em V:

println('Olá Mundo!')

Neste programa muito básico—imprimindo o texto "Hello World!"— você pode ver que V é muito mais simples que C++ ou Go. Você não precisa importar ou incluir nenhuma biblioteca para um programa tão simples.

Inicialização do vetor

Em C++:

std:: vetor<int> números = {1, 2, 3, 4};

Em Go:

números := []int{1, 2, 3, 4}

Em V:

números := [1, 2, 3, 4]

Nesse caso de uso, você pode ver que o V ainda produz um código mais limpo do que os outros dois. Ao contrário de ir e Vetores C++, V não requer que seus vetores mantenham valores de tipo fixo.

Imprimindo um vetor

Em C++:

padrão::copiar (numbers.begin(), números.fim(),
std:: ostream_iterator<int>(std:: cout, ""));

std:: cout << std:: endl;

Em Go:

fmt.Imprimir(números)

Em V:

println (números)

A função println de V pode imprimir a variável vetorial nativamente, assim como a de Go, embora esta última use o pacote fmt. Os arquivos de cabeçalho C++ iostream fornecem funcionalidade semelhante. No entanto, você ainda precisará cuidar de imprimir os elementos individuais do vetor.

Lendo um arquivo

Em C++:

#incluir
#incluir

inta Principal(){
padrão::corda caminho = "/etc/hosts";
padrão::ifstream f(caminho);
padrão::corda texto;
text.assign(padrão::istreambuf_iterator<Caracteres>(f), {});

E se (!f)
padrão::cerr << "erro ao ler do arquivo" << padrão::fim;
}

Em Go:

pacote a Principal

importar (
"io/ioutil"
"registro"
)

função a Principal(){
caminho := "/etc/hosts"
b, err := ioutil. ReadFile (caminho)

se errar != nil {
registro.Imprimir(errar)
Retorna
}

texto := string (b)
}

Em V:

importar SO

caminho := "/etc/hosts"
text := os.read_file (caminho) ou {
eprintln (err)
Retorna
}

Para leitura de arquivos, V usa o módulo os para fornecer funções independentes de SO/plataforma comuns. Eles lidam com tarefas como acessar argumentos de linha de comando, ler arquivos e processar processos. Neste caso, queremos ler um arquivo em caminho e retornar o conteúdo, então você usará o read_file (caminho) função. read_file retorna um erro se não houver conteúdo existente no dado caminho. Se você quiser saber mais sobre outros módulos de V, você pode querer verificar sua documentação.

Pronto para tentar V?

V é uma nova linguagem de programação que ainda está em seus estágios iniciais de desenvolvimento. Mesmo assim, tem muita potência e é rápido, seguro, fácil e de fácil manutenção.

V tem um código mais limpo que C++ e Go. Isso sugere que V pode ajudar os programadores a aderir a um dos princípios básicos de programação. Então, você está pronto para tentar V?