node.js vs .net

  • הוסף לסימניות
  • #1
אולי הכותרת לא ממש מתאימה..
אבל במה node מתעלה על C#?
זה יותר מהיר? יותר קליט?
אשמח לשמוע..
תודה רבה!
 
  • הוסף לסימניות
  • #3
במה עברית מתעלה על אנגלית?
מי שאוהב ויודע javascript שיכתוב בה, ומי שאוהב ויודע C# שיכתוב בה.

ההבדלים באמת לא הופכים את אחת השפות ליותר טובה על פני השניה.

לי באופן אישי קשה עם שפות טיפוסיות חלשה, אז אני מעדיף C#, ובמקרה שאני צריך לכתוב בנוד, אני מעדיף TypeScript שזאת מקבילה של Javascript עם טיפוסיות חזקה.

ולמקרה שאמרתי משהו לא מובן, nodejs זאת סביבת ריצה של javascript על מחשב או שרת, אבל השפה היא javascript.
כמו כן .net זאת הסביבת ריצה של C#, אבל השפה היא C#.

לכן גם ההשוואה צריכה להיות בין javascript ל-C#, ולא בין nodejs ל-C#.
 
  • הוסף לסימניות
  • #4
צודק,
אבל התכוונתי שהיום יש הרבה שנוטים ללמוד node.js כי זה מבוסס על javascript שהיא מאוד פופולרי לצד client, וכך עושים בה שימוש גם ב- server.
 
  • הוסף לסימניות
  • #5
צודק,
אבל התכוונתי שהיום יש הרבה שנוטים ללמוד node.js כי זה מבוסס על javascript שהיא מאוד פופולרי לצד client, וכך עושים בה שימוש גם ב- server.
בכל מקרה יש עקומת למידה למי שיודע javascript כדי ללמוד גם לעבוד עם nodejs,
היום אפשר גם להריץ C# בדפדפן, אבל עדיין javascript יותר פופולרית בדפדפן.
 
  • הוסף לסימניות
  • #6
ד"א, אם הנקודה היא מה ללמוד בתור שפה ראשונה, שאז לא שייך להעדיף שפה אחת על פני השניה, אז לא משנה איזו שפה לומדים, העיקר לא javascript, כמות הטעויות שאפשר להגיע בה למתכנת לא מנוסה היא אסטרונומית, היא שפה יותר מידי מתירנית והיא תגרום אפילו למתכנתים מנוסים להגיע לבאגים לא צפויים.
אני לא שולל את השפה, היא מצוינת, רק לא כדאי להתחיל ממנה, בקטע הזה C# היא הרבה יותר טובה.
 
  • הוסף לסימניות
  • #7
שפת c# היא שפה ממש מדהימה, אבל הסביבה הטבעית שלה - windows - זה החיסרון הגדול שלה.
לכן הפופולריות שלה יורדת.
לעומת זאת node סופר פופולרית
 
  • הוסף לסימניות
  • #8
node היא קוד פתוח
זמין, חינם ועוד יתרונות
עוד על קוד פתוח -קוד פתוח ויקיפדיה
שפת c# היא שפה ממש מדהימה, אבל הסביבה הטבעית שלה - windows - זה החיסרון הגדול שלה.
לכן הפופולריות שלה יורדת.
לעומת זאת node סופר פופולרית
יש .net core מתאים גם למערכות הפעלה אחרות
 
  • הוסף לסימניות
  • #10
ההבדל המשמעותי ביותר הוא שnode היא שפה א-סינכורנית בשל היותה single thread, מה שגורם לה לנתב במהירות רבה יותר פניות רבות שמתקבלות.
לעומת .net שהיא שפה סינכורנית, ותתקשה לטפל בעומס של פניות בלי לקרוס.
בשל כך, node היום היא אחת השפות היותר מומלצות לעמוד מול אתרים, במיוחד כאלו, שמצפים לעומס רב.
בשל אותה סיבה בדיוק, node היא לא השפה המומלצת לחישובים ולוגיקות שתופסות את כל התהליך.
ודרך אגב, node יכולה לעבוד יפה גם עם TS, שהמאפשרת כתיבת קוד OOP עד לרמה די גבוהה.
 
  • הוסף לסימניות
  • #11
