امروزه کامپیوترها بخش مهم و بزرگی از زندگی ما را تشکیل میدهند بهطوریکه در انجام بسیاری از مشکلات روزمره به داد ما رسیدهاند، همچنین بسیاری از مسائل پیچیده مثل آمار گرفتن در ابعاد وسیع و یا محاسبات پیچیده را برای ما انجام میدهند. خیلی از مردم مردم فکر میکنند کامپیوترها در چند سال اخیر پا به این دنیا گذاشتهاند، اما باید بگوییم که ایشان در اشتباه هستند، چون مدت زیادی است که کامپیوترها پا به این دنیا گذاشته اند. برای برنامهنویسان کامپیوتر، این تاریخچهٔ خیلی مهمی است چرا که حاوی مطالب ارزشمند و مفیدی است که ممکن است آیندهٔ شغلی ایشان را در این زمینه تحت تأثیر قرار بدهد!
۱. اولین کامپیوتر دنیا با بخار کار میکرد!
چارلز بابیج، کسی به عنوان پدر برنامهنویسی شناخته میشود، اولین کامپیوتر با قابلیت برنامهریزی شدن را اختراع کرد. چارلز نام دستگاه جدیدش را Analytical Engine (موتور تحلیلی) گذاشت. آن دستگاه که با ۶ موتور بخار کار میکرد، به وسیلهٔ کارتهای پانچ شده اصطلاحاً برنامهنویسی شده بود و آنقدر بزرگ و عظیم بود که میتوانست فضای یک خانه را بهطور کامل آشغال کند. موتور تحلیلی از ۴ بخش اساسی تشکیل شده بود که عبارتند از:
ـ Mill (آسیاب): که نقش CPUهای امروزی را بازی میکرده است.
- Store (منبع ذخیره): که طبیعتاً معادل است با مموری، هارددیسک و یا سیستمهایی که امکان ذخیرهٔ هرچیزی را به شما میدهند.
- Reader (خوانندهٔ اطلاعات): که به عنوان ورودی شناخته میشد.
این روند، چگونگی خروجی هر نوع اطلاعاتی در موتور تحلیلی را به ما نشان میدهد. اما جالب است بدانید که چارلز نتوانست موتور تحلیلی را کامل کند، که احتمالاً علتش به خاطر درگیری میان چارلز و مهندس ارشد پروژه -جوزف کلمنت- بوده است.
۲. اولین ویروس کامپیوتری برای تخریب کردن طراحی نشده بود!
فرد کوهن، خالق ویروسهای کامپیوتری با تکنیک دفاعی است. کوهن کسی بود که اولین ویروس کامپیوتری را به شکلی نوین طراحی کرد. فرد با زبان C، برنامهای نوشت که درون یک برنامهٔ پرکاربرد قرار داشت و میتوانست بدون اجازهٔ کاربر سیستم را آلوده کند و به اسناد و فایلهای قربانی دسترسی پیدا کند؛ کوهن نام آن برنامه را Virus گذاشت! قرار بود ویروس اختیار یک کامپیوتر را به دست بگیرد، تکثیر شود و بهوسیلهٔ چیزی مثل فلاپیدیسک از یک کامپیوتر به بقیه سیستمها سرایت کند. کوهن میخواست بفهمد که آیا ساخت چنین برنامهای که مانند ویروس تکثیر و کلون شود امکانپذیر است یا نه؟ او هرگز قصد تخریب و آسیب رساندن به امنیت کامپیوترها را نداشت. فرد کوهن بعداً ویروسی مفید ساخت که به کاربران کامپیوترها کمک میکرد تا فایلهای اجرایی آلوده در سیستمهایی که آلوده نشده بودند را پیدا کنند (یعنی قبل از این که سیستم آلوده شود آنها را متوجه میکرد!)
۳. اولین برنامهنویس کامپیوتر یک زن بود!
چه باور کنید و چه باور نکنید، باید بدانید که اولین برنامهنویس واقعاً یک زن بود. نام او Ada Lovelacee بود که ریاضیدانی بود که در سال ۱۸۴۳ در بریتانیا متولد شد (برای آشنایی بیشتر با وی، به مقالهٔ مراجعه نمایید). او مقالهٔ یک مهندس ایتالیایی بهنام Luigi Menabrea که در مورد موتورهای تحلیلی بود را ترجمه و تفسیر کرد. Ada وقتی که در حال ترجمه بود یادداشتهایی را از طرف خود به متن اصلی اضافه کرد، اینکار او باعث شد سرعت رشد برنامهنویسی کامپیوتر به شدت افزایش پیدا کند. علت این که از Ada به عنوان اولین برنامهنویس کامپیوتر یاد میشود این است که او برای اولین بار از الگوریتمها در موتوربخار استفاده کرد که کمک میکرد محاسبهٔ اعداد برنولی سریعتر انجام شود. در تاریخ از آن الگوریتم به عنوان اولین برنامهٔ نوشته شده برای یک کامپیوتر واقعی یاد میشود و اولین الگوریتمی بود که برای یک کامپیوتر واقعی نوشته شده بود!
۴. اولین بازی کامپیوتری، هرگز پولسازی نبود!
امروزه یکی از بخشهای موفق و پولساز صنعت برنامهنویسی، ساخت گیم است! اما جالب است بدانید اولین بازی کامپیوتری دیجیتال از نظر درآمدزایی شکستی عظیم خورد! در سال ۱۹۶۲، یک برنامهنویس کامپیوتر از دانشگاه MIT به نام استیو راسل به همراه تیمش، نزدیک به ۲۰۰ ساعت کار کردند تا اولین اکانت بازی کامپیوتری Spacewar را خلق کردند. Spacewar درواقع یک بازی دو نفره بود که هر نفر باید سعی میکرد سفینهٔ فضایی کوچک خود را کنترل کند. روند بازی به این شکل بود که شما باید از برخورد به نقطههای سفید که حکم ستارهها را داشتند اجتناب میکردید و سفینهٔ فضایی دشمنتان را نابود میکردید -البته اگر دشمنتان به شما فرصت میداد- در نهایت بازیکنی مغلوب میشد که به ستارهها برخورد میکرد. ساخت Spacewar یک موفقیت بزرگ در MIT بود، اما متأسفانه راسل و تیمش هرگز نتوانستند از ساخت این بازی به درآمدزایی برسند! واقعیت امر آن است که بدون حرکت بزرگ راسل و تیمش، این روزها چیزی بهنام صنعت بزرگ و پولساز بازی نداشتیم!
۵. FORTRAN اولین زبان برنامهنویسی سطح بالا در تاریخ برنامهنویسی است!
اولین زبان برنامهنویسی سطح بالا FORTRAN بود (که نسبت به زبانهای دیگر آن روزها بسیار به انگلیسی محاورهای نزدیکتر بود). FORTRAN در سال ۱۹۵۴ در شرکت بزرگ IBM قدم به دنیای برنامهنویسی گذاشت و دریچهای نو برای خلق زبانهای سطح بالای جدیدتر باز کرد! در آن سال، جان باکوس که تنها ۳۰ سال داشت با همکاری ۲۵ نفر از دانشمندان IBM دست به خلق این زبان برنامهنویسی سطح بالا (High-Level) زدند. جالب است بدانید FORTRAN مخفف Formula Translation به معنای ترجمه فرمول است.
۶. اختلالات برای رمزنگاری SHA-1 در گیت بسیار کم و نادر است!
گیت یک سیستم کنترل نسخه (DRS) بسیار محبوب است که توسط خالق کرنل لینوکس، یعنی لینوس تروالدز طراحی شده است. گیت از رمزگذاری Secure Hash Algorithm 1 که به اختصار SHA-11 نامیده میشود استفاده میکند. علت استفاده از SHA-1 به ترتیب برای تشخیص تجدید نظرها و پیدا کردن دستکاریها، تغییرات و همچنین شناسایی خرابیهای موجود در مجموعهٔ بزرگی از دیتاها است.
۷. اولین باگ کامپیوتری، واقعاً یک باگ (حشره) بود!
این روزها تا اسم Bug را میشنویم قطعاً خطاهای فنی در تکنولوژی را تصور میکنیم. عبارت Bug را اولین بار توماس ادیسون در سال ۱۸۷۸ به کار برد. سالها پس از آن یک افسر زن به نام Grace Hopper که در نیروی دریایی آمریکا خدمت میکرد، وقتی که در حال بر روی کامپیوتر Mark ll بود در کتابش به نام Log در مورد یک باگ (حشره) موجود در کامپیوتر نوشت
اگرچه برخلاف اصطلاحی که ما این روزها برای باگهای کامپیوتری بهکار میبریم (که درواقع خطاها هستند)، اما باگی که Grace Hopper کشف کرد، یک خطا نبود بلکه واقعاً یک باگ (حشره) بود! درواقع آن باگ یک پروانه بود که در Relay (تقویت کننده) کامپیوتر گیر افتاده بود و باعث جلوگیری از عملکرد صحیح کامپیوتر میشد. همانطور که در تصویر بالا میبینید او نوشته «اولین اشکال که نوعی از یک حشره است پیدا شد»، نهایتاً سیستم حشرهزدایی یا اصطلاحاً Debug شد!
۸. برنامهنویسی کامپیوتر بسیار متنوع است!
وقتی صحبت از تنوع میشود، برنامهنویسی کامپیوتر به عنوان یکی از رشتههای بسیار متنوع در نظر گرفته میشود. اگر برنامهنویسی را به عنوان یک کشور در نظر بگیریم، رتبهای بسیار بالا در لیست تنوع زبانی کشورها نصیبش میشود و به همین علت است که تمام ۶۹۸ زبان برنامهنویسی -که شامل زبانهای قدیمی هم میشود- برای همه شناخته شده نیستند. اگر برنامهنویسی کامپیوتر یک کشور بود، کشورهای گینهنو با ۸۳۶ زبان بومی و اندونزی با ۶۰۰ زبان بومی از نظر تنوع زبانی به ترتیب بالاتر از کشور زبان برنامهنویسی قرار میگرفتند!
یک برنامه نویس باید بداند که زبانهای برنامهنویسی چگونه خلق شدند و چه فلسفهای برای آنها وجود دارد، یا در مورد افرادی که در چنین نوآوریهای مهمی سهم بزرگی داشتهاند باید اطلاعات داشته باشد. برای اینکه یک برنامهنویس موفق باشید، اینکه در مورد زبانهای مختلف برنامهنویسی نظر بدهید اصلاً کافی نیست، بهتر است در مورد تاریخچهٔ برنامهنویسی هم مطالعه کنید آنوقت شاید بتوانید در مورد آیندهٔ زبانهای برنامهنویسی حدس و گمانهایی تقریبا درست بزنید.
۱. اولین کامپیوتر دنیا با بخار کار میکرد!
چارلز بابیج، کسی به عنوان پدر برنامهنویسی شناخته میشود، اولین کامپیوتر با قابلیت برنامهریزی شدن را اختراع کرد. چارلز نام دستگاه جدیدش را Analytical Engine (موتور تحلیلی) گذاشت. آن دستگاه که با ۶ موتور بخار کار میکرد، به وسیلهٔ کارتهای پانچ شده اصطلاحاً برنامهنویسی شده بود و آنقدر بزرگ و عظیم بود که میتوانست فضای یک خانه را بهطور کامل آشغال کند. موتور تحلیلی از ۴ بخش اساسی تشکیل شده بود که عبارتند از:
ـ Mill (آسیاب): که نقش CPUهای امروزی را بازی میکرده است.
- Store (منبع ذخیره): که طبیعتاً معادل است با مموری، هارددیسک و یا سیستمهایی که امکان ذخیرهٔ هرچیزی را به شما میدهند.
- Reader (خوانندهٔ اطلاعات): که به عنوان ورودی شناخته میشد.
این روند، چگونگی خروجی هر نوع اطلاعاتی در موتور تحلیلی را به ما نشان میدهد. اما جالب است بدانید که چارلز نتوانست موتور تحلیلی را کامل کند، که احتمالاً علتش به خاطر درگیری میان چارلز و مهندس ارشد پروژه -جوزف کلمنت- بوده است.
۲. اولین ویروس کامپیوتری برای تخریب کردن طراحی نشده بود!
فرد کوهن، خالق ویروسهای کامپیوتری با تکنیک دفاعی است. کوهن کسی بود که اولین ویروس کامپیوتری را به شکلی نوین طراحی کرد. فرد با زبان C، برنامهای نوشت که درون یک برنامهٔ پرکاربرد قرار داشت و میتوانست بدون اجازهٔ کاربر سیستم را آلوده کند و به اسناد و فایلهای قربانی دسترسی پیدا کند؛ کوهن نام آن برنامه را Virus گذاشت! قرار بود ویروس اختیار یک کامپیوتر را به دست بگیرد، تکثیر شود و بهوسیلهٔ چیزی مثل فلاپیدیسک از یک کامپیوتر به بقیه سیستمها سرایت کند. کوهن میخواست بفهمد که آیا ساخت چنین برنامهای که مانند ویروس تکثیر و کلون شود امکانپذیر است یا نه؟ او هرگز قصد تخریب و آسیب رساندن به امنیت کامپیوترها را نداشت. فرد کوهن بعداً ویروسی مفید ساخت که به کاربران کامپیوترها کمک میکرد تا فایلهای اجرایی آلوده در سیستمهایی که آلوده نشده بودند را پیدا کنند (یعنی قبل از این که سیستم آلوده شود آنها را متوجه میکرد!)
۳. اولین برنامهنویس کامپیوتر یک زن بود!
چه باور کنید و چه باور نکنید، باید بدانید که اولین برنامهنویس واقعاً یک زن بود. نام او Ada Lovelacee بود که ریاضیدانی بود که در سال ۱۸۴۳ در بریتانیا متولد شد (برای آشنایی بیشتر با وی، به مقالهٔ مراجعه نمایید). او مقالهٔ یک مهندس ایتالیایی بهنام Luigi Menabrea که در مورد موتورهای تحلیلی بود را ترجمه و تفسیر کرد. Ada وقتی که در حال ترجمه بود یادداشتهایی را از طرف خود به متن اصلی اضافه کرد، اینکار او باعث شد سرعت رشد برنامهنویسی کامپیوتر به شدت افزایش پیدا کند. علت این که از Ada به عنوان اولین برنامهنویس کامپیوتر یاد میشود این است که او برای اولین بار از الگوریتمها در موتوربخار استفاده کرد که کمک میکرد محاسبهٔ اعداد برنولی سریعتر انجام شود. در تاریخ از آن الگوریتم به عنوان اولین برنامهٔ نوشته شده برای یک کامپیوتر واقعی یاد میشود و اولین الگوریتمی بود که برای یک کامپیوتر واقعی نوشته شده بود!
۴. اولین بازی کامپیوتری، هرگز پولسازی نبود!
امروزه یکی از بخشهای موفق و پولساز صنعت برنامهنویسی، ساخت گیم است! اما جالب است بدانید اولین بازی کامپیوتری دیجیتال از نظر درآمدزایی شکستی عظیم خورد! در سال ۱۹۶۲، یک برنامهنویس کامپیوتر از دانشگاه MIT به نام استیو راسل به همراه تیمش، نزدیک به ۲۰۰ ساعت کار کردند تا اولین اکانت بازی کامپیوتری Spacewar را خلق کردند. Spacewar درواقع یک بازی دو نفره بود که هر نفر باید سعی میکرد سفینهٔ فضایی کوچک خود را کنترل کند. روند بازی به این شکل بود که شما باید از برخورد به نقطههای سفید که حکم ستارهها را داشتند اجتناب میکردید و سفینهٔ فضایی دشمنتان را نابود میکردید -البته اگر دشمنتان به شما فرصت میداد- در نهایت بازیکنی مغلوب میشد که به ستارهها برخورد میکرد. ساخت Spacewar یک موفقیت بزرگ در MIT بود، اما متأسفانه راسل و تیمش هرگز نتوانستند از ساخت این بازی به درآمدزایی برسند! واقعیت امر آن است که بدون حرکت بزرگ راسل و تیمش، این روزها چیزی بهنام صنعت بزرگ و پولساز بازی نداشتیم!
۵. FORTRAN اولین زبان برنامهنویسی سطح بالا در تاریخ برنامهنویسی است!
اولین زبان برنامهنویسی سطح بالا FORTRAN بود (که نسبت به زبانهای دیگر آن روزها بسیار به انگلیسی محاورهای نزدیکتر بود). FORTRAN در سال ۱۹۵۴ در شرکت بزرگ IBM قدم به دنیای برنامهنویسی گذاشت و دریچهای نو برای خلق زبانهای سطح بالای جدیدتر باز کرد! در آن سال، جان باکوس که تنها ۳۰ سال داشت با همکاری ۲۵ نفر از دانشمندان IBM دست به خلق این زبان برنامهنویسی سطح بالا (High-Level) زدند. جالب است بدانید FORTRAN مخفف Formula Translation به معنای ترجمه فرمول است.
۶. اختلالات برای رمزنگاری SHA-1 در گیت بسیار کم و نادر است!
گیت یک سیستم کنترل نسخه (DRS) بسیار محبوب است که توسط خالق کرنل لینوکس، یعنی لینوس تروالدز طراحی شده است. گیت از رمزگذاری Secure Hash Algorithm 1 که به اختصار SHA-11 نامیده میشود استفاده میکند. علت استفاده از SHA-1 به ترتیب برای تشخیص تجدید نظرها و پیدا کردن دستکاریها، تغییرات و همچنین شناسایی خرابیهای موجود در مجموعهٔ بزرگی از دیتاها است.
۷. اولین باگ کامپیوتری، واقعاً یک باگ (حشره) بود!
این روزها تا اسم Bug را میشنویم قطعاً خطاهای فنی در تکنولوژی را تصور میکنیم. عبارت Bug را اولین بار توماس ادیسون در سال ۱۸۷۸ به کار برد. سالها پس از آن یک افسر زن به نام Grace Hopper که در نیروی دریایی آمریکا خدمت میکرد، وقتی که در حال بر روی کامپیوتر Mark ll بود در کتابش به نام Log در مورد یک باگ (حشره) موجود در کامپیوتر نوشت
اگرچه برخلاف اصطلاحی که ما این روزها برای باگهای کامپیوتری بهکار میبریم (که درواقع خطاها هستند)، اما باگی که Grace Hopper کشف کرد، یک خطا نبود بلکه واقعاً یک باگ (حشره) بود! درواقع آن باگ یک پروانه بود که در Relay (تقویت کننده) کامپیوتر گیر افتاده بود و باعث جلوگیری از عملکرد صحیح کامپیوتر میشد. همانطور که در تصویر بالا میبینید او نوشته «اولین اشکال که نوعی از یک حشره است پیدا شد»، نهایتاً سیستم حشرهزدایی یا اصطلاحاً Debug شد!
۸. برنامهنویسی کامپیوتر بسیار متنوع است!
وقتی صحبت از تنوع میشود، برنامهنویسی کامپیوتر به عنوان یکی از رشتههای بسیار متنوع در نظر گرفته میشود. اگر برنامهنویسی را به عنوان یک کشور در نظر بگیریم، رتبهای بسیار بالا در لیست تنوع زبانی کشورها نصیبش میشود و به همین علت است که تمام ۶۹۸ زبان برنامهنویسی -که شامل زبانهای قدیمی هم میشود- برای همه شناخته شده نیستند. اگر برنامهنویسی کامپیوتر یک کشور بود، کشورهای گینهنو با ۸۳۶ زبان بومی و اندونزی با ۶۰۰ زبان بومی از نظر تنوع زبانی به ترتیب بالاتر از کشور زبان برنامهنویسی قرار میگرفتند!
یک برنامه نویس باید بداند که زبانهای برنامهنویسی چگونه خلق شدند و چه فلسفهای برای آنها وجود دارد، یا در مورد افرادی که در چنین نوآوریهای مهمی سهم بزرگی داشتهاند باید اطلاعات داشته باشد. برای اینکه یک برنامهنویس موفق باشید، اینکه در مورد زبانهای مختلف برنامهنویسی نظر بدهید اصلاً کافی نیست، بهتر است در مورد تاریخچهٔ برنامهنویسی هم مطالعه کنید آنوقت شاید بتوانید در مورد آیندهٔ زبانهای برنامهنویسی حدس و گمانهایی تقریبا درست بزنید.