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

این مطلب یکی از مجموعه مقالات پرونده ویژه «آینده برنامه‌نویسی» است. برای دانلود کل پرونده ویژه اینجا کلیک کنید. 

نرم‌افزار در حال بلعیدن دنیای ما است!
مارک اندرسون سرمایه‌گذار، مهندس نرم‌افزار، مؤسس شرکت نت‌اسکیپ و پدیدآورنده مرورگر موزاییک در سال 2011 گفت: «نرم‌افزار در حال بلعیدن جهان است، بسیاری از مردم به این حقیقت باور دارند.» زمانی ‌که با افرادی در مشاغل مختلف درباره توسعه نرم‌افزار صحبت ‌کنید، ممکن است پاسخ‌های مختلفی همچون «کسب‌وکار ما تفاوت زیادی با این موضوع دارد»، «نرم‌افزار در محدوده کاری ما قرار ندارد» و «هر چیزی در کسب‌وکار ما به‌کندی در حال حرکت است» را بشنوید. اما واقعیت این است که سیستم‌های مرکزی شرکت‌ها و فرآیندهای انجام شده توسط آن‌ها از مدت‌ها قبل پذیرای نرم‌افزارها بوده‌اند. همچنین، دورنمای فعلی کسب‌وکارها نشان می‌دهد در عرض چند سال آینده تقریباً تمام کسب‌وکارها دیجیتالی خواهند شد و کارهای خود را با نرم‌افزار انجام خواهند داد. واقعیت این است که بسیاری از شرکت‌ها خواه اطلاع داشته یا هیچ ‌گونه اطلاعی نداشته باشند، از مدت‌ها قبل به یک شرکت نرم‌افزاری تبدیل شده‌اند و به‌طور پیوسته بر تعداد آن‌ها افزوده خواهد شد. 

موضوع این است که چگونه این شرکت‌ها با بخش کلیدی شرکت خود که نرم‌افزار خواهد بود برخورد کرده و شایستگی خود را در این زمینه نشان خواهند داد. ردپای شیوه‌های مدیریت چابکانه (Agile) که در چرخه توسعه نرم‌افزارها مورد استفاده قرار می‌گیرد و تحت عنوان متدولوژی‌های چابک، اسکرام و تحویل مستمر نامیده می‌شوند، اکنون در بخش‌های مختلفی همچون تولید خودرو، خرده‌فروشی‌ها (آمازون)، سازندگان شبکه (Juniper)، هیدرولیک (Sun Hydraulics)، مواد غذایی (Whole Foods Markets) و دیگر صنایع دیده می‌شود. این موضوع حقیقت دارد که بسیاری از شرکت‌های بزرگ و قدیمی همچنان از شیوه‌های عملیاتی کند استفاده می‌کنند، اما این موضوع به ‌دلیل ماهیت ذاتی آن‌ها نیست، بلکه به خاطر شیوه‌ سلسله مراتبی مدیریت دیوان‌سالاری منسوخ شده‌‌ای است که آن‌ها در محل کار خود از آن استفاده می‌کنند (شکل 1).

 شکل 1: شرکت‌های نرم‌افزاری که با رشد مثبت و شرکت‌های سخت‌افزاری که با رشد منفی همراه هستند.

کاملاً درست است مفهومی به‌نام متدولوژی چابک (Agile) در ارتباط با توسعه نرم‌افزار قرار دارد و شرکت‌هایی همچون مایکروسافت سال‌ها پیش برای ارتقای برنامه‌های آفیس خود و Saleforce (شرکتی که در زمینه محاسبات ابری فعالیت دارد) از آن استفاده کردند. اما به‌کارگیری این چنین متدولوژی‌هایی فقط با هدف کسب درآمدهای میلیون دلاری یا ارتقای سطح کیفی محصولات نیست، بلکه برای ایجاد یک محیط کار بهتر مورد استفاده قرار گرفته‌اند. ریچارد اشتراوب، رییس Drucker Society Europe، در این ‌باره گفته است: «به ‌نظر می‌رسد بهبود نرم‌افزارها در بازه‌های کوچک بهتر از یک چرخه طولانی به‌روزرسانی‌ها عمل می‌کند. برای تمام سهام‌دارن، مشتریان، کارکنان و مخترعان این شیوه عملیاتی کارکرد بهتری دارد.»

