אבל Go כן נמצאת בקו התפר בין שפה נמוכה ומסובכת כמו Rust, לשפת GC דינמית כמו JS, ולכן משעה שהיא הספיקה להתבגר ולהתבסס, אני לא מוצא סיבה הגיונית להמשיך להשתמש ב-nodejs ולא ב-Go כברירת מחדל.
זה הבעיה בשפות וטכנולוגיות חדשות, מעט אנשים מכירים אותם ולכן ייכולים לבקר אותם.
לגבי עניין האסינכרוניות והת׳רדים - הנה מאמר שמסכם יפה את מה שיש לי להגיד על הנושא, ולמה אני חושב שהמודל ה-Async IO פגום: What Color is Your Function?
מודה שלא התעמקתי במאמר יותר מדי אבל לא מצאתי משהו שנראה לי בעיה רצינית, כן קפץ לי המשפט הזה:
C# also actually can avoid this problem too. They opted in to having color. Before they added async-await and all of the Task<T> stuff, you just used regular sync API calls. Three more languages that don’t have this problem: Go, Lua, and Ruby.
Any guess what they have in common?
Threads. Or, more precisely: multiple independent callstacks that can be switched between. It isn’t strictly necessary for them to be operating system threads. Goroutines in Go, coroutines in Lua, and fibers in Ruby are perfectly adequate.
המאמר הוא ייחסית ישן ולאחרונה נוסף לnode האופציה של threads (שזה כן נראה לי כפער שחשוב שהושלם).
אל תשכח גם המשפט של היוצר של c++ בנושא, יש שתי סוגים של שפות, כאלה שאנשים מתלוננים עליהם וכאלה שאף אחד לא משתמש בהם.