עידו קנר פירסם על ייתרונותיו של הSVG לעומת הפלש, כאשר אחד הטיעונים המרכזים הוא היותו תקן רשמי של W3C. השאלה האם עוד תקן, שאין באמת חובה לעמוד בו, יהיה טוב?
התקנים שW3C מוציא הם בגדר המלצות ולא תקנים, ואין שום מניע מאף חברה לקרוא למוצר שלה בשם התקן למרות שהיא לא ממשת במלואו, ואף "משפרת" אותו לצרכיה. הדוגמה הידועה היא עם תקני הHTML והג'אווה סקריפט שיוצרים כאב ראש להרבה מפתחי ווב.
אולם לא בכל תחום כך הדבר.
אם זכור לי נכון, כדי שקומפיילר לשפת C ייקרא כך, הוא דרוש לעבור סדרה גדולה של מבחנים שיאמתו שהוא תואם לתקן, וכך נוצרה אחידות בתחום (מיקרוסופט אומנם החליטה שפונקציות לא חייבות להחזיר ערך אבל הקומפיילר שלה עדיין יכול לקמפל קוד תקני).
פלש אינו תקן, אולם היותו מפותח במקום אחד מקנה לו יתרונות. אומנם המימוש המרכזי אינו קוד פתוח, אולם המפרט כן, ואולי בהמשך הוא כן יהפוך. אומנם SVG יותר טבעי בדפדפנים מסוימים, אבל עדיין עדיף להשתמש בפלש.
לדעתי בכלל כדאי שיאמצו את נושא בדיקות התקנים לכל התקנים. הסיבה שיש תקנים היא להבטיח שאתה מקבל מוצר בעל איכות מסוימת, אבל אם אין שום חובה לעמוד בו ובכל זאת לקרוא לו תקן, אז גם המוצרים לא יהיו באיכות המינימלית, והם נהפכים ללא רלוונטים.
לארגון תקינת האנטרנט יש אומנם בודקים לפורמטים השונים, אולם לא למימושים, ובכל זאת עדיין מדובר בהמלצות.
לא רק שכל המערכת מידי פעם קורסת, גם שהייתי במפגש אובונטו, בסה"כ סגרו לי את הסך של הנייד, ושהחזרתי אותו, מסתבר שאובונטו לא יודע להתעורר מהמצב, והציג המון שגיאות בקונסול על המסך.
אומנם נהוג שהקהילה לוקחת חלק בQA, אבל עדיין, לשם כך קיימות גרסאות האלפה בטא וRC. למה לשחרר משהו בטענה שהוא גרסא סופית מבלי שנבדק ותוקן כמו שצריך?
אובונטו אומנם עזרו להכנסת הלינוקס לבתים, אבל בכיוון השני יוצרים נזקים דיי כבדים שרק יבריחו משתמשים.
חשבתי שאולי סוזה ומנדריבה יהיו הרבה יותר טובים, כי בסה"כ יש להם הרבה לקוחות בתשלום שהם מקבלים מהם תמיכה, כולל ארגונים גדולים, אבל התאכזבתי.
התקנתי את אופן סוזה 10.3, ומצאתי אחרי ההתקנה את הבעיה הזו:
יש לי חבר שמשוכנע שלינוקס, PHP ועוד טכנולוגיות נוספות שאינן מבית מיקרוסופט, ימותו, וכל העולם יעבור למיקרוסופט. הטענה העיקרית שלו היא ההתפתחות של דוט נט שבכל מחזור נוספים המון תכונות ושיפורים, ואף זלזל בטענות הנגד עקב דברים שקיימים בדוט נט ואני לא מכיר מוצר דומה בPHP לדוגמה. מה שנפלתי בדיון הוא בהבהרה של נושא הקהילה. למה ששפה או טכנולוגיה כלשהיא תמות אם יש קהילה שאוהבת ומפתחת אותה?
קהילה תורמת המון להישארות שפה או טכנולוגיה במגוון דרכים:
פיתוח של השפה עצמה. אם הם חושבים שצריך להוסיף משהו, מה ימנע מהם להוסיף? ואם באמת יש משהו אצל ה"מתחרה" שעדיין אין אצלה, והם רואים בו משהו חשוב, אז אין שום סיבה שבמוקדם או במאוחר הוא לא יגיע.
מקומות עבודה, אנשי הקהילה שמגיעים למעמד להיות בעלי החופש לבחור את הטכנולוגיה בחברה שלהם או מקימים אחת כזו בעצמם, יבחרו את השפה שהם אוהבים, וכך יעלו את הדרישה לשפה בקרב מחפשי העבודה, ואף יכניסו אנשים חדשים לתוכה, אם הם מוכנים שילמדו אותה שם. העובדה שהשפה נחשבת "ישנה" לא תמנע מאף אחד להקים את הסטארטאפ שלו באמצעותה.
תמיכה - אתרי אנטרנט, פורמים, אפילו מודעות דרושים כל אלה תורמים לרוח החיה שלה.
כמובן, יש סיבות שיכולות לפגוע קשות בשפה, ויותר חשוב בקהילה שלה, כמו היותה תלויה בחברה אחת שמפתחת אותה בקוד סגור, ועקב פעולות שונות יכולה לפגוע מאוד בקהילה ולצמצם אותה מהר מאוד, למרות אהבת האנשים אל אותה שפה.
קהילה היא דבר חשוב מאוד לשמירת השפה, וגם היא השפה מעולה בהעדר קהילה, אז לא יצפה לה עתיד מזהיר. דוגמא קלאסית לכך היא שפת עדה. באמצע המאה הקודמת, היה משבר גדול בתחום שפות התכנות. שפת התכנות הנפוצה אומנם היתה C, אבל בהיעדר תקן, כל חברה לקחה אותה ושינתה אותה, ובעצם יצרה שפה חדשה הדומה לC. מה שדרש ממתכנתים שעוברים מחברה לחברה ללמוד מחדש את השפה, והיו חברות שכתבו פרוייקטי ענק באסמבלר מסיבות אלה ההשקעה בפיתוח עלתה פי כמה וכמה מעלויות החומרה. כתוצאה מיכך משרד ההגנה של ארה"ב רצה שתיהיה שפה חדשה שתכיל עקרונות פיתוח חדשים, ואף ניסה כמה שיותר שתיהיה בינלאומית ע"י פתיחת תכנון השפה לכולם וקבלת מתכננים מחוץ לאמריקה. עדה היתה שפה מעולה, אולם אחת הסיבות לירידתה היא שאנשים אהבו את שפות הC ונולדה סי++ זמן לא רב אחרי, ולכן לא נוצרה קהילה חזקה שהוביל לדעיכת השפה.
דוגמה הפוכה לקהילה שנפגעה היא פסקל או גרסאת ההמשך שלה OOפסקל. בורלנד הוציאה גרסה חינמית לדלפי וגרסה בתשלום עם תוספות, אולם אחרי זמן מה הקהילה פיתחה את את התוספות של הגרסה בתשלום ואז לא היתה סיבה לקנות אותה. כתוצאה מיכך בורלנד החליטה לסגור את הגרסה החינמית, וכך פגעה קשות בקהילה עד כמעט העלמתה. (המפתחים של דלפי עברו לפתח את C# של מיקרוסופט).
אבל מסתבר שאם יש קהילה טובה, אין שום סיבה בעולם ששפה תמות. אנשים שאהבו את פסקל, התחילו לפתח תחליף בשם Free Pascal ואף הוא קיבל ייתרונות שלא היה לשפה מיקודם, כמו לכתוב פעם אחת ולקמפל את אותו קוד בכל מקום. גם את הIDE של דלפי התחילו ליצור תחליף בשם לזרוס. וככה הקהילה ממשיכה לקדם ולחזק את פסקל.
השפה לא נשארה מאחור, וממשיכה להתקדם ולהתרענן. ויש לה גם קהילה גדולה שעושה משחקים, והוציאה הרבה משחקים יפים. לכן, אין שום סיבה שאף שפה תמות, וגודל הקהילה שלה לא צריך להשפיע עליכם בבחרית השפה, כי אתם חלק ממנה, ותורמים לגדילתה.
התחלנו להקים, להשיב, ולשקם את הקהילה בארץ, ולבנתיים הקמנו רק ערוץ IRC שנמצא בirc.freenode.net #fpc-il. אם אתם יודעים קצת פסקל, גם אם הוא ישן, או סתם מתעניינים בשפות ואו רוצים לעזור להקמת קהילה מוזמנים להצטרף.
שיהיו מספיק אנשים פעילים, נוכל ביחד לקדם בצורה הרבה יותר טובה. (אתר אנטרנט וכו')
מה לי ולפסקל?
בעקרון אין, אני לא יודע פסקל, לא למדתי, ורק לפני פחות משבוע עשיתי תוכנית ניסוי ראשונה שלי.
למרות זאת, אני מעוניין בקידומה מהסיבות הבאות:
רוב השפות של היום נהיות "וירטואליות" יותר ויותר, דינמיות ולכן פחות יעילות וכתוצאה מיכך ידרשו יותר משאבים, אומנם במקרים רבים זה יקל מאוד את זמן הפיתוח, אבל זה לא מדד עיקרי, ובנוסף לכך עם כלים טובים, ניתן גם בכלים טובים להגיע לתוצאות מהירות בשפות "מסורתיות"
יש ייתרון רב בכך שניתן לקמפל לכל סביבה, ולכל ערכת פקדים, *מבלי לשנות שורה אחת* של קוד, אין צורך לציין להשתמש בGTK או QT בקוד, אלא רק בקימפול, ואז ניתן לחסוך את המצב כיום, שבו שבד"כ מערבבים בסיביבה אחת תוכניות מערכות פקדים שונות כי ככה באה התוכנה, והסבה שלהם לערכה אחרת, יהיה תהליך מורכב מאוד עקב שינויים נרחבים בקוד.
השפות המובילות בשפות ה"מסורתיות" (כאלו שמקמפלות לאסמבלי של המעבד) הן C וC++ . הבעיה איתן שהן לא מפותחת בצורה מרוכזת, ויותר נכון אין אינן מפותחות. ישנו תקן שמגדיר אותם, וכל השאר זה ספריות שאנשים וחבברות יצרו, מה שיוצר מגוון רחב של ספריות שעושות דברים דומים, ולכן זה יוצר קצת "בלאגן"
תכונה זאת נוספה בCSS3 ע"י הוספת המילה לשפה ::selection , תכונהשאומנם נראית לא שימושית, אולם תאפשר לפקצות לעשות את הבלוג שלהם,צבעוני יותר, ואם הרבה יותר צבעים מתחלפים.
נהוג להציג את פיירפוקס כאחד שפועל לפי תקנים, אולם שהסתכלתי בקוד של הדף, מסתבר שמוזילה החליטו שהתקן אינו מתאים להם ושינו את המילה ל::-moz-selection
להגדיר יעדים לשנה שלמה, זה לא משהו קל, אולם כאשר בכל זאת עושים זאת, הם לא בהכרח רלוונטיים או יותר נכון, הערכת הזמנים לא נכונה.
בתחילת השנה הגדרתי לי יעדים שאני רוצה להגשים, ובמקום להגיע אליהם בסוף השנה…. הגעתי אחרי חודש בלבד!
אתר גדול הוגדר אז כאתר שמופיע בתוצאות הראשונות בגוגל בתחום שלו בתוספת המילה news. האתר הראשון בלינוקס בקטגוריה זו הוא lyxer. שלחתי את הכתבה לשם ומשום מה, הם החליטו לאשר אותו. ביומיים שאחרי זה נכנסו כ300 בני אדם מ31 מדינות שונות מיכל היבשות. הגיעו אליו גם מאתרים גדולים אחרים.
אני רוצה להודות גם לשלומי פיש, על עבודתו הרבה שם, למצוא המוני בעיות דקדוק שהיו בו, ובכללי על שאר התיקונים שמצא באתר.
לכן, מכיוון שהשנה עוד ארוכה, יש צורך להגדיר יעדים, ממש גדולים לסוף השנה.
לפני כשבועיים, הודעתי על החלטתי להיות יזם. יש לי רעיון לאפליקציה מסוימת, אבל כמנהג אתרי הווב 2, והצורך לטפח קהילה סביב האתר, רצוי לפתח רשת חברתית שתהיה בתוכה. הרי כל אתר כיום כולל בתוכו משתמשים עם יכולת לתקשר בין אחד לשני, פורמים ויקי ועוד…
בינתיים התחלתי לפתח את האפליקציה ישירות בלי שימוש באף פריים וורק או מערכת מוכנה.
אבל אם יש דברים מוכנים, למה לפתח מאפס?
יש המון מערכות תוכן פתוחות כדוגמת ג'ומלה, דרופל ואף וורדפרס, אולם מכיוון שאני בסה"כ כותב אפליקציה ורוצה שתהייה מסביבה קהילה, אני לא בטוח אם נכון להשתמש במערכת *תוכן*.
עשיתי חיפוש בגוגל לרשתות חברתיות פתוחות. אחת התוצאות הובילה אותי לרשימה גדולה של מערכות כאלו אולם רובן לא היו בשלות. הרשת הכי בשלה שראיתי זו elgg, לא היה מסובך להתקין אותה, אבל משום מה היא לא הפעילה את התבנית, ואז היא פעלה בלי עיצוב, וזה עוד לפני שבדקתי עד כמה פשוט/מסובך להרחיב אותה.
חשבתי גם להשתמש רק בפריים וורק ולפתח משהו מחדש, אולי לבדוק את PHP Cake, אף שזה עדיין יותר מורכב מלמצוא רשת קיימת ורק לראות איך להתחבר אליה. מצד שני תהייה יותר גמישות.
מרכז האתר לא יהיה האפליקציה, ואני מתכוון אחרי זה לפתח עוד מספר אפליקציות קשורות.
The great benefit of open source is that it doesn't depend on one supplier whether it is a person, a group or a company. therefore if this supplier retires anyone who have an interest in the project can take it and keep it alive. Open source have only four simple rules, is it so hard to remember?