GC can be a bitch. Pass by pointer ne vienmēr ir ātri, labi un pareizi. No otras puses, optional value citādi nekā. 2/10
Sakarā ar to, ka Twitter ir slēdzis bezmaksas piekļuves savam API, šis projekts var tikt uzskatīts par mirušu sākot ar 2023. gada 15. jūniju.
Šis ir tvitera pavediens. No senākā uz svaigāko. Tvītu skaits: 26
GC can be a bitch. Pass by pointer ne vienmēr ir ātri, labi un pareizi. No otras puses, optional value citādi nekā. 2/10
Sanāca uzrakstīt nopietnāku projektu iekš Go. Iepriekš tur nelielas rotaļas - http://nekur.lv rss grābeklis un tml nieki. 1/10
Slavenais if err != nil {} ir OK. Tā pati kļūdu apstrāde tikai citā kulītē. Jā, error tips nav pats advancētākais, nedaudz piesārņo skatu, bet pierod un ir OK :) 3/10
Pie composition patterniem ir jāpierod, un dažkārt jāpalauza galva pašā sākumā, lai pēc tam nav jāpārtaisa. Jo dažreiz jūti, ka aizej klasisko ceļu. Nāksies iet atpakaļ. 4/10
Goroutines ir lieliski, bet vēlams dažreiz uzrauties uz goroutine leaks, lai pēc tam tas vairs nekad nenotiktu (vai arī, ja notiek, tad uzreiz ir skaidrs kāpēc). 5/10
Testi - gan unit, gan feature rakstās dabīgi un bez piepūles. Mokošana gan ir nedaudz čerez ž, lai gan komponēto interfeisu pieeja te eleganti iederās (mockgen) 7/10
Kretinē enumu neesamība. Nu, tā, ka riktīgi pietrūkst. Un no Rust mežonīgi pietrūkst no tā atvasinātie optional tipi. Daļēji to var ar pointeriem risināt, bet tā ir lāpīšanās. 6/10
Goland ir fine IDE, bet nu tormī tāpat kā visas pārējās jetbrains IDEs. Ar jauno UX netormītu, bet ja to gribās, tad jāliek EAP, kurš atkal jau tormī, jo ir ar miljards debugiem ieslēgtiem 8/10
Nu, un patīkamais. Izstrāde notika pamīšus uz linux (wsl2) un mac. Beigu galā tā figņa stāv uz windows. Bija nelielas atšķirības fsnotify galā, bet citādi cross platform. Pilnīga statika un aizņem 4Mb ar debugu. 9/10
Vispār, Go ir (pat varētu teikt, ka pazemojoši) vienkārša valoda. Ar savām īpatnībām un trūkumiem. Galvenais pluss, ka zems slieksnis, taču aiz tā seko arī galvenais mīnuss - ellīgi garas trepes uz pagrabu. Will do again. 10/10
@laacz Šeit 10/10 lasās kā vērtējums vai joprojām kā tweet count? :D
@jurgenzz Tweet count :) Vērtējums laikam būs 8/10. Lielāks gandarījums ir rakstīt iekš Rust. Bet čakars mazāks ir iekš Go.
@laacz Man no JS/TS pasaules nākot Go noteikti uzrunā vairāk kā Rust: Pēc pāris stundām ar Rust neko īsti jēdzīgu nespēju paveikt, nesen pamēģināju Go - un esmu gatavs arī mēģināt ko reāli taisīt ar viņu. Tā kā laikam piekrītu visam threadā.
@laacz Jā, Go nav tāda enum tipa, taču to nav grūti ieviest. 😉 https://www.sohamkamani.com/golang/enums/
@Lidotajs To jau arī nācās darīt, taču tad ir ļoti tālu no īstiem enuniem.
@laacz Enumi ir forši un prieks, ka gan php 8, gan python 3.[kaut kāda versija] ir ieviesuši savus enum risinājumus.
@laacz ko nozīmē "tormīt"?
@laacz Ja grib padot lietas by value, varbūt var izmantot kaut ko līdzīgu tam, kā tas ir realizēts Time.IsZero() ? T.i., Tavām struktūrām ir zināma "neinicializēta" vērtība un funkcija, kas to pārbauda. Atgriezt by value kaut ko kā nav jau ir vieglāk: return Thing{}, ErrNotFound
@karlis_i Bremzēt
@mbarinskis Tas, diemžēl, neder visos gadījumos.
@laacz Blogs pazudis.
@naktstaurins Kurš?
@laacz Protams, un tad tiek padoti pointeri :)
@mbarinskis Bet Rust optional tipi ir par kārtu pārāki :)
@laacz Links uz nekur blogs.
@naktstaurins Tas sen jau vairs nepastāv.