شاید این روزها زیاد شنیده باشید که هوش مصنوعی (AI) قرار است بسیاری از مشاغل، از جمله برنامهنویسی را متحول کند و حتی جایگزین آن شود. این تصور، به خصوص با پیشرفتهای چشمگیر مدلهای زبانی بزرگ مانند GPT، در ذهن بسیاری از افراد، چه متخصص و چه غیر متخصص، شکل گرفته است. اما آیا واقعاً باید نگران باشیم که هوش مصنوعی به زودی ما برنامهنویسها را خانهنشین خواهد کرد؟ در این مقاله، با نگاهی دقیق به صحبتهای مطرح شده در ویدئوی “چرا هوش مصنوعی هرگز جای برنامهنویس ها رو نمیگیره؟” از کانال یوتیوب “Kalagar”، به بررسی این موضوع میپردازیم و استدلالهایی را مطرح میکنیم که نشان میدهند جایگاه مهندسان نرمافزار و برنامهنویسان همچنان محفوظ خواهد ماند.
برای شروع، بد نیست به مثال جالبی که در ابتدای ویدئو مطرح میشود اشاره کنیم. در آوریل سال ۲۰۱۹، ایلان ماسک اعلام کرد که تسلا قصد دارد در اوایل سال ۲۰۲۰ خودروهای رباتیکسی (Robo-Taxi) را به بازار عرضه کند. ایده این بود که افراد میتوانند خودروی خود را در اختیار سرویسهایی مانند اوبر قرار دهند تا به طور خودکار کار کرده و درآمدزایی کنند. اما با گذشت حدود پنج سال، این وعده هنوز محقق نشده است. چرا؟ زیرا همانطور که در ویدئو توضیح داده میشود، حتی پیشرفتهترین خودروهای خودران امروزی، در بهترین حالت تنها میتوانند در حدود ۲۰ درصد از جادههای دنیا و در شرایط ایدهآل (بدون برف، مه، ترافیک و با علامتگذاری خوب) در سطح ۲ رانندگی خودکار عمل کنند. در این سطح نیز، همچنان نظارت راننده ضروری است.
این مثال به خوبی نشان میدهد که حتی در یک حوزه نسبتاً مشخص مانند رانندگی، دستیابی به اتوماسیون کامل چقدر پیچیده و دشوار است. حال، بیایید این موضوع را به دنیای پیچیده و پویای مهندسی نرمافزار و برنامهنویسی تعمیم دهیم.
در حال حاضر، هوش مصنوعی میتواند در انجام برخی از وظایف جزئی و کوچک به برنامهنویسان کمک کند. برای مثال، ممکن است یک خط کد را به آن بدهیم و بخواهیم آن را بهینهتر کند، یا یک ارور را کپی و پیست کنیم تا دلیل آن را تحلیل کند. همچنین، در مواردی مانند بررسی فایلهای YAML کوچک در فرایند CI/CD یا نوشتن کدهای ساده فرانتاند، هوش مصنوعی میتواند مفید باشد.
اما وقتی صحبت از پروژههای بزرگ و پیچیده با ساختارهای درهمتنیده، فایلهای YAML طولانی و عجیب و غریب، یا منطقهای تجاری سنگین به میان میآید، تواناییهای فعلی هوش مصنوعی به شدت محدود میشود.
همانطور که در ویدئو اشاره میشود، بحث صرفاً نوشتن کد نیست. وقتی یک کد توسط هوش مصنوعی تولید میشود، مسائل مهم دیگری مانند نگهداری، سفارشیسازی، و بهروزرسانی آن مطرح میشود. در پروژههای متوسط و بزرگ، کدها به طور مداوم نیاز به آپگرید، آپدیت، و تغییرات ساختاری دارند. انجام ریفکتورینگهای پیچیده نیازمند درک عمیق از ساختار پروژه و منطق کسبوکار است. آیا یک هوش مصنوعی میتواند در جلسات اسکرام شرکت کند، تحلیلهای لازم را انجام دهد و تصمیم بگیرد که چگونه ساختار یک پروژه را تغییر دهد؟
گوینده ویدئو درباره یک پروژه واقعی توضیح میدهد که میخواستند از یک تکنولوژی به یکی دیگه مهاجرت کنند.که به خوبی گویای این پیچیدگی است. این فرایند برای یک پروژه با حدود ۸ میکروسرویس و ۵ میکروفرانت، با همکاری ۶ توسعهدهنده و صرف حدود ۳ ماه زمان انجام شد. تصور کنید حجم عظیمی از کد باید تغییر میکرد و هماهنگی بین تیمهای مختلف ضروری بود. آیا یک هوش مصنوعی به تنهایی میتواند چنین کاری را با این سطح از پیچیدگی و هماهنگی انجام دهد؟ قطعاً خیر.
علاوه بر این، یکی از مهارتهای کلیدی یک مهندس نرمافزار خوب، توانایی طراحی ساختار پروژه به شکل صحیح است. انتخاب اصول طراحی، الگوهای طراحی (Design Patterns)، و بهترین شیوههای کدنویسی، تصمیماتی هستند که نیازمند دانش عمیق و تجربه انسانی هستند. اینها مسائل بسیار سطح بالا هستند که از برنامهنویسان با تجربه انتظار میرود و هوش مصنوعی در حال حاضر در این زمینهها فاقد توانایی لازم است.
بسیاری از صحبتها در مورد جایگزینی برنامهنویسان توسط هوش مصنوعی، به گفتهی گوینده ویدئو، بیشتر جنبه تبلیغاتی و برای بالا بردن ارزش سهام شرکتهای فناوری را دارد. مثالهایی از اظهارات ایلان ماسک در مورد رباتکسیها و مدیران عامل شرکتهایی مانند گیتهاب و انویدیا مطرح میشود که با اغراق در مورد تواناییهای هوش مصنوعی صحبت میکنند. هدف اصلی این اظهارات، ترغیب مردم عادی به خرید سهام این شرکتها است.
نکته مهم دیگری که در ویدئو به آن اشاره میشود، دلیل اصلی اخراجهای اخیر در شرکتهای بزرگ فناوری است. برخلاف تصور برخی که این اخراجها را ناشی از جایگزینی نیروی انسانی با هوش مصنوعی میدانند، دلیل اصلی، مشکلات اقتصادی و وضعیت نامناسب بازار است. کاهش درخواستهای همکاری در لینکدین برای مهندسان نرمافزار در آلمان نیز به همین مشکلات اقتصادی و عدم تمایل سرمایهگذاران به خرج کردن پول برمیگردد، نه لزوماً پیشرفتهای هوش مصنوعی.
در واقع، هر چقدر هوش مصنوعی قویتر شود، به نفع برنامهنویسان و مهندسان نرمافزار خواهد بود. چرا؟ زیرا هوش مصنوعی میتواند کارهای روتین را انجام دهد مثل نوشتن کامپوننتهای ساده در React، یا جنریت کردن مدل از دیتابیس و... این امر به برنامهنویسان این امکان را میدهد تا بر روی مسائل پیچیدهتر و مهمتری تمرکز کنند.
سختی واقعی کار یک برنامهنویس، کد نوشتن صرف نیست، بلکه درک نیازمندیها در جلسات با Product Ownerها و طراحان، طراحی ساختار و معماری سیستم، در نظر گرفتن مسائل امنیتی و کارایی (Performance)، انتخاب کتابخانهها و سرویسهای مناسب، اطمینان از یکپارچگی کد در کل پروژه (به خصوص در پروژههای میکروسرویسی)، نوشتن تستهای مختلف (Unit Test, End-to-End Test)، و انجام فرآیند بررسی کد (Code Review) است. اینها مهارتهایی هستند که نیازمند تفکر انتقادی، خلاقیت، همکاری، و دانش عمیق در زمینههای مختلف هستند و هوش مصنوعی فعلی قادر به انجام آنها نیست.
به گفتهی گوینده ویدئو، همیشه سطح تواناییهای یک مهندس نرمافزار با تجربه، حداقل سه تا چهار سطح از تواناییهای هوش مصنوعی فعلی بالاتر خواهد بود. هوش مصنوعی ممکن است بتواند کارهایی را انجام دهد که برنامهنویسان در سطوح junior انجام میدادند، اما چالشهای واقعی و ارزشآفرینی مهندسان نرمافزار در سطوح بالاتر و در مواجهه با مسائل پیچیده نهفته است.
در نهایت، میتوان گفت که هوش مصنوعی یک ابزار قدرتمند است که میتواند به برنامهنویسان در انجام وظایفشان کمک کند و بهرهوری آنها را افزایش دهد، اما هرگز نمیتواند جایگزین تفکر انسانی، خلاقیت، تجربه، و توانایی حل مسائل پیچیده که در ذهن مهندسی نرمافزار قرار دارد، شود. بنابراین، اگر شما یک برنامهنویس هستید یا قصد ورود به این حوزه را دارید، نیازی به نگرانی در مورد جایگزینی توسط هوش مصنوعی ندارید. با قدرت به یادگیری و پیشرفت خود ادامه دهید، زیرا آینده توسعه نرمافزار همچنان به تخصص و مهارت شما نیاز خواهد داشت.