ممکن است نرم افزار بدتر شود، اما قبلا وحشتناک بود
آدرس مقاله: https://www.bitlog.com/2026/10/27/software-may-be-getting-worse-but-it-used-to-be-horrible/ آدرس نظرات: https://news.ycombinator.com/item?id=50257548 امتیاز: 287 # نظر: 28
نرم افزار در اطراف ما به دلایل واضح در حال تخریب است. قبلا در این مورد نوشته ام. همه چیز برابر است، اگر تولید کد خود را 10 برابر افزایش دهید، اما میزان خطای خود را 10 برابر کاهش ندهید، برنامه تولیدی شما نسبت به گذشته باگتر است.
من تاپیک هایی را دیده ام که در آن مردم نیز مقداری نوستالژی نسبت به گذشته دارند: "نرم افزار در گذشته بهتر بود" یا "ما فراموش کرده ایم که چگونه مانند گذشته برنامه ریزی کنیم" یا "کیفیت نرم افزار برای چندین دهه کاهش یافته است." و به عنوان کسی که از سال 1990 از رایانه استفاده کرده است، من اینجا هستم تا شما را از این تصور دور کنم. نرم افزار وحشتناکی بود همه چیز همیشه خراب شد. بله، برنامه نویسان بزرگی مانند جان کارمک وجود داشتند که می توانستند کل برنامه را در ذهن خود نگه دارند و در طول چندین دهه بر روی پایگاه های کد متفکرانه تکرار کنند. نه، اکثر نرم افزارهایی را که ما استفاده می کردیم، ننوشتند.
تقریبا همه مردم دنیا روی ویندوز بودند. ویندوز حدود 95 درصد از سهم بازار را به اوج خود رساند، به اضافه یا منهای چند درصد بر اساس منبع شما. بله، احتمالا کسی را میشناختید که iMac داشته باشد که به شما بگوید این آیمک بسیار بهتر از یک دستگاه ویندوز است، و اگر کسی واقعا برنامههایی را برای مکها منتشر کند، میتواند آن را ثابت کند. و بله، توزیعهای لینوکس مانند دبیان وجود داشت که در آن افراد میتوانستند محاسبات واقعی را انجام دهند [0].
اما اینها استثنا بودند. تقریبا هر کاربر رایانه یک دستگاه ویندوز و یک پردازنده Intel یا AMD داشت. و ویندوز مشکلات زیادی داشت.
با این حال یک لطف صرفه جویی وجود داشت: شرکت ها فقط یک فرصت برای ارسال نرم افزار خود داشتند. در یک نقطه مشخص، قرار بود بر روی یک فلاپی دیسک بارگذاری شود یا روی یک سی دی یا رام رایت شود، در یک جعبه قرار داده شود و از طریق پست ارسال شود. و آن نسخه باید خارج از جعبه کار می کرد. بنابراین کف باکیفیتی وجود داشت که نمیتوانستید زیر آن سر بخورید.
در اینجا مجموعه ای از چیزهایی است که من به یاد دارم. این خطی نیست. این مجموعه خاطرات من از سال 1990 به بعد است.
ویندوز در بیشتر دوران کودکی من مشکلات پایداری شدیدی داشت.
بگذارید شما را با آهنگ مردم من، صفحه آبی مرگ آشنا کنم.
صفحه آبی مرگ در ویندوز XP، ویستا و 7، توسط ویکی پدیا
این نسخه ویندوز از وحشت هسته بود. درست زمانی اتفاق افتاد که وسط چیزی بودی. یا شاید شما هیچ کاری انجام نمی دادید. مهم نبود: صفحه آبی در حال آمدن بود.
کامپیوتر شما به دلایل زیادی از کار افتاده است. اول، درایورهای دستگاه. اگر تعدادی ابزار جانبی جدید مانند جوی استیک خریداری کرده باشید، همراه با فلاپی دیسک یا سی دی همراه با درایورهای دستگاه است. شما آنها را به دقت نصب می کنید. درایورهای دستگاه عملکردی مشابه امروز داشتند: آنها به سیستم عامل کمک می کنند تا بفهمد چگونه با سخت افزار ارتباط برقرار کند. این ممکن است شما را به این فکر بیاندازد که "اوه وای، پس آنها درایورهای دستگاه را روی رسانه فیزیکی ارسال کردند؟ شما نمی توانید یک دیسک فیزیکی را پس از ارسال آن به روز کنید. مطمئنا آنها برای درست کردن همه چیز دقت بیشتری کرده اند." دوست من، این نمی تواند دور از واقعیت باشد.
مطمئنم رانندگان خوب و رانندگان بدی وجود داشتند. اما در مجموع، آنها باگ بودند و فقط یک درایور دستگاه حاشیه ای برای بی ثبات کردن رایانه شما لازم بود.
سیستم عامل ویندوز نیز در آن زمان مشکلات مربوط به کیفیت کد خود را داشت و گاهی اوقات نمی توانست به طور کامل منابع را از برنامه های خارج شده بازیابی کند. بنابراین کامپیوتر شما با گذشت زمان به آرامی تحلیل میرود تا اینکه در نهایت پوسیدگی کند دستگاه شما را از بین میبرد.
در مجموع، کامپیوتر شما هر از گاهی چشمک می زند. این یک واقعیت زندگی بود.
آیا می دانید چه چیزی واقعا با رایانه ای که همیشه از کار می افتد جفت می شود؟ برنامه هایی که به صورت خودکار ذخیره نمی شوند. حتی بهتر از آن، برنامههای دارای ذخیره خودکار که نوشتههای بافر را پاک نمیکنند و فایلهای ذخیره شده خود را خراب نمیکنند.
این امری عادی بود که ساعت ها وارد منطقه شوید و روی یک سند کار کنید، و سپس ناگهان صفحه آبی مرگ را دریافت می کردید یا یک پاپ آپ نشان می داد که برنامه شما مشکل دارد و باید خارج شود. و شما فریاد می زدید و بارها و بارها روی سند خود دوبار کلیک می کردید، اما فایده ای نداشت. باید از نو شروع میکردی اما یک جایزه تسلیت داشت. نوبت شما بود که به همه بگویید: "من سه ساعت روی یک سند کار می کردم! و سپس کامپیوتر خراب شد و همه چیز را از دست دادم. همه چیز از بین رفت.
مجبور شدم دوباره این کار را انجام دهم." همیشه آن یک احمق بود که می گفت: "چرا پس انداز نکردی؟" اما تو عصبانی نشدی. می دانستی که او 2 هفته مانده است که همان اتفاق برایش بیفتد.
زمانی که در سال 2010 به تیم Google Docs پیوستم، میانبر صفحه کلید Ctrl+s را برای سرگرمی ایجاد کردیم. هیچ کاری انجام نداد جز اینکه متریک را ثبت کرد که می گفت فشرده شده است. این میانبر صفحه کلید «ذخیره» در 5 اقدام برتر کاربر بدون ویرایش قرار داشت، درست در پشت مواردی مانند «حرکت مکان نما با کلیدهای جهت دار». و مطلقا هیچ کاری نکرد. Google Docs ذخیره خودکار می کند. اما همه از سال ها یا دهه ها از دست دادن کارشان آنقدر آسیب دیده بودند که هر زمان که هر چیزی را ویرایش می کردند، به طور انعکاسی ذخیره می کردند.
وقتی من و خواهرم کوچک بودیم، عاشق رفتن به فروشگاههایی بودیم که دارای ویترین بودند. رایانهها اغلب دارای بازیهایی هستند که میتوانید بازی کنید. در بدترین حالت، همیشه میتوانید MS Paint یا Solitaire را باز کنید و برای چند دقیقه به هم بپردازید.
یک بار، ما در فروشگاهی بودیم که در آن مدلهای نمایشگر محافظ صفحهنمایش با رمز عبور داشتند. خواهرم دلسرد نشد. او فقط Ctrl+Alt+Del را فشار داد، برنامه محافظ صفحه را انتخاب کرد و روی «End Task» کلیک کرد. و ما وارد شدیم. بهترین ذهن مایکروسافت در کنار استعداد هک یک کودک 9 ساله چیزی نبود.
و این سطح امنیتی است که رایانه شما برای شما فراهم کرده است. اگر به اندازه کافی از اینترنت استفاده می کردید، رایانه شما شروع به جمع آوری یکسری بدافزار تبلیغاتی می کرد. وقتی رایانه خود را روشن میکردید، حتی زمانی که از مرورگر استفاده نمیکردید، پنجرههای بازشو و پاپآند با تبلیغات تصادفی مشاهده میشد. بنابراین میتوانید یک اسکن آنتیویروس دیگر انجام دهید، یا بعدا میتوانید از وبسایتهایی بازدید کنید که میتوانند اسکن بدافزار را نیز برای شما اجرا کنند.
و ناگفته نماند ویروس هایی که سالی یک بار اینترنت را با انجام کارهای بی اهمیت مانند "افزودن یک ماکرو به سند Word که ایمیل می فرستد" به زانو در می آورند.
هر فنی می تواند رفتن به خانه یکی از بستگان غیر فنی را به خاطر بیاورد. در گوشه ای پر از گرد و غبار، آنها یک کامپیوتر ویندوزی قدیمی داشتند که به سختی به نخی آویزان شده بود. به معنای واقعی کلمه 20 دقیقه طول می کشد تا روشن شود.
آه می کشید و می گفت: "بگذار این را برایت درست کنم."
دو تا برنامه باز میکنی این حدود 5 دقیقه طول می کشد. اولین برنامه فایل های کش و سطل بازیافت را خالی کرد. دومی Disk Defragmenter بود.
اگر هرگز این پنجره را ندیدید، رایانه شما به تدریج غیرقابل استفاده می شد.
در گذشته، دیسکهای سخت در جعبههای Wintel دادهها را با صفحات مغناطیسی چرخان ذخیره میکردند. هارد دیسک دارای یک بازوی جمع شونده با یک خواننده مغناطیسی کوچک بود و با جمع کردن بازو در موقعیت مناسب و سپس حرکت دیسک به ابتدای یک بخش، اطلاعات را می خواند.
اما البته، با افزودن فایلهای بیشتر و بیشتر، بازی تتریس کار نمیکند، و بقیه فایلهای شما قبل از شروع رکورد فایل بعدی، به خوبی روی دیسک قرار نمیگیرد. بنابراین فایل شما در دو (یا بیشتر) مکان روی هارد دیسک به پایان می رسد. به این می گفتند تکه تکه شدن. کمی تکه تکه شدن اجتناب ناپذیر بود، اما اگر بیشتر و بیشتر فایل ها تکه تکه می شدند، کامپیوتر شما کندتر و کندتر می شد تا اینکه در نهایت کامپیوتر پدربزرگ 20 دقیقه طول کشید.
امروزه بسیاری از سیستم های فایل مدرن، از جمله ویندوز، به طور خودکار یکپارچه سازی را در پس زمینه مدیریت می کنند. اما ویندوز در آن زمان این کار را نکرد. شما باید به صورت دوره ای و به صورت دستی فرآیند یکپارچه سازی را خودتان شروع کنید.
زمانی که وارد دانشگاه شدم، متوجه شدم که ویندوز یک زمانبندی دارد و میتواند هر زمان که بخواهم دیسک Defragmenter را اجرا کند، بنابراین فقط کامپیوترم را همیشه روشن گذاشتم و اجازه دادم ساعت 5 صبح یکپارچهسازی شود.
برنامه ها به شدت حافظه محدود داشتند، بنابراین برنامه نویسان سعی کردند بیت ها و بایت ها را در همه جا ذخیره کنند.
این باید برای من نامرئی می بود، اما اینطور نبود.
در یک نقطه من یک نسخه بازی ویدیویی مزخرف از Axis and Allies برای رایانه شخصی داشتم که در سال 1998 منتشر شد [1]. خطر را تصور کنید اما جنگ جهانی 2. و هوش مصنوعی واقعا بد بود، و به طور کلی می توان به راحتی شکست خورد. اما بازی یک نقص بزرگ داشت: اگر کشوری بیش از 255 واحد داشت، کل بازی از کار می افتاد. و طبیعتا هوش مصنوعی نیز عاشق لاکپشتسازی بود، بنابراین معمول بود که هوش مصنوعی دارای قلمرویی با بیش از صد واحد باشد که فرسودگی آن غیرممکن بود. بنابراین به دلیل این انتخاب برنامهنویسی، بازی مسابقهای بود برای از بین بردن دشمن قبل از اینکه بتواند با خراب کردن بازی به بنبست برسد.
این جور چیزها همیشه اتفاق می افتاد. در طول اولین کلاس برنامه نویسی من در سال اول دبیرستان، یکی از درس های ما به طور موثر این بود: "این است که چرا همه شما اعدادی مانند 128، 256، و شاید 65536 را می شناسید."
حتی اگر نرم افزار به خوبی کار می کرد، ممکن است سی دی بازی خود را خراش دهید و توانایی پخش آن را از دست بدهید. سپس از دوستان خود میپرسید که آیا کسی نسخهای از Red Alert یا چیزی دیگر دارد یا نه، فقط برای اینکه در نهایت بتوانید کمپین تکنفره را به پایان برسانید.
این مختص سی دی ها نبود. هر چیزی فیزیکی می تواند تخریب شود. برادر ناتنی من یک بازی NES به نام Dragon Warrior یا چیز دیگری داشت، اما کارتریج خراب بود و راهی برای خروج از اتاق اول وجود نداشت. و حتی اگر همه بازیهای خود را در شرایط خوبی نگه داشته باشید، ممکن است مخاطبین داخل NES که کارتریج را به کنسول متصل میکنند زنگ بزنند و از کار بیفتند. این جور چیزها همیشه اتفاق می افتاد.
"اما جیک، این سخت افزار است و نه نرم افزار." تنها چیزی که می گویم این است که نرم افزار ما شکننده بود و باید محافظت و نگهداری می شد. اینطور نیست که گزینه دیسک فیزیکی یا نصب آنلاین را داشته باشید و دیسک را انتخاب کرده باشید. با توجه به ماهیت توزیع، خود نرم افزار از دست شما ضعیف شده و پوسیده می شود.
یکی از اولین بازی های آنلاینی که من بازی کردم، Diablo II بود، به این معنی که من قلب واقعی تاریکی را در درون بشریت دیده ام.
بازی های آنلاین یک مشکل عجیب دارند: گیمرها اغلب نمی خواهند با هم باشند. آنها اتفاقا در یک فضا با هم زندگی می کنند. و Diablo II دارای بسیاری از ویژگیهای طراحی بود که باعث آشفتگی میشد:
هک های گسترده ای در سمت مشتری وجود داشت. در سرورهای PVP، افراد از هک برای مثال استفاده میکنند. تیرهای ردیابی را بسیار فراتر از محدوده ای که باید می توانستند شلیک کنند.
همه ریزش آیتم ها به یک اندازه برای همه در سرور در دسترس بود. این بدان معناست که وقتی به کشتن رئیسی نزدیک میشوید، شما و حزبتان از متحدانتان به رقبا تبدیل میشوید و وقتی رئیس در نهایت ظاهر میشود، بر روی هرزنامه کلیک میکنید.
اگر یک جسد روی زمین داشتید و دوباره بمیرید، همه چیزهایی را که تجهیز کرده بودید از دست می دادید. مردم سعی میکنند با انداختن یک سری اقلام ارزان روی جسدتان، شما را مجبور کنند که یک موجودی کامل داشته باشید، به این امید که قبل از برداشتن جسدتان بهطور تصادفی اقلام معمولی را بردارید. سپس سعی می کنید جسد خود را بردارید. شما فقط برخی از اقلام را انتخاب می کنید. سپس برای بار دوم تو را میکشتند و همه چیزهایی را که میتوانی به دست بیاوری از دست میدهی.
بازی دارای اشکالات فریبکاری آیتم های زیادی بود. همانطور که می توانید تصور کنید، از آنجایی که آیتم های فریب خورده بر آن تسلط یافتند، اقتصاد درون بازی را خراب کرد. و کلاهبرداری های زیادی را فعال کرد. آنها وانمود میکردند که فقط یک مورد را فریب دادهاند، و منتظر میماندند تا کسی بپرسد چگونه این کار را انجام دادهاند. سپس کاربر را گام به گام راهنمایی میکردند، اما یک مرحله شامل انداختن کالای شما روی زمین و سپس کلاهبردار آن آیتم را میبرد.
سیستم صنفی وجود نداشت، اما مردم همچنان اصناف را اداره می کردند. این بدان معنی است که هیچ راه قابل اعتمادی برای شناسایی بازی های دوستانه تضمین شده وجود نداشت.
بسیاری از این موارد تا زمانی که Diablo III آمد برطرف شد. آنها محافظ های اضافی در برابر موارد تکراری داشتند. Boss به بازیکنان دراپهای فردی میدادند، بنابراین وقتی رئیسها را میکشید رقابتی برای آیتمها وجود نداشت. و شما نیازی به بازیابی اقلام از جسد خود ندارید به گونه ای که خطر از دست دادن اقلام را به همراه داشته باشید. اینها همه درس هایی بود که به سختی به دست آمد.
من در حدود سال 1990 زمانی که خواندن را یاد گرفتم شروع به استفاده از کامپیوتر خانواده ام کردم. کامپیوتر یک بژ 286 بود که روی میز ما نشسته بود و مانیتور بالای آن قرار داشت. یک فلاپی درایو 5.25 اینچی داشت. دکمه پاور داشت. دکمه ریست داشت. و دکمه TURBO داشت. قرار بود دکمه TURBO در اکثر مواقع نادیده گرفته شود، اما زمانی که نیاز داشتید سرعت پردازنده کامپیوتر را کم کنید می توانید آن را فشار دهید.
چرا باید این کار را انجام دهید؟ زیرا اولین کامپیوترهای رومیزی IBM بر روی پردازنده 8088 با فرکانس 4.77 مگاهرتز کار می کردند [2] . مدت زیادی به این شکل باقی نماند. اما یک مشکل وجود داشت: بسیاری از برنامه نویسان برنامه های خود را با این فرض می نوشتند که رایانه ها دارای پردازنده 4.77 مگاهرتز هستند. برنامه نویسان انیمیشن ها، نرخ فریم بازی های ویدیویی را همگام می کردند و به طور کلی بر این فرض تکیه می کردند که با سرعت ساعت ثابت کار می کنند. اگر یکی از این برنامه ها را روی یک پردازنده سریعتر استفاده می کنید، احتمالا غیر قابل استفاده خواهند بود.
سازندگان کامپیوتر یک راه حل ساده ابداع کردند: یک دکمه TURBO اضافه کنید که در صورت تقاضا سرعت CPU شما را کاهش می دهد. هر زمان که با برنامهای برخورد کردید که مشکل زمانبندی داشت، فقط دکمه TURBO را فشار دهید و تماشا کنید که سرعت آن به سرعت کم میشود.
من هرگز نیازی به فشار دادن دکمه TURBO در عصبانیت نداشتم. درک من این است که بیشتر برنامه هایی که از دکمه TURBO بهره می بردند بازی بودند و ما فقط بازی های آموزشی جدیدتری را بازی کردیم که این مشکلات زمان بندی را نداشتند. هنگام ویرایش این پست، چند بار به حذف این بخش فکر کردم. اما آیا می توانید تصور کنید که یک دکمه "آیفون اصلی" در کنار آیفون خود داشته باشید تا برنامه Notes بتواند کار کند؟ غم خوب
نرم افزار مدرن کامل نیست. نفخ کرده است. کند است. توسط افراد زیادی نوشته شده است. خیلی پیچیده است. آشپزهای زیادی در آشپزخانه دارد. و اکنون، با واگذاری بیشتر و بیشتر به عوامل، درک خود را از نحوه عملکرد آن در زیر کاپوت از دست می دهیم.
اما من هرگز به روشی که قبلا نرم افزار نوشته می شد بر نمی گردم. به من جداسازی فرآیند و بهروزرسانیهای آنلاین بدهید. زبان های برنامه نویسی سطح بالاتری را به من بدهید که مشکلات رایج C و C++ را انتزاع می کند. به من طراحان بازی بدهید که زمان بندی را با استفاده از ساعت سیستم مدیریت کنند. استیم و آپدیت ویندوز را به من بدهید. شما می توانید روند انتشار قدیمی خود را که در کنار آن قرار گرفته است، حفظ کنید.
از آنچه که از تلاش برای نصب دبیان در دوران دبیرستان به یاد دارم، محبوب ترین برنامه در لینوکس هر چیزی بود که می توانست XF86Config را ویرایش کند.
من در تأیید این حکایت با اطلاعاتی که می توانم آنلاین پیدا کنم مشکل دارم. ممکن است جزئیات دقیقا درست نباشد. اما این همان چیزی است که اتفاق افتاد، تا جایی که این خاطره 25 سال زنده ماند.
متن اصلی (انگلیسی)
Software may be getting worse, but it used to be horrible
Article URL: https://www.bitlog.com/2026/10/27/software-may-be-getting-worse-but-it-used-to-be-horrible/ Comments URL: https://news.ycombinator.com/item?id=50257548 Points: 287 # Comments: 285