خانه توسعهدهنده تکنولوژی تاریخچه تاریخچه برنامهنویسی
تاریخچه برنامهنویسی

عصر، عصرِ تکنولوژی است و دنیا روزبهروز بیشتر به سمت دادهمحورشدن پیش میرود. در چنین مقطعی از تاریخ، اهمیت برنامهنویسی کامپیوتر و داشتن سواد دیجیتال از همیشه بیشتر مشهود است. احتمالاً شما هم بیش از قبل کلمهی برنامهنویسی را از اینوآن میشنوید. در سالهای اخیر، محبوبیت برنامهنویسی به اوج خود رسیده و حالا تقاضا برای یادگیری این مهارت بیش از هر مهارت دیگری است. شیوع ویروس کرونا حتی افراد بیشتری را به سمت دورههای آموزش برنامه نویسی سوق داده است. بسیاری از افراد به یادگیری برنامهنویسی رو آوردهاند تا با افزایش مهارتهای خود، آیندهشان را در شرایط ناپایدار اقتصادی تضمین کنند. در این مقاله دربارهی آنچه بر برنامهنویسی گذشته است نوشتهایم. تاریخچه برنامه نویسی را با هم بخوانیم؛ سرگذشتی که پیچیدگیاش چیزی از جذابیت داستان آن کم نمیکند.
ممکن است به این مقاله هم علاقهمند باشید: برنامهنویسی چیست؟
Ada Lovelace؛ اولین برنامهنویس تاریخ

چشمانتان را ببندید و یک برنامهنویس را در حال کدنویسی در ذهنتان تصور کنید. اگر شما هم تصویر یک مرد را در ذهنتان مجسم کردید، بدانید که تنها نیستید. شاید ذهن ما این سوگیری را دارد که برنامهنویسی را شغلی مردانه بداند. اما جالب است بدانید که اولین برنامهنویس دنیا یک خانم بوده است. در واقع این ریاضیدان بریتانیایی، Lady Ada Lovelace، بود که در تاریخچه برنامه نویسی لقب اولین برنامهنویس را گرفت. دربارهی چیزی حدود به دویست سال قبل صحبت میکنیم. Lovelace در سال ۱۸۳۳ با Charles Babbage دیدار کرد. آقای Babbage یک دانشمند و مخترع بود. او در حال ساخت ماشینی بود که کاملاً میتوانست برنامهنویسی شود. این ماشین بعدها «موتور تحلیلی» نامیده شد.
چیزی نگذشت که Lovelace شیفتهی این ماشین شد. فردی مثل او بهراحتی میتوانست پتانسیل بسیار بالای این دستگاه را درک کند. او خیلی زود فهمید که این کامپیوتر چیزی بسیار فراتر از یک محاسبهگرِ صرف است. این ماشین دستگاهی بود که میتوانست دستورالعملها و حافظهی خود را اصلاح و در آنها تغییراتی ایجاد کند. برای اثبات نقطهنظرش، Lovelace چیزی را نوشت که بعدها لقب اولین برنامهی کامپیوتر را گرفت. او الگوریتمی را طراحی کرد که موتور تحلیلی بهوسیلهی آن میتوانست اعداد برنولی را محاسبه کند. موتور تحلیلی تعدادی از مفاهیم محاسباتی را به دنیا عرضه کرد که حتی تا به امروز هم از آنها استفاده میشود. قابلیتهای این برنامه شامل یک مخزن و یک کارخانه بود که قابلقیاس با حافظه و پردازشگر امروزی هستند. ورودی و خروجیها با استفاده از کارتهای پانچشده ارائه میشد. کارتهای پانچشده اختراع Jacquard در اوایل دههی ۱۸۰۰ بودند.
متاسفانه نه Babbage توانست کامپیوترش را بسازد و نه Lovelace با مرگ زودهنگامش در ۳۶ سالگی، اجراشدن کدهایش را دید. با این حال، موتور تحلیلیِ Babbage پیشزمینهای بر اولین کامپیوتر مکانیکیِ عمومی شد.

