7 סיבות מדוע מסגרות הן שפות התכנות החדשות

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

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

כיום, הפעולה המעניינת היא במסגרות. כשישבתי עם חברי סגל אחרים באוניברסיטת ג'ונס הופקינס לתכנן קורס חדש, המסגרות שלטו בשיחה. האם Angular עדיף על Ember? האם Node.js כל זה?

תכננו קורס סקר שיחקור את הארכיטקטורה של חבילות התוכנה החשובות ביותר המהוות את יסוד האינטרנט. זה היה מרכז הפעולה, ראוי לקורס סקר שיחקור את הארכיטקטורה של חבילות התוכנה החשובות ביותר המקיפות את האינטרנט של ימינו.

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

רוב הקידוד הוא מחרוזת APIs

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

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

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

שווה לעמוד על כתפיהם של ענקים

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

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

הכרת האדריכלות היא מה שחשוב, לא התחביר

כשרוב הקידוד מחרוזת שיחות API, אין הרבה יתרון בלמידת הייחודיות של השפה. בטח, אתה יכול להיות מומחה לאופן שבו ג'אווה מאתחלת שדות סטטיים באובייקטים, אך עדיף לך להבין כיצד למנף את הכוח של לוסין או JavaDB או ערימת קוד אחרת. אתה יכול לבלות חודשים בחיפוש אחר שגרות האופטימיזציה של מהדרים מסוג Objective-C, אך לימוד העניינים והספקים של ספריית הליבה האחרונה של אפל באמת יגרום לקוד שלך לצרוח. תוכלו ללמוד הרבה יותר על הפרטים הבררניים של המסגרת מאשר על התחביר של השפה שעליה נשענת המסגרת.

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

אלגוריתמים שולטים

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

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

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