هرچه بیشتر به استفاده از هوش مصنوعی برای برنامهنویسی کمک میگیرم، کنجکاوتر میشویم که بدانیم پلتفرمهای بزرگ هوش مصنوعی وقتی دقیقاً یک وظیفه یکسان به آنها داده میشود، چه تفاوتی با یکدیگر دارند. بهراحتی میتوان از Claude و ChatGPT یا Gemini خواست یک اپلیکیشن ساده بسازند و وقتی چند ثانیه بعد یک برنامه کاربردی تحویل میدهند، تحتتأثیر قرار گرفت. اما این موضوع لزوماً نشان نمیدهد که کد تولیدشده امن، ساختاریافته یا برای شرایطی فراتر از سادهترین حالت استفاده مناسب است.
با یک چالش واقعی میتوان این سه ربات هوش مصنوعی را مقایسه کرد، یک پروژهی ساده و کاربردی: یک صفحهی تولیدکننده رمز عبور گزینه مناسبی بهنظر میرسد. این ابزار میتواند کاملاً داخل مرورگر اجرا شود، به سرور یا پایگاه داده نیازی ندارد و لازم نیست هیچ اطلاعات شخصی را ذخیره کند. در عین حال، برای ساخت درست آن باید به مواردی مثل تصادفیسازی، انتخاب کاراکترها، مدیریت خطاها و امنیت پایه توجه شود. ممکن است یک تولیدکننده رمز عبور ظاهر بسیار خوبی داشته باشد و ظاهراً هم درست کار کند، اما همچنان رمزهایی تولید کند که نتوان با خیال راحت به آنها اعتماد کرد.
در ادامه نتیجهی این آزمون ساده را بررسی میکنیم تا روشن شود که برای کارهای برنامهنویسی، احتمالاً کدام ربات هوش مصنوعی بهتر عمل میکند. با اینتوتک همراه باشید.
موضوع این پروژهی برنامهنویسی ساده و کاملاً مشخص است: ساخت یک تولیدکننده رمز عبور که بهصورت محلی اجرا شود و کنترلهایی را داشته باشد که بیشتر کاربران انتظار دارند. هر پلتفرم دقیقاً همان دستورها، همان محدودیتها و همان فرصت برای اصلاح کار خود را دریافت کرد. هدف، پیدا کردن زیباترین رابط کاربری نبود. میخواستم ببینم کدام هوش مصنوعی میتواند کدی تولید کند که درست کار کند، خطاها را مدیریت کند و بدون نیاز به راهنماییهای مکرر، رمزهای عبور امن تولید کند.
این آزمایش با استفاده از نسخههای رایگان Claude Sonnet 5 و ChatGPT با مدل GPT-5.5 Instant و Gemini 3.5 Flash انجام شد. پرامپتهای دقیق استفادهشده در این آزمایش نیز بعد از نتیجهگیری آمدهاند.
به هر پلتفرم هوش مصنوعی دو فرصت یکسان دادم
راهنمایی بیشازحد، هدف آزمایش را از بین میبرد
نسخه رایگان Claude، ChatGPT و Gemini را در چتهای جداگانه و کاملاً جدید آزمایش کردم و به هر سه دقیقاً یک پرامپت اولیه دادم. از دستورهای سفارشی استفاده نکردم، راهنمایی اضافهای در پیامهای بعدی ندادم و وظیفه را بر اساس عملکرد ضعیف یا خوب یکی از پلتفرمها تغییر ندادم.
بعد از آزمایش نسخه اول، به هر سه پلتفرم دقیقاً همان پرامپت رفع اشکال را دادم و فقط یک فرصت در اختیارشان گذاشتم تا کارشان را بررسی و اصلاح کنند. سپس نسخه نهایی را بر اساس چند معیار ارزیابی کردم: اینکه آیا درست کار میکند یا نه، آیا برای تولید رمز عبور از روش امنی استفاده میکند یا نه، کیفیت کلی پیادهسازی چطور است و هوش مصنوعی چقدر واضح توضیح میدهد که چه چیزی ساخته است.
این روش را انتخاب کردم، چون استفاده نامحدود از پرامپتهای بعدی، مقایسه را چندان مفید نمیکرد. با راهنمایی کافی، احتمالاً میتوان هر سه پلتفرم را به سمت ساخت یک نتیجه قابلاستفاده هدایت کرد، اما چنین آزمایشی چیز زیادی درباره میزان درک آنها از وظیفه اولیه نشان نمیداد.
بیشتر افرادی که از هوش مصنوعی میخواهند یک ابزار کوچک بسازد، قرار نیست ساعتها خطبهخط کد را بررسی و اشکالزدایی کنند. میخواستم ببینم کدام پلتفرم میتواند یک دستور واضح را دنبال کند، بعد از یک مرحله بازخورد اشتباهاتش را پیدا کند و در نهایت چیزی تولید کند که بتوان با اطمینان بیشتری از آن استفاده کرد.
همچنین بهجای اینکه فقط به توضیحات ارائهشده توسط هر پلتفرم اعتماد کنم، خود کد را هم بررسی کردم. بررسی کردم که برای انتخاب و جابهجایی تصادفی کاراکترها از تصادفیسازی امن استفاده شده باشد، از Math.random() و نتایج دارای سوگیری دوری شده باشد و همهچیز بهصورت محلی انجام شود و رمز عبور در جایی ذخیره یا ارسال نشود. Web Crypto API و روش امن تولید اعداد تصادفی
Gemini در همان تلاش اول بهترین نتیجه را ارائه کرد
Claude آزمایش را راحتتر کرد، اما Gemini دقیقتر از دستورها پیروی کرد
Claude و Gemini هر دو در همان تلاش اول تولیدکنندههای رمز عبور خوبی ساختند، اما Gemini بیشتر از بقیه به چیزی که دقیقاً درخواست کرده بودم نزدیک شد. این پلتفرم کد کامل و رنگبندیشده را ارائه داد، امکان دانلود فایل HTML را فراهم کرد، از Web Crypto API استفاده کرد و قبل از تولید رمز عبور منتظر ماند تا تنظیمات موردنظر را انتخاب کنم.
همچنین رمز عبور کامل ۳۲ کاراکتری را نمایش میداد، هرچند رمزهای طولانیتر در یک خط جا نمیشدند و به خط دوم میرفتند. توضیحات Gemini بهاندازه Claude جزئیات نداشت، اما خود تولیدکننده رمز عبور در همان تلاش اول کمترین ایراد و مصالحه را داشت.
Claude برای پاسخدادن زمان بیشتری صرف کرد و اصلاً کد منبع را نمایش نداد. در عوض، یک توضیح متنی، یک فایل قابلدانلود و چیزی ارائه کرد که هیچکدام از دو پلتفرم دیگر نداشتند: پیشنمایش زنده اپلیکیشن در کنار گفتوگو.
بنابراین میتوانستم بلافاصله شروع به آزمایش تولیدکننده کنم، بدون اینکه لازم باشد چیزی را دانلود یا باز کنم. همین موضوع باعث شد روند کار با Claude راحتترین گزینه باشد. تولیدکننده بهصورت پایدار کار میکرد، رمز عبور کامل ۳۲ کاراکتری را در یک خط نمایش میداد و توضیحات بسیار خوبی درباره تصمیمهای امنیتی ارائه میکرد.
تنها مشکل قابلتوجه این بود که بهمحض بازشدن صفحه، یک رمز عبور تولید میکرد؛ یعنی قبل از اینکه کاربر با تنظیمات تعامل داشته باشد یا روی دکمه Generate کلیک کند.
پرامپت رفع اشکال تفاوت بین سه پلتفرم را مشخص کرد
فقط یکی از آنها تمام مشکلاتی را که پیدا کردم برطرف کرد
ChatGPT هم کدی کاربردی تولید کرد و از روش امنیتی درست استفاده کرد، اما بیشترین کار دستی را لازم داشت. کد کامل را با قابلیت Syntax Highlighting مناسب نمایش داد، اما نه فایل قابلدانلود ارائه کرد و نه پیشنمایش زنده داشت. بنابراین مجبور شدم کد را خودم در یک ویرایشگر کپی کنم و فایل HTML را بسازم.
رمزهای عبور ۳۲ کاراکتری ChatGPT هم از محدوده قابلمشاهده فیلد متن خارج میشدند و برای دیدن کل رمز عبور مجبور بودم صفحه را بهصورت افقی جابهجا کنم.
در پرامپت دوم، هر پلتفرم فقط یک فرصت داشت تا مشکلاتی را که پیدا کرده بودم، بدون هیچ راهنمایی اضافهای برطرف کند. Claude در این مرحله بهترین عملکرد را داشت.
این پلتفرم متوجه شد که تولیدکننده هنگام بارگذاری صفحه، بهصورت خودکار رمز عبور تولید میکند و این رفتار را حذف کرد. همچنین مدیریت خطا را بهتر کرد تا تنظیمات نامعتبر زودتر شناسایی شوند و لازم نباشد کاربر تا زمان فشردن دکمه Generate منتظر بماند.
Claude حتی یک گزینه حفظ حریم خصوصی هم اضافه کرد که در صورت حضور افراد دیگر، امکان مخفیکردن رمز عبور را فراهم میکرد؛ هرچند توضیحی که درباره نسخه اصلاحشده کد ارائه داد، بهخوبی توضیحی نبود که بعد از پرامپت اول ارائه کرده بود.
ChatGPT و Gemini هر دو ادعا کردند مشکلاتی را که به آنها اشاره کردم برطرف کردهاند، اما هیچکدام کاملاً موفق نشدند. ChatGPT همچنان تولید خودکار رمز عبور هنگام بارگذاری صفحه را باقی گذاشته بود، هرچند چند ایده مفید برای بهبودهای آینده ارائه کرد.
Gemini هم گفت مشکل رفتن رمزهای طولانی به خط دوم را برطرف کرده، اما وقتی دوباره آزمایشش کردم، رمز ۳۲ کاراکتری همچنان به خط دوم میرفت. تنها پیشنهاد قابلتوجه آن برای نسخه آینده، اضافهکردن نمایشگر قدرت رمز عبور بود که ایده مفیدی محسوب میشد، اما در مقایسه با بعضی پیشنهادهای دو پلتفرم دیگر کاربرد کمتری داشت.
Claude در مجموع بهترین تولیدکننده رمز عبور را ساخت
با کمترین دخالت، بیشترین پیشرفت را داشت
بعد از دو پرامپت ساده، Claude بهترین نتیجه نهایی را بین هر سه پلتفرم ارائه کرد. Gemini در تلاش اول بهترین عملکرد را داشت، اما Claude وقتی یک فرصت برای بررسی و اصلاح کارش دریافت کرد، عملکرد بهتری نشان داد.
این پلتفرم تولید ناخواسته رمز عبور هنگام بارگذاری صفحه را حذف کرد، مدیریت خطاها را بهتر کرد و بدون نیاز به توضیح بیشتر، یک قابلیت مفید برای حفظ حریم خصوصی اضافه کرد. تولیدکننده نهایی از Web Crypto API مناسب استفاده میکرد، آزمایش آن راحت بود و بهاندازهای کامل بود که میشد پیشرفتهای ایجادشده را بلافاصله مشاهده کرد.
هر سه پلتفرم پیشنهادهایی برای بهترکردن تولیدکننده رمز عبور خود ارائه کردند و هر سه تا حدی توانایی شناسایی مشکلات موجود در کد خودشان را نشان دادند. چیزی که Claude را متمایز کرد، کاملتر بودن تغییرات و راحتتر بودن بررسی آنها بود.
Claude همچنین بهترین توضیحات امنیتی و کاربردیترین راهنماییها را برای ادامه پروژه ارائه کرد. نتیجه نهایی بینقص نبود، اما با تنها دو پرامپت، Claude بیشتر از دو گزینه دیگر به ساخت ابزاری رسید که میشد بدون صرف زمان بیشتر برای رفع اشکال، با اطمینان بیشتری از آن استفاده کرد.
کدی که کار میکند، لزوماً کد نهایی نیست
این آزمایش نشان داد که هر سه پلتفرم میتوانند یک تولیدکننده رمز عبور کاربردی بسازند، اما وقتی فراتر از صرفاً کارکردن صفحه را بررسی کردم، تفاوتها واضحتر شدند.
پیشنمایش زنده، مدیریت خطاها، توضیحات و توانایی پاسخدادن به بازخوردهای مربوط به رفع اشکال، همگی اهمیت داشتند. Claude بهترین نتیجه نهایی را ارائه کرد، اما تلاش اول Gemini هم واقعاً چشمگیر بود و ChatGPT نیز با وجود نیاز به راهاندازی دستی بیشتر، کد خوبی تولید کرد.
نکته مهمتر این است که هوش مصنوعی میتواند با تلاش بسیار کمی شما را به نتیجهای نزدیک کند که انتظارش را دارید، اما همچنان باید چیزی را که میسازد آزمایش کنید و صرفاً بهخاطر ظاهر حرفهای کد، تصور نکنید که آماده اعتمادکردن است.
پرامپت اول: ساخت تولیدکننده رمز عبور
Build a simple password generator that runs entirely in a web browser using HTML, CSS, and JavaScript.
It should let me choose a password length between 8 and 32 characters and decide whether to include uppercase letters, lowercase letters, numbers, and symbols..
The generated password must contain at least one character from every selected character type, create a password that matches the selected settings, and include a button to copy it. It should also show a clear error message when the selected settings can't produce a valid password.
Use a secure method for generating random values that's appropriate for passwords.
Put everything in a single HTML file that I can save and open locally in a browser. After the code, briefly explain how it works and any security decisions you made.
پرامپت دوم: مشکلات را پیدا و برطرف کن
Review the original requirements and check the code for functional, security, and usability problems. Fix any issues you find and provide a complete replacement HTML file.
Note anything that could be improved in the next version and why.
Briefly explain what you changed, if anything, and why.
اینتوتک