اگر نرم‌افزار در حال بلعیدن دنیای ما است، جنبش مبنع ‌باز در حال بلعیدن نرم‌افزار است
امروزه جهت‌گیری شرکت‌‌های بزرگ فناوری به سمت و سوی منبع ‌باز است. علائمی که امروزه از این جریان مشاهده می‌کنیم، نشان می‌دهد در آینده منبع باز دنیای نرم‌افزار را در کام خود فرو خواهد برد.  چرا به یک ‌باره شرکت‌های بزرگی که روزگاری منبع ‌باز را مورد نکوهش قرار می‌دادند، دیدگاه خود را عوض کردند و منبع ‌باز را به‌عنوان یک راه‌کار جامع پذیرفتند؟ 
منبع ‌باز به‌راحتی کیفیت، امنیت و نوآوری را در اختیار محصولات قرار می‌دهد. بنابر گفته‌های سازنده نرم‌افزار Black Duck امروزه بیش از یک میلیون پروژه منبع‌ باز وجود دارد و بنا به گفته‌های گارتنر تا سال 2016 میلادی نزدیک به 2000 سازمان برای کارهای مهم و حیاتی خود به سوی متن‌ باز حرکت خواهند کرد. برای اثبات صحبت‌های خود می‌توانیم به ذکر ده دلیل درباره این‌که آینده نرم‌افزار در دستان منبع‌ باز خواهد بود، بسنده کنیم.

کیفیت
کیفیت اصلی‌ترین دلیلی است که مردم در زمینه انتخاب منبع‌ باز به آن اشاره می‌کنند. این تغییری بزرگ است. در سال 2011، کیفیت در رتبه پنجم قرار داشت. اما آن چنان ‌که پروژه‌های منبع‌ باز طرف‌داران خود را پیدا کرد، بیش‌تر مردم به مشارکت در زمینه بهبود ثبات، رفع اشکالات و ساده کردن واسط آن کمک کردند. عامل مرتبط و مؤثر در این زمینه به سهولت استقرار باز می‌گردد که باعث شد از مکان ششم در سال 2013 به مکان سوم برسد (شکل 2). این نشانه دیگری از بلوغ سریع پروژه‌های متن‌ باز است. در واقع، بیش‌تر ابزارهای متن‌ باز در مقایسه با معادل اختصاصی خود به‌سادگی قابل نصب هستند، بدون آن‌که به خرید یا پشت سر گذاشتن فرآیندهای خاص نیازی باشد. 

 شکل 2: کیفیت نرم‌افزارها مورد توجه کاربران قرار دارد. در سال 2014، از هر ده کاربر هشت نفر راه‌کارهای منبع باز را به دلیل کیفیت آن‌ها انتخاب کرده‌اند.

مجموعه ویژگی‌ها
بنابر گزارش اعلام شده از سوی بنیاد لینوکس، 80 درصد شرکت‌ها در نظر دارند ظرف پنج سال آینده سطح به‌کارگیری لینوکس را در مجموعه خود افزایش دهند و تنها 20 درصد از آن‌ها در نظر دارند از ویندوز استفاده کنند. تعداد شرکت‌هایی که از لینوکس برای انجام وظایف سنگین و مهم استفاده کرده‌اند، از 60 درصد سال 2010 به 73 درصد در سال 2012 رسیده است و به‌طور قطع، قیمت عاملی مهم در این زمینه به ‌شمار می‌رود. حتی زمانی‌ که هزینه‌های مربوط به پشتیبانی اضافه شوند، باز هم نرم‌افزارهای منبع‌ باز به‌ طرز قابل توجهی ارزان‌تر از نمونه‌های مشابه تمام می‌شوند. با توجه به گزارش بنیاد لینوکس، هزینه دومین عامل در این زمینه محسوب می‌شود و نخستین عامل در ارتباط با مجموعه ویژگی‌ها قرار دارد. 

امنیت
امنیت در گذشته به‌عنوان یکی از ضعف‌های منبع‌ باز شناخته می‌شد، اما اکنون این موضوع تغییر پیدا کرده است. در سال گذشته میلادی، 72 درصد پاسخ‌دهندگان Black Duck اعلام کردند، منبع‌ باز را به ‌دلیل امنیت آن پذیرفته‌اند. نرم‌افزار منبع‌ باز به کاربران اجازه می‌دهد به مشاهده کدهایی بپردازند که ممکن است نقص‌های امنیتی داشته باشند. دنیل پولی، کارشناس امنیت اطلاعات سازمانی در بانک Financial، در این‌ باره می‌گوید: «من منبع‌ باز را به ‌دلیل شفاف بودن آن دوست دارم. زمانی ‌که قطعه‌ای از یک‌ نرم‌افزار در تعامل با داده‌ها قرار دارد، دوست دارم بدانم چه اتفاق‌هایی در جریان است. سازندگان نرم‌افزارهای تجاری اکنون تحت فشار قرار دارند تا نرم‌افزارهای خود را مطابق با آن‌چه در منبع‌ باز در جریان است هم‌سو کنند. هم در بخش امنیت و هم در دیگر بخش‌ها این فشارها به‌طور فزاینده در جریان است.»

