وابستگی زیانبار تلگرام
خاموش شدن Tenor API باعث شده که گیفهای تلگرام کاملا بهم بریزن (که این فقط تا حدی به سود فارسی زبانان شد). این داستان یک قضیه ی کمتر صحبت شده ای از دولوپمنت رو خوب نشون میده: وقتی که وابستگی ها (دیپندنسی ها) گلوی توسعه دهنده ها رو بدجا خفت میکنن.
قضیه چیه؟
تِنور (Tenor) شاید بزرگترین پلتفرم گیف باشه. اپهای مختلف مثل توییتر و تلگرام برای اینکه آپشن گیف اضافه کنن، از API این پلتفرم استفاده میکردن. این شاید به ذهن هر توسعه دهنده ی دیگه ای هم میرسید: «بذار کار آسونتر رو انجام بدم و با اضافه کردن یه دیپندنسی، کار و هزینه خودمو کم کنم». نتیجه چی شد؟ گوگل ژانویه ۲۰۲۶ اعلام کرد که میخواد API تِنور رو ببنده و ۳۰ جوئن بسته شد.
تلگرام مثل خیلی از پلتفرمای دیگه آمادگی نداشت. با اینکه گوگل از ۶ ماه قبل خبر داده بود ولی وابستگی ای به این بزرگی چیزی نیس که تو ۶ ماه برطرف بشه. بهترین آپشن برای پلتفرمای این مدلی سوییچ کردن روی یه پلتفرم دیگه س، مثل GIPHY، ولی اون خودش با چالش ها و محدودیت های خاص خودش همراهه. از فرمت api جدید بگیر تا هزینه ها و حتی قوانین و مقررات متفاوت. همه این مشکلات ریشه تو یه چیز دارن:
وابستگی
هممون از تجربه زندگی روزمره مون میدونیم که وابستگی محدودیت میاره. اگه برای خرید کوچکترین چیزها وابسته یک فرد باشی، اختیاراتت هم تا حدی محدود به اون فرد میشه. همین قضیه عینا توی دولوپمنت هم برقراره. و این یکی از چیزهاییه که توی عصر هوش مصنوعی اهمیت چندبرابری پیدا میکنه.
- سازنده Zig توی یکی از مصاحبه هاش از این میگه که چطور با مستقل شدن از LLVM تونست به چیزایی دست پیدا کنه که تا قبلش نمیتونست و از این انتخابش پشیمون نیست.
- سازنده ی Odin توی یکی از ویدئوها درمورد این توضیح میداد که چرا با پکیج منیجرها مشکل داره و هیچوقت به زبانش اضافه نخواهد کرد، چون این رو یک تمرین اشتباه میدونه که پکیج رو توی پروداکشن بدون اینکه از جزئیات و کدها خبر داشته باشی اضافه کنی.
اگه...
اگه تلگرام از همون اول روی Tenor بعنوان یه منبع دائمی حساب باز نکرده بود، الان شاید همه ی گیف هاش رو هنوز داشت. دیپندنسی همینکار رو با پروژه میکنه؛ توهم سرعت و پیشرفت رو میده در حالی که با بازی با دم شیره. مثل پروژه هایی که با وجود هزینه ای که برای اضافه کردن یه فیچر گیف کردن، به سرعت با خبر خاموشی تِنور مواجه شدن .
این پست در ملامت استفاده از تِنور یا هر دیپندنسی third-party مشابهی نیس. این پست فقط یک یادآوریه به توسعه دهنده ها که «حواستون باشه چه وابستگی هایی اضافه میکنید». که «تا جای ممکن وابستگی نداشته باشید». توی عصر هوش مصنوعی، ساده ترین کار همینه. بهترین هوش مصنوعی رو هم ول کنی ممکنه بره یک دیپندنسی جدید خلق کنه، چون این یکی از تمارین اشتباه رایج بین آدمیزادها بوده و هست. و این بار، به خاطر نتیجه گراییِ بیشتری که این تکنولوژی به بار آورده، ما حتی شاید متوجه این هم نشیم که زیر نظر ما یک دیپندنسی جدید به پروژه اضافه شد. واویلا که اون دیپندنسی یک لایسنس GPL هم داشته باشه و در چشم بهم زدنی پروژه تون ریپورت میشه.