1. מדוע FreePascal ?
  2. מה זה Bidi ו Fribidi ?
  3. על מה הפרוייקט הזה בכלל ?

מדוע FreePascal ?


על מנת לענות על השאלה הזאת, צריך לשאול "למה פסקל ?"
התשובה היא מאוד פשוטה... אבל תנו לי למכור לכם את פסקל ואם אתם מתכנתים בc\++, אז אני כבר אדע מה תהיה התגובה שלכם :)

הטקסט פה מתורגם מהאתר של FreePascal, ואני גם הוספתי כמה נקודות משל עצמי :)

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

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

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

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

  • השתלבות מצויינת עם אסמבלר. האם אתם חושבים שפסקל נועדה רק ל"חדשים" אשר השפה נועדה ללימוד תכנות ? טעות! זאת שפה מצויינת לתכנות היי-טק ולחננות הכי מכורים שבינכם, שרוצים לשלב את האסבמלר בקוד. אתם יכולים לשלב בין קוד אסמבלר לבין קוד פסקל בתחביר האהוב עליכם מבין תחביר Intel לבין תחביר AT&T. כלומר במידה ואתם רוצה לתכנת בתחביר Intel, אין בעיות, במידה וזה נחוץ FreePascal ימיר את זה לתחביר AT&T בשבילכם. רוצים להמיר את התוכנית שלכם לקוד של Nasm ? אין בעיות, כל תחביר ה AT&T בקוד שלכם יומר אוטומטית.

  • תכנות מונחה עצמים. במידה ואתם מבצעים תכנות רציני, כמובן שאתם מעוד מעונינים לבצע תכנות מונחה עצמים. בצעו תכנות מונחה עצמים בשיטות של טורבו-פסקל ואוביקט פסקל (Object Pascal) לפי הטעם/צורך. הFCL וFree-Vision, מספקים לכם ספריות אובייקטים בעלות הרבה עוצמה שאתם צריכים. למסדי הנתונים, יש תמיכה בPostgreSQL, MySQL, Interbase/FireBird SQL, ODBC ו DBase. מסדים כדוגמת Oracle נמצאים בפיתוח (נכון לזמן העריכה האחרון של מסמך זה).

  • Smartlinker (מקשר חכם). FreePascal מכיל מקשר חכם אשר זונח כל משתנה או קוד שלא בא לידי שימוש בתוכנה. הדבר גורם לתוכנות להיות הרבה יותר קטנות, כאשר הם עדיין מקושרים בצורה סטטית, ע"מ לא להיקלע לגהנום הDLL !

  • חוסר תלות בהפצה (לינוקס). כתוצאה מכך, תוכנות אשר מהודרות ע"י גרסת FreePascal של לינוקס, ירוצו על כל הפצת לינוקס, דבר המקל עד מאוד להפיץ את התוכנה שלכם שתתמוך בהפצות מרובות של לינוקס.

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

    פלטפורמות: MS-Windows, MS-DOS, Linux, FreeBSD, OS/2, SunOS (Solaris), BeOS, NetBSD, Mac-OSX, Netware, WDOSX-DOS, OpenBSD, Watcom, MorphOS, PalmOS, QNX, Amiga.

    ארכיטקטורות: i386, PowerPC, Sparc, AMD64, m68k, Arm.

    יכול להיות שיש עוד ממשקים וארכיטקטורות שנוספו מאז כתיבת המסמך :)

  • תואם. יש לכם קוד קיים ? FreePascal תואם לקוד יותר מאשר כל מהדר פסקל אחר. יש תאימות כמעט מלאה עם טורבו-פסקל ו תמיכה גבוהה מעוד עם קוד מקור של דלפי. במידה ויש לכם קוד בשפה אחרת, כדוגמת C או אסמבלר, פשוט השתמשו במהדר האהוב עליכם בשביל להדר אותו, ופשוט קראו לו מFreePascal.

  • "C ו C++ הרבה יותר פופלריים מאשר פסקל". על זה יש לי רק תשובה אחת :
    "מליארד זבובים יכולים לטעות - אני מעדיף לאכול צלעות כבש מאשר חרה. "
           -- לינוקס טרבולדס בLKML