نوآوری سریع
سازندگان سنتی نرم‌افزار طراحی و ساخت نرم‌افزارهای خود را در خانه خود انجام می‌دهند. هرچند سازندگان منبع‌ باز کار خود را از صفر آغاز نمی‌کنند، اما در زمینه نوآوری در جایگاه بالاتری قرار دارند. جان اولتسیک، تحلیل‌گر ارشد و بنیان‌گذار شرکت خدمات امنیت اطلاعات، می‌گوید: «منبع‌ باز یک زیرساخت نرم‌افزاری مناسب را آماده می‌کند، به‌ طوری ‌که هر زمان توسعه پروژه‌ها لازم باشد، در بیش‌تر موارد نیازی نیست کارها از پایه انجام شوند. در ادامه، نرم‌افزار می‌‌تواند بر اساس اهداف خاص سفارشی شود که شتاب خاصی را در فرآیند توسعه نرم‌افزار به وجود می‌آورد.»

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

سفارشی‌سازی
نرم‌افزار منبع باز به کاربران خلاق اجازه می‌دهد به درون منبع ‌کدها بروند و آن ‌را ویرایش کنند. پل استدلر، مدیر فناوری بیمارستان Cat Chester Country، در این ‌باره می‌گوید: «من می‌‌توانم نرم‌افزار منبع‌ باز را گسترش بدهم و آن ‌را به‌ گونه‌ای که به آن نیاز دارم ویرایش کنم، بدون‌ آن‌که به شرکت‌های دیگر نیازی داشته باشم.» بیمارستانی که او در آن به فعالیت مشغول است، از نرم‌افزار متن‌ باز مدیریت بر دام‌ها برای انجام فعالیت‌های زیربنایی خود استفاده می‌کند. نرم‌افزاری که روی یک سرور لینوکس اجرا شده است و از طریق یک رابط وب‌محور در اختیار کاربرانی قرار دارد که از دسکتاپ و دستگاه‌های همراه استفاده می‌کنند. در واقع، سازگاری و انعطاف‌پذیری نرم‌افزار منبع‌ باز چهارمین عامل مهمی است که باعث می‌شود شرکت‌ها آن ‌را به‌عنوان نرم‌افزار اختصاصی خود مورد استفاده قرار دهند.

همکاری و مشارکت
در گذشته، زمانی ‌که چند شرکت‌ به قابلیت‌های مشابهی نیاز داشتند، دو راه‌کار در اختیار بود؛ از محصول یک فروشنده خارجی استفاده کنند یا کنسرسیومی را برای ایجاد و حفظ محصول تشکیل دهند. نرم‌افزار منبع‌ باز این فرآیند را با فعال کردن شرکت‌های رقیب به کار با یکدیگر ساده کرده است. این ویژگی به‌ میزان قابل توجهی در بهینه‌سازی زمان و پول شرکت‌هایی که روی این پروژه‌ها کار می‌کنند، مؤثر است. بنابر گزارش Balck Duck،50 درصد شرکت‌های بزرگ در پروژه‌های منبع‌ باز مشارکت می‌کنند و 56 درصد اعلام کرده‌اند سهم خود را در این زمینه افزایش خواهند داد. 
با مشارکت سازمان‌ها به این شیوه، نرم‌افزارها در مسیر توسعه و تکامل گام خواهند برداشت و روابطی بین توسعه‌دهندگان آن‌ها به وجود خواهد آمد. (شاید بارزترین نمونه از این مدل مشارکت را در پروژه WebAssembly مشاهده کنیم. پروژه‌ای که در آن شرکت‌های رقیب و بزرگی همانند مایکروسافت، گوگل، اپل و موزیلا با همکاری یکدیگر روی آن کار می کنند.)

