مدیرعامل گیتهاب میگوید صنعت هوش مصنوعی برای شکوفایی به رقابت نیاز دارد
مهمان پادکست اخیر دیکودر (Decoder)، توماس دومکه مدیرعامل گیتهاب بود؛ پلتفرمی برای مدیریت کد که از تیمهای توسعهی تکنفره گرفته تا علاقهمندان به کدهای منبعباز و بزرگترین شرکتهای جهان، همگی برای نگهداری و مدیریت تغییرات کدهای خود به آن وابسته هستند. مالکیت گیتهاب از سال ۲۰۱۸ به مایکروسافت منتقل شد و این موضوع زمینهی بحث ویژهای را فراهم میکند زیرا سؤالات زیادی در مورد ساختار مالکیت آن وجود دارد.
مصاحبهی دیکودر با آقای دومکه حول محور میزان استقلال واقعی گیتهاب درون مایکروسافت، بهویژه باتوجهبه تمرکز مایکروسافت بر هوش مصنوعی جریان داشت. گیتهاب کوپایلت، دستیار هوش مصنوعی کدنویسی، یکی از موفقترین محصولات هوش مصنوعی حال حاضر محسوب میشود.
سؤال اینگونه مطرح شد که چه میزان از نقشهی راه هوش مصنوعی گیتهاب به نقشهی راه مایکروسافت گره خورده است؟ منابع چگونه تخصیص داده میشوند؟ ازگآنجاکه طیف وسیعی از شرکتها با اهداف مختلف از گیتهاب استفاده میکنند، آقای دومکه چگونه اطمینان حاصل میکند که آنها احساس امنیت داشته باشند و نگران تلاش مایکروسافت برای سوق دادنشان به سمت سرویسهای خاص خود، مانند آژور یا OpenAI، نباشند؟
پاسخهای آقای دومکه در این زمینه غافلگیرکننده بود. او مانند هر مدیرعامل موفق مایکروسافت در دوران ساتیا نادلا، بر اهمیت کارآمدی در همکاری با شرکا تأکید کرد. اما همچنین اصرار داشت که در دنیای فناوری برندهشدن هر شرکتی بهمعنای باخت شرکت دیگر نیست. او در ادامه میگوید از رقابت لذت میبرد و اگر فقط یک گزینه وجود داشت، مثلاً OpenAI یا Llama متعلق به متا، وضعیت مشابه لیگی بود که فقط یک تیم ورزشی در آن حضور دارد.
آقای دومکه درمورد هوش مصنوعی و اینکه آیا سیستمهای هوش مصنوعی فعلی میتوانند به تمام انتظارات جامعه عمل کنند توضیحاتی داد. او میگوید کاربران از دستیار کوپایلت استفاده میکنند و روند توسعهی پروژههای مختلف در سرتاسر گیتهاب را نیز زیر نظر دارد. ظاهراً مدیرعامل گیتهاب دیدگاه بسیار نوآورانهای در این زمینه دارد و بهطور واضح، راه درازی در پیش است. در ادامه خلاصهای از مصاحبهی دومکه با پادکست دیکودر را مرور میکنیم.
موضوعات زیادی برای صحبت داریم، ازجمله نحوهی کار گیتهاب در مایکروسافت و نقش مایکروسافت در صنعت. برخی از مخاطبان دیکودر با گیتهاب بهخوبی آشنایی دارند، اما برای برخی دیگر این پلتفرم کمی مرموز بهنظر میرسد. لطفاً بهطور خلاصه توضیح دهید گیتهاب چیست و چه کاربردی دارد؟
گیتهاب جایی است که بیشتر توسعهدهندگان دنیا نرمافزارهای امروز و فردا را میسازند. گیتهاب ابتدا بهعنوان فضایی برای ذخیرهسازی کدهای منبع در سیستمی به نام گیت (Git) شکل گرفت. گیت را تیم کرنل لینوکس در سال ۲۰۰۵ ایجاد کرد و گیتهاب دو سال بعد در سال ۲۰۰۷ تأسیس شد.
امروزه، گیتهاب فقط مکانی برای ذخیره کدهای منبعباز نیست، بلکه ۹۰ درصد از شرکتهای بزرگ دنیا نیز از آن برای نگهداری کدهای خصوصی و همکاری استفاده میکنند و این، اساس گیتهاب است.
آیا توسعهدهندگان بهطور مستقیم در گیتهاب کدنویسی میکنند یا گیتهاب فقط سیستم کنترل نسخه است؟
گیتهاب ابتدا فقط برای ذخیرهسازی بود، اما امروزه ابزارهای دیگری نیز دارد. مثلاً GitHub Actions برای خودکارسازی فرایندها و GitHub Codespaces که محیط توسعهای ابری است، اجازه میدهد بدون نیاز به لپتاپ، بهطور مستقیم ازطریق مرورگر روی موبایل یا تبلت کدنویسی کنید.
چند نفر با مرورگرهای موبایل در گیتهاب کدنویسی میکنند؟
بیشتر از آنچه فکر کنید. مثلاً شما میتوانید در مسیر رفتوآمد خود کدها را بررسی یا اصلاح و با گوشی خود آنها را تأیید کنید. در گیتهاب حتی برای مدیریت دسترسیها نیز از همین ابزارها استفاده میکنیم. این روند برای ما راحتتر از استفاده از نرمافزارهای سازمانی پیچیده است.
من از مدیران عامل نرمافزارهای سازمانی زیادی دعوت میکنم تا در این برنامه حضور پیدا کنند، اما اغلب آنها قبول نمیکنند، زیرا میدانند که میپرسم آیا خودشان از نرمافزارشان استفاده میکنند یا نه. بهنظر میرسد که شما آزمون را با موفقیت پشتسر گذاشتهاید.
گیتهاب بهتدریج گسترش یافته است. اکنون، علاوهبر امکان کدنویسی در این پلتفرم، حتی میتوانید کل یک شرکت بزرگ را مدیریت کنید.
روند توسعه تا کجا ادامه خواهد یافت؟ آیا میخواهید گیتهاب شبیه به VS Code شود، جایی که توسعهدهندگان وارد شوند و تمام کارهایشان را انجام دهند؟ آیا محدودیت یا کارهایی که نمیخواهید انجام دهید، وجود دارد؟
به نظرم، اینکه همهی کارها در توسعهی نرمافزار در یک محیط انجام شود، غیرممکن است. اگر به ابزارهای مختلفی که توسعهدهندگان استفاده میکنند فکر کنید، از سیستمعامل گرفته تا راهحلهای کانتینر مانند داکر و کوبرنتس، زبانهای برنامهنویسی، کامپایلرها، دیباگرها و غیره و همچنین پروژههای متنباز که روی گیتهاب ذخیره میشوند، خب گیتهاب همهی ابزارها را ارائه نمیدهد و در این شرایط متوجه میشوید که هیچوقت استفاده از یک تأمینکننده نمیتواند همهی نیازهایتان را رفع کند.
ما خودمان را بهعنوان یکی از سیارات بزرگ در جهان ابزارهای توسعهی نرمافزار میبینیم. همیشه مهم بوده که گیتهاب APIها و نقاط اتصال برای این ابزارها را فراهم کند تا فرایند کاری مورد نظر توسعهدهندگان را ایجاد کند و به آنها حق انتخاب بدهد.
چه با استفاده از PyPy و VS Code در اکوسیستم پایتون باشید یا با استفاده از JetBrains و Maven در اکوسیستم جاوا، گیتهاب همیشه برای همکاری تیمی در کنار شما خواهد بود.
ما خودمان را بهعنوان مرکزی برای همکاری میبینیم. میتوانید بگویید گیتهاب شبکهی اجتماعی یا شبکهی کدنویسان است. درواقع، برای مدتی شعار ما در صفحهی اصلی «کدنویسی اجتماعی» بود. گیتهاب شبکهای از محتواسازان خاص بهحساب میآید، زیرا بیشتر شبکههای محتواسازی از تبلیغات برای کسب درآمد استفاده میکنند، اما در گیتهاب هنوز همهچیز فقط به کد ارتباط دارد و فکر نمیکنم کسی بخواهد ما بنرهای تبلیغاتی روی گیتهاب نمایش دهیم، حتی اگر این کار به پروژههای متنباز کمک مالی کند.
این بحث ما را به موضوع اجتنابناپذیر هوش مصنوعی میرساند. گیتهاب اکنون پر از هوش مصنوعی است. GitHub Copilot محصول بسیار موفقی بهحساب میآید. شما خبرهایی دارید و ویژگی جدیدی به نام GitHub Models معرفی کردهاید که میخواهم درمورد آن صحبت کنم. کوپایلت به شما اجازه میدهد با استفاده از هوش مصنوعی کدنویسی کنید و سپس آن کدها را به جامعهی گیتهاب ارائه دهید. آیا این روند برای شما عجیب بهنظر میرسد یا همان مسیر مورد نظرتان خواهد بود؟
سؤال خوبی است. اگر به تاریخچهی گیتهاب فکر کنم، درحالیکه ما امکان ذخیرهسازی کد منبع را فراهم کردیم، به نوعی همیشه الهامبخش خلاقیت بودیم. وقتی فایلی در یک مخزن متنباز عمومی قرار میگیرد، دیگران میتوانند آن را فورک کنند و تغییر دهند.
این کار نوعی خلاقیت بود که در آن شما چیزی را که وجود دارد کپی میکنید و سپس آن را تغییر میدهید. هیچکس شما را مجبور نمیکند که وقتی مخزن من را فورک میکنید، تغییرات خود را به من برگردانید؛ شما میتوانید آنها را برای خودتان نگه دارید و ما از ابتدا ویرایشگر سادهای در رابط کاربری داشتیم.
وقتی چهارسال پیش کار روی کوپایلت را شروع کردیم، آن زمان GPT-3 در دسترس بود. هوش مصنوعی مولد هنوز موضوعی نبود که هر روز در خبرها باشد و به آن پرداخته شود. در آن زمان، در گفتوگوهای من با مشتریان، پنج دقیقه دربارهی هوش مصنوعی صحبت میکردیم و ۵۵ دقیقه درمورد DevOps، چرخهی توسعهدهنده و توسعهی Agile صحبت میشد.
اما انگیزهی اصلی همان انگیزهی گیتهاب بود؛ چگونه میتوانیم بهرهوری توسعهدهندگان را افزایش دهیم؟ چگونه میتوانیم همکاری را بین آنها افزایش دهیم و در نهایت رضایتشان را بیشتر کنیم؟ هدف ما این بود که سرعت توسعهدهندگان خودمان را افزایش دهیم تا بتوانیم ایدههای بیشتری را عملی کنیم.
اگر به لیست کارهای ما نگاه کنید، مجموعهای عظیم از مسائلی وجود دارد که در طول ۱۵ سال گذشته ثبت شدهاند. برخی از این مسائل مربوط به سالهای ۲۰۱۵ و ۲۰۱۶ هستند. ایدههای بسیار خوبی وجود دارند که هنوز نتوانستهایم به آنها بپردازیم.
وقتی به چرخهی زندگی توسعهدهنده فکر میکنید، بخش زیادی از آنچه ما بهعنوان مهندسی نرمافزار میشناسیم، شامل صحبت با دیگران، پرسیدن سؤالات و جستوجوی پاسخها میشود. بسیاری از مهندسین میگویند که نیمی از زمان خود را صرف پیداکردن کد مورد نیازشان میکنند و نیمهی دیگر را به اجرای آن اختصاص میدهند.
هوش مصنوعی تا حدی روند را تغییر داده است. پلتفرمهایی مانند Stack Overflow، که زمانی جامعهی اجتماعی بزرگی برای توسعهدهندگان بودند، اکنون با کاهش کاربران مواجه شدهاند. شما چنین روندی را در جاهای دیگر هم میبینید. آیا این نتیجهی طبیعی روی کار آمدن هوش مصنوعی است یا راهی برای بازگرداندن نوآوری اجتماعی به صحنه وجود دارد؟
اولین چیزی که به ذهن میرسد این است که وجود دستیار هوشمند مانند Copilot در ویرایشگر کد شما، به نوعی اثر دموکراتیک دارد و اجازه میدهد بدون معطلی شروع به کار کنید.
میتوان این موضوع را بهراحتی با نگاه به کودکان مشاهده کرد که در سنین ۶ یا ۷ سالگی، وقتی با گوشیهای هوشمند بزرگ میشوند، به ساخت بازی علاقه پیدا میکنند.
در هر رستورانی در سرتاسر جهان میتوانید خانوادهای را ببینید که کودک سهسالهای با گوشی آیفون یا گوشی اندرویدی درحال تماشای ویدئو است. بهزودی، آن کودکان به ماینکرفت و دیگر بازیها علاقهمند میشوند و بعد از مدتی میخواهند خودشان چیزی بسازند، چون این بخشی از ذات انسانی ما محسوب میشود. اما چطور میتوانیم به آنها کمک کنیم که شروع کنند؟
Stack Overflow عالی است و به نظر من از بین نخواهد رفت، اما شما باید بدانید که این ابزار وجود دارد. چه کسی به کودکی ۶ ساله که والدین او دانشمند کامپیوتر نیستند، میگوید که چنین منبعی وجود دارد؟
بهنظرم، کوپایلت آنقدر فراگیر خواهد شد که دیگر نیازی به دانستن منابع دیگر نخواهید داشت. مثلاً شما میگویید: «میخواهم یک بازی بسازم، بازی سادهای مانند Pong یا Snake»؛ کوپایلت بلافاصله به شما کمک میکند و حتی شما را به منابعی که پاسخ از آنها وجود دارد، هدایت میکند.
بنابراین شبکهی اجتماعی منبع جدیدی دریافت میکند که میتواند به کاربران کمک کند تا در صورت حلنشدن مشکلشان، اطلاعات بیشتری کسب کنند. ما احتمالاً شاهد افزایش این تعاملات در چتباتها خواهیم بود.
چند دقیقه پیش در یک تماس بودم و مثالی زده شد: اگر مادر شما امروز بخواهد آسمان خاکستری را در فتوشاپ با آسمان آبی جایگزین کند، احتمالاً برایش سخت خواهد بود، زیرا یادگیری نحوهی استفاده از رابط کاربری فتوشاپ، اگر حرفهای نباشید، بسیار پیچیده است. اما درصورتیکه بتوانید فقط بگویید: «آسمان خاکستری را با آسمان آبی جایگزین کن»، چه با تایپ چه ازطریق دستور صوتی، دنیای جدیدی از خلق و خلاقیت برای شما باز میشود.
از طرفی معمولاً وقتی چیزی را خلق میکنید، آن را برای اشتراکگذاری با دیگران میسازید. این شیوهای است که انسانها با یکدیگر تعامل میکنند. بهنظر من واقعاً نحوهی کار خلاقیت را تغییر میدهد و افراد بیشتری میتوانند از ابزارهای مدرن استفاده کنند.
اگر این روند را تا انتها دنبال کنید، شاید اصلاً نیازی به یادگیری کدنویسی نداشته باشید. فقط به کامپیوتر دستور میدهید که کاری را انجام دهد یا اپلیکیشن بسازد که وظایفی را انجام میدهد و شما فقط نتیجهی نهایی را ارزیابی میکنید. آیا هدف نهایی شما چنین چیزی است که افراد بدون نیاز به دانستن کدنویسی از گیتهاب استفاده کنند؟
این شرایط همین حالا وجود دارد. ابزارهای کمکد و بدونکد (low-code/no-code) ازجمله Retool یا Microsoft Power Platform در دسترس هستند. البته هنوز رابطکاربری زبان طبیعی ندارند که بگویید: «اپلیکیشنی بساز که رنگ آسمان را تغییر دهد.» ما هنوز به آن مرحله نرسیدهایم، ولی شاید بهزودی به آن دست یابیم.
درمورد Power Platform اگر توسعهدهندگان پروژه روی چنین قابلیتی کار نکنند، تعجب میکنم. حداقل بهعنوان دستیاری برای شروع، احتمالاً چنین چیزی را اضافه میکنند؛ اما بهنظرم، روند به این شکل پیش خواهد رفت که شما طیفی از دانش خواهید داشت. شاید بتوانید صفحهی وب بسازید بدون اینکه چیزی دربارهی HTML و CSS بدانید، همانطور که در Squarespace و بسیاری دیگر از ابزارها میتوانید و در ۲۰ سال گذشته نیز امکانپذیر بوده است.
اما کد همچنان بهعنوان زبان قطعی در پسزمینه وجود دارد. زبان انسانی بسیار غیرقطعی به نظر میرسد. من میتوانم چیزی بگویم و شما همان چیز را بگویید ولی منظورمان دو موضوع متفاوت باشد؛ اما کد قطعی است و در واقع کد، فقط یک لایهی انتزاعی روی پردازنده و سیستمعاملی محسوب میشود. اکنون ما به سطوح بالاتر میرویم، ولی این بدان معنا نیست که وقتی زبانهای برنامهنویسی را اختراع کردیم و اسمبلی و قبل از آن کارتهای پانچ را با کد جایگزین کردیم، آن لایهها ناپدید شدند. آنها هنوز وجود دارند. بهنظرم بستگی دارد که روی چه چیزی کار میکنید، اینکه آیا بهسمت لایههای پایینتر انتزاع میروید یا در سطح بالاتر باقی میمانید.
به نظرم توسعهدهندگان حرفهای هر دو لایه را خواهند شناخت. توسعهدهندگان حرفهای باید کدنویسی را بدانند. آنها باید قوانین مقیاسپذیری و پیچیدگیهای زبانهای برنامهنویسی، آسیبپذیریهای امنیتی و مواردی از این دست را بفهمند. آنها از زبان طبیعی استفاده خواهند کرد تا کار را سریعتر انجام دهند، کدهای تکراری و پیشفرض بنویسند، تستهای نرمافزاری ایجاد کنند و چنین مواردی را پیش ببرند.
بنابراین فکر میکنم در چنین طیفی ترکیبی حرکت خواهیم کرد و همین مسئله فناوری را بسیار قدرتمند میکند، زیرا اگر شما یادگیرنده باشید و امروز مثلاً در نقش IT باشید و فقط با ابزارهای بدونکد و کمکد کار میکنید، اکنون همان رابط کاربری و زبان طبیعی را دارید که میتوانید به کمک آن به سمت بالاتر حرکت کنید و در نهایت به توسعهدهندهی حرفهای کد تبدیل شوید.
اخیراً GitHub Models را معرفی کردید که به کاربران اجازه میدهد مستقیماً در گیتهاب با مدلهای مختلف هوش مصنوعی کار کنند. توضیح دهید این سرویس دقیقاً چیست؟
آنچه در چند سال گذشته تغییر کرده، این است که اکنون مدلها به بلوکهای سازنده برای نرمافزار تبدیل شدهاند. قبلاً کد، چه در فرانتاند و چه در بکاند، فقط بلوکهای سازنده بودند. قبل از آن، حتی بکاند هم نداشتیم. شما فقط اپلیکیشن میساختید که روی کامپیوتر شخصی اجرا میشد یا قبلتر از آن، روی یک کامودور 64 یا آتاری که بکاند نداشت، زیرا واقعاً در آن زمان اینترنت نداشتیم.
ما از ساخت همهی اینها بهطور انفرادی به استفاده از کتابخانههای منبعباز بهعنوان بلوکهای سازنده در اپلیکیشنهایمان حرکت کردیم. در چند سال گذشته، بیشتر درمورد توسعهدهندهی فولاستک صحبت کردهایم که قادر به نوشتن کد بکاند و فرانتاند و همهی موارد مورد نیاز پروژه است.
اکنون مدلها را به این تصویر اضافه کردهایم و اکثر اپلیکیشنهای مدرنی که درحالحاضر روی آنها کار میشود، نوعی از ادغام هوش مصنوعی را دارند، چه چتبات ساده باشند چه استفاده از مدل برای پیشبینی ناهنجاریها و غیره.
مدتی است که ما به این فکر کردهایم که گیتهاب کدها و پروژههای منبعباز را ارائه میدهد، اما ما مدلها را بهعنوان بلوکهای سازنده کم داریم. این مدلها را با GitHub Models و با همکاری Azure AI اضافه میکنیم و با مجموعهای از مدلها، ازجمله مدلهای OpenAI و مایکروسافت و همچنین مدلهای متا، Astral ،Cohere و چند شریک دیگر شروع میکنیم.
GitHub Models به شما اجازه میدهد با این مدلها بازی کنید. شما میتوانید درخواستهایی بفرستید و پاسخی دریافت کنید. میتوانید در مورد شکسپیر و کدنویسی سؤال بپرسید. سپس میتوانید پارامترهای مدلی را که در زمان استنتاج استفاده میشود، تغییر دهید، مانند اینکه طول متنی چقدر باشد یا چقدر بخواهید پاسخ غیرقطعی باشد.
میتوانید با این مدلهای مختلف شروع به آزمایش کنید. میتوانید مدلی را پیدا کنید و آن را به ادیتور خود یا فضای کدنویسیتان بیاورید و نمونهای از اپلیکیشن مورد نظرتان را بسازید و نیازی به ثبتنام در سرویس دیگری ندارید؛ زیرا همهی فرایندها در گیتهاب انجام میشود.