Gaisuwa ga kowa da kowa a cikin sabuwar shekara 2020.
Tun lokacin da aka buga na farko
A cikin wannan shekara, harshe ya inganta sosai, an yi la'akari da yawancin al'amuransa da kuma tantance tasirin ci gaba.
Ina farin cikin raba duk wannan tare da al'umma.
Disclaimer
Ana ci gaba da wannan aikin ne kawai a cikin sha'awa kuma baya yin kama da mamayar duniya a fagen haɓakar harsunan shirye-shirye!
Bai kamata a yi la'akari da wannan ci gaban a matsayin ma'auni da za a yi ƙoƙari ba; aikin ba shi da kyau, amma yana tasowa duk da haka.
Sabon mai tarawa
A cikin reshen /mashc na ma'ajiyar aikin, zaku iya ganin sabon sigar mai tarawa, wanda aka rubuta a cikin Mash (Sigar farko na yaren).
Mai tarawa yana da janareta na lamba a lissafin asm (na mai haɗawa don VM na tushen tari).
A halin yanzu ina haɓaka sigar janareta don Java (JDK 1.8).
Sabuwar sigar mai tarawa tana goyan bayan aikin sigar farko na harshe kuma yana cika shi.
Sabon OOP
A cikin sabon sigar harshen, aikin da azuzuwan an sake fasalin wani bangare.
Ana iya bayyana hanyoyin ajin duka a cikin aji da kuma wajensa.
Ajin yanzu yana da bayyanannen mai gini: init.
Misali code:
...
class MyClass:
private:
var a, b
public:
init(a, b):
$a ?= a
$b ?= b
end
func Foo():
return $a + $b
end
end
func MyClass::Bar(c):
return $a + $b + c
end
...
Idan gado ya faru, to muna da damar yin kiran gada cikin sauƙi (super).
Misali code:
...
class MySecondClass(MyClass):
public:
var c
init(a, b, c):
super(a, b)
$c ?= c
end
func Bar():
super($c)
end
end
...
x ?= new MySecondClass(10, 20, 30)
println( x -> Bar() ) // 60
Ƙunƙarar wuce gona da iri kan hanyoyin aji:
...
func Polymorph::NewFoo(c):
return $a + $b + c
end
...
x -> Foo ?= Polymorph -> NewFoo
x -> Foo(30) // 60
Fakitin / wuraren suna
Dole ne yankin suna ya kasance mai tsabta!
Saboda haka, dole ne harshen ya ba da wannan dama.
A cikin Mash, idan hanyar aji ta tsaya tsayin daka, ana iya kiranta lafiya daga kowane bangare na lambar.
Alal misali:
...
class MyPackage:
func MyFunc(a, b):
return a + b
end
end
...
println( MyPackage -> MyFunc(10, 20) ) // 30
Af, babban ma'aikacin zai yi aiki daidai lokacin da aka kira shi ta wannan hanyar.
Ban da
A cikin sabon sigar harshen ana kula da su kamar azuzuwan:
...
try:
raise new Exception(
"My raised exception!"
)
catch E:
if E is Exception:
println(E)
else:
println("Unknown exception class!")
end
end
...
Sabon enum
Yanzu ana iya sanya abubuwan ƙidayar ƙididdiga masu ƙima akai-akai:
enum MyEnum [
meFirst = "First",
meSecond = 2,
meThird
]
...
k ?= meSecond
...
if k in MyEnum:
...
end
Harshen da aka haɗa
Mai yuwuwa, Mash na iya samun alkukinsa azaman yaren shirye-shirye da aka haɗa, kama da Lua.
Don fara amfani da Mash don waɗannan dalilai, ba kwa buƙatar haɗa aikin da kanku.
Mash yana da Muhalli na Runtime - VM mai tushe wanda aka haɗa azaman ɗakin karatu mai ƙarfi tare da cikakken API.
Duk abin da kuke buƙatar yi shine ƙara shi zuwa dogaron aikin da yin kira biyu.
Harshen da kansa yana ba da ayyuka don aiki azaman harshe da aka haɗa.
A lokaci guda, aiki tare da haɗin gwiwar harshe da dakunan karatu na ɓangare na uku ba su da tasiri.
Muna samun yaren da aka haɗa wanda zai iya amfani da cikakken ikon sassa daban-daban da aka rubuta a ciki.
Mash + JVM
Na fara haɓaka sigar fassarar JVM ɗin.
Wataƙila, bayan N adadin lokaci, rubutu akan wannan batu zai bayyana akan Habré.
Sakamakon
Babu takamaiman sakamako. Wannan matsakaicin wakilci ne na sakamakon.
Sa'a ga kowa a 2020.
source: www.habr.com