لیست مطالب

پایان عصر برنامه‌نویسی‌ای که تا امروز با آن آشنا بودیم

جایگزینی انسان با هوش مصنوعی

در رسانه‌ها زیاد می‌شنویم که هوش مصنوعی قرار هست جایگزین شغل برنامه‌نویسان بشود. من چنین چیزی را باور ندارم.

این اتفاق به معنای پایان برنامه‌نویسی نیست. بلکه پایان برنامه‌نویسی به شیوه‌ای است که امروز می‌شناسیم. و اصلاً موضوع تازه‌ای هم نیست. اولین برنامه‌نویسان با اتصال مدارهای الکترونیکی، محاسبات را انجام می‌دادند. بعد از آن‌ها کسانی آمدند که به‌صورت مستقیم و با تنظیم سوئیچ‌ها روی بدنه‌ی رایانه، کدهای دودویی را بیت‌به‌بیت وارد می‌کردند. سپس زبان اسمبلی پدیدار شد و همه‌ی آن روش‌های سخت و ابتدایی را کنار زد. اسمبلی به ما اجازه می‌داد با زبانی شبیه زبان انسان به رایانه بگوییم داده‌ها را کجا ذخیره کند و محاسبات مورد نظر را چطور انجام دهد. در مرحله‌ی بعد، زبان‌های کامپایل‌شونده‌ی سطح بالاتر مانند فورترن، کوبول، و سپس C، ++C و جاوا به وجود آمدند تا برنامه‌نویسان دیگر نیازی به نوشتن کد اسمبلی نداشته باشند و بتوانند ایده‌هایشان را در قالبی ساده‌تر به رایانه منتقل کنند.

اولین برنامه نویسان تاریخ کامپیوتر

(عکس) Betty Jean Jennings و Frances Bilas (سمت راست) در حال برنامه‌نویسی ENIAC سال ۱۹۴۶، با اجازه‌ی موزه‌ی تاریخ کامپیوتر

سپس زبان‌های تفسیری وارد میدان شدند که عیب‌یابی(Debuging) را به‌مراتب راحت‌تر می‌کردند. BASIC که یکی از اولین زبان های نسل جدید بود، در ابتدا جدی گرفته نمی‌شد و شبیه یک اسباب‌بازی محسوب می‌شد، اما بعداً نشان داد آینده‌ی برنامه‌نویسی در همین سادگی و در دسترس بودن است. از آن به بعد، برنامه‌نویسی دیگر انحصاریِ افراد خاص در شرکت‌ها و سازمان‌های دولتی نبود و حتی نوجوان‌ها و کارآفرینان کوچک هم می‌توانستند دست به کد شوند.

سیستم‌عامل‌های جدید هم به تغییر اوضاع کمک کردند. در روزهای اول کامپیوتر‌های شخصی، هر سازنده سخت افزار مجبور بود مهندسان نرم‌افزاری استخدام کند که کدهای سطح پایین برای تجهیزات مختلف بنویسد. اما ویندوز این ضرورت را از بین برد؛ نه صرفاً به این خاطر که کار با رایانه را با رابط گرافیکی آسان کرد، بلکه چون مجموعه‌ای از درایورها و Win32 API را ارائه داد که خیلی از کارها را درون سیستم‌عامل انجام میداد. به همین دلیل دیگر لازم نبود برنامه‌نویسان همه‌ی کدهای سطح پایین را خودشان بنویسند. ویندوز، مک‌اواس، آی‌اواس و اندروید باعث شدند امروزه خیلی از برنامه‌نویسان دیگر نیازی به دانستن جزئیات فنی نسل‌های قبل نداشته باشند.


برنامه‌نویسان بیشتر و توسعه برنامه‌نویسی

با این حساب، برنامه‌نویسی نه تنها از بین نرفت بلکه تعداد برنامه‌نویسان بیشتر هم شد. صدها میلیون نفر از دستاوردهای آن‌ها استفاده می‌کردند. درست به همان نسبت که تولید نرم‌افزار آسان‌تر شد و قیمتش پایین آمد، افراد بیشتری حاظر به سرمایه‌گذاری در این حوزه شدند و همین باعث افزایش تقاضا شد.