[למעלה]

מה זה Bidi ו Fribidi ?


BiDi - זהו קיצור של המושג Bi-Directinal - דו כיווניות. ופירושו שני צדדים...
במידה ואתם משתמשים/דוברים בשפות כדוגמת עברית/ערבית/אורדו/ארמית/יידיש/פרסית אשר נכתבים מצד ימין לצד שמאל, נתקלתם בתופעות שונות כאשר אתם משתמשים לפחות באחת השפות מימין לשמאל ובשפות משמאל לימין (כדוגמת אנגלית) במחשב כגון:

  1. חוסר יכולת לבחור בשני סוגי השפות בבלוק בחירה אחד.
  2. המחשב זז רק לימין/שמאל, אבל לעולם לא הולך לכיוון השני בזמן כתיבת הטקסט.
  3. במידה וכותבים כמה מילים באנגלית וחלק בשפה אחרת ואז חוזרים לאנגלית (או בסדר הפוך), הסדר של המילים מתבלבל ומאוד קשה לדעת מה מגיע לפני מה.
  4. סמנים כדוגמת "-" ומספרים לועזיים (מוכר גם בתור "ספרות ערביות") גורם לטקסט הרגיל להשתגע, כמו מיקום לא נכון של הספרות/סמנים, או חוסר יכולת למחוק את הטקסט בצורה נכונה.

וכמובן שיש עוד בעיות שונות, אשר גרמו למפתחים למצוא פתרונות.
הפתרון הכי מקובל הוא אלגוריתם הBiDi (ניתן למצוא אותו בכתובת /http://www.unicode.org/reports/tr9). האלגוריתם בנוי לדעת כיצד להתמודד עם 2 (או יותר) שפות בעלות כיוונים שונים באותו הפיסקה.
ההתמודדת עם שני הכיוונים בפיסקה אחת, הוא בעצם הBi-Directinal, כלומר דו כיוניות.

http://freedesktop.org/Software/FriBidi - Fribidi ספרייה אשר מבצעת את האלגוריתים של דו הכיווניות ולשפות של ערבית, עברית ופרסית.
ספרייה זו נחשבת לספרייה הכי שלמה וללא באגים (אממ.. עד כמה שקוד יכול להיות נקי...) אשר מבצעת את האלגוריתם.
היא תומכת בתווי Unicode ובתווי הANSI.

[למעלה]

על מה הפרוייקט הזה בכלל ?


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

ועכשיו להסבר הפשוט יותר :)

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

יפה מאוד, אבל עזוב סיסמאות, תהיה רציני לרגע ותענה על השאלה, למה פסקל ?

דבר ראשון אני באמת מאמין שפסקל היא שפה מצוינת ומסוגלת לבצע הרבה יותר ממה שרוב האנשים חושבים. לא אכנס לויכוח החסר תועלת מהי השפה הטובה לעשות משהו. אני פשוט חושב שלעבוד עם פסקל, בייחוד בדברים כמו תווים, זה הרבה יותר קל נעים ונוח בפסקל מאשר C ו C++ ששם יש עודף מצביעים מיותרים אשר גורמים להרבה מהבעיות בתוכנה.
וכן אני יודע ששפות כדוגמת Perl (אשר אני גם מתכנת בה ומאוד אוהב אותה !) בנויות להתמודדות טובה מול מחרוזות ושפות אנושיות בכלל, אבל אם אני מעוניין לבנות תוכנית שתרוץ לי בתור מערכת הפעלה למשל, Perl מאבדת את כל העצמה שלה, וכאן פסקל ו C נשארות במערכה. וכן אני באמת מאמין שפסקל מסוגלת להתמודד על מערכה כזאת ואפילו בכבוד. ואולי אף להשפיל את C...

ועכשיו לתשובה פחות מתגרה...

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

[למעלה]

Free Pascal logo SourceForge.net Logo This site was written using gVIM - VI-Improved PHP logo Lazarus IDE web-site
Valid CSS!