מחולל ישומים
מתוך ויקיפדיה, האנציקלופדיה החופשית
| ערך זה זקוק לעריכה, על מנת שיתאים לסגנון המקובל בוויקיפדיה. הסיבה שניתנה לכך היא ישנן טעויות פיסוק, ישנם ניסוחים בלתי אנציקלופדיים ולא מדוייקים (ראו בדף השיחה). אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה שלו. |
מחולל ישומים הינו כלי פיתוח המסווג כשפת דור רביעי, ומהווה תוכנה ליצירת תוכנה אחרת. רובם של מחוללי הישומים מיועדים בעיקר לממשקים לבסיס נתונים ומיעוטם לצרכים אחרים, כמו מחוללי ישומים כלליים ומחוללי ישומים למולטימדיה.
תוכן עניינים |
[עריכה] מבוא
שפות התכנות התפתחו לאורך שנים. שפות דור ראשון נכתבו ישירות בקוד בינארי וכללו פקודות ישירות לחומרה באמצעות רצפים של סיפרות 0 ו1. שפות הדור השני היו שפות אסמבלי למיניהן והיו בסך הכול מתן שמות "אנושיים" לפקודות בינאריות. תרגומן לפקודות בינאריות בוצעו בעזרת מכונת תרגום, אסמבלר, שהייתה יחודית לכל מעבד.
שפות דור שלישי הן השפות העיליות כגון C, קובול, פורטרן, Pascal, Java , שהן אוסף של הוראות למחשב בפסדו אנגלית שעל פי רוב אינן תלויות בחומרה עליה תרוץ התוכנית. תוכניות שנכתבו בשפת דור שלישי מתורגמות להוראות בינאריות בבת אחת על ידי מהדר (קומפיילר), או בזמן הרצתן פקודה אחר פקודה בעזרת מפרש (אינטרפטר). שפת הדור הרביעי היה השלב הבא בהתפתחות. יצירת תוכנה שלמה במטרה לבנות באמצעותה תוכנה אחרת, תוך שימוש ביכולות המובנות של התוכנה המארחת.
[עריכה] מהות מחולל הישומים
מחולל הישומים שנחשב לשפה דור רביעי, מהווה רמת הפשטה גבוהה יותר. באמצעות חלק ממחוללי הישומים ניתן ליצור תוכנות ללא שימוש בקידוד רגיל, וללא התייחסות לטכניקה של התכנות. מדובר בתוכנה שיש לה יכולות שמוקנות לה מראש בתחום מסוים, וניתן לגזור ממנה את יכולותיה לישומים שונים ולתת להם את היחוד, הצורה והפונקציונאליות הנדרשת, מתוך מרחב גדול של יכולות שקיימות במחולל.
ניתן לדמות את ההבדל בין שפות תכנות עיליות למחולל ישומים, כהבדל שיש בין בניה רגילה בלבנים ומלט, לבין בניה מתועשת שבה יוצקים מודולים מבניים ומרכיבים אותם ביחד. במטפורה של בסיס נתונים, ניתן להתייחס בשפות כאלו לטבלה בבסיס נתונים מבלי להתייחס לאופן מימושה. כלומר המחולל מאפשר להתרכז ב־"מה" ולא ב־"איך". כתוצאה מכך הפיתוח במחוללי ישומים מהיר יותר, ודורש יכולת מקצועית נמוכה יותר. יש מחוללים שמתפארים בכך שאין בהן קידוד בכלל, ובשל כך אף זכו לביקורת מצד מתכנתים שהרגישו חסומים ביכולות שלהם, אך ברובם יש שילוב של תכנות חזותי ביחד עם אפשרות לקידוד בשפת תכנות כל שהיא, שמגדילה את הגמישות התכנותית.
ברוב המחוללים מוטמעים מראש אלגוריתמים שונים לביצוע מטלות תכנותיות שונות. במחוללים שמיועדים לעבודה עם נתונים יהיו יכולות כמו חיפוש, מיון, יצירת אינדקסים, הצגת נתונים, יצירת דוחות ועוד, ואילו במחוללים שמיועדים למולטימדיה יהיו יכולות של הצגת תמונות, ניגון קובצי וידאו, אודיו ואנימציה, תצוגת שקופיות וכדומה. יכולות אלו מייתרות את כתיבת אותו קוד שוב ושוב. זאת ועוד, כתיבת אלגוריתמים מוכנים בידי צוות מקצועי, שמכסה טווח רחב של אפשרויות, בדרך כלל מאפשר כיסוי אופטימלי של הנושא, באופן שמתכנת רגיל מהשורה לא היה מסוגל לו, או שהיה מתמודד איתו בקושי רב. הטמעת אלגוריתמים שעברו בחינה מדוקדקת במחוללי הישומים, מאפשרת לפנות את עיסוקו וזמנו של המתכנת, להגדרת ופיתוח האפליקציה המסויימת ותכניה, במקום להתמודד עם בעיות טכניות.
[עריכה] יתרונות וחסרונות
[עריכה] יתרונות
- פשטות פיתוח. קלות פיתוח, פשטות ונוחות לעומת סביבת פיתוח רגילה. ניתן ליישם פעולות רבות ואף מורכבות בכמה הקלקות וגרירות עכבר, ובכמה בחירות מתוך תיבות רשימה. הצורך להתעסק ב"קרביים התכנותים" פוחת מאוד, במיוחד לדברים שבשגרה.
- מהירות פיתוח. מחזור פיתוח קצר, שמאפשר ל"העמיד" אפליקציה על הרגלים, בזמן קצר משמעותית מסביבת פיתוח רגילה. התכנות במחולל לעומת שפת פיתוח רגילה יכול להתקצר באופן משמעותי עד לכדי רבע מהזמן.
- תחזוקה. יכולת תחזוקה קלה, שכן ניתן לנווט בקלות ברכיבים שמכילה האפליקציה. במידה שיש חלק בעייתי, אפשר למחוק וליצור אותו מחדש במהירות.
- דיבוג. מיעוט באגים בשל מיעוט הקוד שקיים במחולל, ובשל העובדה שחלק מהקוד מחולל באופן אוטומטי או מהווה שכבה עוטפת, ומכיוון שמודולים שקיימים בו דובגו בשיטות מקצועיות ובידי מפתחים מקצועיים מהרמה הראשונה.
- נגישות. פשטות הפיתוח מנגישה פיתוח אפליקציות וביצוע פרוייקטים גם לאנשים שאינם מתכנתים מקצועיים, או כאלו שהינם ברמה מקצועית נמוכה יחסית, דבר המאפשר לקצץ בעלות הפיתוח של פרויקט.
[עריכה] חסרונות
- ביצועים. ביצועים נמוכים שקריטיים במיוחד במערכות זמן אמת ותוכנות עתירות עיבוד כמו וידיאו וגרפיקה. אם כי לגבי כל הקשור לעיבוד נתונים מינהלי, הדבר לא משמעותי, במיוחד כאשר מדובר בממשק לקוח, כאשר את רוב עבודת העיבוד עושה שרת נתונים יעודי.
- חוסר גמישות. מבנה קשיח וחוסר גמישות לעומת הגמישות והחופשיות שמאפשר תכנות רגיל. ברוב המחוללים בדרך כלל צריך להצמד לקונבנציות שמכתיב מחולל הישומים, ואף אם יש יכולות הרחבה, עדיין לא קיימת גמישות.
- סירבול. גם במקרה שרוצים ליצור אפליקציה קטנה המכילה טבלה וטופס בודד, יהיה צריך לגרור ברוב מחוללי הישומים את כל קובץ ההרצה של המחולל, מכיוון שרוב המחוללים אינם יוצרים קובץ בינארי עצמאי שמוכן להרצה, אלא קובץ נתונים ומשתמשים ביכולות שלהם, או בגירסת זמן ריצה בכדי לפעול.
- עלות. עלות כספית של מערכות כאלו שמייקרת את האפליקציות. חלק ממחוללי הישומים מתומחרים במחיר גבוה ממחירי סביבות פיתוח רגילות. ולחלקם כמו מג'יק, צריך לשלם תמלוגים על כל גרסת הרצה שמופצת, דבר שמקצץ בשולי הרווח של המתכנת.
[עריכה] תחומים לפיתוח עם מחולל
מחוללי יישומים מיועדים בעיקר לתחום של בסיסי נתונים, אך עם זאת ניתן למצוא אותם בתחומים נוספים, כמו למשל מחולל הישומים Toolbook שיועד במקור ליצור דוקא תוכנות העוסקות במולטימדיה.
רוב רובם של מחוללי הישומים הקיימים כיום, לא מתאימים לפיתוח תוכנות תשתיתיות (מערכות הפעלה, תוכנות תקשורת וכו') וגם לא לישומים יעודיים בעלי אלגוריתמיקה יחודית, במיוחד אלו שדורשים משאבי עיבוד כמו תוכנות גרפיקה, עיבוד תמונה, עיבוד קול ווידאו, שצריכות להכתב בקוד של שפה עילית שקרובה לחומרה כמו C++.
אף שמחוללי ישומים לא חדרו לתחום של תוכנות תשתיתיות, אפשר לראות כי התפיסה העומדת בבסיסם, של תכנות חזותי והכנת מודולים מוכנים מראש הנמצאים בקובצי הרצה, מהווה ליבה של סביבות פיתוח מודרניות שונות כמו ה-.NET וה-J2EE, ומהווה למעשה הטמעת הקונספט של מחוללי ישומים, אם כי באופן קצת שונה. כך למשל שפות תכנות עיליות כיום כוללות יכולות בתחומי בסיסי הנתונים והמולטימדיה שהיו בעבר נחלת מחוללי ישומים יעודיים, וביחד עם זאת במבנה הנוכחי נשמרה הגמישות התכנותית שלהם כשפה עילית.
מחולל היישומים הראשון היה dBase ואחריו התפתחו ה־Paradox, Magic, המיכה 8, Wizdom, Microsoft Access, פאוארבילדר ו־Toolbook.

