زبانهای برنامهنویسی قدیمی چقدر در دنیای امروز ما نقش دارند؟
کدهای کهن
شاید باورش کمی سخت باشد اما در دنیای مدرن فناوریهای ابری و 5G بدون زبانهای برنامهنویسی قدیمی، صنعت بانکداری جهانی، سازمانهای تحقیقاتی بینالمللی و بسیاری از سامانههای دفاعی مبتنی بر نرمافزارهای تولید شده با آنها از کار خواهند افتاد. بهزبان ساده بدون این کدهای قدیمی ما قادر به ادامه زندگی، حداقل به شکل کنونی آن نخواهیم بود. زبانهای برنامهنویسی که گاه بیش از نیمقرن پیش برای انجام کارهای بهخصوص و گاه بهصورت موقت تولید شدند، اما هنوز هم روزانه در میلیونها تراکنش و پردازش بهکار میروند و ستون فقرات سیستمهایی را که دنیای مدرن برپایه آن بنا شده تشکیل میدهند. بسیاری از شرکتها و دولتها نمیخواهند یا نمیتوانند به این کدهای قدیمی که سالهاست کارشان را بهخوبی انجام دادهاند، دست بزنند. درنتیجه این نرمافزارها بهجای تعویض، وصله و پینه میشوند و شاهد وابستگی باورنکردنی دنیای پیشرفته امروزی به زبانهای تقریبا مردهای هستیم که بهزودی دیگر متخصصی برای تعمیر محصولات ساخته شده با آنها باقی نخواهد ماند. در ادامه شما را با برخی از این زبانهای قدیمی ولی کاربردی آشنا میکنیم.
یکی از قدیمیترین زبانهای برنامهنویسی که هنوز کاربرد گستردهای در بسیاری از محاسبات علمی دارد، زبان Fortran (مخفف Formula Translation یا ترجمه فرمولی) است. IBM این زبان برنامهنویسی را در دهه 50 میلادی توسعه داد و یکی از نخستین زبانهای برنامهنویسی سطح بالا بود که از کلمات بهجای کدهای عددی استفاده میکرد. این ویژگی جدید و جالب باعث شده بود برنامهنویسها بتوانند با سرعتی پنجبرابر بیشتر از زبان ماشین کدنویسی کنند و همین باعث محبوبیت گسترده آن شد. البته امروزه تعداد برنامهنویسهای مسلط به این زبان بسیار کمتر است، هرچند هنوز هم میتوانید در سراسر جهان متخصصانی را پیدا کنید که با آن آشنا هستند. جینمز هوارد، متخصص علوم داده آزمایشگاه فیزیک کاربردی دانشگاه جان هاپکینز که یکی از این متخصصان است، بهگفته خودش سالهاست به این زبان نرمافزاری ننوشته، اما نرمافزارهای دیگر او کماکان از کتابخانههای اصلی این زبان برنامهنویسی که در دهه 70میلادی نوشته شدهاند و سرعت بینظیری دارند برای کارهای مختلف استفاده میکنند. آخرین بار که او بهصورت مستقیم به این زبان برنامهنویسی کرده، 10سال پیش بود که نیاز داشت اطلاعات یک نرمافزار در سیستم بانک مرکزی آمریکا را به نرمافزار دیگری انتقال دهد. مساله اینجا بود که یکی از این برنامهها با زبان برنامهنویسی C و دیگری با Fortran نوشته شده بود و سازنده دیگر کتابخانه مرکزی فرترن موردنیاز را تامین نمیکرد. هوارد بهخاطر آورد در کودکی خوانده بود که ساختار فراخوانی دادهها در زبان C دقیقا برعکس زبان فرترن است. در نتیجه او یک کد ساده نوشت تا ترتیب اطلاعات موجود در برنامهها را برعکس کند و بههمین سادگی مشکل برطرف شد.
زبانی برای شرایط سخت
یکی دیگر از زبانهای برنامهنویسی قدیمی که هنوز هم دور از چشم عموم به زندگی خود ادامه میدهد، زبان Ada است. این زبان برنامهنویسی بیشتر توسط دولت آمریکا در سیستمهای دفاعی و امنیتی که نیازمند اطمینانپذیری قابلتوجه هستند بهکار میروند و بههمین دلیل هم خیلی مشخص نیست امروزه برای چه کاری مورد استفاده قرار میگیرد. اما تا آنجا که میدانیم سازمان ناسا و شرکت بوئینگ در سالهای اخیر از نرمافزارهای تولید شده با Ada برای برنامهریزی ماهوارهها و هواپیماها استفاده کردهاند. این زبان برنامهنویسی در دهه 70میلادی و به سفارش وزارت دفاع ایالات متحده توسعه یافت تا به استاندارد تبدیل شود و از تنوع و تکثر زبانهای برنامهنویسی بهکار رفته در تولید نرمافزارهای دفاعی بکاهد، چرا که تعدادشان در آن زمان به 400 زبان مختلف رسیده بود. زبان Ada طوری ساخته شد تا بتوان در شرایط مرگ و زندگی روی آن حساب کرد و در برابر خطاهای احتمالی برنامهنویسها مقاوم باشد. این زبان در سال 1980 برای استفاده عرضه شد و حتی در دورهای استفاده از آن برای تمام ارگانهای دولتی آمریکا ضروری بود، هرچند امروزه دیگر این اجبار وجود ندارد. با این حال، زبان Ada هنوز هم در کاربردهای پرخطری که نیازمند اطمینانپذیری بالا در شرایط دشوارهستند بهکار میرود و بعید است به این زودی شاهد مرگ کامل آن باشیم.
زبانی برای تجارت
زبان برنامهنویسی COBOL که به فارسی، زبان برنامهنویسی مشترک تجارتمحور معنی میدهد در سال 1959 برای انجام بهتر پردازشهای محاسباتی مثل تسویه حقوق کارکنان، مدیریت تراکنشهای بانکی و کنترل بودجه توسعه یافت. این زبان برنامهنویسی هم مثل بسیاری از موارد مشابه دیگر به سفارش وزارت دفاع ایالات متحده بهعنوان راهحلی موقت توسعه یافته بود. هرچند از آنجا که این وزارت از تمام تولیدکنندگان کامپیوتر در آمریکا خواسته بود تا این زبان را در سیستمهای خود بگنجانند، در طول دو دهه آینده این زبان توسعهدهندگان پرشماری در سراسر جهان پیدا کرد. این زبان ساده و قدیمی هنوز هم بسیار پرکاربرد است و بنابر گزارش خبرگزاری رویترز در 2017 بیش از 95درصد عابربانکها و 43درصد از بانکهای آمریکا هنوز از این زبان برای کارهای خود استفاده میکردند. در کشور ما هم مشکل مشابهی وجود دارد و بخش قابلتوجهی از سیستم بانکی و مالی از این زبان قدیمی برای انجام تراکنشهای خود بهره میبرند. اما بسیاری از برنامهنویسهای مسلط به این زبان قدیمی یا بازنشسته شدهاند یا در حال ترک نیروی کار هستند و این مشکل بزرگی پیشروی سیستم مالی جهانی قرار داده که البته در آن تنها نیست.
چه باید کرد؟
مساله اینجاست که در بحرانهایی مثل همهگیری اخیر کرونا و افزایش فشار بر زیرساختهای قدیمی خدمات آنلاین دولتی، نرمافزارهای قدیمی توسعهیافته با این زبانها با مشکلات پیشبینینشدهای مواجه میشوند که گاه ممکن است برای رفع آن به موانع قابلملاحظهای برخورد کنیم. در حال حاضر شرکتهای تخصصی با بازخوانی و بازنویسی کدهای قدیمی به زبانهای جدیدتر این نرمافزارهای حیاتی را بهروزرسانی میکنند، هرچند این فرآیند هزینهبر و پرخطر است و ممکن است در پلتفرمهای بزرگ نیازمند صرف 3 تا 10سال زمان و میلیونها دلار هزینه باشد. یک روش جایگزین دیگر که بهتازگی امکانپذیر شدهاست، استفاده از فرآیندهای خودکار و استفاده از آخرین نسخههای موجود زبانها برای امکان بهتر انتقال به سرورهای ابری و حفظ کاربری آنها در دوران اینترنت است که میتواند به افزایش قابلتوجه سرعت انتقال و نیز کاهش هزینههای مرتبط با این کار منجر شود. مهمترین چیز اما درنظر گرفتن این واقعیت است که نرمافزارهای قدیمی و مبتنی بر زبانهای فراموش شده با وجود کارایی خود در حال نزدیک شدن به پایان دورانشان هستند و باید هرچه زودتر فکری برای زیرساختهای حیاتی مالی، علمی و اطلاعاتی وابسته به آنها کنیم.




