مقدمه
سلام. خوش آمدید. امیدوارم حالتان خوب باشد ماه ژوئن برای Exercism ماه پرخبری بود؛ با راهاندازی Premium و دهمین سالگردمان. و امیدوارم در Summer of Sexps از بازی با لیسپها لذت برده باشید. اکنون به ماه هفتم سال ۲۰۲۳ و ششمین ماه موضوعیمان میرسیم: Jurassic July.
منظورمان از Jurassic چیست؟ خب، منظور این نیست که این زبانها منقرض شدهاند؛ هرچند بعید است این روزها نرمافزار تازهای با COBOL بنویسید. بلکه منظور این است که اینها از کهنترین زبانها هستند؛ عمر بعضیشان از ۶۰ سال هم گذشته است. مقدار باورنکردنیای نرمافزار (بهویژه نرمافزار سازمانی) با این زبانها نوشته شده است. همهشان زبانهایی فوقالعاده موفق هستند.
خب، این زبانها کداماند؟ داریم به C، C++، COBOL، Fortran و Visual Basic نگاه میکنیم. در این ویدیو سراغ C و C++ نمیرویم، چون قبلاً در Mechanical March به آنها پرداختهایم؛ اگر به این زبانها علاقه دارید، آن ویدیو را ببینید. اما کمی بعد به COBOL، Fortran و Visual Basic خواهیم پرداخت!
نشانها
این ماه با کامل کردن ۵ تمرین در یکی از این زبانها نشان را بگیرید. و برای نشان یکساله، باید اینها را کامل کنید:
- Bob: کار با رشتهها و منطق شرطی
- Allergies: کار با رشتهها، اعداد و عملیات بیتی
- Reverse String: پیمایش کاراکترهای یک رشته
- High Scores: پیمایش آرایههای اعداد
- Armstrong Numbers: کار با اعداد و حلقه/تکرار
مرور کلی
Fortran
-
در دههی ۱۹۵۰ توسط جان باکوس در IBM پایهگذاری شد تا جایگزینی کاربردیتر از زبان اسمبلی برای برنامهنویسی رایانهی مینفریم IBM 704 شرکت بسازد
-
طوری طراحی شد که در ساخت کاربردهای علمی و مهندسی خوب باشد (نامش کوتاهشدهی Formula Translating System است)
-
نخستین زبان برنامهنویسی سطح بالا (تعداد خطوط کد را حدود ۲۰ برابر کاهش میدهد)
-
همچنین نخستین کامپایلر بهینهساز (مشتریان تمایلی به استفاده از یک زبان برنامهنویسی سطح بالا نداشتند، مگر آنکه کامپایلرش میتوانست کدی با کارایی نزدیک به زبان اسمبلی دستنویس تولید کند)
-
زبان با نوعبندی ایستا و قوی
-
در ابتدا فقط از برنامهنویسی امری پشتیبانی میکرد، اما کمی بعد برنامهنویسی رویهای هم به آن افزوده شد. افزونههای بعدی از پارادایمهای دیگر مانند برنامهنویسی شیءگرا و برنامهنویسی آرایهای پشتیبانی کردند
-
استانداردسازی شده است؛ نخست در سال ۱۹۶۶ با Fortran 66 و آخرین بهروزرسانی در سال ۲۰۱۸!
-
بسیار تأثیرگذار؛ از Basic تا ALGOL، الهامبخش زبانهای بسیاری بوده است. بخش بزرگی از پژوهشهای اولیهی زبانهای برنامهنویسی با هدف کمک به بهبود Fortran انجام شد
-
هنوز فعالانه توسعه مییابد و ویژگیهای تازه به آن افزوده میشود، در حالی که تضمینهای سازگاری عقبروی قویاش پابرجاست (کد قدیمی معمولاً هنوز کامپایل و اجرا میشود)
-
موازیسازی درونساخت با استفاده از coarrays، روشی ایمن و کارآمد برای بیان موازیسازی. توابع را میتوان pure علامت زد، که به کامپایلر در بهینهسازی برای محاسبات موازی کمک میکند
-
مدیریت ایمن حافظه با متغیرهای allocatable، که در آن کامپایلر مسئول آزادسازی حافظه است.
-
همکاری درونساخت با C
COBOL
-
در سال ۱۹۵۹ توسط کنسرسیوم CODASYL (با پشتیبانی وزارت دفاع!) طراحی شد تا هزینهی توسعهی کاربردهای تجاری را کاهش دهد (نامش مخفف Common Business-Oriented Language است)
-
در سال ۱۹۶۸ استاندارد شد و آخرین بازنگریاش از سال ۲۰۱۴ است
-
پیادهسازیهای مختلفی دارد، مانند IBM COBOL، GnuCOBOL (که به C کامپایل میشود) و Micro Focus™ Visual COBOL که هم روی JVM و هم روی رانتایم .NET اجرا میشود
-
زبان با نوعبندی ایستا
-
چندپارادایمی؛ از برنامهنویسی امری و شیءگرا پشتیبانی میکند
-
پرگو (با کلیدواژههای زیاد) اما نحوهی نگارشش برای انسان بسیار خواناست. به خوانایی و نگهداری کمک میکند
-
سازگاری عقبروی خوب، با مشخصاتی پایدار. در عمل آزمودهشده
-
کارایی خوب (در امور مالی استفاده میشود)
Visual Basic
-
مایکروسافت آن را بهعنوان جانشین Visual Basic توسعه داد و روی رانتایم .NET اجرا میشود (پسوند .NET بعد از Visual Basic 2003 حذف شد)
-
نخستین نسخهاش در سال ۲۰۰۲ منتشر شد و زبان در سال ۲۰۲۳ «پایدار» علامت خورد. یعنی دیگر نحوهی نگارش تازهای به این زبان افزوده نمیشود، اما هنوز زبانی پشتیبانیشده است
-
بیشتر نحوهی نگارشش را با Visual Basic مشترک است، اما تغییراتی در آن داده شده است
-
زبان با نوعبندی ایستا که از نوعبندی قوی و ضعیف پشتیبانی میکند
-
زبانی چندپارادایمی: عمدتاً شیءگرا، اما برنامهنویسی امری و رویدادمحور هم دارد
-
یادگیری آسان (Visual Basic طوری طراحی شد که یادگیریاش آسان باشد)
-
پشتیبانی عالی از برنامهنویسی شیءگرا
-
روی رانتایم آزمودهی .NET اجرا میشود و به همهی کتابخانههای .NET دسترسی دارد
-
استقرار آسان با استفاده از ClickOnce
موارد کاربرد
Fortran
در موقعیتهای محاسباتی با کارایی بالا (ابررایانهها) به کار میرود، مانند پیشبینی وضع هوا، نجوم و مهندسی سازه. همچنین در نرمافزارهای طراحی به کمک رایانه و بسیاری از کاربردهای ساختهشده روی FORTRAN استفاده میشود؛ برای نمونه، شماری از ماژولهای NumPy از کتابخانههای FORTRAN 77 بهره میبرند
COBOL
در امور مالی بسیار استفاده میشود و بسیاری از سامانههای مالی هنوز بخش بزرگی از کارشان را با نرمافزارهای COBOL پیش میبرند (برآوردها میگویند حدود ۸۰٪ تراکنشهای مالی به کمک COBOL انجام میشود)، هرچند این روزها بیشتر جنبهی نگهداری دارد. همچنین در بسیاری از کاربردهای تجاری به کار میرود، و حتی در یک ذخیرهگاه کلید/مقدار که در Walmart استفاده میشود.
Visual Basic
برای رابطهای گرافیکی کاربر (مثلاً رابطی برای پایگاههای داده) و وبسایتهای تولیدشده در سمت سرور استفاده میشود. شرکتهایی مانند Boeing، Wells Fargo و General Electric از آن بهره میبرند
از منظر برنامهنویسی چه تفاوتی دارند؟
Fortran
در ابتدا فقط از برنامهنویسی امری پشتیبانی میکرد، اما کمی بعد برنامهنویسی رویهای هم به آن افزوده شد. افزونههای بعدی از پارادایمهای دیگر مانند برنامهنویسی شیءگرا و برنامهنویسی آرایهای پشتیبانی کردند
COBOL
چندپارادایمی؛ از برنامهنویسی امری و شیءگرا پشتیبانی میکند
Visual Basic
زبانی چندپارادایمی: عمدتاً شیءگرا، اما برنامهنویسی امری و رویدادمحور هم دارد
ویژگیهای برجسته
Fortran
- کارایی. زبان Fortran و نوعها و ساختارهای دادهاش طوری طراحی شدهاند که کارآمد باشند و کارایی بالایی داشته باشند. به همین دلیل است که در ابررایانهها به کار میرود
- بهصورت پیشفرض از توابع ریاضی بسیاری پشتیبانی میکند
- برنامهنویسی آرایهای روشی بسیار تمیز برای اعمال عملیات روی آرایهها و بخشهایی از آرایهها است، بدون اینکه لازم باشد دستی پیمایش کنید یا مرزهای آرایه را مشخص کنید
COBOL
- محاسبات ممیزثابت، برخلاف اعداد ممیز شناور، خطای گردکردن ندارد. همین آن را برای امور مالی عالی میکند
- برای خواندن از فایلها و نوشتن در آنها (رکوردها) عالی است
- پشتیبانی درونساخت COBOL از تولید گزارشها (که دلیل دیگری برای محبوبیتش در کاربردهای تجاری است)
Visual Basic
- برای ساخت برنامههای رابط گرافیکی کاربر با Windows Forms عالی است. ویرایشگر کشیدن و رها کردن با نمایش نتیجهی نهایی
- پشتیبانی عالی از محیط توسعهی یکپارچه، با بازآرایی، تکمیل کد و کلی قابلیت دیگر
کدام را امتحان کنیم؟
- اگر به محاسبات علمی یا کارایی بالا علاقه دارید، Fortran انتخاب عالیای است
- اگر میخواهید حسوحالی از اینکه کاربردهای تجاری در گذشته چطور ساخته میشدند به دست آورید، COBOL عالی است
- اگر به ساخت برنامههای رابط گرافیکی کاربر علاقه دارید یا از قبل روی پلتفرم .NET هستید، Visual Basic خیلی خوب جواب میدهد
- اگر به تاریخ برنامهنویسی علاقه دارید، COBOL و Fortran هر دو مسیرهای جذابی برای کاوش هستند