כיצד FPC/לזרוס עובדים

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

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

FPC הוא מהדר פסקל מונחה עצמים לסביבות 32 ו64 ביט (למרות שיש כמה אנשים ופרוייקטים אשר לקחו אותו וגרמו לו לעבוד ב16 ואפילו 8 ביט למעבדים ספציפיים בשביל מוצרי embedded, אבל זה פיצול מהפרוייקט המקורי).

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

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

שפת פסקל שלמדתם בבית הספר/אוניברסיטה, היא שפה מסורסת, שמראש נועדה לתכנות לימודי בלבד. ההשוואה בינה לבין C אינה במקום, ורק המהדרים המקצועיים (כדוגמת Borland Pascal, המהדר של אפל והרבה אחרים) יכולים להישפט אל מול המהדרים ה"תעשייתיים" של C וכו'. כלומר TP שנועד ללימוד אינו יכול להיות באותה רמת שיפוט של Borland Pascal אשר הכיל הרבה יותר תכונות ויכולות. שלא לדבר על המהדרים של אפל שהיו בעצם מי שיצרו את המערכת הפעלה Mac OS (בייחד עם Objective C ועוד כמה שפות וטכנולוגיות). ד"א גם למיקרוסופט היה מהדר פסקל, אבל הם הפסידו את הקרב לבורלנד (סתם בשביל קצת היסטוריה).

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

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

לזרוס הוא כלי גרפי, וככזה יש לו תלויות משל עצמו, אך התוצאה היא קובץ ריצה שהוא stand-alone וכל הצרכים שלו הם הספריות המשותפות שהשתמשתם בהם, כלומר gtk, xlib וכו' ממש כמו תוכנת C, רק בצורה ידידותית יותר !

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

FPC עצמו מכיל הרבה כלי עזר חלקם אף נצמדים לקוד שלכם (במידה ותבקשו יפה), אשר יעזרו לכם למצוא דליפות זכרון הרבה לפני שתהיו צריכים להשתמש ב valgrind ושאר הכלים.

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

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

