የV አገባብ ከOberon፣ Rust እና Swift አንዳንድ ግንባታዎችን በመበደር ከጎ ጋር በጣም ተመሳሳይ ነው። ቋንቋው በተቻለ መጠን ቀላል ነው እና እንደ ገንቢው ገለጻ, መሰረታዊ ነገሮችን ለመማር የ 30 ደቂቃ ጥናት በቂ ነው.
አዲስ ቋንቋ መፈጠር የተነሳው የጎ ቋንቋ ቀላልነት አገባብ፣የማጠናቀር ፍጥነት፣የስራዎች ቀላልነት፣የኮድ ተንቀሳቃሽነት እና የC/C++ አፈጻጸም፣የዝገት እና የዝገት ደህንነት እና የአጠቃቀም ቀላልነት ጥምረት ለማሳካት ባለው ፍላጎት ነው። በዚግ ማጠናቀር ደረጃ ላይ የማሽን ኮድ ማመንጨት። እንዲሁም ያለ ውጫዊ ጥገኞች ሊሰራ የሚችል, የአለምአቀፍ ወሰንን (አለምአቀፍ ተለዋዋጮችን) ለማስወገድ እና ኮዱን "ሞቃት" የመጫን ችሎታን የሚያቀርብ የታመቀ እና ፈጣን ማጠናከሪያ ማግኘት ፈልጌ ነበር.
ከ C++ ጋር ሲነጻጸር አዲሱ ቋንቋ በጣም ቀላል ነው፣ ፈጣን የማጠናቀር ፍጥነት (እስከ 400 ጊዜ)፣ ደህንነቱ የተጠበቀ የፕሮግራም አወጣጥ ቴክኒኮችን ይለማመዳል፣ ካልተገለጸ ባህሪ ችግር የጸዳ እና አብሮ የተሰሩ ስራዎችን ትይዩ ለማድረግ ያቀርባል። ከፓይዘን ጋር ሲነጻጸር፣ ቪ ፈጣን፣ ቀላል፣ ደህንነቱ የተጠበቀ እና የበለጠ ሊቆይ የሚችል ነው። ከ Go ጋር ሲወዳደር V ምንም አለምአቀፍ ተለዋዋጮች የሉትም ፣ ባዶዎች የሉም ፣ ሁሉም ተለዋዋጭ እሴቶች ሁል ጊዜ መገለጽ አለባቸው ፣ ሁሉም ነገሮች በነባሪነት የማይለዋወጡ ናቸው ፣ አንድ አይነት ምደባ ብቻ ይደገፋል (“a : = 0”) ፣ በጣም የታመቀ ነው የሩጫ ጊዜ እና የሚፈፀሙ ፋይሎች መጠን፣ ከሲ ቀጥታ ተንቀሳቃሽነት መኖር፣ የቆሻሻ ሰብሳቢ አለመኖር፣ ፈጣን ተከታታይነት፣ ሕብረቁምፊዎችን የመቀላቀል ችሎታ (“println('$foo: $bar.baz')”)።
fn ዋና() {
አካባቢዎች:= ['ጨዋታ'፣ 'ድር'፣ 'መሳሪያዎች'፣ 'ሳይንስ'፣ 'ስርዓቶች'፣ 'GUI'፣ 'ሞባይል'] a:= 10
እውነት ከሆነ {
ወደ:= 20
}
በአካባቢው ላለው አካባቢ {
println('ሰላም የ$ area ገንቢዎች!')
}
}
የፕሮጀክት ባህሪዎች
- የታመቀ እና ፈጣን አቀናባሪ፣ እሱም ከመደበኛው ቤተ-መጽሐፍት ጋር 400 ኪባ አካባቢ ይወስዳል። ከፍተኛ የማጠናቀር ፍጥነት የሚገኘው በማሽን ኮድ እና ሞዱላሪቲ በቀጥታ በማመንጨት ነው። የማጠናቀር ፍጥነቱ በግምት 1.2 ሚሊዮን የኮድ መስመሮች በአንድ ሴኮንድ በአንድ ሲፒዩ ኮር (በሚሰራበት ወቅት ቪ ሲን መጠቀም እንደሚችል እና ከዚያም ፍጥነቱ ወደ 100 ሺህ መስመሮች በሴኮንድ ይቀንሳል)። በV ቋንቋ የተፃፈው የማጠናቀቂያው እራስን መሰብሰብ (በ Go ውስጥ የማጣቀሻ ስሪትም አለ) በግምት 0.4 ሰከንድ ይወስዳል። በዓመቱ መገባደጃ ላይ ተጨማሪ ማመቻቸት ስራዎች ይጠናቀቃሉ ተብሎ የሚጠበቅ ሲሆን ይህም የማጠናቀቂያውን ጊዜ ወደ 0.15 ሰከንድ ይቀንሳል. በገንቢው በተደረጉት ፈተናዎች በመመዘን የ Go ራስን መሰብሰብ 512 ሜጋ ባይት የዲስክ ቦታ ያስፈልገዋል እና በአንድ ደቂቃ ተኩል ውስጥ ይሰራል፣ Rust 30 ጂቢ እና 45 ደቂቃ፣ ጂሲሲ - 8 ጂቢ እና 50 ደቂቃ፣ ክላንግ - 90 ጂቢ እና 25 ደቂቃዎች,
ስዊፍት - 70 ጂቢ እና 90 ደቂቃዎች; - ፕሮግራሞች ያለ ውጫዊ ጥገኞች ወደ ተፈጻሚነት ባላቸው ፋይሎች ይጠቃለላሉ። ከተሰበሰበ በኋላ የቀላል http አገልጋይ የፋይል መጠን 65 ኪ.ባ.
- የተጠናቀሩ አፕሊኬሽኖች አፈፃፀም በሲ ፕሮግራሞች ስብሰባዎች ደረጃ ላይ ነው;
- ያለ ተጨማሪ ክፍያ ከሲ ኮድ ጋር ያለችግር የመግባባት ችሎታ። በ C ቋንቋ ውስጥ ያሉ ተግባራት በ V ቋንቋ ከኮድ ሊጠሩ ይችላሉ, እና በተቃራኒው, በ V ቋንቋ ውስጥ ኮድ ከ C ጋር በሚስማማ በማንኛውም ቋንቋ ሊጠራ ይችላል;
- የC/C++ ፕሮጄክቶችን ወደ ቪ ቋንቋ ውክልና ለመተርጎም ድጋፍ። ከ Clang የመጣ ተንታኝ ለትርጉም ስራ ላይ ይውላል። ሁሉም የC ስታንዳርድ ባህሪያት ገና አልተደገፉም ፣ ግን አሁን ያለው የተርጓሚ ችሎታዎች ቀድሞውኑ በቂ ናቸው።
ትርጉም። በ V ጨዋታ DOOM ቋንቋ። የ C ++ ተርጓሚው ገና በመጀመርያ የእድገት ደረጃ ላይ ነው; - አብሮገነብ ተከታታይነት ያለው ድጋፍ ፣ ከአሂድ ጊዜ ጋር ሳይታሰር;
- የማህደረ ትውስታ ምደባ ስራዎችን መቀነስ;
- ደህንነትን ማረጋገጥ፡- ምንም NULL፣ ዓለም አቀፍ ተለዋዋጮች፣ ያልተገለጹ እሴቶች እና ተለዋዋጭ ዳግም ፍቺዎች የሉም። አብሮ የተሰራ ቋት ከመጠን በላይ መፈተሽ። ለአጠቃላይ ተግባራት ድጋፍ (አጠቃላይ). በነባሪነት ሊለወጡ የማይችሉ ዕቃዎች እና መዋቅሮች;
- የ "ሙቅ" ኮድ እንደገና የመጫን እድል (ያለ ድጋሚ ማጠናቀር በበረራ ላይ በኮድ ላይ ለውጦችን የሚያንፀባርቅ);
- ባለብዙ ክር ንባብን ለማረጋገጥ የሚረዱ መሳሪያዎች። ልክ እንደ Go ቋንቋ፣ እንደ "run foo()" ያለ ግንባታ አዲስ የማስፈጸሚያ ክር ለመጀመር ጥቅም ላይ ይውላል (ከ"go foo()" ጋር ተመሳሳይ። ለወደፊቱ, ለጎሪቲኖች ድጋፍ እና የክር መርሐግብር እቅድ ተይዟል;
- ለዊንዶውስ ፣ ማክሮስ ፣ ሊኑክስ ፣ * BSD ስርዓተ ክወናዎች ድጋፍ። በዓመቱ መጨረሻ ለ Android እና iOS ድጋፍ ለመጨመር ታቅዷል;
- የማህደረ ትውስታ አስተዳደር በማጠናቀር ጊዜ (እንደ ዝገት) ፣ ቆሻሻ ሰብሳቢ ሳይጠቀሙ ፣
- ጂዲአይ+/ኮኮዋ እና ኦፕን ጂኤልን በመጠቀም ለግራፊክስ ውፅዓት የብዝሃ-ፕላትፎርም መሳሪያ መገኘት (የDirectX፣Vulkan እና Metal APIs ድጋፍ ታቅዷል)። ከ 3-ል ነገሮች, ከአጥንት አኒሜሽን እና ከካሜራ መቆጣጠሪያ ጋር ለመስራት መሳሪያዎች አሉ;
- ለእያንዳንዱ የስርዓተ ክወና ተወላጅ የሆኑ የንድፍ አካላት ያላቸው ግራፊክ በይነገጽ ለመፍጠር ቤተ-መጽሐፍት መገኘት። ዊንዶውስ ዊንኤፒአይ/ጂዲአይ+ን ይጠቀማል፣ማክኦኤስ ኮኮዋ ይጠቀማል እና ሊኑክስ የራሱን ስብስብ መግብሮችን ይጠቀማል። ቤተ መፃህፍቱ አስቀድሞ በልማት ስራ ላይ ውሏል
ቮልት - ደንበኛ ለ Slack ፣ Skype ፣ Gmail ፣ Twitter እና Facebook;ዕቅዱ ዴልፊን የሚመስል የበይነገጽ ንድፍ አፕሊኬሽን መፍጠር፣ ከSwiftUI እና React Native ጋር የሚመሳሰል ገላጭ ኤፒአይ ማቅረብ እና የሞባይል መተግበሪያዎችን ለ iOS እና አንድሮይድ ለመፍጠር ድጋፍ መስጠት ነው።
- ለፕሮጄክት ገንቢዎች ድር ጣቢያ ፣ መድረክ እና ብሎግ ለመፍጠር የሚያገለግል አብሮ የተሰራ የድር ማዕቀፍ መገኘት። በእያንዳንዱ ጥያቄ ላይ ሳያስኬዱ የኤችቲኤምኤል አብነቶች ቅድመ ዝግጅት ይደገፋል።
- ክሮስ ማጠናቀር ድጋፍ. ተፈፃሚውን ፋይል ለዊንዶውስ ለመገንባት “v -os windows”ን ብቻ ያሂዱ እና ለሊኑክስ - “v -os linux” (የማክሮ ኦፕሬቲንግ ሲስተም ማቋረጫ ድጋፍ በኋላ ይጠበቃል)። ክሮስ-ማጠናቀር ለግራፊክ አፕሊኬሽኖችም ይሠራል;
- አብሮገነብ ጥገኝነት አስተዳዳሪ፣ የጥቅል አስተዳዳሪ እና የግንባታ መሳሪያዎች። ፕሮግራሙን ለመገንባት፣ ሰሪ ወይም ውጫዊ መገልገያዎችን ሳይጠቀሙ "v" ን ብቻ ያሂዱ። ተጨማሪ ቤተ መፃህፍትን ለመጫን፣ ለምሳሌ “v get sqlite”ን ብቻ ያሂዱ።
- በ V ቋንቋ በአርታዒዎች ውስጥ ለልማት ተሰኪዎች መገኘት
VS Code иVim .
ልማት
በተጨማሪም, መጀመሪያ ላይ ማከማቻው ነበረው
ይህ በእንዲህ እንዳለ፣ የፕሮጀክት ቪ ስህተት መከታተያ ወደ 10 የሚጠጉ ልጥፎች ተወግደዋል
ምንጭ: opennet.ru