وب هم نوعی «پایان دیگر» برای برنامه‌نویسی محسوب می‌شد، با امکان اجرای کدها روی سرور و مرورگر و پیشرفت ابزار ها عملاً هرکسی با اندکی دانش می‌توانست یک وب‌سایت ساده بسازد.که در ادامه «No Code» هم به واژه‌ی جدیدی تبدیل شد. خیلی زود هرکس نیاز به یک وب‌سایت پیدا کرد. ابزارهایی مثل وردپرس به افراد معمولی این امکان را دادند که بدون نوشتن کد، وب‌سایت‌هایی نسبتاً پیشرفته بسازند. اما وقتی وب‌سایت‌ها قدرتمندتر شدند، رفته‌رفته پیچیدگی بالا رفت: تمایز فرانت‌اند و بک‌اند شکل گرفت، زبان‌های تفسیری جدیدی مثل پایتون و جاوااسکریپت محبوب شدند، و با ظهور گوشی‌های هوشمند، لایه‌ی جدیدی به ماجرا اضافه شد و frameworkها و کتابخانه‌ها هم آن پشت همه‌چیز را ساده‌تر و درعین‌حال باارزش‌تر کردند.

در این میان، داده‌های کلان (Big Data)، وب‌سرویس ها و رایانش ابری هم توسعه پیدا کردند و چیزی شبیه «سیستم‌عامل اینترنت» را به وجود آوردند. حالا دیگر سرویس‌هایی مانند Apple Pay، Google Pay و Stripe می‌توانستند بدون نیاز به کدهای پیچیده، امور حساس مالی مثل پرداخت را انجام دهند. چنین روندهایی نیاز به برنامه‌نویسان بیشتری ایجاد کرد.

برنامه‌نویسان از تولید نرم‌افزارهای static که هر چند سال یک بار نسخه‌ی جدیدی به بازار میدادند، فاصله گرفتند و سراغ نرم‌افزارهای سرویس‌محور (SaaS) رفتند که به‌طور پیوسته به‌روزرسانی و نگهداری می‌شوند. در سرویس‌های بزرگی مثل جستجوی گوگل، نقشه‌های گوگل، جیمیل، آمازون، فیسبوک و توییتر، بیشتر کارها در مقیاسی وسیع بصورت خودکار انجام میشود. این برنامه‌ها را انسان‌ها طراحی کرده‌اند، اما وظایف اصلی توسط ربات‌ها و سیستم‌های خودکاری انجام می‌شود که می‌توان آن‌ها را اجداد هوش مصنوعی‌های امروزی دانست. درواقع، برنامه‌ها کارگر اصلی‌اند و انسان‌ها در نقش مدیریت آن‌ها عمل می‌کنند. حالا صدها هزار برنامه‌نویس وجود دارد که تنها روی همین مدیریت سیستم‌ها و سرویس‌های عظیم کار می‌کنند و اساساً شغلشان مدیریت «همکاران دیجیتال» است.

مهندسان قرن بیست و یک

تیم اُرایلی می‌گوید: «در شرکت‌هایی مثل گوگل، فیسبوک، آمازون و بسیاری از استارت‌آپ‌های سیلیکون‌ولی، اگر با دید کارخانه‌های قرن بیستمی به ماجرا نگاه کنید، ده‌ها هزار نفر کارگر داریم که مدام یک‌سری محصولات نرم‌افزاری می‌سازند. اما اگر یک قدم عقب‌تر بروید و با دیدگاه قرن بیست‌و‌یکمی به ماجرا نگاه کنید، می‌بینید که بخش بزرگی از کار را اصلاً نرم‌افزارها و الگوریتم‌ها انجام می‌دهند و برنامه‌نویس‌ها در اصل مدیر این نرم‌افزارها هستند.»

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


آیا این بار قضیه فرق می‌کند؟

