چرا به مشکلات کامپیوتری باگ می‌گوییم؟

باگ نرم افزاری یکی از پرکاربردترین واژه های دنیای فناوری است که با تار و پود برنامه ها و نرم افزارهای کامپیوترهای در هم آمیخته است. این واژه در واقع به معنی حشره است اما در دنیای فناوری برای اشاره به وجود مشکل در سیستم به کار می رود.

کد خبر: ۱۰۱۸۱۲

۳۰ آبان ۱۳۹۷ / ۱۳:۰۰

به گزارش روزپلاس ، اما چرا باید از کلمه حشره برای تعریف یک مشکل در سیستم استفاده کرد؟ باور عمومی بر این است که یکی از متخصصان به‌نام حوزه فناوری ده ها سال قبل حین عیب یابی یک سیستم متوجه وجود حشره ای در آن شد و از آن زمان کلمه باگ متداول شده است. با این حال داستان پیچیده تر از این حرف‌ها است. در ادامه به تعریف مختصر باگ نرم افزاری و ماجرای جالب و پیچیده نامگذاری آن پرداخته ایم.

باگ نرم افزاری چیست؟

به هر نوع خطایی که در یک برنامه کامپیوتری باعث عدم اجرا، از کار افتادن، یا نتیجه اشتباه شود، باگ گفته می شود. این خطاها اغلب از برنامه نویسی نادرست ناشی می شوند اما کامپایل ناقص و تولید کدهای اشتباه نیز ممکن است به آن منجر شود. شرکت های بزرگ توسعه گیم گاهی اوقات عمدا باگ هایی را در نسخه های رایگان بتا قرار می دهند تا از انتشار غیرقانونی آنها جلوگیری شود.

طبیعت پیچیده برنامه نویسی و توسعه نرم افزار باعث شده که تقریبا هیچ برنامه ای از گزند باگ در امان نماند. شرکت ها برای اطمینان از کارایی صحیح نرم افزار و بازی ها پس از آزمایش های درون سازمانی چندین نسخه دیگر را با پسوند آلفا و بتا در اختیار کاربران قرار داده و سپس سراغ انتشار نسخه نهایی می روند.

پیدا کردن باگ ها کار زمانبر و کلافه کننده ای است و کارشناسان کامپیوتر با در دست داشتن کد اصلی برنامه یا فایل آن و با استفاده از دیباگر و مهندسی معکوس به شناسایی باگ ها می پردازند. باگ نرم افزاری

برخی کمپانی ها جوایز و پاداش های هنگفتی را برای یافتن آسیب پذیری های امنیتی و باگ نرم افزاری در نظر می گیرند. متخصصان کامیپوتر نرم افزارهایی را برای شناسایی انواع مختلف باگ از قبیل لغوی، نحوی، منطقی و دستوری طراحی کرده اند که از آنها با عنوان دیباگر یاد می شود.

داستان حشره‌ای مشکوک

همانطور که ابتدای مطلب گفتیم ماجرایی مشهور در زمینه نامگذاری اشکالات کامپیوتری به عنوان باگ نرم افزاری وجود دارد. بر این اساس یکی از متخصصان حوزه کامپیوتر به نام «گریس هارپر» نخستین بار عبارت باگ را برای اشاره به مشکل کامپیوتری به کار برده است.

گریس موری هاپر، کارشناس زبردست کامپوتر از پیشگامان برنامه نویسی نوین و عضو نیروی دریایی آمریکا بود که در دهه ۱۹۵۰ نخستین کامپایلر را برای زبان های برنامه نویسی کامپیوتر ابداع کرد. از وی به عنوان اولین توسعه دهنده کامپایلر برنامه و مادر برنامه نویسی کامپیوتر یاد می شود.

هاپر زبان برنامه‌نویسی را در دهه ۵۰ میلادی برای کامپیوترهای مارک ۱ و یونیواک ۱ اختراع کرد و اولین زنی بود که مدال افتخار تکنولوژی را دریافت کرد. در اوج جهانی جنگ دوم و زمانی که وی در خدمت نیروی دریایی ایالات متحده بود کامپیوتر مارک دچار مشکل شد. این کامپیوتر مثل سیستم هایی امروزی نبود که بتوان آنرا در یک کوله حمله کرد. در واقع مارک با چند تن وزن، ابعادی برابر با یک اتاق داشت و به همین خاطر عیب یابی آن بسیاری دشوار بود.

مارک ۲ بر خلاف نسخه اولیه با استفاده از رله های الکترومغناطیسی با سرعت بالا ساخته شده بود اما پس از کار افتادن تکنسین های تحت نظر هاپر پس از باز کردن این سیستم در رله ۷۰ آن سوسکی را پیدا کردند. هاپر جسد حشره نگون بخت را در دفترچه خود چسباند و در متن کنار آن از پیدا شدن نخستین باگ واقعی خبر داد. بر اساس وب سایت نیروی دریایی آمریکا این رویداد مقدمه ای برای استفاده از واژه باگ شد.باگ نرم افزاری

