יום חמישי, דצמבר 24, 2009

אכזבתי מ Visual Studio Express Edition 2008

כמה נשפך על סביבות פיתוח. יש עשרות ואחת מסביבות הפיתוח הפופאלריות ביותר הינה Visual Studio. סביבה נוחה בעלת מאות פיטצרים שכמעט מהווה אלטרנטיבה לemacs או vim לאנשי הפיתוח במערכות שונות. כנסו לאקדמיה ובדוק מה מלמדים. מה הכלי שכל פקיד (כן סביבה זו ואחרות הפכו את התיכנות מאומנות לעבודה פקידותית) משתמש בה. וכולם יציגו את אותה הסביבה. אמנם יש סביבות אחרות כמו Kdevelop אבל היא השולטת. באם תנסו לדבר עם מרצים או מורים לתוכנה זו תיהיה הבחירה הבודדת שלהם. אבל לבחירה זו יש מחיר כבד:

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

טוב למפתחים כמוני שרגילים לעולם של סיפריות ברישיונות שונים אבל שתמיד ניתן לעבוד בהם. סביבת הפיתוח הזו איננה תומכת בMFC או ATL. ולראיה :
  1. Does Visual C++ 2008 Express Edition include MFC and ATL?

    No, MFC and ATL are not included with Visual C++ 2008 Express. MFC and ATL will be included in Visual Studio 2008 Standard and above editions.

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

נמשיך הלאה מה לגבי ה Debug המצויין שקיים ב VS standart ? אותה מערכת שמושבת כתחליף לGDB וחבריו. שוב פעם אנו רואים כי יש הסרה של פיטצרים חשובים דוגמת חוסר היכולת להתחבר לDLL. אין multi thread debuging , אין spy++ , פשוט תקראו את החלק של הDebuger tools.ממשיכים הלאה מוסרים ממנה האפשרות עריכת Resource , אין Refactoring ,אין עזרה ב exceptions וחסרים עוד המון דברים אחרים.

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

תהרגו אותי אבל אני באמת לא מבין למה אי אפשר ללמוד בכלים חופשים אמיתים כמו Kdevelop כמו Netbeans רחמנה ליצלן אפילו בeclipse ( ממש סבלתי מהסביבה הזאת בפיתוח C++).

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

2 comments:

  1. מספר הערות: זה שאין MFC זה רק טוב. כי MFC זה זבל...

    אבל זה לא עניין.

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

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

    (קרי, תנסה לעבוד עם locale עם gcc, דרך צלחה).

    השבמחק
  2. ארתיום אני מסכים איתך לחלוטין שעדיף שימוש במערכות האחרות לדוגמה אני איש של Kdevelop אבל לאחרונה אני נאלץ לעבוד בביבת וינדוס ובדירשה לעבוד אך ורק עם MSVC. וc סביבת הפיתוח שלהם.

    השבמחק