האם Qt מתה? כנראה שלא

בשנת 2008 חברת Nokia קנתה את חברת Trollteck, חברה נורווגית קטנה שעסקה בפיתוח של ספרייה לבניית יישומים מרובת פלטפורמות. בעברית – a multi platform toolkit library. לאט לאט הם הסבו אותה לפלטפורמה שלהן (Symbian) וגם יצרו סביבת פיתוח קטנה לכלים האלו (כולל אמולטורים וכלי דיבוג מרוחקים). בינתיים, נוקיה בתור חברה שמייצרת מכשירים סלולרים, פשוט התנוונה.

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

הבלוגספירה רואה שמפת הדרכים של Meego (המערכת שנוקיה מפתחת ביחד עם אינטל שהייתה אמורה להיות המערכת הבאה שלהם בסלולרים) די ריקה. במכשירים הבאים אי אפשר להשתמש ב-Qt… זה אומר ש-Qt לאט לאט תגווע גם. הגיוני. אבל לא.

למה? כי Qt4 היא משוחררת תחת רישיון LGPL2.1. ולפני זה הייתה תחת רישיון GPL3 ולפני זה … GPL2. אלו רישיונות חופשיים שמבטיחים את המשך הפיתוח של המוצר גם אם הבעלים לא מעוניין בכל. זה קרה כמה פעמים בעבר: למשל עם xorg, אם OpenOffice, ומי זוכר מה שקרה ל-gcc? ול-emacs?

יש מספיק אנשים שמעוניים בפיתוח של Qt. גם אם נוקיה (ואני שומע מישהו מקליד בתגובות מיקרוסופט…) תפסיק את הפיתוח של Qt4, יהיו מספיק אנשים שיכלו להמשיך את הפיתוח. כל מה שצריך זה לעשות git checkout. בלי קשר, בינתיים אפילו ל- QtSoftware אין מושג מה קורה. כרגיל, החיים מעיינים.

Share

המשך עבודה על hebocr + QHOCR

אני עובר לאט לאט על הקוד שירשתי מהד"ר.

יש לי כמה דברים להגיד על הקוד:

  1. הקוד סופר מסודר. אני לא אוהב את הצורה שבה הוא מפרמט את הקוד, אבל רבק הוא כל כך עקבי שזה פשוט תענוג לקרא את הקוד.
  2. הקוד נורא, נורא קריא. שמות משתמשים מאוד טובים ובאמת אפשר להבין את הקוד רק מלקוא אותו, בלי ניתוח מעמיק. 
  3. למרות כל מה שאמרתי קודם לכן, הקוד מסובל: יש יותר מדי שורות לבנות בקוד ורב הפונקציות לא נכנסות במסך אחד אלא שלוש. בנוסף הוא משתמש סרוגריים מסולסלים גמו שעושים בפסקל ולא כמו שמקובל (למשל) בקרנל של לינוקס. בהתחלה לא אהבתי את השיטה הזאת, אבל למדתי שהיא חוסכת במקום אפקי – מה שהכי חשוב לקוד (יש מסך רחב, הקוד יכול לעבור את שורה 80).
  4. עדיין, עדיין, יש 50 התראות קומפילציה. עוד לא התחלתי לחקור את דליפות הזכרון מפורסמות. זה יהיה תהליך כואב ואני דוחה אותו עד שאני אכיר טיפה את הקוד. מצד שני, אולי בעזרת valgring אני אלמד להכיר את הקוד..
  5. אני ממיר כרגע את הקוד לשימוש בכמה structs ראשיים במקום להעביר המון משתנים קטנים לפונקציות. נראה לי יותר הגיוני וכואב פחות במחסנית, כיוון שאני רק מעביר מצביע ל-struct ולא את התוכן שלו.
  6. יש מלא תווים ב"גופן" של התוכנה שלא ממומשים. הסבר למי שלא עבר כל הקוד: עבור על תו (גליף) ישנה פונקציה  שבודקת אותו ספציפית. כיוון שכל תו נראה שונה תחת typeface שונים, לתוכנה יש אפשרות גם לקבוע גם "גופן לשימוש". כרגע יש ממומש רק "גופן 1" שמתאים ל-sans (או serif…?) בעברית. וגם הוא ממומש חלקית, אני חושב שהשלמת חלק מסימני הפיסוק תהיה משימה טובה עבורי. זה העיקר של הקוד – מה שבאמת חשוב.
  7. כרגע לפי דעתי הכי חשוב זה להשמיש את הממשק משתמש ולהחיות בחזרה את האפשרויות של התוכנה. 

כמו כן, הרצתי doxygen על הקוד שלו וקיבלתי כמה פנינות מאוד מעניינות. הינה דוגמה:


לחץ לקבלת התמונה בגודל מלא

 

אני שולח עדכונים לאתר בכל יום שאני עובד. מי שמעוניין לבדוק את הכל, מומלץ לו שיעדכן את הקוד פעם ביום יומים. הוראות למשיכה של הקוד זמינות באתר הפרוייקט:  http://code.google.com/p/qhocr


Share