روز برنامهنویسها، در ستایش سازندگان خاموش
امروز، ۱۳ سپتامبر روز گرامیداشت برنامهنویسها است. برنامهنویسهایی که در اتاقهای ساکت و خلوت خود، شبها و روزها بهدور از آدمها کار میکنند و در نهایت چیزهایی میسازند که بنیانهای دنیای مدرن ما را تشکیل میدهند. البته برنامهنویسی چیزی نیست که فقط در رشتههایی مثل مهندسی یا علوم کامپیوتر وجود داشته باشد و فقط هم
امروز، ۱۳ سپتامبر روز گرامیداشت برنامهنویسها است. برنامهنویسهایی که در اتاقهای ساکت و خلوت خود، شبها و روزها بهدور از آدمها کار میکنند و در نهایت چیزهایی میسازند که بنیانهای دنیای مدرن ما را تشکیل میدهند.
البته برنامهنویسی چیزی نیست که فقط در رشتههایی مثل مهندسی یا علوم کامپیوتر وجود داشته باشد و فقط هم دانشآموختگان کامپیوتر برنامهنویسی بلد باشند. افراد زیادی در حوزههای گوناگون هستند که برنامه کامپیوتری مینویسند. برنامههایی که جزئیترین بخشهای زندگی مدرن ما را میسازند.
ما امروز میخواهیم در ستایش برنامهنویسها بنویسیم.
وقتی برنامهنویسها تازه متولد شده بودند
اینترنت زمانی صرفا ابزاری برای ارتباط چند موسسه تحقیقاتی بود. موسسات تحقیقاتی در اولین روزهای تولد اینترنت، از آن برای تبادل اطلاعات استفاده میکردند. به همین دلیل هم پروتکلها و استانداردهای ارتباطی چندان قوی و مستحکمی در پشت آن وجود نداشت و هر گروهی متناسب با کار خود، قواعدی میساخت و با آن کار میکرد.
اما همه اینها توسط تیم برنرز لی (Tim Berners Lee) عوض شد. تیم برنرز لی اولین کسی بود که سعی کرد یک پروتکل واحد و قدرتمند برای استفاده از اینترنت بنا کند. او زبان HTML را ابداع کرد. زبانی که آغازی بر اینترنت بود.
با اختراع زبان HTML وبسایتهای اینترنتی ساخته شدند. اولین وبسایت اینترنتی هم متعلق به موسسه تحقیقات هستهای اروپا یا سرن بود که در ۶ آگوست ۱۹۹۱ آغاز به کار کرد.
تیم برنزر لی مخترع اینترنت و زبان وب
وبسایتهایی که در ابتدا به وجود آمدند، زرقوبرق وبسایتهای امروز را نداشتند. مهمترین نکته این بود که همگی متنی بودند و شاید در نهایت میتوانستید چند عکس در آنها ببینید.
آن روزها حتی همه کامپیوترهای شخصی هم امکان اتصال به اینترنت نداشتند. نتاسکیپ (Netscape) بهعنوان یکی از اولین مرورگرهای اینترنت را هم باید میخریدید و روی کامپیوتر خود نصب میکردید. اینترنت اکسپلورر هم هنوز متولد نشده بود.
اینترنت به تلفن همراه میآید
رشد اینترنت به همراه توسعه وبسایتها، در نهایت به تلفنهای همراه رسید. تلفنهای همراهی که ابتدا وجود داشتند صرفا ابزاری برای تماسهای صوتی بودند؛ اما گام بعدی در توسعه تلفنهای همراه، اضافه کردن امکان ارسال پیام کوتاه بود.
البته در همان زمان پیجرها (Pager) هم وجود داشتند که فقط برای ارسال پیام بودند. پیجرها خیلی قبلتر، در سال ۱۹۵۰ بهصورت رسمی عرضه شده بودند و در ابتدا فقط برای استفاده پزشکان بود.
اما ترکیب و دو ایده تماسهای صوتی و متنی در تلفنهای همراه باعث ایجاد افقهای جدیدی شد. توسعه نسل سوم تلفنهای همراه که قرار بود با افزایش پهنای باند شبکه امکان تماسهای تصویری را فراهم کند، در مسیری پیش رفت که عملا فناوری تماسهای تصویری را به چیزی غیرضروری بدل کرد؛ زیرا در این نسل از شبکههای تلفن همراه، اینترنت به معنای دقیق کلمه به گوشیها آمد.
پهنای باندی که شبکههای نسل سوم تلفنهای همراه ارائه میدادند، آن را بستر مناسبی برای ارائه اینترنت موبایل میکرد.
گام بعدی در این مسیر هم توسعه تلفنهای همراهی بود که بتوانند از اینترنت موبایل استفاده کنند. پس از آن سازندگان تلفنهای همراه مثل نوکیا سیستمعاملهایی مثل سیمبیان را توسعه دادند تا بتوانند بستری فراهم کنند تا اپلیکیشنها و بهخصوص مرورگرهایی برای استفاده از اینترنت در گوشی فراهم شود.
بعد از آن بود که وقتی اپل آیفون را معرفی کرد و اندروید هم که دو سال پس از آن به بازار آمد، تلفنهای هوشمند به وسیلهای همگانی تبدیل شدند و دنیای پر از اطلاعات و دسترسی امروز ما را ساختند.
برنامهنویسها، این سازندگان خاموش
اما چیزی که بسیاری از مردمی که از تلفن همراه استفاده کنند به آن توجه نمیکنند این است که اینها را چه کسانی میسازند؟
آنها نام استیو جابز را بارها شنیدهاند اما نمیدانند استیو جابز برای اینکه مجموعه موسیقی خود را روی آیپاد بریزد، سر چه کسانی داد زد که این کار را انجام دهند.
خیلیها نمیدانند فرد یا افرادی که تلاش کردهاند رابط کاربری آیاواس را واقعا اجرایی کنند و آن را بهگونهای بسازند که همه قابلیتهای جذابش را داشته باشد، کیستند. خیلیها نمیدانند پشت اندروید چه کسانی نشستهاند.
افراد کمی هستند که واقعا میدانند برنامهنویس یا برنامهنویسهایی که پشت همه این تحولات قرار دارند، تلاشگرانی هستند که تخیلات و ایدههای خام کسانی مثل استیو جابز را عملی میکنند، چه کسانیاند.
بله. برنامهنویسها افراد گمنام و سازندگان خاموش دنیای ما هستند که در تمام این سالها، جهان را اینقدر پیش بردهاند.
روز گرامیداشت برنامهنویسها
در سال ۲۰۰۲ ولنتین بالت (Valentin Balt) و میخاییل چرویاکوف (Michael Cherviakov)، کارمندان یک شرکت نرمافزار روسی با نام پارالل تکنولوژیز (Parallel Technologies) بودند. آنها تلاش کردند درخواستی را با امضای تعداد زیادی از برنامهنویسها و مدیران شرکتهای فناوری به دولت روسیه ارائه دهند تا دولت بهصورت رسمی یک روز را به نام روز برنامهنویسها معرفی کند.
در نهایت هم وزارت ارتباطات و رسانههای جمعی روسیه، در ۲۴ جولای ۲۰۰۹ یک روز رسمی حرفهای را بهعنوان روز برنامهنویسها به تقویم معرفی کرد.
در ادامه نیز در ۱۱ سپتامبر ۲۰۰۹، رئیسجمهور وقت روسیه، دمیتری مدودف دستور رسمی تعیین یک روز از سال را بهعنوان روز گرامیداشت برنامهنویسها صادر کرد.
روز گرامیداشت برنامهنویسها جهت یادآوری نقش برنامهنویسها در توسعه و پیشرفت بشر تعیین شده است و به ۲۵۶مین روز در سال میلادی گفته میشود.
۲۵۶مین روز از سال میلادی نیز مصادف با ۱۳ سپتامبر هر سال است که در سالهای کبیسه که ماه فوریه بهجای ۲۸ روز، ۲۹ روز است، به ۱۲ سپتامبر تغییر میکند.
عدد ۲۵۶ ازاینرو انتخاب شده است که تعداد مقادیری است که میتوان با یک بایت (Byte) نمایش داد. هر بایت متشکل از ۸ بیت (Bit) است و هر بیت میتواند دو حالت صفر و ۱ داشته باشد.
در نتیجه کوچکترین عددی که یک بایت میتواند نشان دهد صفر است که به شکل ۰۰۰۰۰۰۰۰ نمایش داده میشود و بزرگترین عددی هم که در یک بایت میتواند ذخیره شود ۲۵۵ است که بهصورت ۱۱۱۱۱۱۱۱ در باینری است.
در نتیجه تعداد کل اعدادی که میتوان با یک بایت نمایش داد، ۲۵۶ تا یا همان ۲ ۸ تا است. همچنین ۲۵۶ بزرگترین توان از ۲ است که کوچکتر از ۳۶۵ است.
اگر شما کمی از برنامهنویسی سر دربیاورید، احتمالا زیاد با همین عدد ۲۵۶ روبهرو شدهاید.
اما یک روز دیگر هم برای برنامهنویسها وجود دارد که در چین ثبت شده است. روز گرامیداشت برنامهنویسها که ما گفتیم، فقط از سال ۲۰۰۹ به اینسو گرامی داشته میشود اما سالها است که در چین روز ۲۴ اکتبر، یعنی روز ۲۴ از ماه ۱۰-ام که به شکل ۱۰۲۴ هم نوشته میشود، بهعنوان روز برنامهنویسها گرامی داشته میشود.
۱۰۲۴ همتوان ۱۰ عدد ۲ یا ۲ ۱۰ است. ۱۰۲۴ هم از آن اعداد آشنای برنامهنویسها است.
بیاید درباره برنامهنویسها سخن بگوییم
همه اینها بهانهای است تا درباره برنامهنویسها حرف بزنیم. حرف زدن از روز برنامهنویسها برای من به دو دلیل اهمیت دارد. اول اینکه دوست دارم بیشتر در مورد این افراد ساکت که در گوشه اتاق خود معمولا شبزندهداری میکنند و به قول دوستی قهوه را به کد تبدیل میکنند، حرف بزنیم.
بیشتر برنامهنویسها کسانیاند که زیاد با آدمها سروکله نمیزنند زیرا برهمکنش با کامپیوتر و کد برایشان راحتتر از برخورد کردن با آدمها است.
دلیل دوم اهمیت این قضیه برای من این است که برنامهنویسی یکی از کارهایی است که من، هم خوب از دستم برمیآید و هم در کنار فیزیک و الکترونیک، یکی از چیزهایی است که به آن بسیار علاقه دارم. چیزهایی هم از آن بلد هستم. لااقل آنقدری بلدم که با آن چندین پروژه جدی و یک پایاننامه ده هزار خطی را نوشته باشم.
برنامهنویسی، یک شغل کهن
شاید برایتان عجیب باشد که بدانید برنامهنویسی شغل چندان جدیدی نیست و اولین برنامهنویسها در قرن ۹ میلادی در زمان شکوه حکومت اسلامی در بغداد زندگی میکردند.
برادران موسی، یعنی ابوجعفر محمد بن موسی بن شاکر، احمد بن موسی بن شاکر و حسن بن موسی بن شاکر، سه برادری بودند که در آن زمان دستگاهی برای نواختن نی ساختند. آنها سه برادر ایرانی بودند که در بغداد قدیم به تحصیل دانش میپرداختند.
آنها در کنار کارهای علمی متعددی مثل ستارهشناسی و محاسبات تقویمی، دستگاهی ساختند که میتوانست بهصورت خودکار نی بزند.
مفهوم برنامهنویسی هم برای دستگاه آنها هم احتمالا بیشتر تنظیم دستگاه بود که بتواند آهنگهای خاصی را بنوازد. چیزی شبیه جعبههای موسیقی که میتوان با گذاشتن برجستگیها در محل مناسب، آهنگهای گوناگونی را با آن نواخت.
اولین کامپیوتر در آلمان نازی
راستش کامپیوتر و زبان برنامهنویسی نیز مثل بسیاری از چیزهای دیگر، محصول جنگ هستند. خصوصا جنگ جهانی دوم. آلمانها آن روزها اولین کسانی بودند که کامپیوترهای عملیاتی داشتند که با آنها میتوانستند مسیر گلولههای توپ را محاسبه کنند.
پلانکاکول (Plankalkül) اولین زبان برنامهنویسی دنیا بود که کنراد تزوسه (Konrad Zuse) بین سالهای ۱۹۴۲ تا ۱۹۴۵ در آلمان اختراع کرد.
اولین زبان برنامهنویسی را هم که مثل زبانهای مدرن یک مفسر (Compiler) داشت، کورادو بوهم (Corrado Böhm) بهعنوان بخشی از پایاننامه دکترای خود در سال ۱۹۵۱ ساخت.
اما اولین زبان برنامهنویسی تجاری که واقعا قابلاتکا بود، فورترن (FORTRAN) بود که در سال ۱۹۵۴ توسط IBM ساخته شد. از آنجایی هم که مهمترین کاربرد کامپیوتر در آن روزها، محاسبات علمی بود، فورترن با همین هدف ساخته شد و به همین دلیل اولین برنامهنویسهای جدی دنیا احتمالا فیزیکدانهایی در ناسا بودند.
لامپهای خلا روی مدار کامپیوتر
این دورانی بود که در آن کامپیوترهای بزرگ و لامپی، در حال توسعه بودند. روی آنها مانیتور یا کیبوردی نبود و برنامهنویسها مجبور بودند کدها را از پیش آماده کنند و روی کارتهای مخصوص پانج (سوراخکاری) کنند. کامپیوترهای آن زمان چنین چیزی را بهعنوان ورودی میشناختند.
بعد از این دوران، زبانهای برنامهنویسی متفاوتی توسط برنامهنویسهای متعددی ساخته شد؛ اما هیچکدام بهاندازه همین فورترن نه عمر کردند و نه به درد خوردند. تنها نجاتیافتگانی که در آن روزها خلق شدند که هنوز هم استفاده میشوند COBOL و LISP هستند. فورترن هنوز هم در موسسات تحقیقاتی متعدد برای شبیهسازیهای بسیار سنگین استفاده میشود.
دنیس ریچی، پادشاه برنامهنویسها
من خیلی دوست داشتم روز گرامیداشت برنامهنویسها واقعا بهخاطر دنیس ریچی (Dennis Ritchie) بود اما میدانیم که نیست. دنیس ریچی به همراه کن تامپسون (Ken Thompson) زمانی که در آزمایشگاههای بل کار میکردند، در سال ۱۹۷۲ زبان C را ساختند.
به جرات میتوان گفت که زبان سی مهمترین زبان برنامهنویسی ساختهشده در تمام دورانها است و ازاینرو من دنیس ریچی را پادشاه برنامهنویسها میدانم.
زبان سی بنیاد هر چیز دیجیتالی است که ما امروز میبینیم. بدون سی، نه ویندوز وجود داشت، نه مک و نه لینوکس. سیستمعامل یونیکس با زبان سی نوشته شده است. هسته ویندوز در زبان سی نوشته شده است. مکاواس و لینوکس بر پایه یونیکس هستند، اندروید با هسته لینوکس و آیاواس هم چیزی بین همه اینهاست که هسته همگی آنها با زبان سی ساخته شده است.
دنیس ریچی
نکته دردناک قضیه اینجاست که دنیس ریچی تنها یک هفته بعد از استیو جابز فوت کرد؛ اما افراد کمی متوجه این اتفاق سخت و سنگین شدند. در صورتی که تمام آنچه که شرکتی مثل اپل و استیو جابز دارد، بر روی شانههای کسانی مثل دنیس ریچی بنا شده است.
برنامهنویسها را گرامی داریم
روز برنامهنویسها برای من بسیار مهم است. من دوست دارم از برنامهنویسها بنویسم. دوست دارم در ستایش این قهرمانان خاموش ساعتها سخن بگویم. اگر بتوانم درباره آنها کتاب بنویسم. آنها سازندگان واقعی دنیای مدرن ما هستند.
سازندگانی که نه شناخته میشوند و نه آنقدر شانس دارند که کسی اسمشان را بشنود. تنها شما اگر خوره فناوری باشید ممکن است فهرست برنامهنویسهایی را که مثلا در توسعه یک نرمافزار رایگان دست داشتهاند، تکبهتک بخوانید.
اگر هم که برنامه کدباز نباشد و محصول یک شرکت باشد، تمامی این برنامهنویسهایی که همهچیز نرمافزار را ساختهاند، پشت نام و تبلیغات پرزرقوبرق شرکت میمانند و هیچوقت دیده نمیشوند.
سخن آخر هم اینکه اگر فکر میکنید دنیای مدرن ما به لطف فناوری، دنیای بهتری است، بیایید کمی عمیقتر به آن بنگریم و قهرمانان واقعی آن را که برنامهنویسها هستند، بیشتر بشناسیم.
آنها شایسته عمیقترین ستایشها هستند.
نظرات