زامارین راهکار آینده دات نت برای دستیابی به هدف یکپارچگی است

زامارین

زامارین از کجا آمد؟ ( لطفا کامل بخوانید، حتی اگر میدانید!  )

زامارین
Nat Friedman
زامارین
Miguel de Icaza

ما هر روز شاهد اتفاق های تازه ای در حوزه ی پیشرفت تکنولوژی و راه های دستیابی به مراحل بالاتر آن هستیم، این پیشرفت ها امروزه عموما توسط شرکت های بزرگی که در حوزه فناوری اطلاعات فعالیت میکنند، رقم میخورد؛ شرکت هایی که با تمام کمبود هایشان نسبت به همدیگر، هیچکدامشان تنها نگاه مالی به هر فعالیتی که انجام میدهند ندارند و شاخص برتری آنها سطح علمی آنها میباشد نه ارزش سهامشان در بورس!

مایکروسافت یکی از معتبر ترین و به اصطلاح عامه با کلاس ترین شرکت های فعال دهه های اخیر این شاخه ی علمی میباشد، بر هیچکس پوشیده نیست که حوزه ی فعالیت این شرکت بسیار گسترده تر از آن است که بخواهیم صرفا در یک شاخه از این علم آن را بررسی کنیم؛ این شرکت با سیاست هایی کاملا معتدل و بشر دوستانه، از تولید کنسول های بازی تا تولید بازی های مخصوص پلتفرم های مختلف، تولید سیستم عامل و نرم افزار مرتبط با سرویس های خود روی سایر سیستم های عامل، تحقیق و مطالعات، تولید و اختراع دستگاه و توسعه ی یک چارچوب برنامه نویسی با نام .NET ، یک رشته عملکرد های ضعیف و قوی را در تاریخ این رشته ی علمی، از خود به یادگار گذاشته است.

همچنین این شرکت مانند رقبای خود، علاقه ی فراوانی به راه اندازی و یا حمایت از کسب و کار های نوپا و یا خرید شرکت های فعال در حوزه های مختلف دارد، شرکت هایی که بعضا با سهل انگاری خود، آنها را از بین برده و یا سطح علمی آنها را با کمک های مختلف، بهبود بخشیده است.

۶ سال پیش در ماه می سال ۲۰۱۱ بود که دو برنامه نویس به نام های Miguel de Icaza  و Nat Friedman دست به تولید یک محیط توسعه، مبتی بر توسعه یکپارچه زدند، برنامه نویسانی که قبل تر سابقه ی خوبی در توسعه ی یک محیط اجرا برای نرم افزار های .NET در سایر پلتفرم ها با نام Mono داشتند.

این محیط توسعه که زامارین نام گرفت، به عنوان یک راهکار ساده و سریع برای تولید و توسعه ی یکپارچه و کم هزینه تر نرم افزار های توسعه یافته توسط C#.NET در پلتفرم های مَک، ای او اس و اندروید شد.

این پروژه هیجان انگیز بعد ها توسط مایکروسافت در سال ۲۰۱۶ خریداری شد و به یکی از شرکت ها مهم تحت حمایت مایکروسافت مبدل شد.

 

زامارین چیست؟

زامارین به لحاظ فنی در سیستم عامل ویندوز، یک محیط توسعه قابل اجرا بر روی مایکروسافت ویژوال استودیو میباشد که به عنوان یک IDE مبتنی بر ویژوال استودیو در ویندوز و یک IDE مستقل در سیستم عامل مَک فعالیت میکند.

این محیط توسعه دارای امکانات یکپارچه سازی بهره گرفته از زبان برنامه نویسی C#.NET با کتابخانه ای متشکل از .NET و کتابخانه های مخصوص به خود میباشد که امکان تولید، توسعه و حتی انتشار نرم افزار هایی برای سایر سیستم های عامل را به برنامه نویسان .NET میدهد.

به لحاظ علمی کاری که این IDE در  حقیقت انجام میدهد، یک جور معادل سازی زبان برنامه نویسی C#.NET و متعلقات آن به زبان های پلتفرم های مقصدی است که قصد خروجی گرفتن نرم افزار هایی برای آنها را داریم؛ این موضوع در عین نا باوری هیچ تاثیری در روند و کیفیت اجرای نرم افزار ها در سیستم های عامل مقصد ندارد و تنها اشکالی که به نظر میرسد، حجم بیشینه ی نرم افزار های توسعه یافته با استفاده از زامارین در قیاس با گونه های Native است.

به عبارت دیگر، نرم افزار تولید شده توسط یک برنامه نویس حرفه ای در جاوا برای اندروید، هیچ فرقی با نرم افزار توسعه یافته توسط یک فرد حرفه ای در C#.NET برای زامارین نخواهد داشت. من به عنوان یک برنامه نویس .NET ، صرفا مقوله ی مهارت را برای تفکیک کیفیت نرم افزار های تولید شده توسط این دو محیط توسعه را منطقی میدانم.

 

مایکروسافت لینوکس را دوست دارد، یا دست کم مجبور است داشته باشد!

