Skip to content
בעמוד זה

מה זה תכנות?

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

בויקיפדיה תכנות מוגדר באופן הבא:

"תִּכְנוּת מחשבים (לרוב מכונה בקצרה תִּכְנוּת, או לעיתים קִידּוּד) הוא תהליך הכתיבה, הבדיקה והתחזוקה של קוד המקור של תוכנית מחשב. מלאכת התכנות נעשית בשפת תכנות מתאימה, הנבחרת בהתאם לאופי התוכנית הנכתבת ובהתאם למקובל במסגרת מקום העבודה או הפרויקט שבמסגרתו נכתבת התוכנית."

במילים פשוטות יותר, תכנות = כתיבת תוכנה.

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

קוד = טקסט התוכנה.

הקוד לבדו לא יעשה שום דבר. הקוד זקוק לעבור דרך תהליך שיגרום לו לרוץ כתוכנה.

בהקשר הזה אפשר לחלק את הרצת הקוד לשתי צורות כלליות:

  • הידור (Compiling - קומפילינג) הקוד לכדי תוכנה. לשפות כאלה קורים שפות מתקמפלות, שפות מהודרות
  • פירוש (Interpreting) הקוד. לשפות אלו קוראים שפות סקריפט, שפות מתפרשות (די נדיר בעברית)

הידור

למרות ש-Java Script אינה שפה שמתקמפלת, הכרת הנושא חשובה.

בשפות תכנות כגון C, C++, Go ועוד התהליך הבא מתבצע בעת יצירת תוכנה.

  • כתיבת קוד – שלב זה זהה בכלל שפות התכנות הקיימות בשוק.
  • הידור – בשלב זה תוכנה חיצונית בשם מהדר (קומפיילר) מקבל את הקוד שכתבנו אותו והופך אותו לקוד בשפת Assembly שאותו המחשב יכול לקרוא
  • קישור – חיבור הקובץ שהתקבל מהמהדר יחד עם קבצים מהודרים נוספים וספריות מערכתיות ויצירת קובץ בר-הרצה
  • הרצה – כעת ניתן להריץ את הקובץ הסופי

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

כל ספרייה מוהדרת \ מתקמפלת לקובץ מוהדר ומוכן לקישור.

בשלב זה לוקחים את כלל הספריות יחד עם ספריות חיצוניות (כגון ספרייה של Microsoft האחראית לתצוגה למשל באופן כללי) ואת כולם יחד מקשרים ומייצרים מהם קובץ בר-הרצה.

במערכת הפעלה Windows הקובץ יסתיים עם הסיומת exe המעיד על כך שהוא קובץ להרצה.

פירוש - סקריפט

שפת Java Script היא שפת פירוש – סקריפט. דוגמאות לשפות סקריפט נפוצות הן Python, PHP.

בשפות אלו התהליך הרבה יותר קצר והוא מורכב משני שלבים בלבד:

  • כתיבת הקוד
  • הרצה – בעזרת המפרש הייעודי לכל שפה נריץ את הקובץ

במקרה של Java Script בשימוש באתרי אינטרנט, הדפדפן יהיה המפרש של השפה.

כך שאת הקוד שאנו כותבים יריץ הדפדפן, אין תהליך של קימפול ו\או קישור באמצע כמו שניתן לראות בדוגמא הבאה:

דיאגרמה של קוד JS נכתב נקרא ע"י הדפדפן ומורץ ע"י המשתמש

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

שלב אמצעי

יש גם שלב אמצעי בין שפות הידור לשפות פירוש והם שפות מכונה-וירטואלית. דוגמאות נפוצות לכך הן Java ושפת C#.

לשתי השפות האלו יש תוכנה שיש להתקין על כל מחשב בו רוצים להריץ תוכנה הכתובה על ידם, ב-Java יש להתקין את ה-JRE ול-C# נצטרך להתקין את .NET זה בעצם מה שיקרה:

דיאגרמה שרואים קוד של JAVA או #C רץ על מכונה וירטואלית שלהם.

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

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

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

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

  1. תכנון – תכנון הפרויקט, הרעיון. איזה בעיה התוכנה מנסה לפתור. איזה תכונה התוכנה מציעה
  2. עיצוב – עיצוב טכני (מבנה המערכת וכדו') וכן איך יראה וירגיש המוצר ידוע כ-UI/UX
  3. פיתוח – כתיבת הקוד
  4. הרצה – הרצת התוכנה
  5. בדיקה – האם התוכנה בכלל רצה או שהייתה שגיאה? האם התוכנה עובדת בכמה שיותר תרחישים?
  6. הפצה – התוכנה עברה את השלבים בהצלחה וכעת ניתן להשתמש בה בהפצה (פרודקשן - Production)

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