בתחילת מרץ 2008 התפרסמה באתר TheMarker כתבה שהציגה את פלטפורמת התכנות הויזואלי של טרסוס (https://www.themarker.com/technation/1.1756308).
בעשרות תגובות לכתבה עלו שאלות והסתייגויות שונות, שעזרו לנו להבין איך אנשים תופסים את המוצר שלנו, וחשבתי שיהיה מועיל להתייחס לנקודות המרכזיות שהועלו.
טרסוס מציעה תפיסה חדשה לפיתוח תוכנה – הגדרה מלאה של התוכנית באמצעות דיאגרמות ויזואליות במקום כתיבת קוד. במובן מסוים, זוהי הכללה של תרשימי זרימה, שהם דרך מקובלת לתיאור אלגוריתמים, אולם התרשימים של טרסוס אינם רק דרך להסביר לתוכניתן מה צריך לתכנת, אלא הם ה"קוד" עצמו. שפת התרשימים של טרסוס היא עשירה מספיק ומדויקת מספיק כדי שהמנוע של טרסוס יוכל להריץ את התרשימים ולבצע את מה שהם מגדירים.
מדובר בוריאנט של רעיונות ותיקים, בעיקר שפות תכנות ויזואליות הנקראות Dataflow Languages, ש-LabVIEW היא המפורסמת שבהם. זוהי גישה שניתן לכנות Flow Oriented, בניגוד ל-Object Oriented (כמו UML). הגישה העקרונית אינה חידוש של טרסוס, למרות שמבחינה היסטורית טרסוס צמחה ללא קשר ישיר לשפות ויזואליות אחרות.
במובן אחר, טרסוס אכן דומה לכלים כמו Magic. לא מבחינה טכנולוגית, אלא מבחינת המוטיבציה לשימוש – ייעול הפיתוח.
עם זאת, מה שטרסוס מציעה הוא חידוש ביחס לשיטות הנהוגות כיום לפיתוח תוכנה. לא משום שלא היו בעבר ניסיונות דומים, אלא פשוט משום שעד היום הם לא הצליחו, או הצליחו במידה מוגבלת מאד, וכתיבת קוד היא השיטה המקובלת כיום.
זו שאלה של הגדרה.
לפי תפיסתנו, טרסוס היא פשוט פלטפורמה לפיתוח תוכנה בדרך אלטרנטיבית, כך שהמפתח ממשיך "לתכנת", רק בשפה אחרת, ויזואלית. לא מדובר על "כלי אוטומטי" שמחליף את המפתח.
לא מדובר גם על "מחולל קוד" (code generator) או כלי שמיועד לקצר את הדרך לכתיבת קוד באמצעות אשפים (wizards), שמייצרים קוד בשפת תכנות סטנדרטית. ה"קוד" של טרסוס הם התרשימים עצמם. המונח "ויזואלי" אינו אומר שמשתמשים בעכבר במקום במקלדת, אלא שהתוצר הוא תרשימים ויזואליים ולא פקודות בשפת תכנות רגילה.
משיקולי מימוש, אנו שומרים את התרשימים, שהם ה"תוכנית", כאוסף של קבצי XML, אבל זהו עניין טכני בלבד. אוסף קבצי ה-XML מורץ על ידי המנוע של טרסוס, שהוא מעין Virtual Machine, שיודע לבצע את התהליכים שמגדירים התרשימים בהתאם לסמנטיקה של השפה.
הנה לדוגמא תרשים של טרסוס שמגדיר חישוב רקורסיבי של עצרת (n!):
מה שמקביל ל-:
If (n <= 0)
return 1
else
return n * Factorial(n-1)
ממש לא – אמנם הדוגמא הקטנה שניתנה בכתבה מתארת בניית אפליקציית Hello World, שאין בה כלום חוץ מ-GUI, אבל ניתן לפתח בטרסוס מערכות ללא GUI בכלל.
למעשה, אחד הדברים המיוחדים בטרסוס הוא היכולת להגדיר באותה שפה ויזואלית גם את ה-GUI בצד ה-client, גם את הלוגיקה העסקית בצד ה-server, וגם את הקשר בין שני הצדדים. אם רוצים לקשר את ה-GUI ללוגיקה עסקית מסוימת (תהליכים אלגוריתמיים), ניתן לשבץ את תרשימי האלגוריתמים בתוך תרשימי של ה-GUI.
למשל, אם רוצים שכפתור מסוים במסך יפעיל תהליך חישובי כלשהו, ניתן לשתול את תרשים האלגוריתם החישובי בתוך הרכיב של הכפתור בתרשים ה-GUI. זה אומר, שבהסתכלות ברמה העליונה רואים עיצוב GUI (איך נראה המסך, אלו אלמנטים מופיעים באלו נסיבות וכד'), אבל כאשר עושים zoom-in לכל רכיב, רואים הגדרה של הלוגיקה העסקית שמאחריו. מבחינת המפתח, הכל נעשה באותו תרשים ובאותה שפה ויזואלית, ללא צורך באינטגרציה של מספר טכנולוגיות ושפות, והמנוע של טרסוס כבר מחליט מה לבצע בצד ה-client (בד"כ בדפדפן) ומה בצד ה-server (בד"כ בתוך Application Server).
טרסוס לא נוצרה כדי להתחרות בשפות ויזואליות אחרות או במחוללי יישומים אחרים, ולכל אחד מהם יש בודאי יתרונות ואנשים שאוהבים אותו ורגילים אליו. אין לנו יומרה לטעון, שטרסוס טובה יותר מכל טכנולוגיה אחרת ולכל סוג של תוכנות.
עם זאת, לטרסוס יש מספר תכונות ייחודיות, שהופכות אותה למתאימה במיוחד לפיתוח יישומי דפדפן (Web Applications):
* כאמור, טרסוס היא שפה אחידה לבניית client-side ו-server-side. המנוע של טרסוס משתמש בטכנולוגיית AJAX כדי לחלק את העבודה בין ה- client-sideוה-server-side.
* טרסוס היא שפה Flow Oriented, שהיא אינטואיטיבית וקלה יותר ללימוד משפות Object Oriented.
* בטרסוס יש מספר תוספות ביחס לשפות Dataflow אחרות (ון טיפול במבני נתונים מורכבים ותמיכה בהגדרת קלטים אופציונאליים לתהליכים), שהופכות אותה לחזקה יותר ושקולה לשפות תכנות סטנדרטיות.
* כלי הפיתוח משתמש במעין "לוח שרטוט אינסופי", שבו כל התוכנית מוצגת כתרשים אחד. המפתח מתחיל ברמה הגבוהה ביותר, ובכל שלב יכול לעשות zoom-in לפרטים ברמה שמתחת. כך ניתן להיכנס לפרטים של כל רכיב מבלי לאבד את ההקשר האפליקטיבי. ניתן לראות הדגמה של zoom-in כזה באתר של טרסוס.
* כלי הפיתוח מכיל בתוכו Application Server, In Memory Database ואת המנוע של טרסוס, כך שניתן להריץ מיידית וללא התקנת כל רכיב נוסף כל תוכנית שמפותחת בטרסוס ישירות מהדפדפן. בעת התקנה בסביבת Production ניתן לבחור Database ו-Application Server אחרים, בהתאם לצרכים.
* טרסוס כוללת Visual Debugger – יכולת להקליט את הפעולות שמבצעת התוכנית ולאחר מכן להריץ אותן קדימה או אחורה על תרשים התוכנית. הדבר מאפשר בדיקה של התוכנית בעת הפיתוח או איתור בעיות בנתוני אמת. ההקלטה כוללת גם פעולות client וגם פעולות server, כך שניתן לעקוב אחר הריצה לכל פרטיה בלי לעבור בין סביבות וכלים שונים.
* המנוע של טרסוס משתמש רק ביכולות גנריות של הדפדפן, מה שמאפשר ריצה בכל דפדפן סטנדרטי (כולל, למשל על iPhone).
חשוב להבדיל בין התפיסה ובין המוצר הנוכחי של טרסוס.
מבחינת התפיסה, לאחר שנים של פיתוח, אנו מאמינים כי היכולות של תכנות ויזואלי הן שקולות לאלו של תכנות בשפת קוד סטנדרטית.
זה לא אומר, כמובן, שמבחינת הבשלות, המוצר שלנו כבר הגיע לרמה הזו. אין ספק, שהספריות של שפות תכנות פופולאריות, כמו גם כלי הפיתוח השונים, הם מלאים ובשלים יותר מאלו של טרסוס. יש עוד הרבה רכיבים להוסיף לספריות, שיפורים פונקציונאליים ושיפורי ביצועים שצריך להוסיף, ועוד ועוד. אנו ממשיכים בפיתוח.
עופר ברנדס, 9 במרץ 2008
To use the full functionality of this web site, JavaScript needs to be turned on.
For best results, use the Firefox browser..
Copyright © 2003-2017 - Tersus Software Ltd., All rights reserved. Terms of Use License Graphic design by EmaraDesign