ההבדל המשמעותי ביותר הוא שnode היא שפה א-סינכורנית בשל היותה single thread, מה שגורם לה לנתב במהירות רבה יותר פניות רבות שמתקבלות.
אם אפשר תיקון לטעות הקטנה שרבים טועים בה, במחילה...
כמו שגזעי כבר כתב, Node איננה שפה, אלא פלטפורמה. קיימת טעות רווחת הגורסת שאסינכרוניות מקורה בשפה. כלומר: אם JS היא אסינכרונית, אז פיתוח בשפה כזו בכל סביבה שהיא, יהיה אסינכרוני.
האמת היא, שאסינכרוניות אינה קשורה כלל לשפה, אלא לפלפטפורמה המריצה אותה. כשריאן דל החליט לכתוב את פלטפורמת Node, הוא מימש את האסינכרוניות שלה באמצעות asynchronous API שנוסף בערך אז למערכות ההפעלה, המאפשר לקרוא לפונקציות המערכת ללא הצורך להמתין עד לסוף הביצוע שלהם, אלא להמשיך בביצוע פעולות אחרות ולקבל לאחר מכן עדכון ממערכת ההפעלה (מה שמומש בשנותיה הראשונות של Node באמצעות callbacks שפשוט היו נקראים כשהתקבל העדכון על השלמת הפעולה, עד להופעת הפרומיסים שאיפשרו כתיב יותר אלגנטי לעניין).
ריאן דל יכול היה לצורך העניין לבחור בשפת פייתון כשפה שתרוץ על Node, אבל הוא בחר ב-JS מסיבות מסויימות, ומימש את האסינכרוניות באמצעות ספריית libuv של C++ המאפשרת שימוש ב-API הנ"ל המסופק על ידי מערכת ההפעלה.
שימו לב, כל הנ"ל הוא על פי הידוע לי ממחקרי הקטן בנושא. ייתכן מאוד שאני טועה, אשמח שמישהו שמבין בנושא יאשר או יכחיש את הדברים.
 
  • הוסף לסימניות
  • #12
ההבדל המשמעותי ביותר הוא שnode היא שפה א-סינכורנית בשל היותה single thread, מה שגורם לה לנתב במהירות רבה יותר פניות רבות שמתקבלות.
לעומת .net שהיא שפה סינכורנית, ותתקשה לטפל בעומס של פניות בלי לקרוס.
בשל כך, node היום היא אחת השפות היותר מומלצות לעמוד מול אתרים, במיוחד כאלו, שמצפים לעומס רב.
בשל אותה סיבה בדיוק, node היא לא השפה המומלצת לחישובים ולוגיקות שתופסות את כל התהליך.
ודרך אגב, node יכולה לעבוד יפה גם עם TS, שהמאפשרת כתיבת קוד OOP עד לרמה די גבוהה.
אני חושב שיש פה בלבול בין מה זה סינכרוני ואסינכרוני, שתי השפות מאפשרות לעבוד בצורה סינכרונית ואסינכרונית, והמושג single thread זה מושג ששמור לקוד סינכרוני, ולא אסינכרוני, ונוד מממשת אסינכרוניות על גבי ת'רד יחיד בצורה של לולאת אירועים, זה לא פיצ'ר שהופך את האסינכרוניות שלה ליותר מוצלחת (יכול להיות שאפילו פחות, לא בדקתי).
ואם כבר, אז סביבת ההרצה .net הרבה יותר מפותחת מהבחינה הזו, ונותנת שליטה מאוד טובה על מה ירוץ ואיך, עם .net core לא יצא לי להתעסק עם הקצאת ת'רדים, הכל שם זה בTaskים.
 
  • הוסף לסימניות
  • #13