حالا ظاهراً می‌توان بدون کدنویسی هم برنامه نوشت: کافی است با یک مدل زبانی بزرگ (LLM) یا یک agent نرم‌افزاری تخصصی به زبان انگلیسی (یا هر زبان دیگری) صحبت کنید و یک برنامه‌ی پایتون (یا با هر زبانی که خواستید) تحویل بگیرید. عبارتی به نام «CHOP» یا «Chat-Oriented Programming» هم برایش سر زبان‌ها افتاده. مدل‌های هوش مصنوعی پیشرفته حالا می‌توانند حتی پروژه‌های پیچیده را از دل یک توضیح کلی و مختصر بیرون بکشند. همین باعث شده خیلی‌ها بگویند این بار فرق می‌کند و اکثر برنامه‌نویسان و حتی شاغلان در زمینه‌های های‌تک را هوش مصنوعی کنار می‌زند و ما با موج بیکاری گسترده روبه‌رو خواهیم شد.

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

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


یادگیری در عمل

هوش مصنوعی برنامه‌نویسان را کنار نمی‌زند، بلکه کارشان را متحول می‌کند. شاید روزی بخش زیادی از کاری که امروز برنامه‌نویسان انجام می‌دهند، مانند مهارت قدیمی استفاده از اسیلوسکوپ برای عیب‌یابی، دیگر چندان کاربرد نداشته باشد (جز در حوزه‌هایی مانند embedded systems). اما استیو یِگی، برنامه‌نویس و صاحب‌نظر مشهور می‌گوید آن کسانی بیکار می‌شوند که به گذشته چسبیده‌اند و از ابزارها و شیوه‌های جدید برنامه‌نویسی فاصله می‌گیرند؛ نه آن‌هایی که تازه‌کار هستند یا تجربه‌ی متوسط دارند. کسانی که مهارت‌های جدید را یاد بگیرند یا اختراع کنند، خواهان بیشتری خواهند داشت. توسعه‌دهندگان جونیور که با ابزارهای هوش مصنوعی آشنا شوند، می‌توانند از برنامه‌نویسان ارشدی که با این فناوری بیگانه‌اند، جلو بزنند. یِگی این پدیده را «مرگ برنامه‌نویس لجوج» نامیده است.

دیدگاه من همچنین بر اساس تحقیق‌های تاریخ‌دان اقتصادی، جیمز بِسِن شکل گرفته است که بررسی کرد انقلاب صنعتی در دهه‌ی ۱۸۰۰ در کارخانه‌های نساجی لُوِل چطور اتفاق افتاد. در آن دوران، کارگرانی کم‌مهارت جایگزین صنعتگران ماهر شدند و دستمزدها افت کرد. اما بسِن در حین بررسی حقوق کارگرانِ کارخانه‌های جدید و استادکاران سنتی  کشف کرد،مدت زمانی که طول می‌کشید تا یک کارگر ظاهراً «غیرماهر» در کارخانه به بالاترین سطح بازدهی و دستمزد برسد، دقیقاً به‌اندازه‌ی زمانی بود که یک شاگرد در نظام سنتی برای تبدیل‌شدن به استادکار نیاز داشت. به‌عبارت دیگر، هر دوی این گروه‌ها در نهایت مهارت پیدا می‌کردند، اما نوع مهارت‌ها و مسیر یادگیری‌شان متفاوت بود.

دو دلیل اساسی برای ثابت ماندن یا پایین بودن دستمزد در نیمه‌ی اول انقلاب صنعتی وجود داشت: یکی اینکه صاحبان کارخانه‌ها چندان به کارگران سودی نمی‌دادند و دیگری اینکه سال‌ها طول کشید تا همه یاد بگیرند از ماشین‌آلات جدید بهترین استفاده را ببرند، آن‌ها را ارتقا دهند، فرایندهای کاری نوینی خلق کنند و این فناوری را در صنایع مختلف جا بیندازند. آن‌ها باید فراتر از شیوه‌ی استفاده، راه‌های بهبود این ماشین‌ها را پیدا می‌کردند و در نهایت همان دنیایی را می‌ساختند که این فناوری نویدش را می‌داد. بسِن به این فرایند «یادگیری در عمل» می‌گوید

