زامارین Xamarin از کجا آمد؟
(لطفا کامل بخوانید، حتی اگر میدانید!)
ما هر روز شاهد اتفاقهای تازهای در حوزهی پیشرفت تکنولوژی و راههای دستیابی به مراحل بالاتر آن هستیم، این پیشرفتها امروزه عموما توسط شرکتهای بزرگی که در حوزه فناوری اطلاعات فعالیت میکنند، رقم میخورد؛ شرکتهایی که با تمام کمبودهایشان نسبت به همدیگر، هیچکدامشان تنها نگاه مالی به هر فعالیتی که انجام میدهند ندارند و شاخص برتری آنها سطح علمی آنها میباشد نه ارزش سهامشان در بورس!
مایکروسافت یکی از معتبرترین و به اصطلاح عامه با کلاسترین شرکتهای فعال دهههای اخیر این شاخهی علمی میباشد. بر هیچکس پوشیده نیست که حوزهی فعالیت این شرکت بسیار گستردهتر از آن است که بخواهیم صرفا در یک شاخه از این علم آن را بررسی کنیم؛ این شرکت با سیاستهایی کاملا معتدل و بشر دوستانه، از تولید کنسولهای بازی تا تولید بازیهای مخصوص پلتفرمهای مختلف، تولید سیستم عامل و نرم افزار مرتبط با سرویسهای خود روی سایر سیستمهای عامل، تحقیق و مطالعات، تولید و اختراع دستگاه و توسعهی یک چارچوب برنامه نویسی با نام .NET ، یک رشته عملکردهای ضعیف و قوی را در تاریخ این رشتهی علمی، از خود به یادگار گذاشته است.
همچنین این شرکت مانند رقبای خود، علاقهی فراوانی به راه اندازی و یا حمایت از کسب و کارهای نوپا و یا خرید شرکتهای فعال در حوزههای مختلف دارد، شرکتهایی که بعضا با سهل انگاری خود، آنها را از بین برده و یا سطح علمی آنها را با کمکهای مختلف، بهبود بخشیده است. ۶ سال پیش در ماه می سال ۲۰۱۱ بود که دو برنامه نویس به نامهای Miguel de Icaza و Nat Friedman دست به تولید یک محیط توسعه، مبتی بر توسعه یکپارچه زدند، برنامه نویسانی که قبلتر سابقهی خوبی در توسعهی یک محیط اجرا برای نرم افزارهای .NET در سایر پلتفرمها با نام Mono داشتند.
این محیط توسعه که زامارین Xamarin نام گرفت، به عنوان یک راهکار ساده و سریع برای تولید و توسعهی یکپارچه و کم هزینهتر نرم افزارهای توسعه یافته توسط C#.NET در پلتفرمهای مَک، ای او اس و اندروید شد. این پروژه هیجان انگیز بعدها توسط مایکروسافت در سال ۲۰۱۶ خریداری شد و به یکی از شرکتهای مهم تحت حمایت مایکروسافت مبدل شد.
زامارین Xamarin چیست؟
زامارین به لحاظ فنی در سیستم عامل ویندوز، یک محیط توسعه قابل اجرا بر روی مایکروسافت ویژوال استودیو میباشد که به عنوان یک IDE مبتنی بر ویژوال استودیو در ویندوز و یک IDE مستقل در سیستم عامل مَک فعالیت میکند. این محیط توسعه دارای امکانات یکپارچه سازی بهره گرفته از زبان برنامه نویسی C#.NET با کتابخانهای متشکل از .NET و کتابخانههای مخصوص به خود میباشد که امکان تولید، توسعه و حتی انتشار نرم افزار هایی برای سایر سیستمهای عامل را به برنامه نویسان .NET میدهد.
به لحاظ علمی کاری که این IDE در حقیقت انجام میدهد، یک جور معادل سازی زبان برنامه نویسی C#.NET و متعلقات آن به زبانهای پلتفرمهای مقصدی است که قصد خروجی گرفتن نرم افزارهایی برای آنها را داریم؛ این موضوع در عین ناباوری هیچ تاثیری در روند و کیفیت اجرای نرم افزارها در سیستمهای عامل مقصد ندارد و تنها اشکالی که به نظر میرسد، حجم بیشینهی نرم افزارهای توسعه یافته با استفاده از زامارین Xamarin در قیاس با گونههای Native است.
به عبارت دیگر، نرم افزار تولید شده توسط یک برنامه نویس حرفهای در جاوا برای اندروید، هیچ فرقی با نرم افزار توسعه یافته توسط یک فرد حرفهای در C#.NET برای زامارین Xamarin نخواهد داشت. من به عنوان یک برنامه نویس .NET ، صرفا مقولهی مهارت را برای تفکیک کیفیت نرم افزارهای تولید شده توسط این دو محیط توسعه را منطقی میدانم.
مایکروسافت لینوکس را دوست دارد، یا دست کم مجبور است داشته باشد!
همین هفته پیش بود که برای ارسال یک درخواست شغلی به مایکروسافت، در بخش توضیح خصوصیات فرد مورد نظر یک موقعیت شغلی در وب سایت مشاغل مایکروسافت با جملهای مواجه شدم که ترجمهاش این میشد: ” فردی که علاقه به تعامل و کار کردن با OpenSource داشته باشد، ما میدانیم که شما سابقا چیز دیگری شنیدهاید اما، مایکروسافت OpenSource را دوست دارد! ”
اینکه چرا مایکروسافت یکباره یک دل نه صد دل عاشق لینوکس شد، قصهاش بر میگردد به افزایش محبوبیت و استفاده از زبان برنامه نویسی جاوا که به واسطه اندروید، که به لطف لینوکس توسعه یافته است، سایهاش بر سر .NET و خدمات مبتنی بر آن سنگینی میکند، .NET ای که مایکروسافت حدودا ۸۰% بودجه سالیانهاش را صرف توسعه آن میکند و کابوس کمرنگ شدن آن و افزایش کاربری یک زبان برنامه نویسی دیگر، برای مایکروسافت زیان بار خواهد بود. تحلیل من این است که، این شیطنتها برای فشار هرچه بیشتر به گوگلی است که مایکروسافت اخیرا سامسونگ، رفیق شفیق گوگل را در یک دادگاه با موضوعیت ” نقض حقوق نشر ” محکوم نموده و در ازای پرداخت خسارت مالی، سامسونگ را مجاب کرده تا نرم افزارهای اداری گوگل را از روی دستگاههای خود حذف کرده و مجموعه Microsoft Office را جایگزین آنها نماید.
زامارین Xamarin برای اندروید یا اندروید برای زامارین؟
اینکه در اولین سطر این مقاله از شما خواسته شد تا متن را به دقت مطالعه کنید دلیلش این بود که در این بخش، شما را با یک رویکرد دیگر آشنا خواهم کرد. تصور کنید که شما عادت دارید بعد از بیدار شدن از خواب و آماده شدن برای رفتن به محل کار، یک مسیر تکراری را برای رسیدن به محل کارتان انتخاب کنید؛ اما روز بعد به طور ناگهانی تصمیم میگیرید تا سلیقهی خودتان را برای رسیدن به محل کارتان در انتخاب مسیر حرکت اعمال کنید، در این شرایط ممکن است این اعمال سلیقه با کاهش زمان دستیابی شما به مقصدتان به واسطهی دانش محلی شما از میزان عبور مرور همراه گردد.
با فرض اینکه در مثال بالا، مقصد شما همان کاربران و نرم افزارهای مد نظر شما باشند و ماشین شما همان بستر اجرا یا سیستم عامل فعلی باشد؛ مسیر حرکتی که شما انتخاب میکنید، نحوهی به خدمت گرفتن سیستم عامل توسط شما برای دستیابی به اهدافتان تعریف خواهد شد؛ به عبارت دیگر، این اندروید نیست که به واسطهی زامارین Xamarin توسعه میابد؛ این زامارین Xamarin و به طور دقیقتر .NET است که به واسطهی محبوبیت سیستم عامل اندروید توسعه پیدا میکند.
زامارین Xamarin در واقع راهکار آینده .NET برای دستیابی به هدف یکپارچگی است، هدفی که در نهایت منجر به افزایش توسعه نرم افزار بر بستر .NET و استفادهی حداکثری از سرویسهای آن میشود؛ این استفاده در نهایت منجر به تبدیل .NET به عنوان یک مرکز وحدت خواهد شد که تمام سیستمهای عامل را تحت شعاع قرار میدهد.
برنامه نویس سنتی
در وب لاگ یک برنامه نویس ایرانی، در مورد زامارین Xamarin میکردم که ناگهان با این تیتر مواجه شدم: ”برنامهنویسان از جمله خود من وقتی به یک خطای بدجنس بر میخورم دقیقاً پیغام خطای دریافتی را گوگل میکنم که گوگل عزیز هم پستهای استکاورفلو را پیشنهاد میدهد و در نهایت در عرض چند دقیقه راه حل مشکل پیدا خواهد شد، حال تصور کنید شما در توسعه اپلیکیشن با زامارین Xamarin به خطایی برخورد میکنید چون تعداد کمی برای توسعه اپلیکیشن از این روش استفاده میکنند و اغلب آنها مثل شما تنبل هستند ( چون که همگی مثل شما میخواستند راه میانبر را انتخاب کنند ) احتمال پیدا کردن راهحل خیلی کم است! ”
اینکه ما در حوزه ی فناوری اطلاعات و برنامه نویسی فعالیت کنیم، معنیاش این نیست که ما لزوما فرد به روزی هستیم؛ بیایید برای افزایش دانش خود به گذشته سفر کنیم، به روزی که جاوا توسط Sun Microsystems ظهور پیدا نمود، در آن تاریخ حدودا ۱۰ سال از حیات زبان C++ و ۲۰ سال از حیات زبان C میگذشت، توسعه زبان جاوا به عنوان یک فناوری جدید اگرچه با چالش همراه بود، اما به علت تولید یک پایهی جدید در حوزه ی توسعه و برنامه نویسی، این تکنولوژی جدید به سرعت جای خود را در میان برنامه نویسان باز کرد، با رویکرد بالا هر ایدهی نو ظهوری که منجر به شکستن ساختار کنونی شود، صرف نظر از هدف و کیفیت ایده، تنها به علت ضعفهای فعلی خود، مردود و بلا استفاده خواهد بود! اینکه کسی دوست داشته باشد با آنچه آموخته است، پروژهای را به اتمام برساند، تنفر کاربران از ایجاد تغییر تعریف میشود نه تنبلی!
تحلیل من این است که متاسفانه ما در کشورمان دچار یک اپیدمی وحشتناک شدهایم به نام ” بت سازی” ! این بت سازی ابعاد و مصارف مختلفی دارد که در نهایت منجر به تولید یک رشته تعصبات پوچ و بیفایده خواهد شد که نه تنها به شخص ما، بلکه ممکن است در صورت اشتباهات عمومی ما، به دیگران نیز آسیب وارد کند؛ این اشتباه عمومی میتواند یک تحلیل غیر علمی و جهت گیری شده در وب سایت شخصیمان باشد. شاید اگر زامارین Xamarin هیچ چارچوب به خصوصی برای خود تولید نکرده بود که برای استفاده از آن، نیازمند فرا گرفتن آن چارچوبها باشیم، میشد به برنامه نویسان علاقمند به توسعه نرم افزار با استفاده از زامارین Xamarin ، صفتهایی مثل تنبل و تازه کار را اطلاق کرد؛ اما در شرایط کنونی که این برنامه نویسان نیازمند فرا گرفتن یک رشته چارچوبهای مخصوص به خود هستند، افرادی که چنین تفکری دارند به زعم بنده ” برنامه نویسان سنتی ” نام دارند که این دوستان متاسفانه، مصداق بارز مقابله با پیشرفت تکنولوژیهای روز در کشور میباشند.
شما چه دوست دارید؟
چه کسی میتواند به صورت کاملا مطلق یا حتی نسبی، یک زبان برنامه نویسی را به سایر زبانها برتری دهد؟ با هر معیاری که نگاه کنید، هیچ یک از این زبانها و حتی سرویسهای ارائه شده توسط آنها، به صورت نسبی و مطلق از دیگری برتر نیستند و همه چیز به دانش، مهارت و تجربه شما بر میگردد! در واقع این شمایید که زبان ها را توسعه میدهید، آنها به خودی خود هیچ توانی برای توسعه خود ندارند و این میزان علاقه ی شما به آنهاست که معیار انتخاب شدنشان است نه معیارهای امنیتی، کیفی و … قبول دارید؟
آیا زامارین Xamarin یک محیط کامل و قابل اعتماد است؟
اینکه زامارین Xamarin در ایران یک محیط توسعه بد نام است، ضعف صنعت تولید و توسعه نرم افزار را نشان میدهد که همیشه باید منتظر نسخههای صادر شده توسط خارجیها باشد!
این موضوع هم یکی از مشکلات صنعت برنامه نویسیمان است که بنده همواره میگویم:” ما بیشتر صنعت کپی برداری داریم تا تولید و توسعه ” و این یک ضعف عمیق و اساسی است. به خودی خود؛ من زامارین Xamarin را به عنوان یک ابزار تمام عیار، برای کارفرما و مدیری که یک نیروی متخصص مسلط به استفاده از آن دارد، توصیه میکنم.
زامارینِ Xamarin مایکروسافت در برابر اندرویدِ گوگل
داستان، داستان یک جنگ قدیمی و هیجان انگیز است که منجر به پیشرفت علم و فناوریهای روز خواهد شد و ما باید سعی کنیم تا در این جنگ دوستانه، حداکثر بهرهوری را برای خود به دست آوریم.
حقیقت این است که مایکروسافت با حمایت پر و پا قرص شما از گوگل زمین نخواهد خود و گوگل هم حقیقتا به دنبال این نیست! برعکس این موضوع نیز صادق بوده و ما به عنوان برنامه نویس و توسعه دهندهی علاقمند به یک زبان، IDE و سرویس به خصوص، صرفا حق آن داریم که فارغ از هرگونه بدگویی، از تمام امکانات موجود و در دسترس استفاده کنیم.
سلام.دوست عزیز مشخصه که شما از فرآیند توسعه اپ های اندروید اطلاعات کافی ندارید و تعصب بیجا به
تکنولوژی های مایکروسافت دارید.
با سلام و ضمن تشکر از انتقاد شما، این مقاله به دور از هر گونه تعصب نوشته شده و هدف بنده اتفاقا رها کردن نگاه های همراه با عصبیت بوده.
یکپارچگی مهمترین و بهترین راهکار حذف قوانین و شرایط دست و پا گیرِ پیشرفتِ صنعت فناوری اطلاعات میباشد که بنده در ارائه ی یک ررویکرد جدید در این حوزه داشتم.