eshpilen
جمعه 14 خرداد 1389, 23:42 عصر
توضیح: من این مطالب رو در یک فروم پایتون نوشتم اما فکر میکنم برای اینجا هم مفیده.
منتظر نظرات شما هستم.
=========================
بطور مثال من یه زمانی رفتم سراغ Qt و البته از این بابت پشیمون نیستم چون یک چیزی بلدم که باهاش میتونم روی لینوکس هم اپلیکیشن بنویسم (کار کردن با محیط و کتابخانه های دیگش بنظرم خیلی سختتر باشه). ضمنا Qt خیلی هم خوشدسته. البته الان که پایتون بلدم پایتون رو هم میتونم اضافه کنم! ولی بنظر من پایتون یه ابزار بیشتر برای کارهایی مثل برنامه های بدون GUI و یوتیلیتی و نوشتن اسکریپت های خودکار سازی کارهای سیستم هست تا اینکه بتونه جایگزین چیزی مثل Qt و سی++ که مستقیما بصورت استاندارد و Native کامپایل میشه بحساب بیاد. ضمنا پایتون روی لینوکس بیشتر Match و قدرتمند بنظر میاد تا روی ویندوز. اصلا بیشتر به فلسفه و ساختار لینوکس میخوره.
حالا داشتم میگفتم و از بحث منحرف نشم! صحبت این بود که Qt اول بنظرم بدون نقص بنظر میامد و هیچ کس هیچ کجا هم به ضعف ها و نقصهای اون اشاره ای نکرده بود و فقط تبلیغ میشد که خیلی کامل و عالیه و مستقل از پلتفرمه و روی ویندوز و لینوکس و حتی موبایل ساپورت میشه و غیره.
خب تصور من این بود که خوبه اینو یاد میگیرم و دیگه هر برنامه ای رو چه روی ویندوز چه روی لینوکس مینویسم.
اما واقعیت و تجربهء عملی و مشکلات و محدودیت هایی که بهش برمیخورید اکثرا خیلی از این تفکر ایدئال فاصله داره.
نه بگم کیوت چیز بدی بود و پشیمون شدم و نمیشه ازش روی ویندوز استفاده کرد و کاربرد نداره. اما اون تفکر کامل بودن و یکسان بودن برای همه کاربرد و همه جا درست نبود. اونم وقتی با زبانها و کتابخانه های بومی خود ویندوز یا میکروسافت مقایسه میکنی میفهمی که واقعا کمبود زیاد وجود داره و اصولا نمیشه یا خیلی سخته که یک ابزار غیربومی و غیررسمی به حد ابزارهای بومی و رسمی کامل و قابل اتکا و بروز باشه.
اولین محدودیت هایی که بهش برخوردم بطور مثال کمبود پخش مالتی مدیا مثل mp3 و ویدئو بود. اون زمان phonon (فریمورکی برای مالتی مدیا که همراه و جزیی از پکیج و فریمورک Qt هم هست) روی نسخهء بازمتن ویندوز در دسترس نبود چون با کامپایلر mingw کامپایل نمیشد (ظاهرا بخاطر نقص/اشتباه هایی در هدرهای mingw). هرچند من تلاش بسیاری کردم و سرانجام از طریق بعضی از منابع غیررسمی و آزمایشی موفق شدم phonon رو کامپایل کنم و راه بندازم. اما حتی با اینحال مثلا پخش ویدئوها به علتی که نمیدونم روی سیستم شخص من که از نظر سخت افزاری سیستم قدیمی ای هست مشکل داره (تصویر خرابه)، ولی روی سیستمهای دیگه که تست کردم بدون مشکل بود، اما مشخصه که اگر از کتابخانه های اصلی خود ویندوز استفاده میکردم این مشکل ویدئو وجود نداشت! پس این یک مورد که هنوز هم حل نشده.
خوشبختانه امروز کیوت دیگه روی ویندوز به phonon کامپایل شده بصورت پیشفرض مجهز هست (اما مشکل ویدئوی من همچنان حل نشده هست).
البته راه حل ذکر شدهء دیگه، کامپایل کردن کیوت توسط ویژوال سی++ میکروسافت بود اما منی که هیچ زمینه ای نداشتم و محیطش رو هم نداشتم و با همون mingw هم به کلی خطا و دردسر برمیخوردم و هر بار کامپایل روی سیستم پنتیوم III من 7 ساعت طول میکشید دیگه حال و امید اینکار رو نداشتم. جالب اینکه با همون mingw هم که کیوت خودش باهاش کامپایل اولیه شده بود بعضی اجزاء کیوت مثل WebKit رو نتونستم کامپایل کنم و خطای سینتاکس و غیره میداد تاجایی که یادمه، بنابراین بعید نبود با ویژوال سی میکروسافت هم به دردسرهای مشابه و حتی بیشتری برخورد بکنم. گذشته از اون دوست نداشتم با ابزارهای انحصاری میکروسافت کار کنم و به اونها وابسته باشم، خصوصا که یکی از دلایل انتخاب کیوت، بازمتن بودن اون بود.
حتی یکسری ویژگی اشتباه توی سورسها و سیستم کامپایل کیوت بود که با دردسر و هوشمندی موفق به برطرف کردن اونا شدم. مثلا خطاهایی مربوط به کامپایل D3D میداد که وقتی با مسئولین شرکت تولیدکنندهء کیوت (الان جزیی از نوکیا) تماس گرفتم معلوم شد D3D یک ویژگی آزمایشی و ناموفق بوده که ظاهرا یادشون رفته بوده یا اهمیت ندادن و فکر یک آدم بی خبری مثل من رو نکرده بودن که غیرفعالش کنن! حالا فکر کنید همین یک قلم چقدر وقت و انرژی منو تلف کرد.
بعد تازه وقتی خوندن رفرنس و امکانات کیوت رو تموم کردم به فکر امکاناتی مثل استفاده از webcam افتادم. این هم در کیوت ساپورت نشده! اینجا بود که متوجه شدم کتابخانهء غیررسمی و خارجی ای مثل کیوت بصورت طبیعی میتونه چقدر ناقص تر از کتابخانه های اصلی ویندوز باشه. قبل از اینکه کیوت و کلا برنامه نویسی اپلیکیشن رو یاد بگیرم اصلا با این امکانات و مسائل آشنا نبودم و به ذهنم خطور نمیکرد.
البته فراموش نکنید که کیوت هر روز پیشرفت میکنه و ممکنه به زودی خیلی امکانات بهش اضافه بشه (یا شده باشه و من خبر ندارم!!).
بعد یه روزگاری دیگه نیاز به Cryptography پیدا کردم که اینهم دوباره در کیوت نبود! با اینکه چیز مهم و پرکاربردی هست که جزء خیلی از کتابخانه های اپلیکیشن نویسی باید باشه. البته یه چیزی غیررسمی پیدا کردم بنام QCA اما هرچی سعی کردم نتونستم درست و حسابی راهش بندازم (با خطای ویندوز کرش میکرد) و کسی هم نتونست توی فرومی چیزی مشکل منو حل کنه و بفهمه اصلا علتش چیه (حالا شما بگید آیا این مشکل با کتابخانه های دات نت پیش میاد؟)
وقتی میگی فلان امکان رو میخوام یا فلان کار میشه همه بهت میگن بله هست و میشه و راحت هم هست. حتی خیلی ها بدون اینکه خودشون تجربهء کافی عملی داشته باشن یا حتی تاحالا اون کار رو انجام داده باشن بهت اینطور میگن. اصلا نه حتی اگر اون اشخصاص تجربه هم داشته باشن وقتی یکی مثل من به مشکل خاصی بخوره کی میتونه حلش کنه؟ تقریبا هیچکس!
اما یه کتابخانهء رسمی بخصوص وقتی بومی هم باشه بعیده با اینطور مشکلات خاص روبرو بشه و اگرم بشه اغلب انتظار میره توسط مراجع رسمی برطرف بشه (پس از گزارش باگ) یا اصلا خودشون کشف و توی نسخهء بعدی رفعش کنن.
البته من بالاخره موفق شدم یک کتابخانهء دیگه بنام crypto++ برای رمزنگاری پیدا کنم که کتابخانهء معروفی تحت سی++ هست. ولی همونم کلی تحقیق و دردسر و نیاز به کامپایل با mingw داشت تا با کیوت اپن سورس کار کنه. تازه حتی اونم موقع اقدام به کامپایل با mingw خطای سینتاکس میداد ولی خوشبختانه علتش یا راه حلش رو تونستم تاحدی حدس بزنم و وصله و پینش کنم تا کامپایل بشه (بهرصورت کامپایلش اونم با خود کیوت تقریبا یک معجزه بود چون تقریبا چشم بسته عمل کردم!!). اما بهرصورت نیاز به یادگیری و خوندن رفرنس این کتابخانه هم که ساختارش شبیه Qt نبود و هماهنگی نداشت هم شدم و کدهای برنامه بهرصورت کمی وصله و پینه میشه چون یک فریمورک و کتابخانه رو که ساختار خاصی داره باید با API و ساختار یک کتابخانهء دیگه که سیستم منطقی دیگری داره پیوند بدید. البته بازم جای شکرش که کارم راه افتاد و کلی چیزها هم یاد گرفتم. گاهی فکر میکنم چطور اون کارها رو کردم! مثلا حتی موقعی که Qt هنوز مشکل Phonon رو بصورت رسمی حل نکرده بود یک برنامه و پکیج با استفاده از دستورات خط فرمان ویندوز نوشتم (بصورت یک فایل CMD که درواقع همون Batch file قدیم و داس هست) که بطور خودکار Phonon رو برای کیوت کامپایل میکرد. این برنامه چند صد بار دانلود شد و ظاهرا خیلی ها ازش استفاده کردن و در یک وبلاگ خارجی هم نقل شده بود. تازه پکیج من اولش خیلی ناقص و ضعیف بود و در نسخه های آخر دیگه شاهکار شده بود! چون مثلا زمان کامپایل رو با استفاده از ترفندی از 7 ساعت به 15 دقیقه رسونده بودم!! (منتها بعد از یک هفته نسخهء رسمی کیوت درست شد!!). بعضی ها که از این پکیج استفاده میکردن و به مشکل برخورده بودن با من تماس میگرفتن (همشون خارجی بودن). و پکیج بنده بعنوان راحتترین و عملی ترین راه اضافه کردن امکان مالتی مدیا به Qt تحت mingw مطرح شده بود چون کامپایل دستی خیلی مراحل و جزییات داشت و منبع قدم به قدم مناسبی هم برای وجود نداشت که تمام مسائل و جزییات رو توضیح داده باشه. یک کسی که میخواست از روی منابع ناقص و مبهم و پراکنده ای که وجود داشت phonon کیوت رو کامپایل کنه باید صدها برابر وقت و انرژی میذاشت و ده ها برابر حجم برنامهء من دانلود میکرد و کلی هم کامپایل طول میکشید و دست آخر هم چند بار باید اینکار رو تکرار میکرد تا بفهمه کجا اشتباه کرده و درستش کنه.
پس ببینید دوستان واقعیت اینه! اجزاء رسمی یک زبان میتونن خیلی با ابزارهای فرعی فرق بکنن. همینطور ابزارهای بومی و بخصوص رسمی یک پلتفرم میتونن خیلی با ابزارهای غیربومی و غیررسمی، حتی اگر از ابتدا مستقل از پلتفرم نامیده شده باشن، فرق بکنن. اینقدر مسائل ساده نیست که بگیم بله پایتون هم روی ویندوز هم روی لینوکس همه کار میکنه و همه امکان و کتابخانه و ابزاری براش هست. اینطور نیست که بگیم کاری نداره از py2exe استفاده میکنی و همه چیز تموم. اینطور نیست که بگیم پایتون میتونه کاملا جایگزین دات نت و سی شارپ یا زبانها و کتابخانه های بومی و رسمی مجهز دیگر روی ویندوز بشه. من اینطور فکر نمیکنم! بعنوان مثال چطور خودم اون مثال رفرنس رسمی رو نتونستم راه بندازم و کسی هم نتونست کمکم کنه و حتی نویسندهء اونهم جوابی به ایمیلم نداد؟ چرا اون مثال مخصوص لینوکس و با استفاده از امکانات لینوکس نوشته شده؟ پس ساپورت روی ویندوز با لینوکس فرق میکنه.
در اکثر موارد یک ابزار غیررسمی و غیربومی به اندازهء ابزار رسمی و بومی قابل اتکا نیست و تجربه به من میگه خیلی مشکلات و مسائل عمومی یا موردی هست که وجود دارن اما تا بهش برنخوری کسی بهش اشاره ای نمیکنه و وقتی هم بربخوری خیلی وقتها کسی اونقدری که انتظار داری نمیتونه کمکت کنه.
نمیدونم چرا اینطوری هست ولی بنظر منکه خیلی مسخره هست که آدمهایی که ادعای حرفه ای بودن و داشتن فکر باز رو دارن بنظر میرسه عمدا ضعف ها و مشکلات یک چیزی رو نمیگن یا اینکه اصلا نمیدونن و تجربه و اطلاعات کافی ندارن اما با اطمینان میگن بله هیچ مشکلی نداره و راحته و غیره.
چطور منکه اینقدر روی کیوت وقت و انرژی گذاشتم و دوستش دارم ضعفها و نقصهاش و واقعیت ها رو در اینمورد گفتم؟
شاید بخاطر این باشه که کمتر کسی مثل من دنبال یادگیری چندین و چند زبان و فریمورک میره و اینقدر وقت و پشتکار داره.
مردم فکر میکنن اگر یک زبان و کتابخانه رو انتخاب کردن اگر بگن نقص و ضعف داره دیگه فاجعه هست. درصورتیکه عملا تمام کتابخانه ها و زبانها و پلتفرمها هرکدوم ضعف و نقص خودشون رو دارن یا کاربردشون محدوده و هر زبان و کتابخانه ای برای یک جا و کاربردی مناسبتر هست یا حتی میتونه تقریبا انتخاب دیگری بجز اون یکی خاص در اون مورد و محیط خاص وجود نداشته باشه.
پس تعصب رو کنار بذارید! و هرچیزی رو که لازمه یاد بگیرید. حداقل ادعاهایی رو نکنید که رویای تحقق نیافتهء خودتون بوده!!
منتظر نظرات شما هستم.
=========================
بطور مثال من یه زمانی رفتم سراغ Qt و البته از این بابت پشیمون نیستم چون یک چیزی بلدم که باهاش میتونم روی لینوکس هم اپلیکیشن بنویسم (کار کردن با محیط و کتابخانه های دیگش بنظرم خیلی سختتر باشه). ضمنا Qt خیلی هم خوشدسته. البته الان که پایتون بلدم پایتون رو هم میتونم اضافه کنم! ولی بنظر من پایتون یه ابزار بیشتر برای کارهایی مثل برنامه های بدون GUI و یوتیلیتی و نوشتن اسکریپت های خودکار سازی کارهای سیستم هست تا اینکه بتونه جایگزین چیزی مثل Qt و سی++ که مستقیما بصورت استاندارد و Native کامپایل میشه بحساب بیاد. ضمنا پایتون روی لینوکس بیشتر Match و قدرتمند بنظر میاد تا روی ویندوز. اصلا بیشتر به فلسفه و ساختار لینوکس میخوره.
حالا داشتم میگفتم و از بحث منحرف نشم! صحبت این بود که Qt اول بنظرم بدون نقص بنظر میامد و هیچ کس هیچ کجا هم به ضعف ها و نقصهای اون اشاره ای نکرده بود و فقط تبلیغ میشد که خیلی کامل و عالیه و مستقل از پلتفرمه و روی ویندوز و لینوکس و حتی موبایل ساپورت میشه و غیره.
خب تصور من این بود که خوبه اینو یاد میگیرم و دیگه هر برنامه ای رو چه روی ویندوز چه روی لینوکس مینویسم.
اما واقعیت و تجربهء عملی و مشکلات و محدودیت هایی که بهش برمیخورید اکثرا خیلی از این تفکر ایدئال فاصله داره.
نه بگم کیوت چیز بدی بود و پشیمون شدم و نمیشه ازش روی ویندوز استفاده کرد و کاربرد نداره. اما اون تفکر کامل بودن و یکسان بودن برای همه کاربرد و همه جا درست نبود. اونم وقتی با زبانها و کتابخانه های بومی خود ویندوز یا میکروسافت مقایسه میکنی میفهمی که واقعا کمبود زیاد وجود داره و اصولا نمیشه یا خیلی سخته که یک ابزار غیربومی و غیررسمی به حد ابزارهای بومی و رسمی کامل و قابل اتکا و بروز باشه.
اولین محدودیت هایی که بهش برخوردم بطور مثال کمبود پخش مالتی مدیا مثل mp3 و ویدئو بود. اون زمان phonon (فریمورکی برای مالتی مدیا که همراه و جزیی از پکیج و فریمورک Qt هم هست) روی نسخهء بازمتن ویندوز در دسترس نبود چون با کامپایلر mingw کامپایل نمیشد (ظاهرا بخاطر نقص/اشتباه هایی در هدرهای mingw). هرچند من تلاش بسیاری کردم و سرانجام از طریق بعضی از منابع غیررسمی و آزمایشی موفق شدم phonon رو کامپایل کنم و راه بندازم. اما حتی با اینحال مثلا پخش ویدئوها به علتی که نمیدونم روی سیستم شخص من که از نظر سخت افزاری سیستم قدیمی ای هست مشکل داره (تصویر خرابه)، ولی روی سیستمهای دیگه که تست کردم بدون مشکل بود، اما مشخصه که اگر از کتابخانه های اصلی خود ویندوز استفاده میکردم این مشکل ویدئو وجود نداشت! پس این یک مورد که هنوز هم حل نشده.
خوشبختانه امروز کیوت دیگه روی ویندوز به phonon کامپایل شده بصورت پیشفرض مجهز هست (اما مشکل ویدئوی من همچنان حل نشده هست).
البته راه حل ذکر شدهء دیگه، کامپایل کردن کیوت توسط ویژوال سی++ میکروسافت بود اما منی که هیچ زمینه ای نداشتم و محیطش رو هم نداشتم و با همون mingw هم به کلی خطا و دردسر برمیخوردم و هر بار کامپایل روی سیستم پنتیوم III من 7 ساعت طول میکشید دیگه حال و امید اینکار رو نداشتم. جالب اینکه با همون mingw هم که کیوت خودش باهاش کامپایل اولیه شده بود بعضی اجزاء کیوت مثل WebKit رو نتونستم کامپایل کنم و خطای سینتاکس و غیره میداد تاجایی که یادمه، بنابراین بعید نبود با ویژوال سی میکروسافت هم به دردسرهای مشابه و حتی بیشتری برخورد بکنم. گذشته از اون دوست نداشتم با ابزارهای انحصاری میکروسافت کار کنم و به اونها وابسته باشم، خصوصا که یکی از دلایل انتخاب کیوت، بازمتن بودن اون بود.
حتی یکسری ویژگی اشتباه توی سورسها و سیستم کامپایل کیوت بود که با دردسر و هوشمندی موفق به برطرف کردن اونا شدم. مثلا خطاهایی مربوط به کامپایل D3D میداد که وقتی با مسئولین شرکت تولیدکنندهء کیوت (الان جزیی از نوکیا) تماس گرفتم معلوم شد D3D یک ویژگی آزمایشی و ناموفق بوده که ظاهرا یادشون رفته بوده یا اهمیت ندادن و فکر یک آدم بی خبری مثل من رو نکرده بودن که غیرفعالش کنن! حالا فکر کنید همین یک قلم چقدر وقت و انرژی منو تلف کرد.
بعد تازه وقتی خوندن رفرنس و امکانات کیوت رو تموم کردم به فکر امکاناتی مثل استفاده از webcam افتادم. این هم در کیوت ساپورت نشده! اینجا بود که متوجه شدم کتابخانهء غیررسمی و خارجی ای مثل کیوت بصورت طبیعی میتونه چقدر ناقص تر از کتابخانه های اصلی ویندوز باشه. قبل از اینکه کیوت و کلا برنامه نویسی اپلیکیشن رو یاد بگیرم اصلا با این امکانات و مسائل آشنا نبودم و به ذهنم خطور نمیکرد.
البته فراموش نکنید که کیوت هر روز پیشرفت میکنه و ممکنه به زودی خیلی امکانات بهش اضافه بشه (یا شده باشه و من خبر ندارم!!).
بعد یه روزگاری دیگه نیاز به Cryptography پیدا کردم که اینهم دوباره در کیوت نبود! با اینکه چیز مهم و پرکاربردی هست که جزء خیلی از کتابخانه های اپلیکیشن نویسی باید باشه. البته یه چیزی غیررسمی پیدا کردم بنام QCA اما هرچی سعی کردم نتونستم درست و حسابی راهش بندازم (با خطای ویندوز کرش میکرد) و کسی هم نتونست توی فرومی چیزی مشکل منو حل کنه و بفهمه اصلا علتش چیه (حالا شما بگید آیا این مشکل با کتابخانه های دات نت پیش میاد؟)
وقتی میگی فلان امکان رو میخوام یا فلان کار میشه همه بهت میگن بله هست و میشه و راحت هم هست. حتی خیلی ها بدون اینکه خودشون تجربهء کافی عملی داشته باشن یا حتی تاحالا اون کار رو انجام داده باشن بهت اینطور میگن. اصلا نه حتی اگر اون اشخصاص تجربه هم داشته باشن وقتی یکی مثل من به مشکل خاصی بخوره کی میتونه حلش کنه؟ تقریبا هیچکس!
اما یه کتابخانهء رسمی بخصوص وقتی بومی هم باشه بعیده با اینطور مشکلات خاص روبرو بشه و اگرم بشه اغلب انتظار میره توسط مراجع رسمی برطرف بشه (پس از گزارش باگ) یا اصلا خودشون کشف و توی نسخهء بعدی رفعش کنن.
البته من بالاخره موفق شدم یک کتابخانهء دیگه بنام crypto++ برای رمزنگاری پیدا کنم که کتابخانهء معروفی تحت سی++ هست. ولی همونم کلی تحقیق و دردسر و نیاز به کامپایل با mingw داشت تا با کیوت اپن سورس کار کنه. تازه حتی اونم موقع اقدام به کامپایل با mingw خطای سینتاکس میداد ولی خوشبختانه علتش یا راه حلش رو تونستم تاحدی حدس بزنم و وصله و پینش کنم تا کامپایل بشه (بهرصورت کامپایلش اونم با خود کیوت تقریبا یک معجزه بود چون تقریبا چشم بسته عمل کردم!!). اما بهرصورت نیاز به یادگیری و خوندن رفرنس این کتابخانه هم که ساختارش شبیه Qt نبود و هماهنگی نداشت هم شدم و کدهای برنامه بهرصورت کمی وصله و پینه میشه چون یک فریمورک و کتابخانه رو که ساختار خاصی داره باید با API و ساختار یک کتابخانهء دیگه که سیستم منطقی دیگری داره پیوند بدید. البته بازم جای شکرش که کارم راه افتاد و کلی چیزها هم یاد گرفتم. گاهی فکر میکنم چطور اون کارها رو کردم! مثلا حتی موقعی که Qt هنوز مشکل Phonon رو بصورت رسمی حل نکرده بود یک برنامه و پکیج با استفاده از دستورات خط فرمان ویندوز نوشتم (بصورت یک فایل CMD که درواقع همون Batch file قدیم و داس هست) که بطور خودکار Phonon رو برای کیوت کامپایل میکرد. این برنامه چند صد بار دانلود شد و ظاهرا خیلی ها ازش استفاده کردن و در یک وبلاگ خارجی هم نقل شده بود. تازه پکیج من اولش خیلی ناقص و ضعیف بود و در نسخه های آخر دیگه شاهکار شده بود! چون مثلا زمان کامپایل رو با استفاده از ترفندی از 7 ساعت به 15 دقیقه رسونده بودم!! (منتها بعد از یک هفته نسخهء رسمی کیوت درست شد!!). بعضی ها که از این پکیج استفاده میکردن و به مشکل برخورده بودن با من تماس میگرفتن (همشون خارجی بودن). و پکیج بنده بعنوان راحتترین و عملی ترین راه اضافه کردن امکان مالتی مدیا به Qt تحت mingw مطرح شده بود چون کامپایل دستی خیلی مراحل و جزییات داشت و منبع قدم به قدم مناسبی هم برای وجود نداشت که تمام مسائل و جزییات رو توضیح داده باشه. یک کسی که میخواست از روی منابع ناقص و مبهم و پراکنده ای که وجود داشت phonon کیوت رو کامپایل کنه باید صدها برابر وقت و انرژی میذاشت و ده ها برابر حجم برنامهء من دانلود میکرد و کلی هم کامپایل طول میکشید و دست آخر هم چند بار باید اینکار رو تکرار میکرد تا بفهمه کجا اشتباه کرده و درستش کنه.
پس ببینید دوستان واقعیت اینه! اجزاء رسمی یک زبان میتونن خیلی با ابزارهای فرعی فرق بکنن. همینطور ابزارهای بومی و بخصوص رسمی یک پلتفرم میتونن خیلی با ابزارهای غیربومی و غیررسمی، حتی اگر از ابتدا مستقل از پلتفرم نامیده شده باشن، فرق بکنن. اینقدر مسائل ساده نیست که بگیم بله پایتون هم روی ویندوز هم روی لینوکس همه کار میکنه و همه امکان و کتابخانه و ابزاری براش هست. اینطور نیست که بگیم کاری نداره از py2exe استفاده میکنی و همه چیز تموم. اینطور نیست که بگیم پایتون میتونه کاملا جایگزین دات نت و سی شارپ یا زبانها و کتابخانه های بومی و رسمی مجهز دیگر روی ویندوز بشه. من اینطور فکر نمیکنم! بعنوان مثال چطور خودم اون مثال رفرنس رسمی رو نتونستم راه بندازم و کسی هم نتونست کمکم کنه و حتی نویسندهء اونهم جوابی به ایمیلم نداد؟ چرا اون مثال مخصوص لینوکس و با استفاده از امکانات لینوکس نوشته شده؟ پس ساپورت روی ویندوز با لینوکس فرق میکنه.
در اکثر موارد یک ابزار غیررسمی و غیربومی به اندازهء ابزار رسمی و بومی قابل اتکا نیست و تجربه به من میگه خیلی مشکلات و مسائل عمومی یا موردی هست که وجود دارن اما تا بهش برنخوری کسی بهش اشاره ای نمیکنه و وقتی هم بربخوری خیلی وقتها کسی اونقدری که انتظار داری نمیتونه کمکت کنه.
نمیدونم چرا اینطوری هست ولی بنظر منکه خیلی مسخره هست که آدمهایی که ادعای حرفه ای بودن و داشتن فکر باز رو دارن بنظر میرسه عمدا ضعف ها و مشکلات یک چیزی رو نمیگن یا اینکه اصلا نمیدونن و تجربه و اطلاعات کافی ندارن اما با اطمینان میگن بله هیچ مشکلی نداره و راحته و غیره.
چطور منکه اینقدر روی کیوت وقت و انرژی گذاشتم و دوستش دارم ضعفها و نقصهاش و واقعیت ها رو در اینمورد گفتم؟
شاید بخاطر این باشه که کمتر کسی مثل من دنبال یادگیری چندین و چند زبان و فریمورک میره و اینقدر وقت و پشتکار داره.
مردم فکر میکنن اگر یک زبان و کتابخانه رو انتخاب کردن اگر بگن نقص و ضعف داره دیگه فاجعه هست. درصورتیکه عملا تمام کتابخانه ها و زبانها و پلتفرمها هرکدوم ضعف و نقص خودشون رو دارن یا کاربردشون محدوده و هر زبان و کتابخانه ای برای یک جا و کاربردی مناسبتر هست یا حتی میتونه تقریبا انتخاب دیگری بجز اون یکی خاص در اون مورد و محیط خاص وجود نداشته باشه.
پس تعصب رو کنار بذارید! و هرچیزی رو که لازمه یاد بگیرید. حداقل ادعاهایی رو نکنید که رویای تحقق نیافتهء خودتون بوده!!