מדוע שמישהו ירצה להשתמש ב-nodejs?

Nuke1985

Active member
אבל 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++ בנושא, יש שתי סוגים של שפות, כאלה שאנשים מתלוננים עליהם וכאלה שאף אחד לא משתמש בהם.
 

Nuke1985

Active member
אומנם אין לי יידע עמוק בjavascript או node אבל בכל זאת.

העניין הזה של dynamic typing אפשר גם להגיד על שפות אחרות, יש לזה יתרונות וחסרונות, אפשר להגיד את אותו הדבר על פייתון שנראה שנהיית מאוד פופולרית בשנים האחרונות.

היא גם שפה מאוד פופולרית, מה שאומר שאתה ייכול להשיג "קוד בחינם" בצורה של ספריות (שזה קוד שאתה לא כותב, מה שחוסך כסף למעסיק) . וכלים שהם כנראה מאוד מפותחים.

קטע שמרתיע עם פייתון (שהיא מתחרה פופולרית) זה שהם שברו את התאימות לאחור עם python 3 , מה שביזבז הרבה זמן וכסף. שjavascript רצו לשבור תאימות לאחור הם עשו את זה בצורה יותר טובה לטעמי.

הקטע עם events עוזר להיות nonblocking אתה לא צריך לחכות שפועלה תסתיים וזה נראה לי פתרון יותר טוב מלהפעיל איזה thread ואז לסנמכרן אותו עם תרדים אחרים בשביל להעביר מידע.
 

elicohen123

New member
לדעתי, הדרישה מגיעה מהמנהלים, לא מהמתכנתים.
זו דרך בשבילם לחפש כח אדם עם פחות ספסיפיקציות. מי שטוב לקליינט טוב לסרבר. ואם צריך לתת בשבוע הבא פוש בסרבר - גם אנשי קליינט יוכלו לעזור. קריאות של הקוד או תחזוקה לא חשובה לרוב המנהלים יותר מלדלוור בזמן.
 
למעלה