اگرچه این داستان با حضور کاراکتر یک زن دانشمند و خوره کامپیوتر از یک سو و از سوی دیگر تم جنگ جهانی آنقدر جذابیت دارد که کمتر کسی به فکر تحقیق درباره آن بیفتد اما سوالات بسیاری در این باره مطرح است.

اولا در سال ۱۹۴۳ اصلا مارک ۲ هنوز به بهره برداری نرسیده و دو سال بعد یعنی در ۱۹۴۵ توسعه آن به پایان رسید. دوما علی رغم متنی که هاپر از خود به جای گذاشته ممکن است وی حشره ای واقعی در آن پیدا نکرده باشد. سوما برخی دیگر به دهه ای غیر از ۴۰ برای این واقعه اشاره می کنند و همین امر قطعیت آن را زیر سوال می برد.

جنجال اصلی اما بر سر این است که حتی در صورت صحت داشتن مطالب فوق نخستین استفاده از باگ برای اشاره به مشکل کامپیوتری قدمتی بیش از سن گریس هاپر دارد.

واژه باگ واقعا از کجا آمده است؟

ابداع یک واژه به توضیحی بیش از آن جمله احتیاج دارد که هاپر در دفترچه یادداشتش آورده است. با توجه به این دفترچه به سادگی می توان فهمید که مادر برنامه نویسی و افراد دیگر حتی چند سال قبل از جریان حشره مذکور از این واژه برای اشاره به مشکلات کامپیوتری استفاده می کرده اند.

علاوه بر این بر طبق دیکشنری آکسفورد نخستین بار در سال ۱۸۸۹ و در متنی مربوط به ادیسون اصطلاح باگ به کار برده شده است:

آقای ادیسون ... دو شب گذشته را سرگرم رفع یک باگ در فونوگرافش بوده است. عبارتی که برای حل یک مشکل به کار می رود، بدین معنی که ورود یک حشره خیالی به سیستم باعث مشکل شده است.

با این حال سابقه استفاده از کلمه باگ در نامه ها و ژورنال های شخصی ادیسون به سال ۱۸۷۶ برمی گردد که سال ها قبل از چاپ روزنامه مذکور بوده است. به نظر می رسد ادیسون علاوه بر ابداع چراغ روشنایی، تلگراف و تلاش برای اختراع تلفن مکالمه با ارواح، این واژه را نیز برای اولین بار بکار برده و سپس آن را برای روزنامه نگار نیز توضیح داده است.باگ نرم افزاریاما این استفاده از این عبارت از کجا به ذهن ادیسون رسیده است؟ برخی عقیده دارند که اصل این عباره به واژه باستانی «باگبو» برای اشاره به هیولا برمی گردد. با این حال به نظر نمی رسد ادیسون برای ابداع این واژه نیازی به سلط بر زبانشناسی یا تاریخ داشته باشد.

او در نامه ای که سابقه آن به سال ۱۸۷۸ برمی گردد گفته است که باگ های فنی خودشان را نشان می دهند و پیش از آنکه موفقیت یا شکست تجاری یک محصول مشخص شود، ماه ها مشاهده، مطالعه و کار سخت لازم است. به عبارت دیگر زمانی که شما درحال بازدید از خانه ای برای اجاره هستید شاید متوجه سوسک ها نشوید اما پس از سکونت حتما سرو کله انها پیدا می شود.

اما چرا با وجود شهرت فراوان ادیسون ابداع باگ نرم افزاری به گریس هاپر نسبت داده می شود؟ دلیل این مساله علاوه بر جذابیت ماجرای جنگ و مادر برنامه نویسی این است که در سال های گذشته او بارها و بارها داستان حشره گرفتار در ماشین را تکرار کرد، داستانی که همیشه با این جمله تمام می شد: «بعد از آن هر وقت مشکلی در کامپیوتر پیش می آید می گفتیم که باگ [حشره] دارد».دفترچه گریس هاپر اکنون در موزه ملی تاریخ آمریکا نگهداری می شود. «پگی آلدریچ» از کارکنان بخش ریاضیات این موزه نیز تاکید می کنید که بررسی نحوه استفاده از واژه باگ در مقالات و اسناد هاپر نشان می دهد که او و دیگران چندین سال قبل از جریان مارک ۲ از آن استفاده کرده اند. او در این باره به نیویورک تایمز گفته است:

بی رودربایستی بگویم، دکتر هاپر داستان خوبی گفته است!

دیجیاتو