ما در مقابل پیشرفت و افزایش علم در جامعه خودمون مسئولیم.
انتزاع کامپیوترها - تاریخچه بزرگترین برونسپاری بشر
پیش درآمد
ما از وقتی که تونستیم قدرت تفکر داشته باشیم همیشه بر اساس نیازهایی که داشتیم در حال تولید و اختراع چیز های جدید بودیم. اولش با برگ برای خودمون لباس درست کردیم چون نیاز به گرما و پوشیدگی داشتیم. خودکار و مداد رو درست کردیم چون یک چیزی لازم داشتیم که بتونیم باهاش وقایع رو ثبت کنیم.
ماهیت
در ابتدا ما هرچی درست میکردیم با یک ماهیت قبلی درست میکردیم، یعنی اول ماهیت شی که میخوایم درست کنیم رو تعریف میکردیم و بعدش اون شی رو میساختیم. بزارین با چند تا مثال بزنم
- ما خودکار رو بر اساس یک ماهیت قبلی ساختیم: وسیلهای جهت نوشتن و ثبت وقایع.
- شمشیر: وسیله ای برای جنگ و شکار.
البته هنوز هم همینه و توی بیشتر اوقات ما داریم روی هول یک ماهیت از قبل تعریف شده تولیداتمون رو انجام میدیم. (به غیر از بکجا که زدیم جاده خاکی که یکم جلوتر بهش میرسیم)
تفکر ماهیت پذیری
همینطور که توی سیر زمان روی زمین درگیر زنده موندن و پیشرفت بودیم، از مرزهای بقا رد شدیم و زمانی که مطمئن شدیم که دیگه خطرهایی مثل خورده شدن توسط گرگ یا خرس مارو تهدید نمیکنه و خیالمون جمع شد که تقریبا خیلی احتمالش کمه که از سوء تغذیه بمیریم، شروع کردیم به برون سپاری کارهامون. آسیاب بادی رو ساختیم که که زحمت آسیاب کردن دستی رو نکشیم و مثال هایی زیاد دیگه که وجود داره که ما کارهامون رو دیگه خودمون انجام نمیدادیم یا یک بخش بزرگی از کار رو رو به کمک یک ابزار انجام میدادیم که خودمون کمتر انرژی مصرف کنیم. در واقع ما هر دفعه یک ماهیتهای کوچکی جهت راحتی خودمون خلق میکردیم ( و میکنیم) که هر روز زندگی ما رو راحتتر میکرد (میکنه).
این خلق کرد خیلی خوب بود ولی واسه ما کافی نبود. از اونجایی که ما ذاتا خیلی تنبلایم به یک چیزی مثل خودمون نیاز داشتیم، چیزی که کمترین ماهیت ثابت رو داشته باشه و قابلیت افزودن ماهیتهای دیگه رو به خودش داشته باشه و ما بر اساس نیاز خودمون براش ماهیت و دستورالعمل تعریف کنیم و در جهت رفع نیازهامون ازش استفاده کنیم. دقیقا مثل خودمون که موجوداتی هستیم که زمانی که به دنیا میآییم تنها ماهیتی که داریم جنسیت و چند عدد ویژگی ظاهریه که قابل تغییر نیست.(اینجا منظور از ماهیت ویژگی هایی هستند که اگر حذف بشن تقریبا موجودیت یک شی خدشه دار میشه و تقریبا موجودیتش تغییر میکنه، پس در این صورت ماهیت هایی مثل ملیت توی دستهی ماهیتهای فطری دستهبندی نمیشه).
و همین بیماهیت بودنمونه که به بزرگترین ویژگی انسان تبدیل شده و خودمون با ساختن مسیر زندگیمون به خودمون ماهیت میدیم و به وسیله اون ماهیت بین اطرافیانمون شناخته میشیم.
کامپیوتر، بیماهیت ترین ساخته دست بشر
ما هم به ابزاری شبیه به خودمون (ابزاری ماهیت پذیر) احتیاج داشتیم. ابزاری که ماهیت فطری خیلی محدود و انتزاعی داشته باشه و مابقی ماهیتهایی که ما نیاز داریم، بسته به نیازهامون به اون ابزار اضافه یا کم بشه. این همون اول راه کامپیوتر بود
البته اول دوره چیزی که ما امروز به عنوان کامپیوتر میشناسیم، بدون ماهیت نبوده و اتفاقا هم خیلی ماهیتی دقیقی داشته.
اولین کامپیوتر ها
میتونیم اولین چرتکه ها(۱۶۲۲) رو به عنوان شروع ظهور کامپیوترها در نظر گرفت، هرچند اولین دستگاهیی که ما به امروز عنوان کامپیوتر میشناسیم، بین سالهای ۱۸۳۳ و ۱۸۷۱ به وسیله چارلز ببیج به وجود اومد که دستگاهی جهت تحلیل مسائل ریاضی درست شد. راستی قبل از اون اصطلاح کامپیوتر (computer) به کسی میگفتند که تمام روز پشت میز مینشست و محاسبات ریاضی انجام میداد تا در آینده وارد کتاب شود تا از اونها توی محاسبات جنگی و مهندسی استفاده بشه.
ظهور کامپیوترهای انتزاعی
وقتی ما قدرت کامپیوترها رو توی عملیات ریاضی دیدیم و متوجه قدرت پردازشی اون شدیم، به فکر استفاده چند منظوره از اون افتادیم، شروع کردیم به جدا سازی قطعات و انتزاعی کردن وظایف هر قطعه درون کامپیوتر. مثلا اگر ما به پردازشگر کامپیوتر به صورت یک قطعه تنها (بدون هیچ دستگاه استفاده کننده از اون و مبدل اطلاعت) یا تقریبا هر دستگاه دیگهای از اون نگاه کنیم، میبینیم که یک دستگاه بلااستفادس و ما هیچ استفاده مفیدی نمیتونیم ازش داشته باشیم.
همین انتزاعی و تکمنظوره کرده استفاده قطعات بود سرعت پیشرفت ما رو زیاد کرد. از اینجا به بعد ما تونستیم توی حوزه های مختلف تخصص کسب کنیم و هرکسی توی یک حوزه تخصص پیدا کنه بدون اینکه نگران موضوعات دیگه باشه. البته تخصصی شدن حوزهها و ارتباط بین اونها هم بدون دردسر نبود و همین موضوع باعث شد افرادی جهت استاندارد سازی ارتباط بین این حوزهها تلاش کنند.
گسترش کامپیوترهای انتزاعی
با این که انتزاعی شدن کامپیوتر یکی از بزرگترین دستاوردهای ما با به وجود اومدن سیستم عامل ها (ویندوز، لینوکس، مک) بیشتر از قبل سرعت گرفت تا جایی که ما بر اساس نیازمون و با چند تا کلیک کامپیوتر شخصی خودمون رو بر اساس نیاز لحظهای، در بیشتر اوقات با نصب یک یا چند برنامه بر اساس نیاز لحظهای مون تنظیم میکردیم و از اون استفاده میکردیم. و این عالی بود تا این که با وزن دستگاههامون مشکل پیدا کردیم و شروع کردیم به کوچیک کردنشون تا جایی که تبدیل به گوشی تلفن همراه شدند. تلفن همراه هایی که پا به پای کامپیوتر های امروزی دارن میان و در بیشتر اوقات نیازهای روزمره مارو برطرف میکنند.
ورود به دنیای یادگیری ماشینها!
تا اینجای کار همه چی عالی بود ولی یک مشکل وجود داشت، ما برای هر کاری که میخواستیم انجام بدیم یا هر مشکلی که داشتیم و میخواستیم کامپیوتر حلش کنه، باید مشکل رو به کامپیوتر کامل و با جزئیات توی ۳ مرحله توضیح میدادیم:
۱- چی قراره بهش بدیم (داده اولیه)
۲-وظایف کامپیوتر چیه(مراحل پردازش داده ها)
۳-چه چیزی رو به ما تحویل بده (خروجی داده).
تعریف وظایف برای کامپیوتر نیازمند متخصص بود(و هنوز هم هست) و به هرکسی که توی این کار تخصص داره و میتونه کارها رو برای کامپیوتر تبدیل به دستورالعمل کنه میگیم برنامه نویس. کار برنامه نویس دقیقا اینه که ورودی و خروجی رو بهش میدن و اون وظایف کامپیوتر رو تعریف میکنه. از طرفی هم همه مشکلات در دنیای کامپیوتر به صورت دستورالعمل قابل پیاده سازی نبودند و یا تعریف دستورالعمل مناسب متناسب با مشکل خیلی سخت بود. در این زمان ما وارد دنیای جدیدی از کامپیوترها شدیم، یادگیری ماشین. فرمول های ریاضی و آمار و الگو برداری از فرآیندهای درون مغز انسان به ما کمک کرد تا مشکلات سخت ویا غیر ممکن رو آسون کنیم و بیشتر وظیفه تعریف الگو جهت تولید خروجی مناسب رو به کامپیوتر واگذار کنیم.
حرف آخر
این خلاصه راهی بود که ما از ابتدای به وجود اومدن کامپیوتر ها انجام دادیم تا به کامپیوتر های انتزاعی امروز برسیم و بتونیم بسته به نیاز روزمره خودمون از کامپیوترها استفاده کنیم. البته هم هنوز خیلی فاصله داریم تا اون روزی که کامپیوتر ها به انتزاع انسانها برسند و تست تورینگ رو پاس کنند!(معروفترین تست سنجش هوشمندی کامپیوتر ها. اینجا میتونین بیشتر درموردش بخونین.)
این سفر همچنان ادامه دارد!
مطلبی دیگر از این انتشارات
آموزش پایتون-کلاس ها و Namespaces در Python
مطلبی دیگر از این انتشارات
برسی مزایا و معایب تولید و توسعه اپلیکیشن با Xamarin
مطلبی دیگر از این انتشارات
visual studio code و اتصال به SSH