زامارین
ساتیا نادلا مدیر عامل مایکروسافت در حال توضیح امکانات جدید افزوده شده به ویندوز در رابطه با لینوکس در کنفرانس بیلد ۲۰۱۷

همین هفته پیش بود که برای ارسال یک درخواست شغلی به مایکروسافت، در بخش توضیح خصوصیات فرد مورد نظر یک موقعیت شغلی در  وب سایت مشاغل مایکروسافت با جمله ای مواجه شدم که ترجمه اش این میشد: ” فردی که علاقه به تعامل و کار کردن با OpenSource داشته باشد، ما میدانیم که شما سابقا چیز دیگری شنیده اید اما، مایکروسافت OpenSource را دوست دارد! ”

اینکه چرا مایکروسافت یکباره یک دل نه صد دل عاشق لینوکس شد، قصه اش بر میگردد به افزایش محبوبیت و استفاده از زبان برنامه نویسی جاوا که به واسطه اندروید، که به لطف لینوکس توسعه یافته است، سایه اش بر سر .NET و خدمات مبتنی بر آن سنگینی میکند، .NET ای که مایکروسافت حدودا ۸۰% بودجه سالیانه اش را صرف توسعه آن میکند و کابوس کمرنگ شدن آن و افزایش کاربری یک زبان برنامه نویسی دیگر، برای مایکروسافت زیان بار خواهد بود.

تحلیل من این است که، این شیطنت ها برای فشار هرچه بیشتر به گوگلی است که مایکروسافت اخیرا سامسونگ، رفیق شفیق گوگل را در یک دادگاه با موضوعیت ” نقض حقوق نشر ” ، محکوم نموده و در ازای پرداخت خسارت مالی، سامسونگ را مجاب کرده تا نرم افزار های اداری گوگل را از روی دستگاه های خود حذف کرده و مجموعه Microsoft Office را جایگزین آنها نماید.

 

زامارین برای اندروید یا اندروید برای زامارین؟

زامارین
یک تصویر تبلیغاتی برای فهم بهتر زامارین

اینکه در اولین سطر از این مقاله از شما خواسته شد تا متن را به دقت مطالعه کنید دلیلش این بود که در این بخش، شما را با یک رویکرد دیگر آشنا خواهم کرد.

تصور کنید که شما عادت دارید بعد از بیدار شدن از خواب و آماده شدن برای رفتن به محل کار، یک مسیر تکراری را برای رسیدن به محل کارتان انتخاب کنید؛ اما روز بعد به طور ناگهانی تصمیم میگیرید تا سلیقه ی خودتان را برای رسیدن به محل کارتان در انتخاب مسیر حرکت اعمال کنید، در این شرایط ممکن است این اعمال سلیقه با کاهش زمان دستیابی شما به مقصدتان به واسطه ی دانش محلی شما از میزان عبور مرور همراه گردد.

با فرض اینکه در مثال بالا، مقصد شما همان کاربران و نرم افزار های مد شما باشند و ماشین شما همان بستر اجرا یا سیستم عامل فعلی باشد؛ مسیر حرکتی که شما انتخاب میکنید، نحوه ی به خدمت گرفتن سیستم عامل توسط شما برای دستیابی به اهدافتان تعریف خواهد شد؛ به عبارت دیگر، این اندروید نیست که به واسطه ی زامارین توسعه میابد؛ این زامارین و به طور دقیق تر .NET است که به واسطه ی محبوبیت سیستم عامل اندروید توسعه پیدا میکند.

زامارین در واقع راهکار آینده .NET برای دستیابی به هدف یکپارچگی است، هدفی که در نهایت منجر به افزایش توسعه نرم افزار بر بستر .NET و استفاده ی حداکثری از سرویس های آن میشود؛ این استفاده در نهایت منجر به تبدیل .NET به عنوان یک مرکز وحدت خواهد شد که تمام سیستم های عامل را تحت شعاع قرار میدهد.

 

برنامه نویس سنتی

زامارین
این جدول نشان میدهد که در طول تاریخ از زبان جاوا هم به عنوان زبان برنامه نویسی یکپارچه استفاده شده است

در وب لاگ یک برنامه نویس ایرانی، در مورد زامارین مطالعه میکردم که ناگهان با این تیتر مواجه شدم: ” برنامه‌نویسان از جمله خود من 😉 وقتی به یک خطای بدجنس بر می‌خورم دقیقاً پیغام خطای دریافتی را گوگل می‌کنم که گوگل عزیز هم پست‌های استک‌اورفلو را پیشنهاد می‌دهد و در نهایت در عرض چند دقیقه راه حل مشکل پیدا خواهد شد، حال تصور کنید شما در توسعه اپلیکیشن با Xamarin به خطایی برخورد می‌کنید چون تعداد کمی برای توسعه اپلیکیشن از این روش استفاده می‌کنند و اغلب آنها مثل شما تنبل هستند‌ ( چون که همگی مثل شما می‌خواستند راه میان‌بر را انتخاب کنند ) احتمال پیدا کردن راه‌حل خیلی کم است! ”

