محمدرضا ملیخان
محمدرضا ملیخان
خواندن ۳ دقیقه·۸ ماه پیش

تاثیرات devops بر دنیای زبان های برنامه نویسی.

در گذشته، در توسعه زبان های برنامه نویسی  همواره مفهوم cross-platform بودن آنها بسیار اهمیت داشته است، منظور از این اصطلاح این است که زبان مورد نظر ما در چه محیط هایی قابل اجرا میباشد. بعبارتی برنامه نوشته شده در کدام تیم از سرورها و سیستم عامل ها قابل اجرا بود؟ در همه سیستم عامل های مدرن؟ در یک سیستم عامل خاص؟



سالها پیش این ها مسائل مهمی میان شرکت هایی چون سان، مایکروسافت و غیره بودند. در واقع موضوع cross-platform بودن زبان های برنامه نویسی، تاثیرات مهمی در استراتژی بازاریابی شرکت های عرضه کننده و روابط میان غول های این حوزه داشت. مخصوصا این که زمانی چیزی شبیه جنگ سرد میان پلتفرم های ویندوز و لینوکس وجود داشت که خوشبختانه امروزه این موضوع حل شده است.

اندر حکایات سان و مایکروسافت.
اندر حکایات سان و مایکروسافت.


ویندوز در برابر لینوکس!
ویندوز در برابر لینوکس!


یک نمونه بارز از یکی از مهمترین زبان های برنامه نویسی که روی این موضوع بسیار حساب باز کرده بود، زبان برنامه نویسی جاوا بود. با توسعه jvm جاوا بعنوان یک زبان کاملا cross-platform برای دهه ها می‌درخشید و قابلیت انطباق بسیار قابل توجهی داشت و البته هنوز هم دارد. کدهای جاوا قابلیت این رو داشتند که در گستره عظیمی از دستگاه ها به لطف jvm اجرا شوند. از تلویزیون تا سرور بک اند.

JVM
JVM




اما با ظهور پدیده dev-ops و همچنین جداسازی منطقی فرآیند توسعه از استقرار نرم افزار و در عین حال همکاری دو طرف توسعه و استقرار، بازی حداقل در حوزه نرم افزارهای تجاری تحت وب کمی تغییر پیدا کرد. در واقع چالش کراس پلتفرم نمودن یک سکوی توسعه بک اندی، که چالشی حقیقتا بزرگ است کمی از تب و تاب افتاده است. با تکامل بیشتر و روزافزون حوزه devops و ایجاد ابزارهایی چون docker و یا محصولات مشابه آن در این حوزه، در اکثر مواقع زبان برنامه نویسی شما کافی است تا از داکر پشتیبانی کند(سیستم عامل لینوکس) تا یک نرم افزار تجاری کراس پلتفرم را داشته باشید. و شاید در سال‌های آینده و در صورت پیشرفت های بیشتر در ابزارهای این حوزه، تمرکز زبان های برنامه نویسی و فریمرک های بک اندی به سمت فاکتورهایی چون امنیت، سرعت، انطباق و یکپارچگی با هوش مصنوعی استفاده بهینه از منابع و ویژگی های نگارشی و قواعدی آن متمرکز شود و اصلا درگیر مسائلی چون cross platform بودن نگردند.


عصر مجازی سازی و طوفان کانتینرها
عصر مجازی سازی و طوفان کانتینرها


محیط کاری خودتون رو در نظر بگیرید، شما در حال توسعه یک سری web api هستید و بدون توجه به اینکه زبان برنامه نویسی شما به چه میزان cross platform است، آن را تیم زیرساخت بر روی داکر اجرا خواهد نمود. چه زبان شما Go باشد یا دات نت یا جاوا و یا هر چیز دیگری...تکامل بیشتر ابزارهای حوزه devops می‌تواند تغییرات گسترده ای در حوزه زبان های برنامه نویسی سیستمی نیز بگذارد. به هر حال وقتی که سیستم عامل های داکری و لینوکسی وجود دارند که حجم آنها تنها چند  مگابایت است، چرا که نه؟! (Alpine Linux)


Alpine Linux
Alpine Linux



در واقع هر چقدر تکنیک های مجازی سازی و container سازی بهبود پیدا کنند تاثیرات روز افزونی بر نوع نگرش حاکم بر تولید زبان های برنامه نویسی می‌گذارد.
مثل هر علم دیگری، علوم کامپیوتر و مباحث مربوط به آن در حال بسط پیدا کردن و گسترش یافتن است و بنظر میرسد این گسترش بر موضوع cross-platform بودن نیز تاثیر گذار است.

زبان‌های برنامه نویسی
برنامه نویس.
شاید از این پست‌ها خوشتان بیاید