در ادامه، سرنوشت موتور تحلیلیِ Babbage به دست یک آمریکایی به نام Herman Hollerith افتاد. Hollerith در سال ۱۸۹۰ از وجود این دستگاه باخبر شد. او از کارتهای پانچشده و تقویتکنندهی الکترومغناطیسیِ موتور تحلیلی ایده گرفت و ماشین خودش را ساخت. ادارهی سرشماری آمریکا در سرشماری سال ۱۸۹۰ از این دستگاه استفاده کرد. اگرچه این ماشین همهی عملکردهایی که Babbage پیشبینی کرده بود را انجام نداد، اما به هر حال کار میکرد.
Hollerith به لطف این دستگاه کسبوکار خودش را راه انداخت. او شرکتی به نام کمپانی ماشین جدولبندی (The Tabulation Machine Company) را تأسیس کرد. این شرکت در سال ۱۹۲۴ نامش را به شرکت بینالمللی ماشینهای تجاری (International Business Machine Corporation) تغییر داد. بله، و اینگونه بود که IBM کبیر پا به عرصهی وجود گذاشت.
قرن بیستم با رشد بیسابقهی برنامهنویسی همراه شد. اولین کامپیوترهای مدرن در دههی ۱۹۴۰ عرضه شدند. این کامپیوترها که با نیروی برق کار میکردند، سرعت پایین و ظرفیت حافظهی محدودی داشتند. بهخاطر چنین محدودیتهایی، برنامهنویسان مجبور بودند که برنامههای زبان assembly را بهصورت دستی بنویسند. اما از آنجایی که assembly یک زبان سطح پایین است، بسیار دشوار است که بهصورت دستی به آن برنامه داد. اینجا بود که برنامهنویسان متوجه نیاز مبرم به زبانهای برنامهنویسی سطح بالا شدند. در این صورت، در وقت و انرژی زیادی که باید برای نوشتن برنامههای زبان assembly بهصورت دستی صرف میشد، صرفهجویی میشد.
اولین زبانها در تاریخچه برنامه نویسی

اولین فردی که یک زبان برنامهنویسی سطح بالا را طراحی کرد، Konrad Zuse بود. او که یک مهندس آلمانی بود، برای مقاصد مهندسیاش زبان برنامهنویسیِ Plankalkul را در سال ۱۹۴۳ به وجود آورد. اما بهدلایلی هیچوقت از این زبان استفاده نشد.
خلق اولین زبان برنامهنویسی سطح بالا برای کامپوترهای برقی در سال ۱۹۴۹ اتفاق افتاد. John Mauchly زبانِ Short Code را عرضه کرد و William F Schmidt آن را به کار برد. Short Code اولین زبان برنامهنویسی تابعی بود. این زبان برنامهنویسی از عبارتهای ریاضی که برای انسانها قابلدرک بود استفاده میکرد. اما این زبان یک نقطهضعف بزرگ داشت. برنامههای Short Code هر بار برای اجراشدن باید به کد ماشین ترجمه میشدند. این مسئله سرعت را به مقدار قابلتوجهی کاهش میداد. طولی نکشید تا این مشکل با ابداعِ Alick Glennie برطرف شد. Glennie در سال ۱۹۵۲ زبانی به نام Autocode را به وجود آورد. Autocode اولین زبان کامپایلری بود و با استفاده از یک کامپایلر مستقیماً به کدِ ماشین تبدیل میشد.
با اینکه Autocode بهتر از زبانهای قبلی بود، با اقبال چندانی مواجه نشد. اما FORTRAN را میتوان اولین زبان برنامهنویسی محبوب دانست. این زبان در سال ۱۹۵۴ توسط تیمی در IBM توسعه داده شد. این زبان برنامهنویسی، قدیمیترین زبان سطح بالایی است که هنوز از آن استفاده میشود.
در این زمان هنوز زبانهای سطح بالایی مثل C ،Java و ++C ابداع نشده بودند. اما میتوان گفت که خاستگاه این زبانها در زبان Algol است. Algol را یک کمیتهی علمی برای استفادههای علمی و تحقیقاتی در سال ۱۹۵۸ به وجود آورد.
به وجود آمدن پارادایمهای برنامهنویسی

