کتاب We, Programmers: A Chronicle of Coders from Ada to AI (Robert C. Martin Series) (ما برنامهنویسان: روایتی از کدنویسان از آدا تا هوش مصنوعی (از مجموعه کتابهای رابرت سی. مارتین)) که در سری کتابهای رابرت سی. مارتین منتشر شده، یک سفر تاریخی جذاب از تولد صنعت نرمافزار تا دنیای امروز است.
کتاب We, Programmers داستان پرپیچوخم افرادی را روایت میکند که از زمان جنگ جهانی دوم با نیاز شدید به محاسبات پیچیده، شروع به ساخت اولین ماشینهای محاسباتی کردند. این روایت با تمرکز بر روی پیشگامان حوزهی برنامهنویسی، از دوران پانچ کارتها و لامپهای خلأ آغاز میشود و به معرفی زبانهای برنامهنویسی کلیدی مانند فورترن، کوبول، سی و یونیکس میرسد.
در ادامه مقدمهای از کتاب We, Programmers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب We, Programmers:
قصهی ما از اینجا شروع میشود. این داستانی پرپیچوخم از زندگیها و چالشهای افرادی برجسته، دورانهای شگفتانگیزی که در آن زیستند و ماشینهای فوقالعادهای است که بر آنها مسلط شدند.
اما قبل از اینکه بیمحابا در این مسیرهای پرپیچوخم و متفاوت شیرجه بزنیم، شاید بهتر باشد پیشنمایشی کوتاه داشته باشیم تا اشتهایتان را باز کند.
ممکن است نیاز مادر اختراع باشد، اما هیچچیز بهاندازهی جنگ، نیاز را به وجود نمیآورد. محرک اصلی صنعت ما، تشنجهای ناشی از جنگ، بهویژه جنگ جهانی دوم بود.
در دههی ۱۹۴۰، فناوری جنگی از منابع محاسباتی ما پیشی گرفته بود. به هیچ وجه ممکن نبود که گردانهای انسانی با استفاده از ماشینحسابهای رومیزی بتوانند با نیازهای محاسباتی تمام بخشهای جنگ همگام شوند.
مشکل، حجم عظیم جمع، تفریق، ضرب و تقسیم موردنیاز برای تخمین مسیر یک گلولهی شلیکشده از توپ به سمت هدفش بود. اینگونه مسائل را نمیشد با یک فرمول سادهی ریاضی مانند d=rt یا s=½at2 حل کرد. این مسائل نیازمند آن بودند که زمان و مسافت به هزاران بخش کوچک تقسیم شوند و مسیر پرتابه از بخشی به بخش دیگر شبیهسازی و تخمین زده شود. چنین شبیهسازیای به حجم زیادی از محاسبات خام و ابتدایی نیاز داشت.
در قرون گذشته، تمام این محاسبات توسط ارتشهایی از انسانها با قلم و کاغذ انجام میشد. تنها در قرن گذشته بود که برای کمک به این کار، ماشینهای جمع به آنها داده شد. سازماندهی این محاسبات و تیمهایی که آنها را انجام میدادند، کاری بسیار دشوار بود.۱ این محاسبات ممکن بود هفتهها یا حتی ماهها طول بکشد.
۱. برای مشاهدهی این کار در عمل، جشن روز پی در سال ۲۰۲۴ را پیشنهاد میکنم، جایی که بیش از ۱۰۰ رقم توسط یک تیم بسیار هماهنگ متشکل از چند صد نفر طی یک هفته با دست محاسبه شد. در زمان نگارش، ویدیوی “بزرگترین محاسبهی دستی در یک قرن! [Pi Day 2024]” که توسط Stand-up Maths در ۱۳ مارس ۲۰۲۴ در یوتیوب منتشر شده، موجود است.
ماشینهایی که میتوانستند چنین کارهایی را انجام دهند، در دههی ۱۸۰۰ رؤیایی بیش نبودند. حتی نمونههای اولیهی ضعیفی هم ساخته شده بودند. اما آنها بیشتر اسباببازی و چیزهای عجیبوغریب بودند. دستگاههایی بودند که در مهمانیهای شام ثروتمندان به نمایش گذاشته میشدند. کمتر کسی آنها را ابزاری ارزشمند برای استفاده میدانست، بهخصوص با توجه به هزینهشان.
اما جنگ جهانی دوم همهچیز را تغییر داد. نیاز شدید بود. هزینه اهمیتی نداشت. و بنابراین، آن رؤیاهای اولیه به واقعیت تبدیل شدند و موتورهای محاسباتی عظیمی ساخته شدند.
افرادی که این ماشینها را برنامهریزی و با آنها کار میکردند، پیشگامان حوزهی ما بودند. در ابتدا، آنها مجبور به کار در بدویترین شرایط بودند. دستورالعملهای برنامهنویسی بهصورت تحتاللفظی، یک سوراخ در یک زمان، روی نوارهای بلند کاغذی پانچ میشد که ماشین آنها را میخواند و اجرا میکرد.
این سبک برنامهنویسی بهطرز فوقالعادهای سخت، پر از جزئیات و کاملاً بیرحمانه بود. علاوه بر این، اجرای چنین برنامههایی ممکن بود هفتهها طول بکشد و نیاز به نظارت دقیق و مداخلهی مداوم داشت. به عنوان مثال، یک حلقهی برنامه با قرار دادن دستی نوار کاغذی در هر تکرار حلقه و بررسی دستی وضعیت ماشین برای تصمیمگیری در مورد پایان یافتن یا نیافتن حلقه اجرا میشد.
با گذشت سالها، ماشینهای الکترومکانیکی جای خود را به ماشینهای الکترونیکی با لامپ خلأ دادند که دادههای خود را در امواج صوتی که از لولههای بلند جیوه عبور میکردند، ذخیره میکردند. نوار کاغذی جای خود را به کارتهای پانچشده و در نهایت به برنامههای ذخیرهشده داد. این فناوریهای جدید توسط آن پیشگامان اولیه پیش برده شدند و نوآوریهای بیشتری را ممکن ساختند.
اولین کامپایلرهای اوایل دههی ۱۹۵۰ چیزی بیشتر از اسمبلرها با کلمات کلیدی خاصی نبودند که زیرروالهای از پیش نوشتهشده را بارگذاری و اجرا میکردند، گاهی اوقات از نوار کاغذی یا نوار مغناطیسی. کامپایلرهای بعدی با عبارات و انواع دادهها آزمایش کردند، اما ابتدایی و کند باقی ماندند.
تا اواخر دههی ۵۰، فورترن (FORTRAN) جان باکوس و کوبول (COBOL) گریس هاپر ذهنیت کاملاً جدیدی را معرفی کردند. کد باینری که قبلاً برنامهنویسان با دست مینوشتند، اکنون میتوانست توسط یک برنامهی کامپیوتری که متن انتزاعی را میخواند و تجزیه میکرد، تولید شود.
در اوایل دههی ۶۰، آلگول (ALGOL) دایکسترا سطح انتزاع را بالاتر برد. چند سال بعد، سیمولا ۶۷ (SIMULA 67) دال و نیگارد آن را دوباره بالاتر برد.
برنامهنویسی ساختیافته و برنامهنویسی شیءگرا از این آغازها پدید آمدند.
در همین حال، جان کمنی و تیمش با ساخت بیسیک (BASIC) و اشتراک زمانی در سال ۱۹۶۴، کامپیوتر را به دست مردم عادی رساندند. بیسیک زبانی بود که تقریباً هر کسی میتوانست آن را بفهمد و از آن استفاده کند. اشتراک زمانی به افراد زیادی امکان میداد تا بهراحتی و بهطور همزمان از یک کامپیوتر گرانقیمت استفاده کنند.
و سپس کن تامپسون و دنیس ریچی آمدند که در اواخر دههی ۶۰ و اوایل دههی ۷۰، با ساخت سی (C) و یونیکس (Unix) دنیای توسعهی نرمافزار را منفجر کردند. پس از آن، ما به سمت مسابقه حرکت کردیم.
انقلاب کامپیوترهای بزرگ (Mainframe) در دههی ۶۰، با انقلاب کامپیوترهای کوچک (Minicomputer) در دههی ۷۰ و انقلاب کامپیوترهای شخصی (Microcomputer) در دههی ۸۰ دنبال شد. کامپیوتر شخصی در دههی ۸۰ صنعت را طوفانی کرد، که بهسرعت با انقلاب شیءگرا و سپس انقلاب اینترنت و سپس انقلاب چابک (Agile) دنبال شد. نرمافزار شروع به تسلط بر همهچیز کرده بود.
۱۱ سپتامبر و ترکیدن حباب داتکام چند سالی ما را کند کرد، اما سپس انقلاب روبی/ریلز و سپس انقلاب موبایل آمد. و سپس اینترنت همهجا بود. شبکههای اجتماعی شکوفا شدند و سپس از بین رفتند، در حالی که هوش مصنوعی سربرآورد تا همهچیز را تهدید کند.
و این ما را به اکنون و به افکار آینده میرساند. همهی اینها و بیشتر، چیزهایی است که در صفحات کتاب We, Programmers در مورد آنها صحبت خواهیم کرد. پس اگر آمادهاید، کمربندهایتان را ببندید، چون این سواری یک سفر وحشی خواهد بود.
سرفصلهای کتاب We, Programmers:
- Cover Page
- About This eBook
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Foreword
- Preface
- Timeline
- About This Book
- Acknowledgments
- About the Author
- I: Setting the Stage
- 1. Who Are We?
- II: The Giants
- 2. Babbage: The First Computer Engineer
- 3. Hilbert, Turing, and Von Neumann: The First Computer Architects
- 4. Grace Hopper: The First Software Engineer
- 5. John Backus: The First High-Level Language
- 6. Edsger Dijkstra: The First Computer Scientist
- 7. Nygaard and Dahl: The First Oopl
- 8. John Kemeny: The First “Everyone’s” Language-Basic
- 9. Judith Allen
- 10. Thompson, Ritchie, and Kernighan
- III: The Knee of the Curve
- 11. The Sixties
- 12. The Seventies
- 13. The Eighties
- 14. The Nineties
- 15. The Millennium
- IV: The Future
- 16. Languages
- 17. Ai
- 18. Hardware
- 19. The World Wide Web
- 20. Programming
- Afterword
- Reflections on the Content
- Personal Anecdotes or Stories
- Reflections on the Content
- Afterword Author’s Perspective
- Discussion of Future Trends
- Calls to Action, or Closing Thoughts
- References
- Glossary of Terms
- Cast of Supporting Characters
- Index
- Code Snippets
جهت دانلود کتاب We, Programmers میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.