V Kalbos mokymosi pastabos


Turinys :


Įvadas: "vlang" - ateities kalba

"vlang", skirta priekinei ir galinei daliai, didiesiems duomenims, blokų grandinei, dirbtiniam intelektui, persmelkia kiekvieną visuomenės aspektą. Įveikti kitas programavimo kalbas ir suvienyti pasaulį 2050 m. Ji netgi tapo pasaulio lingua franca, leidusia žmonijai atstatyti legendinį Babelio bokštą ir sparčiai tobulinti technologijas ......

--- Cituota iš "People's Daily 2050Atidaryti naujame lange

Įžanga

V语言Atidaryti naujame lange , "Vlang" - programišių programavimo kalba.

rūdys ir zig yra geri, bet jie pernelyg griežti ir akademiški.

V yra labiau panaši į greitą pradžią, pavyzdžiui, "javascript" kalba, mažiau struktūrizuota, greitai pradedama naudoti ir, žinoma, greita.

Dauguma "V" pagrindiniame puslapyje pateiktų teiginių dar neįsitvirtino (pvz., automatinis "C" perėjimas į "V") ir daugelio buvo pavadinti melaginga propagandaAtidaryti naujame lange, pvz:

Tinkama strategija - pirmiausia imtis propagandos, o paskui ją įgyvendinti; žmonės yra vaizduotės bendruomenė.

Dauguma žmonių tiki, nes mato, o kai kurie mato, nes tiki.

Kaip ir tikėjimas komunizmu gali būti mažuma, bet visada bus labai nedaug žmonių, kurie tikrai tiki, o žvaigždės ugnis gali sukelti prerijų gaisrą. Be Komunistų partijos nebūtų naujosios Kinijos.

Kompiuterių matematikams V gali pasirodyti šiek tiek lengvabūdiška, bet manau, kad hakeriams ši kalba patiks.

Mąstymas yra veikimas, drąsa mąstyti, drąsa bandyti, ir galbūt tai yra skirtumas tarp meno ir matematikos. Ar programavimo kalba yra menas, ar matematika? Tai amžinas klausimas.

Manau, kad geriausias dalykas, kalbant apie V, yra ribų tarp kalbos dizaino ir programų kūrimo nutrynimas.

Jis pats susikompiliuoja ir per tris ar penkias sekundes gali būti perkompiluotas, o kodas yra aiškus.

V autorius rašo V kodo katalogo struktūrojeAtidaryti naujame lange:

Stengiausi, kad kompiliatorius ir vlib kodas būtų kuo paprastesnis ir suprantamesnis.

Vienas iš "V" tikslų - būti atviram skirtingo lygio kompiliatorių kūrimo patirties turintiems kūrėjams. Kompilatorius neturi būti juoda dėžė, pilna magijos, kurią supranta tik keli žmonės.

V kompiliatorius yra modulinis ir gali būti naudojamas kitose programose. Jis yra adresu cmd/v/ ir vlib/v/.

Svarbiausia ir naudingiausia komanda dirbant su V kompiliatoriumi yra v self. Jis atkuria V kompiliatorių.

Kompilatoriaus struktūra yra labai paprasta ir susideda iš trijų skirtingų etapų.

AST analizė/generavimas ( v.parser) => tipo tikrinimas ( v.checker) => C/JavaScript/mašininio kodo generavimas ( v.gen)

Galima pagalvoti:

Neskaičiuojant lekserio ir analizatoriaus, pagrindinį kodą sudaro vos keli tūkstančiai eilučių. Galiu tik pasakyti, kad autorius gerai atliko rinkodaros darbą, o oficiali svetainė atrodo gana panašiai.Atidaryti naujame lange

Tačiau manau, kad šis paprastumas yra geriausias "V" bruožas.

Negalvokite apie V kaip apie tradicinę gremėzdišką programavimo kalbą su kompiliatoriumi, kuris yra neaiški, neaiški knyga danguje.

Galvokite apie ją kaip apie žiniatinklio priekinės dalies struktūrą, panašią į "Vue", kurioje patekimo į rinką barjeras yra nedidelis ir į kurią gali įsitraukti kiekvienas.

Jei kyla problemų, tiesiog pakeiskite jį.

Padarykite tai patys ir turėsite ką valgyti.

Gražus naujas pasaulis - tai ne kažkas, ko galima laukti, o kažkas, ką dirbantys žmonės kuria savo rankomis.

v self Kompiliuokite patys

V gali lengvai susikompiliuoti pats naudodamasis v self. Mano 2015 m. versijos "Apple" nešiojamajame kompiuteryje vieną kartą susikompiliuoti užtrunka 5,63 sekundės.

Rekomenduoju jį įdiegti kaip pirminį kodą.

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

Jei turite kokių nors idėjų, eikite į priekį ir tiesiogiai modifikuokite kompiliatoriaus arba standartinės bibliotekos išeities kodą.

Tada naudokite v selfir patys ją susikurkite. Kai nustatysite savo reikalavimus, perduokite juos ir įtraukite į oficialų šaltinio kodą.

Šiandien aš ką tik sužinojau V ir pradėjau 3 susijungimo užklausas (1Atidaryti naujame lange, 2Atidaryti naujame lange, 3Atidaryti naujame lange ) su pasiūlymu dėl kalbos tobulinimo: neprivalomas aiškus sąsajos palaikymo deklaravimasAtidaryti naujame lange.

Gerai nekalbu angliškai, bet naudodamasis DeepL esančiuAtidaryti naujame lange vertėju galiu lengvai konvertuoti iš kinų kalbos į anglų kalbą ir išsamiai bendrauti su tarptautiniais draugais.

V Scenarijų rašymas

v init Inicializavus projektą, man reikia surinkimo scenarijaus.

V galima naudoti šiam scenarijui rašyti vietoj bash.

Mano kompiliavimo scenarijus yra toks.

#!/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)

Stebėti failų pakeitimus ir automatiškai iš naujo paleisti paleidimą

Turiu įprotį vieną kartą parašyti ir paleisti scenarijų, o pokyčių stebėjimas ir automatinis paleidimas yra tai, ko man reikia.

v yra v watch run xx.v, kad tai padarytumėte.

Sukūriau tokį scenarijų, kuris palengvina ./dev.sh naudojimą.

#!/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\""

Projekto šabloną žr. rmw-link/rmw-v-templateAtidaryti naujame lange

Atnaujinimai:
Iš: gcxfd