COBOL اولین زبان برنامهنویسی سطح بالا در تاریخچه برنامه نویسی بود که میتوانست روی نوع و یا برند کامپیوترها اجرا شود. این زبان که در سال ۱۹۵۹ توسعه یافت، مخفف عبارت Common Business Oriented Language به معنی زبان تجاریِ متداول است. این زبان در پردازش کارتها، در ATM ها و حتی در فیلم نابودگر (Terminator) به کار رفته است. در همین سال هم بود که John McCarthy زبان LISP را برای استفاده در هوش مصنوعی ابداع کرد. از این زبان هنوز هم استفاده میشود.
پس از آن پیشرفتهای زیادی در زبانهای برنامهنویسی حاصل شد، اما هنوز برنامهنویسی یک کار دشوار بود. به همین خاطر، John G. Kemeny و Thomas E. Kurtz یک زبان جدید را ایجاد کردند. ابداع آنها خانوادهای از زبانهای برنامهنویسی بود که بهسادگی میشد از آنها استفاده کرد. زبانهای BASIC در اصل برای دانشآموزانی ساخته شد که دانش کافیِ برنامهنویسی و ریاضیاتی نداشتند. این همان زبانی بود که سالها بعد توسط Bill Gates و Paul Allen اصلاح شد. اتفاقاً اولین محصول مایکروسافت هم همین نسخهی اصلاحشدهی BASIC بود.
در سال ۱۹۷۲، Dennis Ritchie زبان برنامهنویسی C را توسعه داد. C تبدیل به یکی از محبوبترین زبانهای برنامهنویسی شد و تأثیر عمیقی بر بسیاری از زبانهای برنامهنویسی بعد از خود مانند Perl ،JavaScript ،Ruby ،GO C++ ،Java و Python گذاشت.
دو سال بعد یعنی در سال ۱۹۷۴، Donald D. Chamberlin و Raymond F. Boyce زبان SQL را توسعه دادند. SQL مخفف عبارت Structured Query Language است و آن را زبان پرسوجوی ساختاریافته معنی میکنند. این زبان بهطور خاص برای کار با پایگاههای داده توسعه داده شد. حتی تا به امروز نیز SQL یکی از محبوبترین زبانها در حوزهی پایگاه داده محسوب میشود.
بسیاری از پارادایمهای معروف برنامهنویسی در بازهی سالهای ۱۹۶۰ تا ۱۹۷۰ به وجود آمدند. از زبانهایی که در این دوره خلق شدند میتوان به C ،Simular و Prolog اشاره کرد. زبان Simular اولین زبان برنامهنویسی بود که از برنامهنویسی شیءگرا پشتیبانی میکرد و در دههی ۱۹۶۰ اختراع شد. C نیز که در این دوره به وجود آمد، اولین زبان برنامهنویسی سیستمها است. Prolog را هم میتوان اولین زبان برنامهنویسی منطقی دانست.
پیشرفتهای دههی ۱۹۸۰ در تاریخچه برنامه نویسی

