מאמרים מה רע ב-JavaScript

האם נהנית מהמאמר

  • מאוד

  • בקטנה

  • חלש

  • לא קראתי


תוצאות הסקר יוצגו רק לאחר הצבעתכם.

דוד וינברג

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

שפת התכנות JavaScript תוכננה ב-1995 (מדי) במהירות על ידי ברנדן אייק (Brendan Eich). הפוסט דן בבעיות שנוצרו ומדבר על המרות טיפוסים, null, undefined ועוד.

https://camelcase.blog/what-bad-in-javascript/?utm_source=prog&utm_medium=articles

WAT-Sewing-Machine.jpg
 

גזעי

משתמש מקצוען
הנדסת תוכנה
D I G I T A L
אז אל תשתמש בjavascript,
בסה"כ מדובר בתחביר ואתה לא חייב לאהוב אותו, והיום זה מה שרץ בדפדפנים ונמצא בשימוש הכי נרחב גם בצד שרת אחרי PHP (וורדפרס).. ויש סיבה טובה מאוד שאימצו את השפה הזו על פני כל שאר השפות האפשריות.. תנסה לכתוב סקריפט בVBSCRIPT (זה רץ בIE) ותגיד לי כמה JAVASCRIPT גרועה.

כנס לXPLACE ותגיד לי כמה הצעות אתה רואה בnodejs ופריימוורקיה.

ולהגיד שתוצאות שJAVASCRIPT מניבה === WAT זה בד"כ נובע מחסרון הבנה איך JAVASCRIPT עובדת.. לאנשים קשה להבין מה זה THIS, ואיך עובדים טיפוסים.. זה הטעות באנשים ולא בשפה.

אתה גם מתייחס לhoist שזה אחד מהתכונות של javascript בתור תוצאה לא רצויה.. זה ככה בכוונה.

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

דוד וינברג

משתמש רשום
אז אל תשתמש בjavascript,
בסה"כ מדובר בתחביר ואתה לא חייב לאהוב אותו, והיום זה מה שרץ בדפדפנים ונמצא בשימוש הכי נרחב גם בצד שרת אחרי PHP (וורדפרס).. ויש סיבה טובה מאוד שאימצו את השפה הזו על פני כל שאר השפות האפשריות.. תנסה לכתוב סקריפט בVBSCRIPT (זה רץ בIE) ותגיד לי כמה JAVASCRIPT גרועה.

כנס לXPLACE ותגיד לי כמה הצעות אתה רואה בnodejs ופריימוורקיה.

ולהגיד שתוצאות שJAVASCRIPT מניבה === WAT זה בד"כ נובע מחסרון הבנה איך JAVASCRIPT עובדת.. לאנשים קשה להבין מה זה THIS, ואיך עובדים טיפוסים.. זה הטעות באנשים ולא בשפה.

אתה גם מתייחס לhoist שזה אחד מהתכונות של javascript בתור תוצאה לא רצויה.. זה ככה בכוונה.

אתה גם מוזמן לנסות לשים את הערך undefined במשתנה או בתכונה של אובייקט, תגיד לי בבקשה מה יצא לך מזה (ריק זה לא).

וורדפרס היא פלטפורמה נהדרת לבניית אתרים יחסית פשוטים. XPLACE היא פלטופרמה בינונית בעולם ההייטק הישראלי. רוב הכסף מהייטק בארץ לא מגיע מבניית אתרי וורדפרס ולא מוורדפרס אלא מחברות הייטק שבונות מוצרים מאוד מורכבים ובתקציבים שXPLACE לא ראתה.
לא הייתי בונה את הדעות שלי על בסיס ידע משם.

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

לדעתי JS היא שפה מאוד לא טובה אבל גם מי שחושב שהיא שפה נהדרת מותר לו להודות יש בה חסרונות. אני גם יכול לחשוב על כמה דברים טובים שיש בה, על אף שכאמור לדעתי היא שפה רעה. לצערי הדברים שטובים בה די מעטים.

hoist היא תכונה שלילית ולראיה שהיא תוקנה ב-ES2016. כנ"ל לגבי this שתוקן באמצעות פונקציות חץ.
שפה שלא מובנת לאלו שכותבים אותה היא שפה בעייתית.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
לא לגמרי הבנתי את הקטע...
אני לא אומר שJS זו שפה אידאלית. אבל ברור שלכל שפה יש פיצ'רים ודקויות משלה. לדעתי, צריך לזרום עם זה. וזה כלל לא קשה. כתבתי יותר מ100 שורות קוד בJS, ולא זכור לי שסבלתי מהדברים המתוארים במאמר.
אם בJS לא מוגדר אופרטור "+" בשביל מערכים, איני רואה טעם להתעצבן על זה. וכל שכן לא להתלונן על כך, שאם אני עם כל זה מתעקש להשתמש באופרטור זה בשביל מערכים, אז אני מקבל תוצאות מוזרות בגלל המרה אוטומטית.