اینکه تعداد کمی از افراد زودتر از بقیه این مهارت‌ها را یاد بگیرند کافی نیست. به قول بسِن: «آنچه برای یک کارخانه، یک صنعت یا کل جامعه مهم است، مدت زمان آموزش یک کارگر نیست، بلکه زمانی است که لازم است تا یک نیروی کار پایدار و ماهر شکل بگیرد.» (از کتاب Learning by Doing، صفحه‌ی ۳۶). ٖدر دنیای امروز، هر شرکتی که تحت تأثیر این انقلاب باشد (عملاً تمام شرکت‌ها)، باید از همین حالا آماده شود و در مسیر به‌کارگیری هوش مصنوعی گام بردارد.  برنامه‌نویسی در واقع روش ما برای گفت‌وگو با کامپیوتر است. اینکه امروز «برنامه‌نویسی» به زبان معمولی انسان نزدیک‌تر شده و لازم نیست ما حتماً زبان ماشین را یاد بگیریم، خبر خیلی خوبی است.

Jevons paradox strikes again! As AI gets more efficient and accessible, we will see its use skyrocket, turning it into a commodity we just can’t get enough of. https://t.co/omEcOPhdIz

— Satya Nadella (@satyanadella) January 27, 2025

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


«اتان مولیک»، استاد مدرسه‌ی وارتون و مروج هوش مصنوعی، نیز تحت تأثیر یافته‌های بسِن است. او تأکید می‌کند که باید در همه‌ی کارها، هوش مصنوعی را هم وارد ماجرا کنیم و آنچه را که «مرز ناهموار» کارایی و ناکارایی می‌نامد، کشف کنیم؛ یعنی ببینیم کجا هوش مصنوعی مؤثر است و کجا باید هنوز از روش‌های سنتی یا خلاقیت انسانی کمک گرفت. او به شرکت‌ها توصیه می‌کند از هوش مصنوعی برای توانمندسازی کارمندانشان بهره ببرند، نه برای حذف آن‌ها. هنوز نکات بسیاری هست که درباره‌ی روش‌های به‌کارگیری این فناوری باید یاد بگیریم. بهترین منبع تحقیق و توسعه هم خود کارمندانی هستند که با استفاده از هوش مصنوعی مشکلاتشان را حل می‌کنند و فرصت‌های تازه‌ای را کشف می‌کنند.


برنامه‌نویسی در حال تغییر است

سم شیلِیس، معاون ارشد فناوری مایکروسافت، دیدگاهی مشابه دارد. او در گفت‌وگویی اخیر گفت:
«ما در حال ابداع یک پارادایم کاملاً جدید در برنامه‌نویسی هستیم که حول محور سیستم‌های هوش مصنوعی شکل می‌گیرد. وقتی از عصر دسکتاپ به عصر اینترنت مهاجرت کردیم، تمام مؤلفه‌های Stack دستخوش تغییر شدند، هرچند در اصل همان ساختار را حفظ کردند، هنوز هم زبان‌ برنامه‌نویسی داریم، اما از زبان‌های کامپایل‌شونده به زبان‌های تفسیری رسیدیم. شیوه‌ی کار تیم‌های ما هم تغییر کرد: از مدل آبشاری (Waterfall) حرکت کردیم به روش‌های چابک (Agile) و حالا هم به یکپارچه‌سازی و توسعه پیوسته (CI/CD) رسیده‌ایم. پایگاه‌های داده‌ی ما از مدل ACID به NoSQL گذر کردند.
«در گذشته برنامه‌نویسی ما حول یک کاربر و یک برنامه‌ی واحد می‌چرخید؛ اما حالا باید سامانه‌های عظیمی را مدیریت کنیم که در سراسر شبکه توزیع شده‌اند. همین دگرگونیِ بنیادین که آن زمان از دسکتاپ به اینترنت رخ داد، حالا در حوزه‌ی هوش مصنوعی هم در حال وقوع است.»