استانداردسازی
ایده جالبی است، اگر استانداردها توسط گروه‌های هوشمند و نخبه‌ای از رهبران صنعتی ارائه شود که بهترین مسیر پیش‌رفت را در اختیار صنعت قرار دهند. با این‌ حال، چیزی که در عمل رخ می‌دهد، ظهور استانداردهای بالفعلی است که اغلب بر اساس یک محصول محبوب پیاده‌سازی می‌شوند. فرمت doc متعلق به نرم‌افزار ورد مایکروسافت نمونه‌ای از این موارد است. یک پروژه منبع‌ باز موفق بدون وجود چنین مخاطراتی و به وجود آمدن این چنین بن‌بستی‌هایی می‌تواند همین نقش را ایفا کند. مارک هنکل از Citrix در این ‌باره می‌گوید: «در بیش‌تر موارد پیاده‌سازی یک استاندارد بر اساس بازخوردهای دریافت شده از یک محصول واقعی امکان‌پذیر است.» وب‌سرور آپاچی نمونه خوبی از یک پلتفرم عظیم و در دسترس است که از بسیاری از استانداردهای امروزی اینترنت پشتیبانی می‌کند.
فراتر از یک پلتفرم خاص در بیش‌تر بخش‌ها، نرم‌افزار منبع‌ باز مختص یک پلتفرم‌ اختصاصی نیست. کلاود، موبایل، داده‌های حجیم و اینترنت‌ اشیا همگی از ویژگی‌های سطح بالای پروژه‌های منبع‌ باز استفاده می‌کنند که در جهت تکامل این پلتفرم‌ها گام برمی‌دارند. احتیاجی نیست به خود وب اشاره کنیم که امروزه عمدتاً بر مبنای لینوکس، PHP ،NoSQL و آپاچی به فعالیت خود ادامه می‌دهد. حتی در جدیدترین و داغ‌ترین فناوری‌های روز، «واقعیت ‌مجازی» پروژه‌های منبع‌ بازی همچون OpenSim ،Open Wonderland و Open Qwaq در رقابت با یکدیگر قرار دارند. 

هزینه
هزینه همچنان به‌عنوان عاملی تعیین‌کننده است. 68 درصد پاسخ‌دهندگان Black Duck گفته‌اند منبع‌ باز باعث بهبود بهره‌وری می‌شود و در کاهش هزینه‌ها کمک‌کننده است. البته منبع‌ باز به معنای کاملاً رایگان نیست. سازندگان هنوز هم می‌توانند در ازای نسخه‌های خاص از یک نرم‌افزار، پشتیبانی یا سفارشی‌سازی توسعه یک محصول هزینه آن ‌را دریافت کنند. 

چه عاملی بر جنبش منبع‌ باز تأثیرگذار است؟
حال که با نقش نرم‌افزار در تعاملات آینده کسب‌وکار و نقش متن‌ باز بر دنیای نرم‌افزار آشنا شدیم، زمان آن رسیده است تا ببینیم چه عاملی در پس‌زمینه روی این دو مفهوم تأثیرگذار است. بی‌شک، زبان‌های برنامه‌نویسی نقش بی‌بدیلی در زندگی ما بازی می‌کنند. بدون وجود زبان‌های برنامه‌نویسی اکنون در حال خواندن این مقاله نبودید و به ‌عبارت دقیق‌تر اصلاً کامپیوتری در اختیار نداشتید که بتوانید درباره آن صحبت کنید یا کارهای خود را بر مبنای آن انجام دهید. هر زمان دنیای برنامه‌نویسی جهش بزرگی را تجربه کند، تأثیرات آن به‌طور مستقیم در زندگی ما نشان داده می‌شود. 
دستگاه‌های هوشمندی که امروز در چهارچوب اینترنت ‌اشیا در اختیار مردم قرار دارند و از راه دور کنترل می‌شوند، ماحصل هم‌گرایی زبان‌های برنامه‌نویسی و پلتفرم‌های مختلف است. اما موضوع این نیست که برنامه‌نویسی چه کرده یا خواهد کرد، پرسش اصلی این است که آینده برنامه‌نویسی به‌ کجا خواهد رفت؟ برنامه‌نویسی در چه حوزه‌هایی پیش‌رفت خواهد کرد و سودآور خواهد بود و در چه بخشی‌هایی تخصصی و پیچیده می‌شود؟ سرمایه‌گذاری روی کدام یک از حوزه‌های برنامه‌نویسی در آینده سوددهی خواهد داشت؟ شرکت‌ها چگونه توانسته‌اند خود را با این تحولات دنیای برنامه‌نویسی هماهنگ کنند و مخاطبان بیش‌تری را در قالب پلتفرم‌های یک‌پارچه‌ای که امکان ساخت پروژه‌های مختلف را در اختیار برنامه‌نویسان قرار می‌دهد، به‌ سوی خود جذب کنند؟ این ویژه‌نامه سعی دارد ضمن پاسخ‌گویی به این پرسش‌ها به پرسش‌های زیر جواب دهد:
- اگر یک برنامه‌نویس یا طراح‌ نرم‌افزار نیستم، کار خود را از کجا باید آغاز کنم؟
- اگر یک طراح نرم‌افزار هستم، بهتر است در چه بخش‌هایی سرمایه‌گذاری کنم؟

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

نظر شما چیست؟