מחולל יישומים

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
תמונת מסך של מחולל היישומים Base מחבילת היישומים המשרדיים ליברה אופיס

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

דורות של שפות תכנות[עריכת קוד מקור | עריכה]

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

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

מהות מחולל היישומים[עריכת קוד מקור | עריכה]

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

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

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

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

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

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

יתרונות וחסרונות[עריכת קוד מקור | עריכה]

יתרונות[עריכת קוד מקור | עריכה]

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

חסרונות[עריכת קוד מקור | עריכה]

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

תחומים לפיתוח עם מחולל[עריכת קוד מקור | עריכה]

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

רוב רובם של מחוללי היישומים הקיימים כיום, לא מתאימים לפיתוח תוכנות תשתית (מערכות הפעלה, תוכנות תקשורת וכו') וגם לא ליישומים ייעודיים בעלי אלגוריתמיקה ייחודית, במיוחד אלו שדורשים משאבי עיבוד כמו תוכנות גרפיקה, עיבוד תמונה, עיבוד קול ווידאו, שצריכות להיכתב בקוד של שפה עילית שקרובה לחומרה כמו C++‎.