این تصویری است از فناوری‌هایی که در حال ترکیب شدن با یکدیگرند تا Stackای جدید برای هوش مصنوعی بسازند؛ و این فهرست حتی شامل انواع مدل‌ها و APIها و زیرساخت‌های ابری نشده و از همین حالا هم در حال تغییر است!

پلتفرم های هوش مصنوعی

AI Engineering Landscape,” via Marie-Alice Blete on GitHub

 


«چشم‌انداز مهندسی هوش مصنوعی» از ماری-آلیس بِلِتِ در گیت‌هاب

اما انفجار فریم‌ورک‌‌ها و ابزارها و شیوه‌های جدید، تازه اول کار است. یکی از مسائلی که شیلِیس مطرح کرد، این است که مدل‌های هوش مصنوعی حافظه‌ی گسترده‌ی انسانی ندارند. حتی اگر حجم ورودی کلمات بالا باشد، باز هم در انجام آنچه او «فراشناخت» (اندیشیدن به فرایند اندیشیدن) می‌نامد، دچار محدودیت هستند. به همین خاطر، هنوز به انسان‌ها نیاز هست تا ساختار و پیش‌زمینه‌ی مسائل را برای آن‌ها فراهم کنند.

شیلِیس در مطلبی نوشته است: «مدل‌های زبانی بزرگ (LLMها) و سایر سیستم‌های هوش مصنوعی در پی خودکار کردن فرایند “فکر کردن” هستند. شباهتش به زمانی که در انقلاب صنعتی، حرکت مکانیکی ماشین‌ها خودکار شد، جالب است. ما هنوز در مرحله‌ی مقدماتی هستیم و تنها کارهایی مثل خلاصه کردن، تشخیص الگو و تولید متن را به ماشین سپرده‌ایم. هنوز نفهمیده‌ایم چگونه موتورهای هوش مصنوعی واقعاً قدرتمند بسازیم—حتی به مرحله‌ی “لوکوموتیو” در دنیای هوش مصنوعی هم نرسیده‌ایم.»

در مرحله‌ی لوکوموتیو هم در اصل نیرویی را که قبلاً وجود داشت، افزایش دادیم و گام بعدی اختراع ابزارهای بهتر برای کنترل این نیرو بود. حالا هم همین اتفاق پیش روی ماست: «چه می‌شود اگر شیوه‌های سنتی مهندسی نرم‌افزار دیگر کافی نباشند؟ اگر ساخت هوش مصنوعی به رویکردهای مدیریتی و کنترلی کاملاً جدید نیاز داشته باشد، چه؟ ما می‌خواهیم شیوه‌های تازه‌ای از “فکر کردن” ابداع کنیم: سیستم‌های سطح بالایی که قابلیت فراشناخت و تطبیق دارند و صرفاً الگوهای برنامه‌نویسی را تکرار نمی‌کنند. برای بهره‌برداری از این سیستم‌ها، نیاز داریم روش‌های کاری تازه خلق کنیم و رشته‌هایی جدید پدید بیاوریم. همان‌طور که چالش‌های اولیه‌ی نیروی بخار باعث پدید آمدن علم متالورژی شد، چالش‌های هوش مصنوعی هم باعث ظهور علوم جدیدی در زمینه‌های شناخت، قابلیت اطمینان و مقیاس‌پذیری خواهد شد—رشته‌هایی که هنوز شکل نگرفته‌اند.»


چالش استفاده از هوش مصنوعی در تجارت