تاریخچه برنامه نویسی در دههی ۱۹۸۰ شاهد به وجود آمدن پارادایمهای جدید نبود. اما بهجای آن، اختراعات دههی گذشته بهبود یافتند و تقویت شدند. برای نمونه، ++C که بسطیافتهی زبان C بود، در این دهه به وجود آمد. این زبان در سال ۱۹۸۳ و توسط Bjarne Stroustrup توسعه یافت. ++C به زبان C یک قابلیت مهم را اضافه کرد: برنامهنویسی شیءگرا. به این ترتیب این زبان، برنامهنویسی سیستمها را با برنامهنویسی شیءگرا ترکیب کرد. امروزه ++C یکی از رایجترین زبانهای برنامهنویسی است. این زبان برنامهنویسی بهصورت گسترده در موتورهای بازیهای ویدئویی و همچنین توسعهی وب به کار میرود. نرمافزارهای پرطرفداری مثل adobe Photoshop نیز از ++C استفاده میکند.
یکی دیگر از جریانات مهمی که در این زمان اتفاق افتاد، استفاده از ماژولها بود. در آینده، ماژولها تبدیل به بخش بسیار مهمی از دنیای برنامهنویسی شدند. تعدادی از قابلیتهای شیءگرایی مانند چندریختی (polymorphism) نیز در این دهه به وجود آمدند.
زبان Objective-C که زبان برنامهنویسی اصلیِ بهکاررفته در سیستمعامل Apple یعنی macOS و IOS است، در سال ۱۹۸۳ توسعه یافت. از زبانهای برجستهی دیگری که در این دوره به وجود آمدند میتوان به اینها اشاره کرد: Perl که در سال ۱۹۸۷ توسط Larry Wall توسعه داده شد، TCL که در سال ۱۹۸۸ توسط تیم مرکزی TCL به وجود آمد، و زبانهای Ada و Common Lisp و Eiffel که بهترتیب در سالهای ۱۹۸۳ و ۱۹۸۴ و ۱۹۸۴ توسعه داده شدند.
عصر اینترنت

در اواخر دههی ۱۹۸۰ دیگر عصر اینترنت شروع شده بود. رشد سریع اینترنت نقطه عطفی مهم در دنیای زبانهای برنامهنویسی محسوب میشد. JavaScript که یکی از مهمترین و پرکاربردینترین زبانهای برنامهنویسی امروز است، در سال ۱۹۹۵ ساخته شد. جالب است بدانید که این زبان را Brendan Eich تنها در ۱۰ روز ایجاد کرد. در آن زمان اهمیتی به JavaScript داده نشد و هیچکس فکرش را هم نمیکرد که JavaScript روزی به چنین جایگاه بزرگی در دنیای برنامهنویسی برسد. اما امروزه این زبان از مطرحترین زبانهای برنامهنویسی است. میتوان گفت که تقریباً همهی وبسایتها با JavaScript نوشته شدهاند.
JavaScript یکی از تکنولوژیهای اصلی بهکاررفته در World Wide Web است و دوتای دیگر، CSS و HTML هستند. زبان نشانهگذاریِ HTML در سال ۱۹۹۰ توسط Tim Berners-Lee توسعه یافت. این زبان امروزه یکی از محبوبترین و پرکاربردترین زبانهای برنامهنویسی در دنیاست.
یکی دیگر از زبانهای برنامهنویسی سطح بالا که در دههی ۱۹۹۰ پا به عرصه گذاشت Java بود. Java در ابتدا برای استفاده در جعبههای کابل و دستگاههای دستی توسعه پیدا کرده بود. اما این زبان امروزه بهقدری پیشرفت کرده که آن را در همهجا میبینیم. از World Wide Web گرفته تا کامپیوترها و گوشیهای هوشمند و حتی پارکومترها، همه از Java استفاده میکنند. Java امروزه یکی از محبوبترین زبانهای برنامهنویسی است.
تا سال ۱۹۹۱ زبانهایی عالی توسعه یافتند. همان طور که دیدیم C هم جزء این زبانها بود. اما مشکلی وجود داشت: نوشتن کد با بسیاری از این زبانهای برنامهنویسی دشوار بود. گاهی حتی برای برنامهنویسان باتجربه نیز سینتکسها دشوار و پیچیده بودند. اما سال ۱۹۹۱ نقطه عطفی در این زمینه بود. در این سال، Guido Van Rossum یک زبان برنامهنویسی کاربرپسند را ایجاد کرد. او این زبان را بهدلیل علاقهای که به سریال کمدی Monty Python’s Flying Circus داشت، Python نامگذاری کرد. Python در سالهای اخیر تبدیل به یک زبان بسیار محبوب شده است. امروزه Python در کنار Java و JavaScript از محبوبترین زبانهای برنامهنویسی محسوب میشود.
بعضی دیگر از زبانهای برجستهای که در این دوره توسعه یافتند عبارتند از: Haskell در سال ۱۹۹۱، Visual Basic در سال ۱۹۹۱، Lua در سال ۱۹۹۳، R در سال ۱۹۹۳، Ruby در سال ۱۹۹۵، Ada 95 در سال ۱۹۹۵، PHP در سال ۱۹۹۵ و Rebol در سال ۱۹۹۷. باید به این نکته اشاره کنیم که Haskell یک زبان برنامهنویسی کاملاً تابعی است و اساساً برنامهنویسی تابعی در این دوره شکل گرفت. از بین این زبانها، زبان برنامهنویسی Visual Basic که توسط مایکروسافت ارائه شد، توجه زیادی را به خود جلب کرد. R نیز در تحلیل داده تبدیل به یک زبان پرطرفدار شد و زبانهای PHP و Ruby هم بهطور گسترده در توسعهی وب به کار رفتند.
بیشتر بخوانید: داستان آفرینش ویژوال بیسیک؛ زبانی که ساخت ویندوز را ممکن کرد
رشد زبانهای برنامهنویسی مدرن