اینکه ما در حوزه ی فناوری اطلاعات و برنامه نویسی فعالیت کنیم، معنی اش این نیست که ما لزوما فرد به روزی هستیم؛ بیایید برای افزایش دانش خود به گذشته سفر کنیم، به روزی که جاوا توسط Sun Microsystems ظهور پیدا نمود، در آن تاریخ حدودا ۱۰ سال از حیات زبان C++ و ۲۰ سال از حیات زبان C میگذشت، توسعه زبان جاوا به عنوان یک فناوری جدید اگرچه با چالش همراه بود، اما به علت تولید یک پایه ی جدید در حوزه ی توسعه و برنامه نویسی، این تکنولوژی جدید به سرعت جای خود را در میان برنامه نویسان باز کرد، با رویکرد بالا هر ایده ی نو ظهوری که منجر به شکستن ساختار کنونی شود، صرف نظر از هدف و کیفیت ایده، تنها به علت ضعف های فعلی خود، مردود و بلا استفاده خواهد بود!

اینکه کسی دوست داشته باشد با آنچه آموخته است، پروژه ای را به اتمام برساند، تنفر کاربران از ایجاد تغییر تعریف میشود نه تنبلی!

ما متاسفانه در کشورمان دچار یک اپیدمی وحشتناک شده ایم به نام ” بت سازی ” ! این بت سازی ابعاد و مصارف مختلفی دارد که در نهایت منجر به تولید یک رشته تعصبات پوچ و بی فایده خواهد شد که نه تنها به شخص ما، بلکه ممکن است در صورت اشتباهات عمومی ما، به دیگران نیز آسیب وارد کند؛ این اشتباه عمومی میتواند یک تحلیل غیر علمی و جهت گیری شده در وب سایت شخصی مان باشد.

شاید اگر زامارین هیچ چارچوب به خصوصی برای خود تولید نکرده بود که برای استفاده از آن، نیازمند فرا گرفتن آن چارچوب ها باشیم، میشد به برنامه نویسان علاقه مند به توسعه نرم افزار با استفاده از زامارین ، صفت هایی مثل تنبل و تازه کار را اطلاق کرد؛ اما در شرایط کنونی که این برنامه نویسان نیازمند فرا گرفتن یک رشته چارچوب های مخصوص به خود هستند، افرادی که چنین تفکری دارند به زعم بنده ” برنامه نویسان سنتی ” نام دارند که این دوستان متاسفانه، مصداق بارز مقابله با پیشرفت تکنولوژی های روز در کشور میباشند.

 

شما چه دوست دارید؟

چه کسی میتواند به صورت کاملا مطلق یا حتی نسبی، یک زبان برنامه نویسی را به سایر زبان ها برتری دهد؟ با هر معیاری که نگاه کنید، هیچ یک از این زبان ها و حتی سرویس های ارائه شده توسط آنها، به صورت نسبی و مطلق از دیگری برتر نیستند و همه چیز به دانش، مهارت و تجربه شما بر میگردد!

در واقع این شمایید که زبان ها را توسعه میدهید، آنها به خودی خود هیچ توانی برای توسعه خود ندارند و این میزان علاقه ی شما به آنهاست که معیار انتخاب شدن آنهاست نه معیار های امنیتی، کیفی و …

قبول دارید؟

 

آیا زامارین یک محیط کامل و قابل اعتماد  است؟

زامارین
اجرا شدن یک نرم افزار C# – Base که توسط زامارین توسعه یافته

اینکه زامارین در ایران یک محیط توسعه بد نام است، ضعف صنعت تولید و توسعه نرم افزار ایران را نشان میدهد که همیشه باید منتظر نسخه های صادر شده توسط خارجی ها باشد!

این موضوع هم یکی از مشکلاتی صنعت برنامه نویسی در ایران است که بنده همواره میگویم:” ما در ایران بیشتر صنعت کپی برداری داریم تا تولید و توسعه ” و این یک ضعف عمیق و اساسی است.

به خودی خود؛ من زامارین را به عنوان یک ابزار تمام عیار، برای کارفرما و مدیری که یک نیروی متخصص مسلط به استفاده از آن دارد، توصیه میکنم.

 

زامارینِ مایکروسافت در برابر اندرویدِ گوگل

داستان، داستان یک جنگ قدیمی و هیجان انگیز است که منجر به پیشرفت علم و فناوری های روز خواهد شد و ما باید سعی کنیم تا در این جنگ دوستانه، حداکثر بهره وری را برای خود به دست آوریم.

حقیقت این است که مایکروسافت با حمایت پر و پا قرص شما از گوگل زمین نخواهد خود و گوگل هم حقیقتا به دنبال این نیست! برعکس این موضوع نیز صادق بوده و ما به عنوان برنامه نویس و توسعه دهنده ی علاقه مند به یک زبان، IDE و سرویس به خصوص، صرفا حق آن داریم که فارغ از هرگونه بدگویی، از تمام امکانات موجود و در دسترس استفاده کنیم.