برِت تیلور، که پیش‌تر مدیرعامل مشترک Salesforce و زمانی مدیر ارشد فناوری در فیس‌بوک (متا) و سال‌ها قبل رهبر تیم گوگل‌مپز بود، اکنون مدیرعامل شرکت سییِرا (Sierra) است که به‌طور تخصصی در زمینه‌ی راهکارهای هوش مصنوعی برای کسب‌وکارها فعالیت می‌کند. او در صحبتی گفت که فکر می‌کند «عامل هوش مصنوعی» یک شرکت می‌تواند به اندازه‌ی سایت یا اپلیکیشن موبایلش مهم شود و حتی بیش از آن. این عامل باید قوانین و شیوه‌های کاری اصلی شرکت را در خودش داشته باشد. شاید در آینده هوش مصنوعی بتواند این کار را تنهایی انجام دهد، ولی فعلاً تیم مهندسی سییِرا باید برای هر مشتری جداگانه کار کند تا آن عامل را بسازد.

برِت توضیح می‌دهد: «آخرین قدم، یعنی برداشتن یک پلتفرم جذاب و مجموعه‌ی فرایندهای کسب‌وکاری و تبدیلش به یک Agent، واقعاً چالش دارد. یک نقش جدیدی حالا شکل گرفته که ما آن را Agent Engineer می‌نامیم. چنین شخصی شبیه توسعه‌دهنده‌ی فرانت‌اند وب است، با این تفاوت که در حوزه‌ی هوش مصنوعی کار می‌کند. اگر شما ری‌اکت را یاد گرفته باشید، می‌توانید ساخت agent هوش مصنوعی را یاد بگیرید و به این شکل مهارت‌هایتان را به‌روز کنید.»

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

اَدی عثمانی، مدیر بخش. UX گوگل کروم، این را مشکل «۷۰ درصدی» می‌داند. می‌گوید: «با وجود اینکه مهندسان از رشد چشمگیر بهره‌وری با هوش مصنوعی صحبت می‌کنند، هنوز نرم‌افزارهایی که روزمره استفاده می‌کنیم خیلی پیشرفت نکرده‌اند.» کاربرانی که حرفه‌ای نیستند، اگر از ابزارهای تولید کد هوش مصنوعی استفاده کنند، می‌توانند یک دموی عالی از یک ایده ساده بسازند، اما در ۳۰ درصد پایانی پروژه‌های پیچیده به بن‌بست می‌خورند. چون نمی‌دانند چطور خطایابی کنند و با هدایت هوش مصنوعی به راه‌حل درست برسند.

«وقتی تماشا می‌کنید یک مهندس ارشد با ابزاری مثل Cursor یا Copilot کار می‌کند، شبیه جادوست. او می‌تواند در عرض چند دقیقه کل یک feature را با تست و مستندات ایجاد کند. اما اگر دقت کنید، می‌بینید هر پیشنهادی را از هوش مصنوعی نمی‌پذیرد. او سال‌ها تجربه‌ی فنی دارد و با آن تخصص خروجی هوش مصنوعی را هدایت می‌کند. در حقیقت این دانش و تجربه‌ی اوست که کد را قابل نگهداری و بهینه می‌کند. مهندسان جونیور این بخش حیاتی را نمی‌بینند و هرچه هوش مصنوعی می‌گوید، قبول می‌کنند. نتیجه کار می‌شود یک بنای سست که شاید ظاهراً کامل به نظر بیاید، اما با کوچک‌ترین تغییرات در دنیای واقعی فرو می‌ریزد.»

از طرفی، چیپ هویِن، نویسنده‌ی کتاب «مهندسی هوش مصنوعی»، جمله‌ای جالب به من گفت:

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

و مهران سهَمی، رئیس دپارتمان علوم کامپیوتر استنفورد، این‌طور ساده‌اش می‌کند: «علم کامپیوتر درباره‌ی تفکر نظام‌مند است، نه فقط نوشتن کد.»


وقتی عامل‌های هوش مصنوعی با یکدیگر حرف می‌زنند…

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

این بخش ماجرا بسیار ابتدای راه است؛ هنوز استانداردی برای اینکه عامل‌های هوش مصنوعی چطور با هم به توافق برسند یا همکاری کنند نداریم. در مقاله‌ای درباره‌ی لزوم ساخت زیرساخت agentها می‌خوانیم:

«ابزارهای امروزی در اصل برای شکل دادن به نحوه‌ی تعامل agentها با نهادهای قانونی یا اقتصادی، یا حتی سرویس‌دهنده‌های دیجیتال و دیگر عامل‌های هوش مصنوعی طراحی نشده‌اند. برای مثال، تکنیک‌های تنظیم و هم‌ترازی هوش مصنوعی به‌خودی‌خود تضمین نمی‌کند اگر فردی به agent دستور کار غیرقانونی داد، مسئولیتی متوجه انسانی باشد. برای حل این مشکل، مفهوم “زیرساخت agent” را مطرح می‌کنیم؛ سیستم‌ها و پروتکل‌های فنی بیرونی که طوری طراحی شده‌اند تا تعامل‌های agentها با محیطشان را مدیریت و کنترل کنند… . این زیرساخت سه مسئولیت عمده دارد: (۱) مشخص کردن اینکه کدام اقدام یا داده از کدام عامل یا کاربر سر زده است، (۲) جهت‌دهی تعامل‌های agentها، و (۳) شناسایی و حل اقدامات آسیب‌زای عامل‌ها. چالش‌های هماهنگی و طراحی زیادی وجود دارند. حتی بهترین agentهای هوش مصنوعی فعلی هم بدون هدایت انسان در برابر مسائل پیچیده‌ی که نیاز به هماهنگی دارند درمانده هستند. به‌اندازه‌ی کافی هم کار برنامه‌نویسی در این حوزه وجود دارد که سال‌ها حتی برنامه‌نویسان مجهز به هوش مصنوعی را هم مشغول نگه دارد.»

به بیان ساده، قرار است مجموعه‌ی کاملی از نرم‌افزارهای جدید خلق شود که نه فقط توسط هوش مصنوعی، بلکه با همکاری نزدیک انسان و هوش مصنوعی (به‌منزله‌ی یک ابرنیروی کمکی برای برنامه‌نویسان) شکل می‌گیرد. برای ساخت این نرم‌افزارهای تازه هم به انبوهی مهارت جدید نیاز خواهیم داشت.


ما در آغاز ساخت آینده‌ایم

هنوز چیزهای بسیاری هست که باید کشف و تجربه کنیم. تصور کنید ابزارهای هوش مصنوعی باعث شوند برنامه‌نویسان ده برابر پربازده‌تر شوند (البته این بستگی به میزان یادگیری و استقبال افراد دارد)، اما هم‌زمان دامنه‌ی کارها و پروژه‌های قابل‌برنامه‌نویسی هم ده‌ها برابر شود. اگر مثلاً ۲۰ برابر فرصت بیشتری برای برنامه‌نویسی ایجاد شود، حتی با برنامه‌نویسانی که ۱۰ برابر سریع‌تر شده‌اند، باز هم نیروی بیشتری می‌خواهیم!

انتظار کاربران هم بالا می‌رود. شرکت‌هایی که صرفاً بخواهند با این افزایش بازدهی هزینه‌هایشان را پایین بیاورند، از رقبایی شکست خواهند خورد که روی خلق سرویس‌های بهتر و کارآمدتر سرمایه‌گذاری می‌کنند.

سایمون ویلیسون، یک توسعه‌دهنده‌ی باسابقه که مدت‌هاست نشان داده چطور می‌توان برنامه‌نویسی را در عصر هوش مصنوعی بهبود داد، می‌گوید که هوش مصنوعی به او اجازه می‌دهد پروژه‌های بلندپروازانه‌تری داشته باشد و آزادی عملش را بالاتر ببرد.

در صنعت سینما هم داستان مشابهی را می‌بینیم: زمان رندر شدن یک فریم از فیلم‌های مارول امروز شاید به اندازه‌ی کل زمان رندر اولین فیلم پیکسار باشد، با وجود پیشرفت‌های خارق‌العاده‌ی سخت‌افزاری. علت این است که کیفیت کار به‌مراتب بیشتر شده: جزئیات بهتر، جلوه‌های خیره‌کننده‌تر و مواردی که به تجربه‌ی بصری کاربر ارزش می‌دهد. این‌طور نیست که صرفاً بخواهیم یک انیمیشن ساده‌تر را سریع‌تر یا ارزان‌تر تولید کنیم. البته بعضی صنایع تصمیم می‌گیرند محتوا را با کیفیت کمتر ولی سریع‌تر ارائه دهند—مثل ویدیوهای انفرادی در یوتیوب—اما همیشه کیفیت جایگاه خودش را دارد.

