מי צודק?

03/04/2018

גווידו ון רוסום הוא היוצר של שפת Python. ב 2009 הוא פירסם מניפסט שיוצא כנגד Tail Recursion Elimination. הטענה שלו שזה מעודד הרגלי תכנות גרועים ולכן אסור להכניס יכולת כזו לשפה. ב 2011 חוזה ואלים כתב שפת תכנות בשם Elixir שמתבססת על הרעיון של Tail Recursion Elimination. חוזה טען שרקורסיה ולכן TRE הם המבנים הבסיסיים ביותר בתכנות, שהם עוזרים לייצר קוד קריא ויציב יותר ושלולאות הן האויב (כי לולאות משתמשות ב Mutable Data שהוא הרבה יותר גרוע).

בעולם מקביל, ספריית הקוד הכי פופולרית לבניית אתרים מאז ומעולם נקראת jQuery. שנים ארוכות היא היתה האפשרות הטובה ביותר וכמעט היחידה לפיתוח אתרים. ואז איפשהו ב 2009 לאנשים התחיל להימאס מ jQuery - ב 2010 ג'רמי אשכנז משחרר את Backbone ומישקו הברה את אנגולר: שתי ספריות ששינו ב 180 מעלות את התפיסה של פיתוח Web. בעולם של jQuery התפיסה המקובלת היתה ש JavaScript בסך הכל משנה דברים שאנחנו רואים על העמוד, ועיקר המידע שמור ב HTML או ליתר דיוק ב DOM. בעולם של Backbone ועוד יותר מזה Angular, קוד JavaScript הוא שמנהל את המידע: אם צריך יכתוב אותו ל DOM, אם צריך ישלח את המידע לשרת. לימים React, Vue ו Angular2 המשיכו את הכיוון שטוען שהמידע נשמר ב JavaScript ומה שכתוב בעמוד הוא רק תוצאה או תוצר לוואי של אותו ״מידע״. ואז פתאום DHH מפרסם ספריה חדשה בשם Stimulus שחוזרת לרעיון הישן שהמידע צריך להישמר ב DOM. הטענה של DHH? כל האנגולר שלכם מסובך מדי, רוצים לחזור לימים הטובים ודפדפנים מהירים מספיק.

אז מי צודק?

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