לתמוך או לא לתמוך, זאת השאלה (ב־Win32)?

ב־6.8.2009, מאת ארתיום; פורסם תחת: תכנה חופשית, אינטרנט, לינוקס, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏; ‏2 תגובות

כפי שפרסמתי בעבר, אני עובד על שינויים בפנימיים עמוקים ב־CppCMS שבין השאר יאפשרו:

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

בגלל שאני עושה שינויים כל־כך מהותיים, חשבתי, אולי להוסיף גם תמיכה בעוד פלטפורמה בנוסף לתמיכה ב־Linux,‏ FreeBSD,‏ Solaris ו־Cygwin... להוסיף תמיכה ב־Windows.

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

אבל, בין לבנות משהו שרץ עד לפלטפורמת פיתוח אמתית יש תהום.

דבר ראשון, אפילו אחרי הרבה הסבות, ספק אם אוכל להביא את הפרויקט למצב שבו הוא ייראה "טבעי" בסביבת Windows: קרי פרויקט Visual Studio התקנה וכד'. כי:

  • אני משתמש ב־autotools כי כל כלי אחר עדיין לא מתקרב אליהם (לא CMake ו־bjam לוקים בחסר מבחינת התכונות הנדרשות).
  • כי אני משתמש בספריות iconv,‏ gettext וב־gcrypt שהן לא בדיוק הדבר הטבעי ביותר בסביבה הזו
  • אני משתמש במספר תכונות שקיימות ב־C++0x וברוב הקומפיילרים שיצא לי לעבוד איתם gcc, ‏intel ו־sun studio, אבל לא קיים ב־VS למעט גרסת בטא של VS 2010.

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

בנוסף יש ועוד מגבלות רציניות:

  • סביבת mingw אינה מספקת תמיכה ראויה לשמה ב־locale, כך שאחד המרכיבים שיהיה לי קל מאוד לבנות בסביבת Posix כמו הצגת תאריכים ומספרים בהתאם ל־locale פשוט לא יעבדו בצורה ראויה לשמה בסביבת MingW.
  • ה־API העיקרי ש־CppCMS עובד איתו זה FastCGI ו־SCGI. רק ראשון נתמך ב־IIS אבל גם הוא לא תומך עבודה מעל TCP/IP, כך שברור ש־IIS מחוץ לתמונה -- אפילו אם כל הפרויקט יתקמפל ב־VS; קח שהשרת web היחיד שבא בחשבון הוא Apache שגם עבורו Windows היא לא בדיוק סביבה טבעית.

לתמוך או לא לתמוך? אני ממש מתלבט:

  • מצד אחד זה בדיוק הזמן בו אפשר להכניס תמיכה כזו.
  • מצד שני, להוסיף תמיכה חלקית ב־Windows, זה רק ייצור אשליה של תמיכה כזו, כי בכל אופן הקהל האמתי שיעבוד עם הפרויקט ויינסה להריץ אותו בסביבה אמתית, לא יעשה זאת על Windows.

שאלה קשה...

תגובות

דני, ב־7.8.2009, 18:20

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

אני חושב שמבחינת עלות/תועלת זה לא משתלם.

shlomil, ב־8.8.2009, 14:07

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

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

הוסף תגובה:

 
 כתובת דוא"ל לא תוצג
 

ניתן לכתוב תגובות עם שימוש בתחביר Markdown.

חובה לאפשר JavaScript כדי להגיב.

דפים

נושאים