حالا میلیون‌ها نفر آماتور مجهز به هوش مصنوعی را تصور کنید که با ابزارهایی مثل Replit و Devin یا راهکارهای سازمانی مانند Salesforce، Palantir و Sierra تلاش می‌کنند برنامه بنویسند. بعضی از آن‌ها به ایده‌هایی می‌رسند که میلیون‌ها نفر از آن استقبال می‌کنند. از بینشان تعدادی کارآفرینان نسل بعد می‌شوند و نرم‌افزارهایی با همکاری هوش مصنوعی خلق می‌کنند. اما خیلی از این ایده‌ها هم احتمالاً توسط برنامه‌نویسان حرفه‌ای‌تر تکمیل و در مقیاس کلان پیاده خواهد شد.


سفر از نمونه‌ی اولیه تا تولید انبوه

در حوزه‌ی سازمانی (Enterprise)، هوش مصنوعی باعث می‌شود افرادی که بیشترین آشنایی را با مشکل دارند، راحت‌تر ایده‌ی اولیه‌ی خودشان را بسازند. اما برای رسیدن آن ایده به مرحله‌ی اجرای واقعی در شرکت، هنوز باید مسیر مهمی طی شود؛ چیزی که شِیام سانکار، مدیر ارشد فنی Palantir، آن را «سفر از نمونه‌ی اولیه تا تولید انبوه» می‌نامد. او می‌گوید ارزش حقیقی هوش مصنوعی برای سازمان‌ها در خودکارسازی است، اما همه‌چیز در مواجهه با «گوشه‌های پنهان» (Edge Cases) محدودیت دارد. مثالی می‌زند از «اِستَنلی»، خودروی خودرانی که در سال ۲۰۰۵ مسابقه‌ی دارپا را برد: در نوع خود شگفت‌انگیز بود، ولی رانندگی در شهر با انواع پیچیدگی‌ها نیازمند دست‌کم بیست سال کار بیشتر است.

سانکار تأکید می‌کند جریان کار هم اهمیت دارد: برنامه‌نویس باید تشخیص دهد کدام قسمت کار را سیستم‌های سنتی انجام دهند، کدام بخش را می‌توان به هوش مصنوعی سپرد، چه چیزهایی نیاز به مداخله‌ی انسان دارد و چطور این اجزا را کنار هم قرار دهیم تا یک فرایند منسجم بسازیم. او می‌گوید: «یک ابزارزنجیره (toolchain) که به شما امکان دهد بازخوردها را بگیرید و گوشه‌های پنهان را شناسایی کنید تا به‌سرعت به راه‌حل برسید، همان زنجیره‌ی برنده است.» از دید او، هوش مصنوعی سبب می‌شود توسعه‌دهندگان بیشتر درگیر فرآیندهای کسب‌وکار شوند و ارزش بیشتری خلق کنند. در این چشم‌انداز، متخصصان ارشد حوزه‌ها هم خودشان با کمک هوش مصنوعی تبدیل به برنامه‌نویس می‌شوند. در نتیجه، این‌طور نیست که برنامه‌نویسان بیکار شوند؛ بلکه آن عده‌ای که نمی‌توانند خودشان را با برنامه‌نویسی مجهز به هوش مصنوعی وفق دهند، از دور خارج خواهند شد.

این پایان برنامه‌نویسی نیست؛ آغاز تازه‌ی آن است. یا به بیان دیگر، شروع دگرگونی بزرگی است که برنامه‌نویسی در حال تجربه‌اش است.

ترجمه شده از مقاله the end of programmers as we know

نوشته های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *