קטגוריה: שפות

Precision Language Suite

Precision Language Suite היא מערכת תרגום מאוד מעניינת לתכנות חוצה פלטפורמות. בניגוד למערכת מבוססת gnu gettext למשל, המערכת מכילה הרבה יכולות נוספות, כאשר לאחרונה גם כמה מהבקשות שלי נכנסו לשם כחלק מדיון בפרומים, כדוגמת האפשרות לסמן האם שפה מסוימת היא שפה מימין לשמאל או לא, דבר שמקל מאוד על העבודה עם התוכנה, אשר לא צריכה להכיר את כל שפות העולם בשביל לדעת להתאים את הממשק לשפה.

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

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

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

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

מי יודע ?

A consensus means that everyone agrees to say collectively what no one believes individually — Abba Eban

כיום אנחנו נמצאים במצב בו כאשר אנחנו רוצים לדעת משהו אנחנו הולכים לWikipedia בשביל ללמוד עליו מידע. יש כאלו שידברו על חכמת ההמון ששווה הרבה יותר מחכמת היחיד, ועוד הרבה תאורטיות שונות ומשונות. אבל כאשר אנחנו מדברים על השפה השגורה בפינו -> עברית, נמצא הרבה בעיות.

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

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

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

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

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

מוקדש כחומר למחשבה.

Byte Marks

BOM הוא קיצור ל Byte Order Mark, אשר מתלבש בד"כ על קבצי טקסט בהתחלה שלהם, ואם לא יודעים לטפל בו הוא עושה שמות במה שעשינו, אבל כאשר יודעים לטפל בו, הוא מסביר לנו מה הקידוד של הטקסט בקובץ והסדר שלו, במידה ויש הבדל בין אינדיאנים גדולים וקטנים.

אז למה הוא עושה שמות במה שעשינו ? ובכן זה אוסף של בין 2 ל4 תווים אשר בייחד מסבירים מה הקידוד, אם זה UTF-8, UTF-16, UTF32 וכו'. כאשר UTF-16 ו32 יכולים להיות ב2 סוגי אינדיאנים והסימני בתים בעצם מסבירים מול מה אנחנו מתמודדים. כאשר יש צורך לעבוד עם UTF-7 (לא באמת חלק מהחבורה של UTF-8, אלא אח חורג), אז ההתנהגות של BOM קצת שונה והוא יכול להגיע עם עוד בית נוסף (עזבו, אל תכנסו לכאב ראש הזה של UTF-7, אלא אם אין ברירה).

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

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

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

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

תרומת תרגום ללזרוס

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

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

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

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

מי מפחד מעברית חלק 2

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

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

מי מפחד מעברית ?

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

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

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

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

לזרוס בעברית

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

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

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

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

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

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

מגדל בבל או אפקט היוניקוד

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

אני לא מספר את הסיפור בגלל ראש השנה המגיע אלינו (שנה טובה ד"א), אלא בגלל שלאחרונה אני רואה הרבה ניסיונות שונים בעולם הפיתוח לתת דגש טוב יותר לשפות בני האדם השונות.

כתבתי לאחרונה על הניסיונות של FPC, ומסתבר שגם CodeGear עשו עבודה ממש מעניינת בתמיכה זו עם דלפי ו C++ Builder גרסה 2009.

מסתבר ש CodeGear הלכו צעד מאוד מאוד רחוק עם דלפי וסביבת ה ++C שלהם, ויצרו תמיכה מובנת במתן שמות טבעיים בשפות שונות. למשל נוכל לתת שם קובץ בדלפי בשם "עברית.pas" ולעשות לו uses עברית; והמהדר ידע לעבוד עם זה !

אותו הדבר מבחינת שמות משתנים ועוד. אני אישית כמובן חושב שזה לא רעיון טוב לצאת מעולם ה ASCII בצורה הזו, היות ואנחנו נקבל קוד שלא ניתן לתחזק אותו. הרי אני לא יודע קירילית כמעט בכלל, שלא לדבר על יפנית סינית, קוריאנית וכו'. גם ככה אני מוצא את עצמי מתקשה להבין שמות שכתובים בשפה לטנית שהיא לא באנגלית, אז מה יקרה כאשר אני אקבל קוד שהוא 3/4 סינית ? הרי המושג "זה סינית בשבילי" יקבל משמעות חדשה …

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

http://windemo1.codegear.com/Tiburon/LaunchReplays/ASCIInew/ASCIInew.html

אזהרה: אורך הסרטון הוא כ55 דקות !

אבל התכוונתי שרזית…

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

בזמן האחרון חזרתי לאתר Live Mocha בשביל להמשיך את לימודי בענייני פורטוגזית, רק בשביל לגלות שאני מתבלבל בין 2 מילים מאוד חשובות (בייחוד כשאתה פוגש נשים): "רזה" ו"שמנה" (שניהם כמובן בלשון נקבה במקרה הזה).

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

פורטוגזית קשה שפה 🙂

RAD זו לא רק סביבה

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

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

אני רואה את השאלה של למה צריך את זה… אוקי, נגיד והמדיניות של המוצר שאת/ה מפתח/ת כרגע היא להכניס לקובץ כל חריגה שמתרחשת בתוכנית. עכשיו כל מקום שיש חריגה צריך להוסיף גם קריאה למתודה שתשים את החריגה בקובץ. נגיד למשל שמדובר בג'אווה ואנחנו מתעסקים עם log4j.
להמשיך לקרוא