ابزارهای توسعهدهندهٔ ایرانی که ارزشِ دنبال کردن دارند
نقشهای موضوعی از سه لایهٔ ابزارهای توسعهدهندهٔ ایرانی — از CLIهای کوچک و باز، تا داشبوردهای مدیریتیِ فارسی، تا افزونهها و یکپارچهسازهای بیسروصدا.
در این یادداشت میخواهم فهرستی بنویسم از سرشاخههای ابزارهای توسعهدهندهٔ ایرانی که، به نظرم، ارزشِ دنبال کردن دارند. نه به این معنا که نامِ ده محصول را پشتِ سرِ هم ردیف کنم و بگویم اینها بهتریناند — چون نمیدانم بهتریناند یا نه، و کسی هم نمیداند. منظورم چیزِ دیگری است: نقشهای کوچک از جاهایی که این روزها چیزی در حالِ ساخته شدن است، حتی اگر بیسروصدا و بیخبر باشد.
چرا این فهرست — نه رتبهبندی، که یک نقشه
اگر دنبالِ رتبهبندی هستید، صفحهٔ mahsoolhunt.ir/leaderboard کارش همین است؛ آنجا محصولها بر اساسِ رأیِ خوانندگانِ محصولهانت مرتب میشوند و عدد و رتبه و ماه و سال دارند. اما این یادداشت قرار نیست جای آن صفحه را بگیرد. قرار است چیزی شبیه به یک «راهنمای میدانی» باشد — مثلِ آن دفترچههای کوچکی که آدم در شهرِ غریب توی جیب میگذارد تا بداند کدام محله چه شکلی است.
ابزارِ توسعهدهنده در ایران یک اکوسیستمِ یکدست نیست. در یک سرِ آن، توسعهدهندهای نشسته که شبها یک CLIِ کوچک مینویسد تا کارِ تکراریِ خودش را خودکار کند و آن را روی گیتهاب میگذارد و چند ده ستاره میگیرد. در سرِ دیگر، تیمی پنجنفره دارد یک داشبوردِ مدیریتی برای یک شرکتِ متوسط میسازد که قرار است هر روز شش ساعت جلویِ چشمِ یک حسابدار باز باشد. اینها دو دنیای متفاوتاند، اما هر دو زیرِ همان چترِ «devtoolِ ایرانی» قرار میگیرند. در صفحهٔ mahsoolhunt.ir/categories/devtools میتوانید نمونههایی از هر دو سر را کنارِ هم ببینید، و همین کنارِ هم بودن گاهی روشنتر از هر مقالهای نشان میدهد که این فضا چه شکلی است.
پس بگذارید این فهرست را نه به ترتیبِ «بهترین تا بدترین»، که به ترتیبِ «نزدیکترین به دور» از پوسته بنویسم — از CLIِ خام تا یکپارچهسازِ پنهان.
ابزارهای CLI و خط فرمان — کوچک، تیز، باز
اولین لایهای که سراغش میروم، ابزارهای خط فرماناند. اینها معمولاً یکنفره ساخته میشوند، اغلب متنبازند، و کاربریشان بیشتر بر دوشِ خودِ توسعهدهندههاست تا کاربرِ نهایی. اهمیتِ این لایه برای منی که یادداشت مینویسم، در این است که نشان میدهد یک جامعهٔ فنی واقعاً چهچیز کم دارد. وقتی کسی وقت میگذارد و یک CLI مینویسد برای، مثلاً، تبدیلِ تاریخِ جلالی به میلادی در پایپلاینِ بیلد، یا یک ابزارِ کوچک برای پاکسازیِ نیمفاصله در فایلهای متنیِ بزرگ، در واقع دارد به ما میگوید «این مسئله آنقدر تکراری بود که حاضر شدم برایش کد بزنم.»
اگر بخواهم بگویم در عمل با این دسته چه میکنم: هر چند هفته یک بار سری به مخزنهای فارسینویس روی گیتهاب میزنم و آنهایی را که فعالیتِ تازه دارند نشان میکنم. اگر چیزی واقعاً مفید بود و نگهداریاش هم تعطیل نشده بود، در صفحهٔ mahsoolhunt.ir/submit ثبتش میکنم تا بقیه هم ببینند. این لایه معمولاً در mahsoolhunt.ir/trending کمتر دیده میشود چون مخاطبِ روزانهاش کوچک است، اما همان مخاطبِ کوچک معمولاً خودش سازندهٔ چیزهای بزرگترِ بعدی است.
یک مثالِ ذهنی — بدونِ نام بردنِ کسی — این است: یک ابزارِ کوچکِ ترمینالی که فقط یک کار میکند، مثلاً اعتبارسنجیِ شمارهٔ شبا و کارتبانکی به شکلِ آفلاین. ساده، بیادعا، و چنان دقیق که هر کسی فرمسازِ داخلی نوشته باشد میفهمد چرا باید نصبش کند.
داشبوردها و رابطهای مدیریتی — جایی که فارسی واقعاً اهمیت دارد
لایهٔ دوم، داشبوردها و پنلهای مدیریتیاند. اینجا قصه فرق میکند. این محصولها معمولاً متنباز نیستند، یک تیمِ کوچک پشتشان است، و کاربرشان آدمی است که شاید هیچوقت گیتهاب باز نکرده باشد — یک مدیرِ فروش، یک حسابدار، یک اپراتورِ پشتیبانی. به همین دلیل، اینجاست که جزئیاتِ فارسی واقعاً اهمیت پیدا میکند: نیمفاصله، جهتِ راستبهچپ، تاریخِ جلالی، اعدادِ فارسی، چپچین بودنِ اعداد در ستونهای راستچین، رفتارِ صحیحِ input در حالتِ ترکیبی، و هزار ریزهکاریِ دیگر که هر کدام بهتنهایی کوچکاند اما در مجموع تفاوتِ یک محصولِ «درست» و یک محصولِ «ترجمهشده» را میسازند.
اگر بخواهم یک حرکتِ مشخص پیشنهاد بدهم: دفعهٔ بعد که داشبوردی فارسی را امتحان میکنید، چند دقیقه فقط با کیبورد در آن حرکت کنید. ببینید Tab به کدام سمت میرود، Enter در فرم چه میکند، آیا میانبرِ کیبورد برای حالتِ راستبهچپ درست تعریف شده است. این آزمونِ کوچک معمولاً بیشتر از هر بازخوردِ بلندبالایی روشن میکند که سازنده واقعاً با چه دقتی کار کرده.
این دسته معمولاً در mahsoolhunt.ir/categories/devtools و گاه در mahsoolhunt.ir/categories/saas هم پیدا میشود — چون مرزِ میانِ «ابزارِ توسعهدهنده» و «نرمافزارِ کسبوکار» در داشبوردها اغلب محو است.
افزونهها و یکپارچهسازها — لایهٔ بیسروصدا
لایهٔ سوم، شاید کمدیدهترین لایه باشد: افزونهها، اسکریپتهای یکپارچهسازی، و آن چیزهایی که بینِ دو سرویسِ دیگر مینشینند و هیچوقت ستارهٔ مستقل نمیگیرند. افزونهٔ ووکامرس برای درگاههای پرداختِ ایرانی، اسکریپتهای اتصالِ پیامکرسانهای داخلی به CRMها، ابزارهایی که خروجیِ یک سامانهٔ حسابداریِ ایرانی را میگیرند و تبدیل به فرمتِ قابلخواندن برای ابزارِ بعدی میکنند. اینها قهرمانانِ بیسروصدای اکوسیستماند.
علتِ توجهام به این لایه ساده است: اینجا جایی است که «ایرانی بودن» بیش از همهجا معنا پیدا میکند. یک ابزارِ یکپارچهساز برای درگاهِ پرداختِ ریالی یا برای سامانهٔ مالیاتیِ مؤدیان، چیزی نیست که یک تیمِ خارجی روزی بسازد. اگر این لایه را ما نسازیم، کسی نمیسازد. به همین خاطر، در یادداشتهایم سعی میکنم هر چند ماه یکبار یکی از این یکپارچهسازها را معرفی کنم، حتی اگر کاربریشان از هزار نفر کمتر باشد.
کاری که در عمل میکنم: وقتی محصولی در mahsoolhunt.ir/submit ثبت میشود که در توضیحاتش کلمهٔ «افزونه» یا «یکپارچهساز» آمده، با حوصلهٔ بیشتری بررسیاش میکنم. اینها معمولاً صفحهٔ لندینگِ شکیل ندارند، اما اگر مشکلِ واقعیای را حل میکنند، حقشان است که دیده شوند.
چگونه از این فهرست به جدولِ زندهٔ محصولهانت برسید
این یادداشت یک عکسِ ثابت است؛ روزنامهای که میخوانید همین حالا هم کمی قدیمیتر از واقعیتِ بیرون شده. برای همین، اگر میخواهید این نقشه را زنده دنبال کنید، پیشنهادم این است:
اول، سری به mahsoolhunt.ir/categories/devtools بزنید و فهرستِ کاملِ ابزارهای ثبتشده را ببینید. دوم، mahsoolhunt.ir/trending را در نشانهگذاریهای مرورگرتان بگذارید؛ آنجا هر هفته نشان میدهد کدام محصول در حالِ گرفتنِ توجه است. سوم، اگر خودتان ابزاری ساختهاید یا ابزارِ خوبی پیدا کردهاید که اینجا نیست، در mahsoolhunt.ir/submit ثبتش کنید. این فهرست تا وقتی زنده میماند که آدمها چیزی برای اضافه کردن داشته باشند.
و در آخر، اگر در این میان به ابزاری برخوردید که فکر میکنید لایقِ یک یادداشتِ مستقل در mahsoolhunt.ir/rozname است، بنویسید و بفرستید. روزنامه فقط متعلق به من نیست؛ متعلق به همان آدمهایی است که شبها یک CLIِ کوچک مینویسند و صبح میخواهند بدانند آیا کسی هم آن را دیده یا نه. این فهرست برای آن آدمها نوشته شد.