4 מחשבות על “כיצד FPC/לזרוס עובדים

  1. אילן שביט

    עידו שלום
    מזה כיומיים אני לומד fpc ו-לזרוס. התכנית הראשונה שבניתי (בלזרוס): מחשבון פשוט הבנוי משלושה Text Area. שניים עבור הקלט, ואחד עבור התוצאה (וכמובן יש כפתור אחד לביצוע החישוב). בגלל שיש לי נסיון בהרבה IDE-ים לא נזקקתי אפילו למדריך כדי לבנות את התכנית, והיא אכן עבדה יפה ובמהירות.
    השלב הבא שעשיתי: לקחתי את קוד המקור וקימפלתי אותו בחלונות. נוצר לי קובץ exe בודד בגודל של 16 מגה (די מוגזם, למרות שניתן להבין את הקומפיילר שצריך "להכניס" לתוך הקובץ די הרבה ספריות ותלויות). את הקובץ הרצתי במכונות שונות (שבהם לא הותקנה סביבת פיתוח, אלא רק gtk), ואכן התכנית רצה יפה מאוד.
    פעולה דומה עשיתי עם לינוקס. את הקובץ המקומפל (הפעם "רק" 15 מגה") הרצתי בתחנות שונות, וזה אכן עבד בצורה יפה. המבחן הראשון מבחינתי עבר בהצלחה, ודי התרשמתי מיכולות לזרוס והכלים הפשוטים שהוא מקנה לתכנת. המבחן הגדול מבחינתי הוא fpc. בימים הקרובים אני אנסה להתמקד וללמוד את השפה אם כי כבר התרשמתי שקשה יחסית למצוא מדריכים טובים בנושא (כנראה בגלל שיחסית השפה לא נפוצה לעומת השפות האחרות). מה שהכי חשוב לי בשפה זה היכולת שלה לעשות לי חיים קלים (וזה מחייב הרבה מאוד ספריות מוכנות). לדוגמא: בפייתון בשורת קוד אחת ניתן לקרא תוכן של קובץ שלם ולשים אותו ב- list (תדמיין את זה כמערך לא מוגבל בגודלו בו כל איבר מכיל שורה אחת של הקובץ). וזאת היתה רק דוגמא אחת קטנה… פייתון היא שפה מאוד חזקה מצד אחד ומאוד פשוטה מהצד השני כך שקל מאוד להתאהב בה (ואני מכיר גם את perl שלא מתקרבת לפייתון בפשטות הכלים שהיא מקנה למשתמש). במידה וארגיש שהשפה באמת נוחה לשימוש אז בהחלט מצאתי (בזכותך) כלי נוסף בו אשתמש בכדי לכתוב תכנות שונות.
    נ.ב.
    מקווה למצא ב- irc ( fpc-il

  2. אילן שביט

    עידו שלום
    מזה כיומיים אני לומד fpc ו-לזרוס. התכנית הראשונה שבניתי (בלזרוס): מחשבון פשוט הבנוי משלושה Text Area. שניים עבור הקלט, ואחד עבור התוצאה (וכמובן יש כפתור אחד לביצוע החישוב). בגלל שיש לי נסיון בהרבה IDE-ים לא נזקקתי אפילו למדריך כדי לבנות את התכנית, והיא אכן עבדה יפה ובמהירות.
    השלב הבא שעשיתי: לקחתי את קוד המקור וקימפלתי אותו בחלונות. נוצר לי קובץ exe בודד בגודל של 16 מגה (די מוגזם, למרות שניתן להבין את הקומפיילר שצריך "להכניס" לתוך הקובץ די הרבה ספריות ותלויות). את הקובץ הרצתי במכונות שונות (שבהם לא הותקנה סביבת פיתוח, אלא רק gtk), ואכן התכנית רצה יפה מאוד.
    פעולה דומה עשיתי עם לינוקס. את הקובץ המקומפל (הפעם "רק" 15 מגה") הרצתי בתחנות שונות, וזה אכן עבד בצורה יפה. המבחן הראשון מבחינתי עבר בהצלחה, ודי התרשמתי מיכולות לזרוס והכלים הפשוטים שהוא מקנה לתכנת. המבחן הגדול מבחינתי הוא fpc. בימים הקרובים אני אנסה להתמקד וללמוד את השפה אם כי כבר התרשמתי שקשה יחסית למצוא מדריכים טובים בנושא (כנראה בגלל שיחסית השפה לא נפוצה לעומת השפות האחרות). מה שהכי חשוב לי בשפה זה היכולת שלה לעשות לי חיים קלים (וזה מחייב הרבה מאוד ספריות מוכנות). לדוגמא: בפייתון בשורת קוד אחת ניתן לקרא תוכן של קובץ שלם ולשים אותו ב- list (תדמיין את זה כמערך לא מוגבל בגודלו בו כל איבר מכיל שורה אחת של הקובץ). וזאת היתה רק דוגמא אחת קטנה… פייתון היא שפה מאוד חזקה מצד אחד ומאוד פשוטה מהצד השני כך שקל מאוד להתאהב בה (ואני מכיר גם את perl שלא מתקרבת לפייתון בפשטות הכלים שהיא מקנה למשתמש). במידה וארגיש שהשפה באמת נוחה לשימוש אז בהחלט מצאתי (בזכותך) כלי נוסף בו אשתמש בכדי לכתוב תכנות שונות.
    נ.ב.
    מקווה למצא ב- irc …

  3. ik_5 מאת

    היי אילן.

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

    בקשר ליכולות של פיתון, אני מכיר את חלקם, ואפילו xkcd ירד עליהם (אני מוכן למצוא את הקומיקס המדוייק אם אתה רוצה :))
    ד"א אתה מוזמן לנסות את האובייקט שנקרא TStringList בשביל לטעון בשורה אחת, וכן אפשרות להתמודד איתו בתור hash. אבל הוא מוגבל ב32 ביט ל2 מגה זכרון, וב64 ביט לכמות גבוהה יותר (בגלל שזה מתורגם ישירות לכתובת זכרון קיימת, בעוד שבפיתון זה לא עד כמה שאני מבין).

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

    אז ברוך הבא לעולם ה FPC🙂

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s