אני חושב שיש פה בלבול בין מה זה סינכרוני ואסינכרוני, שתי השפות מאפשרות לעבוד בצורה סינכרונית ואסינכרונית, והמושג single thread זה מושג ששמור לקוד סינכרוני, ולא אסינכרוני, ונוד מממשת אסינכרוניות על גבי ת'רד יחיד בצורה של לולאת אירועים, זה לא פיצ'ר שהופך את האסינכרוניות שלה ליותר מוצלחת (יכול להיות שאפילו פחות, לא בדקתי).
ואם כבר, אז סביבת ההרצה .net הרבה יותר מפותחת מהבחינה הזו, ונותנת שליטה מאוד טובה על מה ירוץ ואיך, עם .net core לא יצא לי להתעסק עם הקצאת ת'רדים, הכל שם זה בTaskים.
רציתי לערוך ואני כבר לא יכול:
אז בדקתי ובאמת nodejs מושפעת לרעה מבחינת אסינכרוניות, זה אומר שכל טאסק שתוסיף יאט את הביצועים של שאר הטאסקים, בגלל שכל הטאסקים מנסים לתפוס את מקומם בלולאת האירועים הראשית.
אז זה בעצם אומר ש.net עדיפה על פני נוד במקרה שהובא לעיל (עומס פניות לשרת), אני מאמין שיש דרך שבה שרתים כמו אקספרס (שרת HTTP של נוד) מצליחים לגבור על זה, אולי יש להם ניהול ת'רדים פנימי שלהם, ודו"ק.
 
  • הוסף לסימניות
  • #14
אני חושב שיש פה בלבול בין מה זה סינכרוני ואסינכרוני, שתי השפות מאפשרות לעבוד בצורה סינכרונית ואסינכרונית, והמושג single thread זה מושג ששמור לקוד סינכרוני, ולא אסינכרוני, ונוד מממשת אסינכרוניות על גבי ת'רד יחיד בצורה של לולאת אירועים, זה לא פיצ'ר שהופך את האסינכרוניות שלה ליותר מוצלחת (יכול להיות שאפילו פחות, לא בדקתי).
ואם כבר, אז סביבת ההרצה .net הרבה יותר מפותחת מהבחינה הזו, ונותנת שליטה מאוד טובה על מה ירוץ ואיך, עם .net core לא יצא לי להתעסק עם הקצאת ת'רדים, הכל שם זה בTaskים.
node עובדת כאסינכרונית בברירת מחדל וכדי לגרום לה לעבוד בסינכרוניות צריך לעבוד קשה...
העיקרון הראשי של single thread הוא שהמערכת מטפלת בתהליך אחד בלבד בכל שורת קוד, אך כל שורת קוד ששולחת לשרות אחר (קריאת קבצים, קריאה לDB, הצפנה או לא משנה מה) שולחת את הפקודה וממשיכה עד לקבלת callback (מה שמוכר יותר כ then בגרסאות המתקדמות או async/await).
.net אכן שיפרה ביצועים הרבה למול framework', אך עדיין דורשת הרבה מאמץ ותכנון למה שבא בקלות בנוד.
 
  • הוסף לסימניות
  • #15
אז זה בעצם אומר ש.net עדיפה על פני נוד במקרה שהובא לעיל (עומס פניות לשרת), אני מאמין שיש דרך שבה שרתים כמו אקספרס (שרת HTTP של נוד) מצליחים לגבור על זה, אולי יש להם ניהול ת'רדים פנימי שלהם, ודו"ק.
במקרה זה בדיוק נוד עדיפה על net , כי היא מקבלת קריאה ושולחת אותה מיד הלאה, וה thread הראשי מתפנה במיידית לקבל קריאה אחרת.
המקרה שתארת הוא במקרה שמנסים לבצע חישובים בנוד (בכלל לא מומלץ) ושולחים את החישוב לthread אחר. מה שמקל על הביצועים, אך עדיין לא ממש עדיף.
 
  • הוסף לסימניות
  • #16
במקרה זה בדיוק נוד עדיפה על net , כי היא מקבלת קריאה ושולחת אותה מיד הלאה, וה thread הראשי מתפנה במיידית לקבל קריאה אחרת.
המקרה שתארת הוא במקרה שמנסים לבצע חישובים בנוד (בכלל לא מומלץ) ושולחים את החישוב לthread אחר. מה שמקל על הביצועים, אך עדיין לא ממש עדיף.
אולי זאת מחלוקת במציאות, אבל גם .net וגם nodejs עובדות בדיוק באותה צורה, בnodejs מה שנקרא Promise ב-.net נקרא Task, בנוד זה הכל ירוץ בתהליכון אחד שכולם מנסים להידחף אליו, וב.net יש הקצאת תהליכונים לפי מה שנראה ל.net נכון. אבל בשניהם אני יכול לתת לפעולה להמשיך הלאה בלי לעכב את הפעולות שאחריה.

גם ב.net הפעולה יכולה להיות סינכרונית ואסינכרונית לפי מה שאני בוחר, וכנ"ל בnodejs.
 
  • הוסף לסימניות
  • #17
1648931950401.png

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

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

גלגל_מזלות_וינשוף_קסום.gif

ברוכים הבאים לאשכול הרשמי של "חויה בקליק" - הבית של המשחקים האינטראקטיביים, הקליקרים וההפעלות הכי חכמות שיש.

לרגל השקת האשכול ועונת המבצעים (Black Friday שקורה עכשיו וחנוכה שמגיע מיד אחריו), בנינו עבורכם את "גלגל המזל".אנחנו לא נגלה לכם איזו הנחה תקבלו. אתם תצטרכו לגלות בעצמכם...

אז איך זה עובד?​

בנינו אלגוריתם מיוחד שמחלק קופונים בצורה אקראית לגמרי.
בתוך המאגר מסתתרים:
מגוון סוגי קופונים לשירותים שלנו מהנחות בסיס ועד משחקים ללא עלות!

רוצים לסובב את הגלגל ולבדוק את המזל?​

  1. הגיבו כאן באשכול: "אני רוצה לסובב את הגלגל"
  2. נשלח לכם בהודעה פרטית קישור קסם חד-פעמי.
  3. לחצו על הקישור- ותגלו מיד במה זכיתם.
  4. כל כרטיס זוכה!

קצת עלינו (למי שלא מכיר):​

אנחנו ב"חויה בקליק" הופכים כל אירוע – מיום הולדת משפחתי ועד כנס של 2000 איש – לאירוע סוחף, תחרותי ומגבש.

מה תמצאו אצלינו:

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

  • השכרת קליקרים (שלטים) פיזיים: הדבר האמיתי! ערכות של שלטים אלחוטיים למשחק ללא צורך אינטרנט וטלפונים בכלל. (הפתרון האידיאלי למוסדות, סמינרים, תלמודי תורה ומשפחות).

  • הפקות תוכן מלאות: אנחנו בונים לכם את השאלות, את העיצוב ואת החוויה מא' ועד ת' לארגונים ומוסדות
  • תוכנית בת מצוה יחודית חוויה סוחפת, מגבשת ומלאת עניין שכולם שותפים בה! לאירוע בת מצוה שלא ישכחו! טריילר לצפיה

  • ספיישל חנוכה: תוכניות מוכנות, מעוצבות ומתוכנתות למסיבות חנוכה - רק לחבר למסך ולהתחיל לשחק.

  • מסע את תוך עצמי וכמובן התוכנית החדשה שלנו סינק מסע מרתק לגילוי עצמי עם תוצאיה אישית ויחודית לכל משתתף
    מסע שאף משפחה לא מפספסת! טריילר לצפיה

שירות ותמיכה​

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

📞 בטלפון לתמיכה ושירות: 03-773-7970
🌐 לאתר שלנו ולהתרשמות: -https://clicker.co.il/
📧 מייל: K037737970 @ GMAIL.COM

אז... מי הראשון שיש לו אומץ לסובב את הגלגל?
התגובות פתוחות, הקופונים במערכת מחכים... צאו לדרך! 👇

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה