این ایده مدتی هست تو سرم می‌چرخه و امروز هم داشتم بیشتر بهش فکر می‌کردم. گفتم افکارم رو بلند بلند به اشتراک بگذارم.

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

بهش فکر کنید. اصلاً چرا نیازه که برای انجام دادن فلان کار، وارد فلان نرم‌افزار بشم و روی منو کلیک کنم و فرم مدنظرم رو پیدا کنم و کارم رو انجام بدم.

  • چرا همین کار نمی‌تونه با یه متن ساده انجام بشه؟
  • اصلاً چه نیازی وجود داشته که انقدر منوهای تو در تو و پیچیده درست کردیم؟
  • چرا باید یادگیری یه نرم‌افزار حسابداری، «آموزش» بخواد؟
  • چرا برای انجام کوچکترین کار در فتوشاپ باید «دوره» بگذرونیم؟

آیا غیر از اینه که رابط‌های کاربری‌ای که درست کردیم، انقدر غیربدیهی و ناکارآمد هستند که فقط افراد خاصی می‌تونند باهاشون کار کنن؟

این اتفاق الان به طور گسترده برای اصطلاحاً Power Userها داره اتفاق می‌افته و به مرور کاربران هم بیشتر و بیشتر باهاش درگیر می‌شن.

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

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

یه بخش کوچیکی از این نرم‌افزارها هم به مرور داخل سیستم‌عاملم جاخوش می‌کنند. مثلاً تو پستی که راجع به نرم‌افزارهای من روی مک‌ نوشتم، چند تا از اینا که پرکاربردتر بودند رو معرفی کردم.

قضیه از جایی شروع شد که مشغول استفاده از Claude Code بصورت گسترده شدم. و همون طور که می‌دونید داخل محیط ترمینال اجرا و باز میشه.

برای همین به مرور دیدم که راحت‌تره که همه چیزم رو بیارم داخل ترمینال؛ یعنی ببینم کدوم نرم‌افزارهایی که قبلاً‌ استفاده می‌کردم معادلی داخل ترمینال دارند. این که ببینم چقدر خوبه و چقدر به درد کار من می‌خوره.

اینجا با دو دسته نرم‌افزار مواجه شدم:

  • نرم‌افزارهای CLI: چیزهایی مثل ls و cd و اینها.
  • نرم‌افزارهای TUI: چیزهایی مثل Yazi که عملاً همون راحتی کار با UI رو داخل ترمینال میارن.

هر چند نرم‌افزارهای TUI برام بسیار جذاب هستند و یک روندی که بین برنامه‌نویس‌ها داره اتفاق می‌افته اینه که ابزارهای GUI (داخل سیستم عامل) رو دارن ول می‌کنند و به این سمت TUI میان. TUIها به علت رابطی که دارند، خیلی فیچرهای زیادی دارند و برای کسی که حرفه‌ای کار می‌‌کنه جایگزین خوبیه. مثلاً من خودم مدت‌ها از ابزارهای مختلف Git مثل Fork استفاده می‌کردم. اما الان به راحتی داخل Lazygit کارم رو انجام می‌دم. اگر خواستید بیشتر بدونید، Omarchy تو این صفحه چند تا از خوب‌های روزگار رو معرفی کرده.

اما این اصل بحث من نیست. از مسیر خارج شدیم. داشتم می‌گفتم که با نرم‌افزارهای ترمینال مختلفی رو به رو شدم و CLIها من رو به فکر وا داشتند.

همون‌طور که می‌دونید هر دستور CLI می‌تونه ده‌ها و شاید صدها پارامتر داشته باشه و باز هم بدون هیچ مشکلی کارش رو انجام میده. کاری که اصلاً از نظر تئوری ممکن نیست تو GUI انجام بشه.

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

به VSCode فکر کنید. فرض کنید می‌خواید فایل‌هایی که شامل یک عبارت خاص هستند رو پیدا کنید. و اون‌ها رو بر اساس حجم‌شون مرتب کنید و سپس نمایش بدید.

یا مثلاً فرض کنید می‌خواید بدونید که این خط فایل رو آخرین بار چه کسی تغییر داده و کلاً روند تغییراتش به چه صورت بوده.

مورد یک که اصلاً با VSCode نمیشه. برای مورد دوم هم من آخرین باری که نگاه کردم هنوز خود VSCode این قابلیت رو ساپورت نمی‌کرد و باید Extention Git Lens رو نصب می‌کردم. اصلاً برای نرم‌افزارهای GUI مثل VSCode روال همینه.

یا یک چیزی رو خودشون پشتیبانی می‌کنند. یا اگر نکردند باید بری تو Extensionها بگردی ببینی کسی هست که نیازش با تو یکی بوده باشه و رفته باشه براش کدنوشته باشه یا نه.

مسئله اینه که در دنیای امروزی همه این‌ها منسوخ شدند. قدرت CLI و ابزارهای مبتنی بر اون انقدر زیاد هستند که اکثر این‌ها رو میشه با یه خط کامند انجام داد.

مثلاً برای اون اولی که گفتم. می‌تونید با دستور grep یا ripgrep (که نسخه بهترش هست)، متن‌تون رو پیدا کنید و بعد خروجی با دستور sort مرتب کنید. برای دومی هم همین. بسیار ساده.

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

ایده قدرتمندی که pipe کردن نام داره. من نمی‌خوام ترمینال رو توضیح بدم بلکه می‌خوام بگم این چه قدرتی رو فراهم کرده. قدرتی که pipe کردن می‌ده واقعاً در حد خدا هست.

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

همه این‌ها رو در نظر بگیرید در زمانه‌ای که هوش مصنوعی هم داره جولان می‌ده. یکی از مواردی که باعث شده، مدل‌های هوش مصنوعی انقدر قوی باشن، همین استفاده گسترده از ابزارهای ترمینالی هست. ابزارهایی که بر خلاف GUIها «هر کاری» رو میشه داخل‌شون انجام داد.

یه نکته خوبی هم که این ابزارها دارن اینه که فقط یه بار لازمه نحوه کار کردن باهاشون رو یاد بگیری و بعد دیگه تقریباً کمابیش همونه.

خلاصه در زمانه‌ای که اولاً خودمون می‌تونیم خروجی هر برنامه داخل ترمینال رو به هر برنامه‌ دیگه ورودی بدیم و ثانیاً هوش مصنوعی هم اومده که بهمون کمک کنه، دیگه نیازی به برنامه‌های GUI نیست.

علتش هم اینه که ترمینال ابزار برتری «از نظر عملکرد» نسبت به GUI‌ها هست. کارهای بیشتری می‌تونه انجام بده. دقیق‌تره. همیشه Cross Platform هست و خلاصه دردسر کمتر و کارایی بیشتر.

شاید بگید که بر فرض این که پذیرفتیم، ترمینال‌ها برای کاربران خاص (یا Power Userها) بهتر از GUIها هستند. این چه ربطی به حرفی که شما زدی داره؟

ربطش اینجاست که این فقط یک مثاله که در برنامه‌نویسی داره اتفاق می‌افته.

متن و نوشتار از همه رابط‌های کاربری‌ای که تا الان داشتیم، دقیق‌تر و راحت‌تر هست و قدرت بیشتری هم داره.

این که ما نمی‌تونستیم رابط‌های کاربری بهتری درست کنیم به خاطر محدودیت‌های تکنولوژیک ما بوده. این که مدلی نداشتیم که هدف ما رو درک کنه و همون کار رو برامون انجام بده و خلاص.

و به خاطر همینه که الان داریم می‌بینیم مثل مور و ملخ، هر جایی میری یه چت بات هوش مصنوعی داره سبز می‌شه. ته تهش اون چت بات هوش مصنوعی هم دسترسی داره به این که حساب کاربری من رو بخونه و فلان مشخصات رو فلان جا تغییر بده و یا فلان درخواست رو از طرف من بزنه.

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

و هوش مصنوعی و خصوصاً مدل‌های زبانی این فرصت رو بوجود آوردند که دوباره به اصل قضیه برگردیم. متن.

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

دیری نیست که رابط کاربری بخش خوبی از نرم‌افزارهامون بشه یه متن که بهش بگیم چی می‌خوایم و برامون انجام بده. این متن می‌تونه توسط صوت هم پر بشه.

یه راه‌حل هم که اپل داره خیلی جدی پیگیری‌اش می‌کنه همینه که مدل‌های زبانی روی دستگاه داشته باشه. کمپانی اپل خیلی هوشمندانه تو این دعوای شرکت‌های بزرگ بر سر LLMها کناری نشسته و داره سیگار خودش رو می‌کشه.

و فکر می‌کنم احتمالش هست که از همه‌شون هم جلو بزنه! همین الانش هم به راحتی با چهار تا مک مینی و قیمت ۱۰ هزار دلار، اپل می‌تونه مدل‌های قدرتمندی رو داخل سخت‌افزار خودش بالا بیاره و استفاده کنه.

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

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

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

Under the River (2026) - Shopify (Agent)

الان که فکر می‌کنم حرفی که می‌زنم حرف جدیدی هم نیست.

من از سامانه حضور و غیاب چه استفاده‌ای قراره بکنم؟‌ ته تهش می‌خوام بگم که فلان روز مرخصی برام درخواست بده. یا می‌خوام ببینم چند تا مرخصی استفاده کردم و چقدر مونده. همین‌ها رو میشه با ربات داخلی شرکت هم انجام داد.

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

و الان دوباره برگشتیم به همون دوران ترمینال! این که صفحه Claude یا ChatGPT یا هر مدل زبانی دیگه‌ای جلومون باز باشه و درخواست‌مون رو بدیم و خلاص.

آینده زیبایی در انتظارمون هست.

منابع الهام و ایده‌ام هم این‌ها بودند. البته به علاوه صحبت‌هایی که با همسرم در این زمینه داشتیم و باعث شد بیشتر بهش فکر کنم.