ארכיון תגיות: תסריטאות

מבוא לתסריטאות

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

אחרי שהסטודנטים לומדים מספר שפות מחשב שימושיות, דוגמת C,‏ CPP,‏ Java ו־C#‎, מתקבל הרושם שהסטודנט שולט בכול השפות והידע שברשותו ישמש אותו שנים רבות. בפועל, קיימות שפות תכנות רבות נוספות אותם נדרשים מרבית עובדי התעשייה ללמוד על־מנת להתקבל למקומות עבודה מסוימים או כדי להטמיע בארגון טכנולוגיות חדשות. למעשה, בתחומים מסוימים שימוש בשפות שהזכרתי קודם כמעט לא מורגש בהשוואה לשפות אחרות; למשל מעטים הם אתרי האינטרנט שנכתבו בשפות כגון CPP ו־Java, לעומת שפות אחרות דוגמת PHP,‏ Perl,‏ Python ו־Ruby.

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

בהרצאה שהוצע לי להעביר התבקשתי לדבר על אופן כתיבת התסריטים והיתרונות שיש בכתיבת תסריטים על־פני שפות תכנות "רגילות", שזה קצת טעות להציג כך את התחום, שהרי הכתיבה ושימוש בשפות תסריט התחילה בסמוך להופעתם של המחשבים הראשונים בשנות החמישים של המאה הקודמת, והתפתחה יחד עם שפות התכנות האחרות. התבקשתי להתמקד בשפת תכנות אחת בלבד, ולצערי אאלץ להימנע מהדגמות על לינוקס עקב הידע המינימלי של הסטודנטים במערכת הפעלה זו, ומאותה סיבה גם אאלץ להימנע מהצגת דוגמאות Bash וגם לדבר על יכולות ייעודיות ל־Shell Scripting כגון Pipes, Redirections והעברת מידע בפרמטרים בין יישומי שורת פקודה.

עקב מגבלות טכניות שונות, רצוי שאוותר על דוגמאות שדורשות הרשאות ניהול על המחשב, ולכן גם התקנת תוכנות בצורה שקטה ושינוי הגדרות המחשב די יורד מן הפרק, וגם עבודה מול שירותי רשת שונים ומשונים כדאי כנראה שאמנע מהם כי אינני בטוח ברמת ההבנה של הקהל במושגים כגון Rest API,‏ XML ו־JSON.

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

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