בואו, יש מכות!
נכתב ב-2 בדצמבר 2007, 23:19 | על-ידי לירון | קטגוריות: כללי
7
וירטואליות, כמובן.
אזהרה: פוסט טכני-פוליטי-בלוגוספרי-אידאולוגי, מנוסח בכבדות יחסית, על שני הפוסטים האלה. למטיבי לכת בלבד.
שניים מהאנשים הדומיננטיים בקהילת הקוד הפתוח, רן יניב הרטשטיין, שתרגם את הוורדפרס עליו רץ בלוג זה ממש, ובלוגים ישראלים רבים אחרים גם הם, ותומר כהן, שבין שאר מעלותיו ותרומותיו, הוא אחד ממובילי מוזילה ישראל (או המוביל הראשי? אולי אני לא מעודכן?).
הכל התחיל בפוסט של תומר, על הפרה-הסטוריה של וורדפרס בעברית. הפוסט היה מאוד מעניין, לדעתי, וגם היו בו נקודות רבות שאני מסכים איתן, כמו שאפשר לראות בתגובה שהשארתי שם. נכון, הפוסט היה קצת עוקצני, אני לא הייתי מנסח אותו ככה, אבל זה לא ממש משנה.
למרות זאת, כנראה שהוא גם היה מקומם: רן יניב הרטשטיין, למשל, הגיב בבלוג שלו די בחריפות (לטעמי), לפוסט של תומר בכלל ולטענות שהוא ראה כקטנוניות, שגויות, או לא ענייניות (אלו שלפי דעתו תומר מעלה כי הוא מריר על כך שהוא לא מקבל קרדיט על התרגום ההוא). גם לרן יש כמה נקודות מעניינות שתומר לא התייחס אליהן, במיוחד עניין השימושיות של התרגום עבור משתמשים רגילים, שמדבר אלי, כי אני נתקל בהמון פרויקטי קוד פתוח שניכר בהם שהם נכתבו ע"י מפתחים, עבור מפתחים, ולא עבור משתמשים, וזה מפריע לי. הגרסה המתורגמת של רן היא באמת פשוטה להדהים, ומגיע לו המון קרדיט על זה. ניסיתי לא מעט מערכות webיות מכל מני סוגים, וההתקנה של רובן היא כאב ראש עצום, במיוחד אם אתה רוצה עברית. וורדפרס בעברית מגיע עם עברית תקינה מהקופסא, כמו שצריך.
אני לא אסכם כאן בשתי מילים את הדיון כי אתם יכולים ללחוץ על הלינקים. תקראו ותחזרו, אם בא לכם.
אז מה אני חושב? אני חושב שלריב זה דבילי. לא שאני אומר ששני האנשים האלה, או אפילו אחד מהם, דבילים – עם שניהם יצא לי להתכתב פה ושם, והתרשמתי משניהם (מוזר ככל שזה יהיה לכתוב את זה כשאני יודע שהם יקראו את זה כשהם יראו את הטראקבק). אבל גם אנשים חכמים ומוכשרים נופלים לפח הזה – מריבה תמיד מדרדרת את הדיון לנקודות הקטנוניות, במקום לקדם את הפרויקט עצמו.
מהצד הטכני, שניהם צודקים, לפחות חלקית. אני לא אוהב forkים בלי סיבה טובה. למה לפצל פרויקט ואז לתחזק גרסה משלך, ואז לטרוח לסנכרן אותה כל הזמן מול הקוד של הפרויקט הראשי? ואז אם נמאס לך לפתח את זה, לתקוע את המשתמשים (זה לא לגמרי לתקוע, כי כביכול כל אחד יכול להרים את הכפפה, אבל במציאות זה לא קורה בהרבה מקרים)? מצד שני, שימושיות ונוחות! אין ספק שזה חשוב. אבל האם באמת אחד בא על חשבון השני?
השאלה האמיתית היא: עד כמה מפתחי WordPress פתוחים להצעות, שינויים, תיקונים, פאטצ'ים וכו'? הרי אין באמת מניעה טכנית לעשות התקנה שתהיה קלה ופשוטה, עם עברית משולבת, שתגיע ישר מהאתר של וורדפרס ה"מקורי", שרק קבצי השפה והתבנית שונים בה. ההוכחה: Firefox. בא עם עברית ישר מהקופסה. אפשר גם להסתכל על Windows, רחמנא ליצלן: מאז Windows 2000 אין דבר כזה "Hebrew Enabled" – כל גרסאות ווינדוז תומכות בעברית בצורה מלאה. השאלה היא רק שאלה של ממשק, וגם שם אפשר להתקין ממשק עברי על מערכת אנגלית קיימת. יש גם דוגמאות קרוב לבית, כמו FireStats של עמרי ידן, שיש לו עברית ואנגלית באותה חבילה. אבל אני סוטה מהנושא.
אם היינו רוצים לעשות שוורדפרס יתמוך בעברית מהקופסא, היינו צריכים לתכנן איך זה צריך להראות כך שזה לא דורס את התמיכה באנגלית, וליצור Patch כזה למערכת המקורית. זה הכל. אני אומר "זה הכל" קצת בציניות, כי זה הרבה עבודה, ולא בטוח שיקבלו את זה בכלל, כי מי שם על השניים וחצי ישראלים שמשתמשים ב-WP, ביחס לשאר העולם? אבל שווה לנסות, ואם נעשה את זה טוב, זה יכול להיות רלוונטי לעוד שפות, ואז יהיה לחץ לקבל את זה.
פיצול לפרויקט נפרד הוא חכם רק אם זה בלתי אפשרי. יש כמה סיבות לזה שזה יהיה בלתי אפשרי: אולי הם לא מוכנים לקבל כזה פאטץ', אולי זה הרבה עבודה לכתוב אותו ולאף אחד בארץ אין כוח וזמן לזה, ואולי קצת משניהם. במקרה כזה, באמת כדאי לפצל את הקוד.
אני לא יודע מה המצב עם וורדפרס, ואם זה יהיה אפשרי או לא, אבל לדעתי הצנועה, אפשר להוסיף עוד מסך להתקנה שבו המשתמש יצטרך לבחור את השפה שבה הוא רוצה להשתמש, ואז ההתקנה תתחבר לאינטרנט ותוריד את הקובץ המתאים. למשתמשים ברשת פנימית תהיה אפשרות להוריד את הקובץ ידנית, או להוריד מראש התקנה עם השפה שלהם כבר בפנים. יש אפשרויות. צריך לחשוב, לתכנן, ליישם ולהציע. ואז כל מה שהמתרגם לעברית יצטרך לעשות בכל גרסה זה לעדכן את קבצי השפה, וזהו. בלי תיקונים נקודתיים, כי הם יהיו כבר בקוד. ואם צריך תיקון נקודתי, אז מודיעים למפתחים, והם מתקנים, כמו כל באג אחר. כשאני תרגמתי את e107, ככה זה היה. שלחתי להם תיקוני באגים שקשורים לעברית, ולרוב הם תיקנו מהר. בפעם הראשונה, עשיתי המון תיקונים בקוד הראשי, אבל בגרסה האחרונה שתרגמתי, כבר הייתי צריך לשחרר רק קבצי שפה ועיצוב.
הבעיה היא לא עם וורדפרס, או עם רן ותומר, או עם ישראל. הבעיה היא עם הגישה של כמעט כל פרויקט קוד פתוח ללוקליזציה ואינטרנציונליזציה – או עם חוסר הגישה, בעצם. רוב הפרויקטים מתחילים בקטן, בלי תכנון, ורק בשפת אמם. אחרי כמה גרסאות, המפתח רואה שיש עניין, ומוסיף תמיכה כלשהי בקבצי שפה, בד"כ ע"י הוצאת הטקסט מהקוד אל קבצים חיצוניים. המפתח, שלרוב (בארצות דוברות האנגלית) מכיר רק שפה אחת, חושב שבכך העניין הסתיים. אין התייחסות לריבוי משמעות (למשל, ש-Display יכול להיות גם "הצג" כשהוא על כפתור וגם "תצוגה" כשהוא בכותרת של חלון), לכיווניות, ועוד הרבה דברים. כאן יש צומת, שהכיוון שאליו ממשיכים ממנה תלוי במשתמשים ובמפתחים גם יחד: אם המשתמשים ידרשו עוד פיצ'רים של לוקליזציה, והמפתחים יכירו בחשיבות של זה, אז יש מצב לפרויקט באמת localizable (בר-ליקוּל? או לעברית, בר-גיור?), ואם לא תהיה דרישה או לא תהיה היענות, אז או שהמשתמשים יזנחו את המערכת הזאת ויעברו לאחרת, או שמישהו ישב ויתחזק fork משלו.
אנחנו, כמשתמשים הישראלים, שנמצאים במקום הכי קשה מהבחינה הזאת (גם שפה שכל התווים שלה לא נמצאים ב-latin1, גם שפה בכיווניות ימין לשמאל, וגם מעט מדי משתמשים מכדי להרשים את רוב המפתחים), צריכים, כמו שכתבתי בתגובה שלי אצל תומר, להתאגד ולעשות משהו מסודר שלנו. איזה אינדקס תרגומים, דף בית למתרגמים, דף חיפוש למשתמשים (ומשתמשים עתידיים). מקום שבו מתרגם חדש יוכל ללמוד כיצד לתרגם, ולא רק ש-"hello" זה "שלום", אלא גם איך לתרגם תוכנת קוד פתוח – מה למסור למפתח, למה לדאוג בתוך החבילה שלו, איך לדבר עם המפתחים, וכו', וכן, גם ביקורת עמיתים – יש לא מעט תרגומים עבריים ברמה נמוכה, ואני חושב שרוב המתרגמים המתנדבים מאוד פתוחים ללמוד ולהשתפר – אם הם יקבלו הערות חבריות על הסגנון שלהם, על האיות שלהם, על הדקדוק שלהם, וכמובן, גם על כמה קל להתקין אותו (אם צריך שורת פקודה בשביל זה, אתה מקבל אצלי סמיילי עצוב!), ומצד שני, המשתמשים יוכלו לראות עד כמה טוב התרגום של המערכת שהם עומדים להוריד, לפני שהם מורידים אותה, כולנו נרוויח.
הבוטום ליין שלי לגבי תומר ורן: כמו שכתבתי, שניהם צודקים. אני חושב שהמקרה הזה, שהוא מאוד בולט כי מדובר במערכת מאוד פופולרית ושני אנשים מאוד מרכזיים, צריך להפוך לדוגמא מדוע צריך משהו ריכוזי ומסודר יותר, שאולי תעזור להתניע את זה. למה זה לא זז? נראה לי שכל המתרגמים חושבים שעדיף להשקיע זמן בתרגום מאשר ב-meta-עבודת תרגום, וזה תמיד ב"מתישהו". אז די, עכשיו זה הזמן. אני מוכן לעזור, ברעיונות לפחות, ואולי גם יותר.
האם מישהו ירים את הכפפה?
טוב לדעת שיש אנשים שרואים את המטרה של הפוסט אצלי, ולא מושכים אותו לכיוונים אישיים כפי שרן יניב הרטשטיין ואורי שרף עשו. הפוסט אצלי אולי היה בוטא מידי, אבל נועד לדבר אחד – להציג את דעתי על פיצול פרוייקטים ואיך לדעתי אסור לנהל פרוייקט לוקליזציה. לא אמרתי שהשיטה שאני ניהלתי את התרגום עדיפה, אבל זה היה הצעד הראשון לקראת הפיכת המערכת למבוססת רב־שפה.
בשבוע שעבר מאז הפוסט אצלי דיברתי עם כמה אנשים שהביעו התעניינות בהרמת אתר־על לפרוייקטים ותתי פרוייקטים בקוד פתוח ישראלים. ביחד אנחנו יכולים לאחד את הקהילה, ביחד אנחנו יכולים לסייע לפרוייקטים ללכת בדרך הנכונה, וביחד אנחנו יכולים למנוע עבודה כפולה על פרוייקטים בקוד פתוח.
אני חושב שהמטרה היא שהתמיכה בעברית תמומש בספריות הנמוכות כמו pango,
ומפתח האפליקציה לא יצטרך לכתוב כמעט קוד כדי להכניס תמיכה בשפות כאלו ואחרות.
ברור לי שהעולם לא מושלם, אבל אני חושב שהיום יותר מאי פעם, קל לכתוב קוד גנרי שיתאים לשפות מוזרות למיניהן. מפתח של אפליקציות "היי לוול" לא צריך להתעניין אם יש שפה שהיא latin1 או לא, ובוודאי שלא להתעסק עם אלגוריתמי BIDI.
ורק שתי הערות אגב, קצת מהתנסות אישית, לגבי פורקים:
– לפעמים קל להגיע להרבה חילוקי דעות לגבי הדרך (במיוחד בתחילת הפרוייקט כשאין דיזיין עדיין). אין דרך אחת נכונה למימוש, בני אדם חושבים שונה, ומכאן פורקים זה עניין טבעי מאוד, פלורליזם.
אני מסכים שפורק עבור תרגום בלבד הוא מקרה קיצוני ולא רצוי.
– צריך לזכור שהרבה פרוייקטי תוכנה חופשית הם תחביב של זמן פנוי, ולא תעסוקה. לכן אני לא רואה לנכון לתת ביקורת לאנשים ברמה כזו של "זה לא בסדר שאתה עושה את זה בדרך הזו, אתה פוגע בקהילה". אם הם היו עושים עבודה גרועה, כנראה שלא היו להם משתמשים. אני מסתכל על אדם שמפתח תוכנה לצרכי תחביב בדיוק כמו על אדם שבונה טיסנים ואח"כ מטיס אותם. אם הוא עשה משהו לא טוב, זה לא יטוס. אם מישהו ירצה להשתמש בטיסן – זה משמח. אבל על אחריותו. מותר לתת לו עצות ורעיונות, אבל אין סיבה לגעור בו ולהטיח האשמות.
ותודה לכל מי שמשקיע מזמנו ומשחרר את הקוד שלו ברשיון חופשי.
תומר: נו, אז יאללה. כמו שאמרתי, אני מוכן לעזור.
אורן: נכון, אבל גם אם לא צריך להתעסק עם אלגוריתמי BIDI, עדיין צריך לטרוח לטפל בסטרינגים כ-UTF8, למשל. לא כל מתכנת עושה את זה, אולי אפילו זה נראה להם מיותר. שלא לדבר על דברים שיש באתרי ווב, כמו תמיכה בכיווניות, למשל בג'ימייל, שהרבה זמן צעקו עד שהוסיפו את זה, גם אם באופן חלקי.
לגבי ההערה האחרונה שלך, זה חלק ממה שהתכוונתי אליו כשכתבתי שצריך ללמוד איך לדבר עם המפתחים. טון דידקטי וניסוח שאומר "אתה חייב לי משהו" יוצרים אנטגוניזם, וכדאי להמנע מהם. ובקשר ללהפנות את הגישה הזאת למתרגמים, נכון, צריך להודות לכל מי שתורם, אבל עדיין אפשר להעיר לו אם זה במקום, ובצורה מכובדת. למה אנחנו יכולים לבקר מפתח שישאיר חורי אבטחה בתוכנה שלו, אבל לא מתרגם שעלול לפגוע במשתמשים של החבילה שלו? ברור שאני לוקח את זה לקיצוניות, אבל אני מקווה שהכוונה שלי ברורה.
הגרסה העברית פשוטה להתקנה בדיוק כמו הגרסה האנגלית, לא יותר ולא פחות.
הבעיה היא שאין בעיה אחת, שאפשר לראות ושצריך לנצח כדי שאפשר יהיה להמשיך בחיים, יש הרבה בעיות קטנות וקטנוניות שצריך להתמודד אתן כל יום.
הגישה שלך, ולפי התגובה שלו גם של תומר, היא נאיבית ומנותקת לחלוטין מהמציאות של העולם הזה. אין פרוייקט קוד פתוח אחד שלא חופף במידה כזו או אחרת עם המטרות של פרוייקט אחר (או מספר פרוייקטים), וכל הכפפות שתרימו ואתרי העל שתקימו לא ישנו את זה. אף אחד לא עובד בשבילכם וזה לא התפקיד שלהם לנהל אותם או להגיד להם לאן לקחת את הפרוייקטים שלהם.
מעבר לכך, אף מפתח לא יושב ומחכה לכם שתבואו להוריד עבורו את התורה מהר סיני ולהגיד לו לאיזה כיוון לערבב את הקפה ומאיזה צד לשבור את הביצה. הם יודעים את העבודה ומכירים את השיקולים, וכל אחד מקבל את ההחלטות שלדעתו מתאימות לו, לפרוייקט שלו, ולמשתמשים שלו.
נשמע לי שביחד אתם יכולים בעיקר לבזבז לעצמכם את הזמן, ואולי בדרך גם להרגיז את המפתחים שתנסו לעבוד איתם, אבל אני מאוד אשמח אם תצליחו לקחת את זה, מה ש-"זה" לא יהיה, ולעשות מזה משהו טוב.
תומר – המערכת כרגע לא רב לשונית, לכן הצעד שלקחת לא היה רחוק או גדול מספיק, או שלא התמדת בו מספיק. מעבר לכך, העבודה שאני עשיתי היא חשובה לא פחות בתהליך הזה, וגם היא עדיין לא הובילה לרב לשוניות של וורדפרס, אז כנראה שחסר משהו בלוגיקה שלך.
ואל תהיה כל כך תמים – הפוסט שלך היה ארסי וציני. זה היה אישי עבורך הרבה לפני שפרסמת אותו.
רן, אולי אני באמת נאיבי, אבל אני מסתמך על הניסיון (האולי מועט) שלי עם תרגום של מערכות קוד פתוח מבוססות ווב. כשאני הצעתי תיקונים, החל מטקסטים שהיו בתוך הקוד ולא בקובץ התרגום, ועד תמיכה יותר רחבה בכיווניות, בד"כ קיבלו את ההצעות שלי. אני לא מכיר את המפתחים של וורדפרס, ממש לא, אני לא יודע אם הם פתוחים לזה או לא, כמו שגם כתבתי בפוסט.
הרעיון שלי הוא לא "להגיד לאנשים מה לעשות", אלא להציע. הכל זה בהתנדבות. אף אחד לא בא לנהל אף אחד אחר, ומי שחושב ככה, שישתה כוס מים וירגע. רוב המפתחים שיצא לי לתקשר איתם שמחו לראות שהתוכנה שלהם נפתחת לקהל חדש, והיו מוכנים לשנות פה ושם דברים בשביל זה (במיוחד שאלו שינויים שמיטיבים על כל המשתמשים, לא רק דוברי העברית), וגם רוב המתרגמים שעבדתי איתם היו מוכנים לקבל עצות והצעות, והרבה פעמים אפילו ביקשו אותם. וכמשתמש, הרבה פעמים רציתי לדעת אם תרגום של מערכת שווה משהו לפני שהורדתי אותה. ככה שנראה לי שכל הצדדים ישמחו לקצת יותר שיתוף פעולה ידידותי. ושוב, מי שלא ידידותי, אין לו מקום במיזם הזה, כמו שאני מדמיין אותו.
אתה בעצמך, כמתרגם, לא רצית לפעמים מקום להתייעץ בו על תרגום של מונח מסוים? אני יודע שאני רציתי. וזה חסר לי מאוד בנוף הישראלי. ותקן אותי אם אני טועה, אבל אתה גם בטח היית מעדיף שכל עבודת התרגום שלך, כשיוצאת גרסה חדשה, היתה לעדכן את קבצי השפה, לעדכן theme, ואולי לזרוק פנימה תוסף כלשהו שהוא באמת ספציפי לעברית, כמו הניקוד או כיווניות התגובות. שוב, אני לא יודע אם זה אפשרי ב-WP, אבל אני לא מדבר רק עליה. לא חסרות מערכות שמתורגמות לעברית, מכל המינים והסוגים.
ושוב, אף אחד לא בא לנהל אף אחד אחר. אבל למי שרוצה עזרה, ראוי שיהיה מקום שבו הוא יוכל לקבל אותה. אני ואתה ותומר יודעים איך למסור פאצ'ים למפתחים בחו"ל, ויודעים לתכנת מספיק בשביל לדעת איך לתקן קוד, אבל לא כולם כמונו, ויש מתרגמים שמכיוון שהם לא מכירים את האופציה, אפילו לא שוקלים אותה. אני מאמין שרובם ישמחו לעצות ועזרה שבאים ללא התנשאות (ואחזור שוב: מי שבא עם התנשאות, אין לו מקום בעניין הזה).
כל זה טוב ויפה, אבל זה לא ממש קשור למה שתיארת בפוסט ובכלל לא קשור למה שאני כתבתי בתגובה.
אולי כדאי שתמשיך/כו לפתח את הרעיון הזה ולכתוב עליו, אפילו אם בסופו של דבר לא תקדמו אותו בעצמכם בשום צורה. מישהו בסופו של דבר ירוץ עם זה, בין אם זה אתה/ם או מישהו אחר.
עדיין, לי זה נשמע כאילו יש לכם כמה רעיונות מאוד ברורים ודוגמטיים לגבי איך דברים צרכים להראות בגיור בפרט ובקוד פתוח בכלל, ואתם רוצים להאיר את עיניהם של החשוכים שעדיין עושים את זה אחרת.
אני לא חושב שיש את "התשובה האחת והיחידה". לכל דבר יש יתרונות וחסרונות. ל-fork יש יתרונות וחסרונות, ולהטמעה בחבילה המקורית יש יתרונות וחסרונות. וברור שיש עוד נושאים פשוט לקחתי את זה כדוגמא כי נראה לי שזה הנושא שתפס כאן את מרכז הבמה. בכל אופן, הכל תלוי בפרויקט הספציפי שעליו מדובר, לפעמים זה עדיף ולפעמים זה.
הבעיה שלי היא עם אנשים שלא בוחרים דרך, אלא מחליטים שרירותית, בין אם בגלל שהם לא מכירים דרך אחרת, או מכל סיבה אחרת. אני חושב שהחלטות, בכלל בחיים, צריכות לנבוע משיקולים ענייניים. וכאן יש מקום לדיון ועצות, למי שרוצה לקבל כאלה. בלי להכריח אף אחד. אני לא יודע איך זה לתחזק את התרגום של וורדפרס, או של phpBB, או של פיירפוקס, ולכן אני לא מדבר ספציפית על אף אחד מהם, אבל באופן כללי, יש קווים מקבילים בין גיור של פרויקט קוד פתוח אחד לאחר. חבל שכל אחד "ילמד מחדש" בעצמו במקום להנות מנסיון של אחרים.
אני מתנצל אם זה נשמע כאילו אני רוצה לדחוף למישהו לגרון את הדעות שלי בכוח – זה לא המצב. כמו שכתבתי בערך 300 פעם, אין מקום לגישה של "מנהל" ולהתנשאות בעולם הקוד הפתוח, שבו כולם עובדים בהתנדבות, אבל יש מקום להצעת עזרה והבעת דעה (והקשבה מצד אלו שמקבלים את העצה).