דרך אגב, בפייטון למשל, כן מוגדר + בשביל מערכים. אבל הוא פועל בצורה שונה בשפה עצמה ובספריות פופולאריות (כמו NUMPY, PANDAS). בחלק מהמקומות הוא מצרף את המערכים, ובחלק מחבר את הערכים
upload_2019-7-16_11-45-34.png
אז אולי עדיף היה להשתמש בCONCAT כמו בJS בשביל שתהיה אחידות?
לא.
לכל שפה יש קטעים משלה. תופסים את זה פעם אחת וזהו.

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

דוד וינברג

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

http://www.softwarearchiblog.com/2019/05/javascript-es678.html
JS בES6-7-8 ענתה על חלק מהבעיות שהצגת
צרפתי לינק לליאור שמסביר את רב השינויים בצורה מסודרת(יש באתר שלו עוד2 חלקים בסדרה הזו)

בסה"כ נהניתי מהכתיבה של הפוסט
 

פרידמן אברהם

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
מה רע ב-JavaScript???

נראה לי שכל הויכוח הוא על המשפט הפותח וכן על המשפט "לדעתי JS היא שפה מאוד לא טובה"!!!

אין טעם לדיון כזה בגלל ש...
אם javaScript לא היתה טובה היא לא היתה תופסת כל כך חזק.
היא היתה מה שהיא היתה ולמרות זאת גדלה כל הזמן וזה מוכיח משהו.

ולא JS לא היתה מונופול. היא כבשה את השוק!

די טיפשי להיכנס לדיון שנוי במחלוקת ולומר "לדעתי JS היא שפה מאוד לא טובה".
אני מכיר המון מתכנתים שחושבים שההתנהגות הזאת טובה יותר. (הראשון שעולה לי יש לו תואר שני במחשבים!)

לכל שפה יש מוזרויות גם ל - #C לדוגמא.

ה "+" בחיבור מערכים הוא דוגמא מעולה להתנהגות ולא לבעיה.
לא אהבת כי הגעת מעולם אחר? לך זה נראה ש "+" יחבר לאחרים זה טבעי שלא. (מי מחבר מערכים עם "+" רח"ל???)
זו דעה אישית לא מציאות...


דווקא נהניתי מהמאמר למרות שאני שולט ב - JS ובעיני כל הדברים האלו הם טבעיים.

JS לא טובה או רעה היא עושה דברים מסוימים טוב ודברים מסוימים רע כמו כל שפה.
 

פרידמן אברהם

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
"ראינו שיש מקרה בו המשתנה כלל לא מוגדר, ויש מקרה בו הוא מוגדר כ-undefined"

אין הבדל בינהם זה בעצם אותו דבר
אין מושג שלמשתנה שלא הוגדר לכל משתנה יש ערך רק שהערך הוא false
זה גם בהרבה שפות כך java תדרוש פעולה מיוחדת כדי ש int לא יהיה שווה ל - 0.
ב - JS מראש הגדירו ערך ריק וזה דווקא דבר טוב.
 

דוד וינברג

משתמש רשום
"ראינו שיש מקרה בו המשתנה כלל לא מוגדר, ויש מקרה בו הוא מוגדר כ-undefined"

אין הבדל בינהם זה בעצם אותו דבר
אין מושג שלמשתנה שלא הוגדר לכל משתנה יש ערך רק שהערך הוא false
זה גם בהרבה שפות כך java תדרוש פעולה מיוחדת כדי ש int לא יהיה שווה ל - 0.
ב - JS מראש הגדירו ערך ריק וזה דווקא דבר טוב.
כמו שסברנו במאמר שני המצבים האלה מתנהגים באופן שונה. אם "זה בעצם אותו דבר" היינו מצפים שהחוקיות בשניהם הייתה זהה, והיא לא.
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
כמו שסברנו במאמר שני המצבים האלה מתנהגים באופן שונה. אם "זה בעצם אותו דבר" היינו מצפים שהחוקיות בשניהם הייתה זהה, והיא לא.
לא הבנתי מה קשה לך...
אם המשתנה לא לא הוגדר בכלל - זה דבר אחד, ואם הוא הוגדר, אבל לא נתנו לו ערך - זה עניין אחר.
***
לגבי מה שכתבת בחלק ב' לגבי this הזדהיתי הרבה יותר. אכן, this בJS זה בלבול מוח אחד גדול. אבל זה לא לוקח הרבה זמן ללמוד איך זה עובד.
 
נערך לאחרונה ב:

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קיט ב'

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

לוח מודעות

למעלה