تکامل زبانهای برنامهنویسی در قرن جدید نیز ادامه پیدا کرد. مایکروسافت در سال ۲۰۰۱، #C را توسعه داد. این زبان بسیار شبیه به ++C، جاوا و Visual Basic است. #C کاربرد فراوانی در محصولات مایکروسافت و اپلیکیشنهای دسکتاپ دارد. در سال ۲۰۰۳، Martin Odersky زبان Scala را برای توسعهی اندروید به وجود آورد. Go هم در سال ۲۰۰۳ توسط گوگل ایجاد شد. این زبان برای حل مشکلاتی که در سیستمهای نرمافزاری بزرگ وجود داشت ساخته شد.
در دههی بعد، گوگل یک زبان کاربردی دیگر به نام Dart را ارائه کرد. Dart در Flutter و برای ساخت اپلیکیشنهای موبایلی که در پلتفرمهای مختلف اجرا میشوند به کار میرود. TypeScript هم در سال ۲۰۱۲ ابداع شد و حالا بخش مهمی از فریمورک Angular را تشکیل میدهد.در سال ۲۰۱۴ نیز Apple یک زبان جدید به نام Swift را بهعنوان جایگزینی برای زبان های #C ،C و ++C ارائه کرد.
نام تعدادی از زبانهای مشهور دیگری که در قرن ۲۱ توسعه یافتهاند را در ادامه میبینید: ActionScript در سال ۲۰۰۰، D در سال ۲۰۰۱، Scratch در سال ۲۰۰۲، Groovy در سال ۲۰۰۳، #F در سال ۲۰۰۵، PowerShell در سال ۲۰۰۶، Clojure در سال ۲۰۰۷، Rust در سال ۲۰۱۰، Kotlin و Elixir در سال ۲۰۱۱ و Julia در سال ۲۰۱۲.
همان طور که دیدیم، تاریخچه برنامه نویسی در طی هفتاد سال گذشته تغییرات بسیاری را شاهد بوده است. در هر دهه از این هفتاد سال، پیشرفتهای چشمگیری اتفاق افتاده است؛ تا جایی که از برنامههای سختِ زبان assembly به برنامههای کاربرپسند Python رسیدهایم. تکنولوژیهای نوظهوری مثل توسعهی موبایل، بلاکچین و هوش مصنوعی آیندهی ما را شکل میدهند و فرصتهای فراوانی را ایجاد میکنند. اما این ابداعات و پیشرفتها در همین جا متوقف نمیشوند و احتمالاً تا ابد شاهد این پیشرفتها هستیم.
منبع:
