מעבר לGO למה? איך? ומתי?
-
@יוסף-בן-שמעון
עוד נתון מעניין זה שgo כל השנים האחרונות במגמת עליה
כך שאם (אולי) חסר משהו במשך השנים זה יפתר -
@nigun
לדעתי חד וחלק, אין לך מה לחפש ב GO.
לא תגיע לבעיות ביצועים כ"כ מהר.
בעיות ביצועים הם בדר"כ במסד נתונים או בגישה למערכת קבצים, שזה בכל מקרה לא משנה מה השפת תכנות שלך.
אלא"כ אתה כותב אלגוריתמים בלמידת מכונה או ראייה ממוחשבת, שאז וודאי אין לך מה לחפש ב JS...איך שנשמע ממך אתה מחפש תחליף ל PHP, וודאי שזה NodeJS ולא GO.
GO זה תחליף ל C++ (גם ע"פ ויקיפדיה וגם איך שזה נראה).בנית פעם שרת ב C++? א"כ מתאים לך GO. אם בנית שרת ב PHP מתאים לך NodeJS ככפפה ליד.
בהצלחה בהחלטה. -
@מנצפך
לא כל כך הבנתי מה אתה מתכוון
האם מי שבא מPHP יותר קל לו ללמוד נוד?
לא כ"כ מבין למה, הרי יש קושי הסתגלות ללמוד את הקוד האסינכרוני (עיןן בכל השאלות שחוקר הסתבך אתם במעבר מPHP לנוד)
משאין כן בgo (כי לא חייבים להשתמש בקריאות מקביליות)
ובכל מקרה מכל הביקורות שמצאתי ברחבי הרשת לא מצאתי מישהו שאומר שזה לא מתאים לפיתוח back end
אני יעשה קצת סיכום של הסיבות שמצאתי למה לא go-
go לא מתאים לfront end
-
טיפול בשגיאות לא מובנה בשפה וצריך להשתמש בספריה מיוחדת
-
יותר קשה למצוא מתכנתים בgo ולכן פחות חברות עובדות עם זה (וזה יכול ליצור קושי למצוא עבודה)
-
לא כ"כ מתאים ליצירת רעיונות דהיינו "בא נתחיל לכתוב ונראה מה יצא" (דווקא בזה PHP מצוין)
-
יש יותר חבילות בנוד
-
בgo הקהילה יותר קטנה
-
צריך לקמפל אותו וזה קצת מציק כשלומדים בשיטת הניסוי וטעיה (לא ראיתי שמישהו כתב את זה, פשוט מהנסיון של כמה שעות עם go)
והמעלות
-
יותר קל לכתוב ולקרוא את הקוד
-
בעיקרון יותר מהיר (יכול להיות שזה משנה רק בדברים גדולים)
בקיצור קלות פיתוח הכי מדבר אלי
ואני לא הולך לרובי או פייתון
כי אם כבר ללמוד משהו אז ללכת על משהו מהיר -
-
@nigun
ביקשת עצה, כולם התנדבו לתת.
ביקשת לנמק, נימקו.
תעשה טובה, לא באנו לריב איתך,
אתה מבקש לעמת את הנימוקים, עם מה שנראה לך מחיפושי גוגל והתרשמויות, וזה כבר נראה לי כבר הטרדה.
קח דוגמה - אתה לא כתבת קוד בנוד ובגו, ו@יוסף-בן-שמעון כן כתב. הוא כתב לך שאין בגו עשירית מספריות שזמינות לנוד,
וטענת שזה לא נכון תוך הבאת נתון לא קשור של מספר הפרוייקטים בגיטאב מכל שפה.
יאללה תתחיל עם גו ותבוא לפה עוד חודש להזים את כל הטענות (לא בדיוק, תצטרך בשביל זה גם לכתוב טיפה בנוד ). -
@dovid
סליחה אם אני נשמע מתלהם
אבל אין לי פה שום אינטרס שgo יצא מנצח
רק רציתי להבין את הטענות, כי לא שמעתי כאן הסברים מפורטים
אבל כנראה זה באמת עניין של טעם (ולכן כולם מקללים את PHP)
( @magicode איך יודעים איזה שפה לאהוב?)
נ.ב. למה מספר הספריות בגיטהאב זה לא אינדיקציה? (אולי יש לך אינקדיציה אחרת?)אבל בכל מקרה תודה רבה לכולם על הרצון לכוון ולעזור
(תכל'ס זה עזר לי לחדד את הנושא אצלי)
ובעז"ה אני אוכל לעדכן איך זה נראה מבפנים (אם אני יהיה עקבי)
(רק מה, כנראה אני לא אוכל לשגע את כולם כאן עם שאלות של איך עושים X
כי אני אקבל מבטים בסגנון של "אמרנו לך") -
-
@dovid אמר במעבר לGO למה? איך? ומתי?:
ביקשת עצה, כולם התנדבו לתת.
ביקשת לנמק, נימקו.
...וזה כבר נראה לי כבר הטרדה.
@nigun אמר במעבר לGO למה? איך? ומתי?:
בקיצור כולם אומרים לי כאן שזה הזוי וכו' אבל אני רוצה לשמוע "למה???"
האמת שגם אני הרגשתי שלא נימקו מספיק.
למשל,
@dovid קובע:לטעמי הכי קל זה ללמוד NODEJS, והכי יעיל זה לפתח עם דוטנט.
@מנצפך קובע: -
אתה מחפש תחליף ל PHP, וודאי שזה NodeJS ולא GO.
GO זה תחליף ל C++
@יוסף-בן-שמעון כותב/קובע: -
נשמע לי הזוי לפתח אפליקציית ווב ב GO, זה נועד לאפליקציות ענק בסדר גודל של גוגל,
אני מבין שהדברים נכתבו ע"י בעלי נסיון וותק של שנים מתוך נסיון והבנה בתחום, ואני לא בא להטיל ספק בקביעה, אבל עדיין הם לא נימוקים, אלא קביעות. בַּמֶה GO דומה יותר ל-++C? משום מה GO מתאים יותר לאפליקציות ענק? למה יותר קל ללמוד נוד?
וא"כ אני מבין מאוד למה זה לא מספק את @nigun. אם זה היה נוגע אלי, גם אני הייתי רוצה לקבל נימוקים ולא רק קביעות ש: "לא, זה לא בשבילך."בינתיים, לסיכום, כתבו נימוק אחד ויחיד (אם אין לי בעיות קשות בהבנת הנקרא...): יש קהילה גדולה יותר מסביב לנוד.
חוץ מזה קבעו שיותר קל לפתח בנוד ושנוד יותר מתאים לאפליקציו ווב, ושזה מספיק מהר. (אני לא נכנס לוויכוח אם מספר הפרוייקטים בגיטהאב הוא אינדיקציה, כי בלי לבדוק, לדעתי זה לא אמור להיות אינדיקציה. ברור לי שיש קהילה פי כמה יותר גדול מסביב לנוד.)כדי שלא להשאיר את הגליון חלק אכתוב מה שנראה לי מתוך הכירות שטחית מאוד ב-GO. מה שאולי כולם התכוונו לזה אבל אף אחד לא כתב בפירוש.
GO הוא יותר low level מנוד.
זה מתבטא בכמה וכמה צורות:- Data Structures: לדוגמה, שב-JS יש את Object שאפשר להשתמש בו לכל מיני שימושים כמו Array HashMap וכו'.
- GO הוא statically typed. לעומת JS שהוא dynamically typed
- ב-JS יש המון קיצורי דרך בשפה שמקילים על חיי המתכנת, ב-JS יש closures ו-פונקציות כאובייקטים, ועוד סוגי דברים שקיימים בשפות דינאמיים ולא בסטטיים, שמקילים מאוד על הפיתוח המהיר.
-
@yossiz אנ ממש לא מסכים איתך. נעבור על כל המשתתפים, שלטעמי ענו מעולה וקיבלו יחס ממש לא ראוי.
אני כתבתי "לטעמי", והוספתי אחרי שהבנתי שיידרשו מאה הסברים את המילים
"את דעתי כתבתי, לא נראה לי שאני יכול לתרום לך תובנות נוספות מעבר למה שכתבתי."
אז אני לפחות הייתי פטור מנימוקים (שאם תאמר מי שלא מנמק שלא יכתוב כלום חזרת לבעיה שהזכרתי, שדעת אנשים מנוסים גם בלי נימוקים היא מכרה זהב שחבל לאבד אותו לטובת "נימוקים").
@nigun שכנראה כמוך חושב אחרת, כתב לי אחרי שתי אלו "אתה יכול לפרט תובנות יותר מפורטות?".
במילים אחרות אני לא אניח לך להפריח דעות ללא הוכחות.@יוסף-בן-שמעון הואיל לכתוב את דעתו (הוא לא יעשה את זה אם יבקשו ממנו לכתוב מאמר של 8 עמודים למה הוא חושב ככה)
א. GO לא עשויה להרים אפליקציה מהר, כי רוב הדברים לא מוכנים לך בקלות, לעומת נוד. בגו בהרבה נושאים אתה "ממציא את הגלגל"
ב. לGO יש קהילה קטנה בהרבה שמחייבת הרבה יותר לימוד עצמי וטרחה בפתרון בעיות מאשר נוד.@מנצפך כתב המון דברים נכונים ומנומקים די הצורך, א. ההשוואה של GO לC++ שזו השוואה שמסבירה את עצמה כמו שאתה עצמך ניסחת את זה אקדמית: GO היא LOW LEVEL בהרבה הבטים. ב. כפי לשונו "בכלל לא בטוח שהיא" מתאימה לעולם הווב לעומת NODEJS. כל אחד יודע שנוד נבנתה להוות שרת אינטרנט וזה לא סתם ספריה כל שהיא. ג. ביצועים זה לא משהו שבאמת מגביל אותך ביישום ווב טיפוסי
@nigun ענה על דבריהם בהרבה יומרה ובלי הרבה לדעת, אני מבין שהוא התכוון להאיץ בהם לתת יותר פרטים אבל זה היה נראה לי "אלים" מידי. ולכן כתבתי מן "גערה" בעניין.
גם אתה @yossiz בהודעתך די מזלזל במי שכתב קודם, כי אתה מסכם שלא נאמר כלום וכולם "קבעו", בהסתייגות שאולי יש לך בעיה בהבנת הנקרא ואני אומר בעייתך היא שאינך מעריך כיאות דעת אחרים, שאם תעריך תדע למצוא הרבה בדבריהם ולדון בפניהם בכבוד הראוי, ולא בדרך שנקטתם: התגרות אינטלקטואלית מעצבנת. -
בנוגע למה שכתבת אין קשר בין תחביר השפה הפשוט לבין היותה low level.
יש לGO לזכרוני כמה עקרונות פשוטים:
א. כמה שיותר פשוט (אין את רוב הפיצ'רים של שפות הOOP בכונה תחילה, הם מתייחסים לזה כover-engineering)
ב. כמה שיותר אחיד (שלא יהיו כמה דרכים לעשות פעולה אחת, שכן יהיו פונקציות שעושות כמה דברים בעלי אותו רעיון).
ג. כמה שפחות הפשטות (= low level, זה קצת על חשבון עושר השפה, אבל הרוב מגיע מסעיף א')
ד. מהירותאולי אני לא מדייק, אבל לדיוק יש ויקיפדיה, אנחנו פה בשביל לשתף מניסיון ומעושר בלי להיות "חייב" לתת דו"ח אקדמי על כל מילה.
-
אויש @dovid אתה לוקח את זה קשה מדי...
בלי להפוך את האשכול לוויכוח סרק... אכתוב בקיצור.
תכונה חשובה עבור מפתח הוא מדת סקרנות. בסה"כ @nigun רוצה להבין.
אם אין לך זמן להסביר, אל תסביר.
אבל מה רע בבקשת הסבר? האם לא היה לומד יותר מתוך הסבר מפורט?
הוא לא כפה על אף אחד להשיב, סה"כ ביקש.@dovid אמר במעבר לGO למה? איך? ומתי?:
כי אתה מסכם שלא נאמר כלום
נכון הגזמתי קצת אבל גם אתה מגזים קצת במילים אלו. אני מעריך מאוד את הדעות המקצועיות אבל זה לא הוסיף הרבה להבנת הענין.
-
@dovid אמר במעבר לGO למה? איך? ומתי?:
אין קשר בין תחביר השפה הפשוט לבין היותה low level.
אני הבנתי שיש קשר. לא כתבתי שהתחביר של JS יותר פשוט מ-GO, אדרבה נ"ל שההיפך נכון. כתבתי שיש קיצורי דרך שהכניסו לתוך התחביר, מה שלא יכניסו ל-GO. למשל הסיבה ש(להבנתי) לא יוסיפו ל-GO את התחביר
[array...]
או... for ...in
וכו' הוא בגלל שזה קורא פונקציות מאחורי הקלעים, מה שלא מתאים לשפה lowlevel.@dovid אמר במעבר לGO למה? איך? ומתי?:
כפי לשונו "בכלל לא בטוח שהיא" מתאימה לעולם הווב
לא יודע מה זה עולם הווב, זה כן נעשה בפירוש עבור שרתים שצריכים מקביליות גבוהה, וביצועי I/O טובים.
אנחנו פה בשביל לשתף מניסיון ומעושר בלי להיות "חייב" לתת דו"ח אקדמי על כל מילה
אל תרגיש "חייב" לענות אני אישית פה בשביל ללמוד מאחרים. מצטער, אין לי שום נסיון עשיר לחלק לאחרים . זה שאני (או מישהו אחר) מטיל ספק במה שאתה או מישהו אחר כתבו לא נובע מזלזול אלא מרצון להבין.
-
@nigun אמר במעבר לGO למה? איך? ומתי?:
@dovid
אם יורשה לי לשאול (כמובן אתה לא חייב לענות)
איך אני אמור לדעת מי כאן סך הכל בנה כמה אתרים חמודים בוורדפרס ומי ארכיטקט ראשי של IBM?אם אתה לא מסוגל להעריך את יכולות המשתתפים כאן לפי היסטורית ההודעות שלהם, בשביל מה שאלת כאן?
אתה 'סותר' את התשובות עם הנחות שגויות אותם אתה שולף תוך כדי תנועה ("אסינכרוני זה דבר איום", מביא הוכחה 'גרועה' מ @חוקר שהוא הוכחה לגמרי הפוכה, בנה מע' די מורכבת וקריטית (תרומות) שהושמשה מיד עבור אלפי משתמשים, והשיג המהרה של 1000%, וכל זה בלימוד תוך כדי תנועה כשלפני זה לא היה לו מושג ירוק בנוד) - במקרה הטוב, או שכבודו פשוט 'לא מסתפק' בתשובות, ויוצא 'צודק'.
מערכות היום נהיות יותר ויותר תלויות תקשורת, והברזלים מרובי ליבות, ללא א-סינכרוניות ומקבליות איך תקבל מהירות משמעותית?
הכלים החדשים מהירים יותר במידה רבה בגלל שינוי צורת החשיבה שהם מביאים איתם.
בנתיים נראה שאתה רוצה שהכל ישאר כשהיה, ו'קסם' כלשהו יעשה עבורך את השדרוג.@yossiz להבנתי (נתחרה על אי הבנת הנקרא), ההסבר שלך לא הוסיף לי שום הבנה על יתרונות השפה.
-
@אהרן
אני יודע שאנשים כאן מבינים יותר ממני בתכנות באופן כללי
אבל אני לא יודע במה אתה מבין יותר מ@yossiz
אני מסכים שצריך לשאול בצורה מכובדת
אבל זה לא אומר שאני צריך ללכת בעיניים עצומות אחרי כל פסק של כל אחד
בלי לשאול שאלות
אמנם אם אני יודע שמי שמדבר איתי יש לו ניסיון רב בנושא המדובר
אז אני מוכן לשמוע "קביעות" בלי שום הסברים
כי יש לו הרבה ניסיון בעניין ולמה שאני אחזור על טעויות של אחרים
אבל אם זה סתם מישהו שהנחות היסוד שלו זה מהאינטרנט או מתחושת בטן
אז אם אין סימוכין לטענותיו הם לא שווים הרבה
במיוחד שהם סותרים (לכאורה) את מה שכתוב באתרים הרבה יותר מקצועיים מהפורום המכובד הזה(לגבי go לא ידוע לי על אף אחד כאן שכותב בשפה הזאת חוץ מ@magicode שבחר לענות תשובה קצת יותר חכמה (לדעתי)
אם מישהו כותב בשפה הזאת מן הראוי שבתחילת דבריו היה מציין זאת )נ.ב. אני סתם מנסה לחשוב האם בstackoverflow תוכל למצוא תשובות בסגנון של:
"טכנולוגיה X לא מתאימה ל.... כי ככה אמרתי " -
@dovid
אני עובר על מה שכתבתי ואני לא רואה התלהמות
או חוסר כבוד למתכנתים שהרבה יותר מומחים ממני
חוץ ממה מה שהצקתי לך בהתחלה
כשכתבתיאתה יכול לפרט תובנות יותר מפורטות?
אחרי שהכרזת שאתה לא מעוניין לכתוב עוד
(ושם פשוט לא הבנתי את הרמז וחשבתי באמת שאתה לא יודע עוד, אבל אתה כן יכול להסביר את מה שכתבת ולכן ביקשתי פירוט) -
@nigun אמר במעבר לGO למה? איך? ומתי?:
אבל אני לא יודע במה אתה מבין יותר מ@yossiz
תיקון קטן:
רמזתי כמה פעמים באשכולים קודמים שאני לא מנוסה בתכנות
השפה היחידה שאני משתמש בה בחיי היום יום זו אנגלית
אז תמיד תמיד לקחת את הדעה שלי בערבון מוגבל.
ד"א, זה הסיבה שאני כמעט תמיד מקדים התנצלות שאני לא מנוסה או משהו בסגנון וגם לא זכור לי שכתבתי פעם "דעה" על משהו רק הסברים ודברים שמוכחים מצד עצמם. -
@dovid אמר במעבר לGO למה? איך? ומתי?:
@nigun ענה על דבריהם בהרבה יומרה ובלי הרבה לדעת, אני מבין שהוא התכוון להאיץ בהם לתת יותר פרטים אבל זה היה נראה לי "אלים" מידי.
ננסח את זה שונה
האם אתה יכול להביא לי דוגמא מתוך דברי מה נקרא יומרני (כמעט בכל הודעה כתבתי שאני לא יודע ואני רק שואל)
אני מציק לך אם השאלות האלו כי הבנתי ממך שכנראה אתה רוצה שינוי ולא שהדיון יתנהל אותו דבר גם פעם הבא, אז אם לא יסבירו לי ברחל בתך הקטנה אני לא יבין .