V Note sull'apprendimento delle lingue


Tabella dei contenuti :


Introduzione: vlang, la lingua del futuro

vlang, per front-end, back-end, big data, blockchain, intelligenza artificiale, pervade ogni aspetto della società. Battere gli altri linguaggi di programmazione e unificare il mondo nel 2050. Divenne addirittura la lingua franca del mondo, permettendo all'umanità di ricostruire la leggendaria Torre di Babele e di avanzare nella tecnologia a passi da gigante ......

--- Citato da People's Daily 2050Aprire in una nuova finestra

Prefazione

V语言Aprire in una nuova finestra , Vlang, il linguaggio di programmazione per gli hacker.

rust e zig sono buoni, ma sono troppo rigorosi e accademici.

V è più simile a un linguaggio rapido come javascript, meno strutturato, veloce per iniziare e naturalmente veloce.

Molto del clamore della home page di V non ha ancora preso piede (per esempio C a V automaticamente) ed è stato chiamato da molti falsa propagandaAprire in una nuova finestra, per esempio :

È la strategia giusta per fare prima propaganda e poi per realizzarla; gli esseri umani sono una comunità di immaginazione.

La maggior parte delle persone crede perché vede, e alcune persone vedono perché credono.

Così come, la fede nel comunismo può essere in minoranza, ma ci sarà sempre un numero molto piccolo di persone che ci credono davvero, e il fuoco di una stella può far scoppiare un incendio nella prateria. Senza il partito comunista non ci sarebbe una nuova Cina.

I matematici informatici possono trovare V un po' frivolo, ma credo che gli hacker ameranno il linguaggio.

Pensare è agire, osare pensare, osare provare, e forse questa è la differenza tra arte e matematica. Un linguaggio di programmazione è arte o matematica? Questa è l'eterna domanda.

Penso che la cosa migliore di V sia l'offuscamento dei confini tra il design del linguaggio e lo sviluppo del programma.

Si compila da solo, e in tre o cinque secondi può essere ricompilato, e il codice è chiaro.

L'autore di V scrive nella struttura di directory del codice VAprire in una nuova finestra:

Ho cercato di rendere il compilatore e il codice vlib il più semplice e leggibile possibile.

Uno degli obiettivi di V è quello di essere aperto agli sviluppatori con diversi livelli di esperienza nello sviluppo di compilatori. Il compilatore non deve essere una scatola nera piena di magia che solo poche persone possono capire.

Il compilatore V è modulare e può essere usato da altre applicazioni. Si trova su cmd/v/ e vlib/v/.

Il comando più importante e utile quando si lavora con il compilatore V è v self. Ricostruisce il compilatore V.

La struttura del compilatore è molto semplice e ha tre passi diversi.

Parsing/generazione di AST ( v.parser) => controllo del tipo ( v.checker) => generazione di codice C/JavaScript/macchina ( v.gen)

Si potrebbe pensare:

Senza contare il lexer e il parser, il codice di base è di poche migliaia di linee. Posso solo dire che l'autore ha fatto un buon lavoro di marketing e il sito ufficiale è abbastanza simile.Aprire in una nuova finestra

Ma penso che questa semplicità sia la cosa migliore di V.

Non pensate a V come a un tradizionale linguaggio di programmazione goffo con un compilatore che è un oscuro, oscuro libro nel cielo.

Pensatelo come un framework web front-end, come Vue, dove la barriera d'ingresso è bassa e tutti possono essere coinvolti.

Se hai un problema, cambialo e basta.

Fallo da solo e avrai molto da mangiare.

Un bel mondo nuovo non è qualcosa che si sta seduti ad aspettare, è qualcosa che le persone che lavorano creano con le loro mani.

v self Compilalo tu stesso

V può facilmente compilare se stesso usando v self. Sul mio portatile Apple versione 2015, ci vogliono 5,63 secondi per compilare una volta.

Vi consiglio di installarlo come codice sorgente.

git clone git@github.com:vlang/v.git
make
sudo ./v symlink

Se hai qualche idea, vai avanti e modifica direttamente il codice sorgente del compilatore o della libreria standard.

Poi usate v selfe compilatelo voi stessi. Una volta che hai elaborato i tuoi requisiti, fai il commit e il merge nel codice sorgente ufficiale.

Oggi ho appena imparato V e ho lanciato 3 richieste di fusione (1Aprire in una nuova finestra, 2Aprire in una nuova finestra, 3Aprire in una nuova finestra ) con un suggerimento per il miglioramento del linguaggio: dichiarazione esplicita opzionale del supporto di un'interfacciaAprire in una nuova finestra.

Non parlo bene l'inglese, ma con il traduttore su DeepLAprire in una nuova finestra è facile convertire dal cinese all'inglese per una comunicazione approfondita con amici internazionali.

V Scrittura di sceneggiature

v init Dopo aver inizializzato il progetto, ho bisogno di uno script di compilazione.

V può essere usato per scrivere questo script al posto di bash.

Il mio script di compilazione è il seguente.

#!/usr/bin/env -S v run

import v.vmod

fn sh(cmd string){
  println("❯ $cmd")
  print(execute_or_exit(cmd).output)
}

vm := vmod.decode( @VMOD_FILE ) or { panic(err) }

name := vm.name

sh('v -autofree -prod ${name}.v')

suffix := $if windows { '.exe' } $else { '' }
src := name + suffix
bin := join_path_single('bin',src)
mkdir('bin') or {}
mv(src, bin)?

println('  '+bin)

Controlla le modifiche ai file e riavvia automaticamente l'esecuzione

È mia abitudine scrivere ed eseguire uno script una volta, e monitorare i cambiamenti e riavviarlo automaticamente è ciò di cui ho bisogno.

v viene fornito con v watch run xx.v per fare questo.

Ho creato uno script per facilitare l'uso di ./dev.sh come segue.

#!/usr/bin/env bash

DIR=$(dirname $(realpath "$0"))
cd $DIR
set -ex

NAME=$(cat v.mod|grep name|awk -F\' '{print $2}')
SH="v watch run $NAME.v"

exec $SH \
  -i '.git' \
  -i 'bin' \
  -c -s --before "printf \"\e[90m❯ ${SH}\e[0m\n\""

Per il modello di progetto vedere rmw-link/rmw-v-templateAprire in una nuova finestra

Aggiornamenti:
Da: gcxfd