ChatGPT یا Gemini: نبرد دو غول هوش مصنوعی در دنیای برنامهنویسی
آیا به دنبال یک دستیار هوش مصنوعی برای پروژههای برنامهنویسی خود هستید و نمیدانید که به سراغ کدام ابزار بروید؟ جمنای گوگل و چتجیپیتی، دو نام بزرگ در دنیای هوش مصنوعی، هر کدام با وعدههای جذاب وارد میدان شدهاند. اما آیا واقعاً این ابزارها میتوانند به شما در کدنویسی کمک کنند؟ در این مقاله، با بررسی ویژگیها و توانمندیهای این دو ربات چت، خواهید دید که چگونه هر کدام در این رقابت بزرگ ظاهر میشوند و کدامیک میتواند بهترین شریک شما در دنیای برنامهنویسی باشد. بیایید ببینیم که چتجیپیتی چگونه در این رقابت پیروز میشود و آیا جمنای میتواند به برتریهای خود ادامه دهد یا نه.
فهرست مطالب
پشتیبانی از زبانها
از نظر پشتیبانی از زبانها، چتجیپیتی در گستردگی و تسلط از جمنای جلوتر است. در حالی که جمنای بهطور رسمی از حدود ۲۲ زبان برنامهنویسی محبوب—including Python، Go، و TypeScript—پشتیبانی میکند، تواناییهای زبانشناختی چتجیپیتی بسیار وسیعتر است.
برخلاف جمنای، چتجیپیتی لیست رسمی زبانهای پشتیبانی شده ندارد. با این حال، این ابزار میتواند نه تنها زبانهای محبوبی که جمنای از آنها پشتیبانی میکند، بلکه دهها زبان اضافی از جمله زبانهای جدیدتری مثل TypeScript و Go تا زبانهای قدیمیتر مانند Fortran، Pascal، و BASIC را نیز مدیریت کند.
برای آزمودن تواناییهای زبانی، من به انجام وظایف ساده برنامهنویسی با زبانهای PHP، JavaScript، BASIC و C++ پرداختم. هر دو جمنای و چتجیپیتی در زبانهای محبوب عملکرد خوبی داشتند، اما تنها چتجیپیتی توانست بهطور قانعکنندهای برنامههایی در زبانهای قدیمی مانند BASIC بنویسد.
دقت و کیفیت کد
شما در حال حاضر با تأخیر در مهلت پروژهتان روبهرو هستید و به کدهای پایهای نیاز دارید. از چتجیپیتی و جمنای میخواهید کدی برای پیادهسازی آن عملکرد تولید کنند و هر دو ابزار دهها خط کد به شما میدهند. پیروزی سریع، درست است؟
اما کدام ابزار را میتوان بهعنوان منبع قابل اعتماد برای تحویل عملکرد مورد نظر شما در نظر گرفت؟ برای مقایسه دقت و کیفیت کد تولید شده توسط این دو ربات چت هوش مصنوعی، به آنها یک وظیفه ساده برنامهنویسی دادم. از جمنای و چتجیپیتی خواستم یک اپلیکیشن ساده فهرست کارها با استفاده از HTML، CSS و JavaScript تولید کنند. من هیچ مقدمهای ارائه ندادم؛ هدف این است که ببینیم هر دو ربات چت چگونه با اطلاعات محدود میتوانند عمل کنند.
چتجیپیتی (نسخه GPT-4o) کدی کاربردی با ظاهری “خوب به اندازه کافی” تولید کرد. با استفاده از کد چتجیپیتی، میتوانید یک وظیفه را اضافه یا حذف کنید. این چیزی است که پس از اجرای نتیجه چتجیپیتی در مرورگر دریافت کردم:
سپس از جمنای گوگل خواستم که همان وظیفه را تکرار کند. جمنای نیز توانست یک اپلیکیشن فهرست کارها تولید کند. شما همچنین میتوانستید وظایف را اضافه و حذف کنید، اما طراحی کلی به اندازه چتجیپیتی جذاب نبود:
تست دومی انجام دادم و این بار از هر دو ربات چت خواستم که فید توییتر (X.com) را بازسازی کنند. چتجیپیتی فید توییتر به سبک قدیمی تولید کرد که ویژگی توییت کردن بهطور کامل کار میکرد. میتوانستم در جعبه متنی بنویسم، توییتی ارسال کنم و آن را بهطور دینامیک روی صفحه بارگذاری کنم. این فید توییتری که انتظار داشتم نبود، اما با توجه به اینکه بیشتر دادههای آموزشی چتجیپیتی پر از کدهای قدیمی توییتر است، نتایج قابل درک است.
همچنین متأسفانه، در این مرحله، جمنای گوگل نتوانست کد عملکردی ارائه دهد. این ابزار صدها خط کد جاوا اسکریپت تولید کرد، اما تعداد زیادی از جایگزینهای بهتر وجود داشت و نیاز به فهمیدن منطق کد داشتند. معمولا چنین کدی بهویژه مفید نخواهد بود، زیرا همچنان نیاز به کار و توسعه سنگین خواهد داشت. در چنین مواردی، ممکن است نوشتن کد از ابتدا کارآمدتر باشد.
من چندین وظیفه برنامهنویسی ساده دیگر را نیز امتحان کردم و در تمام موارد، راهحل چتجیپیتی بهطور واضح گزینه بهتری بود.
اشکالزدایی و شناسایی خطاها
اشکالات و باگها مانند معماهایی هستند که برنامهنویسان آنها را دوست دارند و همچنین از آنها متنفرند. این مسائل میتوانند شما را دیوانه کنند، اما رفع آنها بسیار رضایتبخش است. پس وقتی با باگهای کدتان مواجه میشوید، آیا باید از جمنای یا چتجیپیتی کمک بگیرید؟ ممکن است این بستگی به نوع خطایی که سعی دارید از آن جلوگیری کنید داشته باشد.
برای تصمیمگیری، به هر دو ربات چت هوش مصنوعی دو مشکل برای اشکالزدایی دادم. اول، از هر دو ربات خواستم تا یک خطای منطقی در کد PHP سادهای را حل کنند. خطاهای منطقی بهطور معمول سختتر از خطاهای نحوی قابل شناسایی هستند زیرا به هدف کد بستگی دارند:
کدی که در این اسکرینشات مشاهده میکنید اجرا میشود و حتی در بسیاری از موارد نتیجه صحیحی تولید میکند. با این حال، چندین خطای منطقی وجود دارد که بلافاصله آشکار نمیشود؛ آیا میتوانید آنها را شناسایی کنید؟ از جمنای کمک خواستم و متأسفانه، این ربات چت نتوانست خطای منطقی موجود در کد را شناسایی کند.
تلاش جمنای برای حل مشکل دقیق نبود. شش ماه پیش نیز مشکلی مشابه را امتحان کردم و نتیجهای مشابه و ناامیدکننده به دست آوردم؛ به نظر میرسد جمنای در این زمینه پیشرفتی نداشته است.
سپس از چتجیپیتی کمک خواستم و این ابزار بلافاصله خطای منطقی را شناسایی کرد.پس از امتحان کردن چندین وظیفه دیگر در زمینه شناسایی و رفع باگ، به وضوح مشخص شد که چتجیپیتی در این زمینه عملکرد بهتری دارد. با این حال، جمنای کاملاً بیفایده نبود. این ابزار توانست بسیاری از خطاهای نحوی را که به آن دادم اصلاح کند، اما در مواجهه با خطاهای پیچیده، بهویژه خطاهای منطقی، مشکل داشت.
آگاهی از زمینه
یکی از بزرگترین چالشها در استفاده از رباتهای چت هوش مصنوعی برای برنامهنویسی، آگاهی نسبتاً محدود آنها از زمینه است. این ابزارها ممکن است بتوانند قطعههای کد جداگانهای برای وظایف بهخوبی تعریفشده تولید کنند، اما در ساخت کدبیس برای پروژههای بزرگتر با مشکل مواجه شوند.
به عنوان مثال، فرض کنید که دارید یک اپلیکیشن وب با یک ربات چت هوش مصنوعی میسازید. شما از آن میخواهید کد HTML برای صفحه ثبتنام و ورود بنویسد و این کار را بهطور کامل انجام میدهد. سپس از ربات میخواهید که اسکریپت سمت سرور برای مدیریت منطق ورود تولید کند. این کار سادهای است، اما به دلیل آگاهی محدود از زمینه، ممکن است اسکریپت ورود جدیدی با متغیرها و نامگذاریهای جدید تولید کند که با باقی کد همخوانی ندارد.
کدام ربات چت در حفظ آگاهی از زمینه بهتر عمل میکند؟ من هر دو ابزار را به یک وظیفه برنامهنویسی مشابه اختصاص دادم: یک اپلیکیشن چت که میدانیم چتجیپیتی قادر به ساخت آن است.
با ورود GPT-4 Turbo و پنجره زمینه ۱۲۸ هزار کلمهای آن، توانایی چتجیپیتی برای حفظ زمینه بسیار بیشتر و به مدت طولانیتر به طور قابل توجهی افزایش یافته است. وقتی که اولین بار با استفاده از GPT-4 با پنجره زمینه ۴ هزار کلمهای، اپلیکیشن چت را با چتجیپیتی ساختم، این کار نسبتاً روان پیش رفت و فقط با مشکلات کوچکی در انحراف از زمینه مواجه شدم.
بازسازی همان پروژه در نوامبر ۲۰۲۳ با GPT-4 Turbo و پنجره زمینه ۱۲۸ هزار کلمهای، بهبود قابل توجهی در آگاهی از زمینه را نشان داد. شش ماه بعد، در مه ۲۰۲۴، تغییری عمده در آگاهی از زمینه مشاهده نشد، اما کاهش کیفیتی نیز رخ نداده است.
متأسفانه، زمانی که برای اولین بار از جمنای (که آن زمان به نام Bard شناخته میشد) در همان پروژه استفاده کردم، این ابزار از زمینه پروژه خارج شد و نتوانست اپلیکیشن را کامل کند. چندین دور بهروزرسانی بعد، دوباره جمنای را بر روی همان پروژه آزمایش کردم و به نظر میرسد که وضعیت آن بدتر شده است. بنابراین، در زمینه آگاهی از زمینه، باز هم چتجیپیتی برنده است.
حل مسئله
در این مرحله، جمنای گوگل از بسیاری جهات کمبود دارد. اما آیا میتواند بالاخره پیروزی به دست آورد؟ بیایید تواناییهای حل مسئله آن را آزمایش کنیم. گاهی اوقات، شما مشکلی دارید، اما مطمئن نیستید که چگونه آن را بهطور برنامهنویسی نمایان کنید، چه برسد به اینکه آن را حل کنید.
در این موقعیتها، رباتهای چت مانند جمنای و چتجیپیتی میتوانند بسیار مفید باشند. از هر دو خواستم که “کدی به زبان جاوا اسکریپت بنویسند که شمارش کند یک کلمه خاص چند بار در یک متن ظاهر میشود.”
در اینجا نتیجه از جمنای گوگل:
و اینجا نتیجه از چتجیپیتی:
در نگاه اول، هر دو روش بهنظر محکم میآید. روش جمنای حتی مختصر بهنظر میرسد. با این حال، کد چتجیپیتی رویکردی جامعتر و دقیقتر در شمارش تکرار کلمات در متن دارد. این کد مرزهای کلمات و حساسیت به حروف بزرگ و کوچک را در نظر میگیرد، علائم نگارشی را بهخوبی مدیریت میکند و نتایج قابل اعتمادتری ارائه میدهد. باز هم، چتجیپیتی برتر است.
رویکرد چتجیپیتی متن ورودی را بهگونهای به کلمات تقسیم میکند که میتواند تمام کاراکترهای غیرکلمهای مانند علائم نگارشی و کاراکترهای خاص را بهعنوان جداکننده کلمه در نظر بگیرد. در حالی که جمنای تنها فاصلههای خالی را بهعنوان جداکننده در نظر میگیرد. این رویکرد ممکن است در صورت وجود علائم نگارشی یا سایر کاراکترهای غیرکلمهای درون کلمات یا اگر کلمات با کاراکترهای فاصلهدار جدا نشده باشند، با شکست مواجه شود.
از آنجایی که گوگل جمنای تقریباً در هر معیاری که برای مقایسه استفاده کردم شکست خورده است، تصمیم گرفتم فرصتی برای بازگشت به آن بدهم. از ربات چت پرسیدم: “کدام یک در برنامهنویسی بهتر است؟ چتجیپیتی یا جمنای؟” پاسخ آن بهاینصورت بود:
هیچ پاسخ قطعی وجود ندارد که کدامیک برای کدنویسی بهتر است، ChatGPT یا Gemini، زیرا هر دو دارای نقاط قوت و ضعف خاص خود هستند:
ChatGPT:
- نقاط قوت: برخی کاربران معتقدند که ChatGPT در تولید کدهای پیچیده و کارآمد مهارت دارد، بهویژه با دسترسی به نسخههای پولی که مدلهای قدرتمندتری ارائه میدهند.
- نقاط ضعف: ChatGPT ممکن است به راهنمایی و رفع اشکال بیشتری از سوی کاربر نیاز داشته باشد، به دلیل تمرکز آن بر کدهای پیچیده.
Gemini:
- نقاط قوت: Gemini معمولاً در تولید کدهای خوانا و قابل درک با توضیحات و کامنتها خوب عمل میکند که فهم آن را آسانتر میسازد. همچنین، در رویکرد خود محتاطتر بوده و اولویت را به ایمنی و جلوگیری از تولید کدهای بالقوه خطرناک میدهد.
- نقاط ضعف: برخی کاربران گزارش میدهند که Gemini ممکن است بیش از حد محتاط باشد و همیشه بهینهترین یا خلاقانهترین راهحلها را تولید نکند.
ویژگیهای برنامهنویسی
نه چتجیپیتی و نه جمنای ویژگیهای عمدهای که بهطور خاص برای برنامهنویسی طراحی شده باشند، ندارند. با این حال، هر دو ربات چت با ویژگیهایی همراه هستند که میتوانند بهطور قابل توجهی تجربه برنامهنویسی شما را بهبود ببخشند، به شرط آنکه بدانید چگونه بهطور مؤثر از آنها استفاده کنید.
چتجیپیتی مجموعهای از ویژگیها را ارائه میدهد که میتواند فرآیند برنامهنویسی را هنگامی که از این ربات چت استفاده میکنید، سادهتر کند. اضافههای مفیدی مانند حافظه و GPT سفارشی به شما این امکان را میدهند که چتجیپیتی را برای نیازهای خاص برنامهنویسی خود شخصیسازی کنید.
برای مثال، ویژگی GPT سفارشی میتواند به شما کمک کند تا نسخههای کوچک تخصصی از چتجیپیتی برای پروژههای خاص خود ایجاد کنید، با بارگذاری فایلهای مرتبط. این امر انجام کارهایی مانند اشکالزدایی کد، بهینهسازی و افزودن ویژگیهای جدید را بسیار سادهتر میکند. در کل، نسبت به جمنای گوگل، چتجیپیتی شامل ویژگیهای بیشتری است که میتواند تجربه برنامهنویسی شما را بهبود بخشد.
چتجیپیتی در یک لیگ خاص خود است
جمنای گوگل با تبلیغات زیادی همراه بوده است، بنابراین ممکن است تعجبآور باشد که ببینید این ابزار تا چه حد در مقایسه با چتجیپیتی کمبود دارد. در حالی که چتجیپیتی به وضوح از یک مزیت اولیه برخوردار بود، ممکن است فکر کنید منابع عظیم گوگل باید به آن کمک کند تا این برتری را کاهش دهد.
با وجود این نتایج، نادیده گرفتن جمنای به عنوان یک ابزار برنامهنویسی نادرست خواهد بود. اگرچه جمنای به اندازه چتجیپیتی قدرتمند نیست، اما هنوز قدرت قابل توجهی دارد و با سرعت بالایی در حال تکامل است.