نظرمحور، وابسته و ابسترکت
اخیراً یکی از فامیلهام برای آیفونش به کمک نیاز داشت. روی گوشی اندرویدی قبلیش خیلی راحت میتونست آرشیو موسیقی آفلاینش رو کپی کنه و با هر موزیکپلِیری که میخواست پخششون کنه. ولی روی آیفون اینطوری نبود. منم تا حالا آیفون استفاده نکرده بودم، برای همین مجبور شدم یه کم تحقیق کنم.
فهمیدم آیفون هر اپلیکیشن رو اونقدر شدید توی یه محیط جداشده نگه میداره که اپها نمیتونن همینطوری به یه فولدر مشترک دسترسی داشته باشن و موسیقیها رو از اونجا ایمپورت کنن. برای دسترسی به آرشیوی که ذخیره کردی، باید اول اون رو وارد فضای ذخیرهسازی مخصوص همون اپلیکیشن کنی.
یه راهش اینه که آرشیوت رو کپی کنی توی فولدر مربوط به اون اپلیکیشن که زیر On My iPhone قرار داره، مثلاً On My iPhone > VLC، یا از دکمهی ایمپورت داخل خود اپلیکیشن استفاده کنی. هر دو روش باید توسط خود اپلیکیشن پیادهسازی شده باشن و بعضی اپها هر دو روش رو پشتیبانی نمیکنن. ممکنه یه اپ نصب کنی که مثل VLC یه فولدر قابلمشاهده نسازه و فقط یه دکمهی ساده برای ایمپورت داشته باشه، اون هم با یه UX افتضاح.
این قضیه دو تا مشکل ایجاد میکنه:
- تعداد اپلیکیشنهایی که واقعاً میتونی امتحان کنی به شکل قابلتوجهی کمتر میشه. علاوه بر اینکه باید ببینی خود اپ چطور کار میکنه، باید مطمئن بشی روند کار مناسبی برای وارد کردن فایلهات داره. تازه بخش قابلتوجهی از این اپها هم اصلاً رایگان نیستن.
- فضای ذخیرهسازی بیشتری مصرف میشه. هم آرشیو اصلیت وجود داره، هم یه کپی ازش داخل اپلیکیشن. اگه اپلیکیشن فولدر خودش رو در اختیارت نذاره، یا باید همچنان به همون اپ وابسته بمونی، یا ریسک کنی و فایلهای اصلیت رو پاک کنی. تازه ممکنه خود اپ اصلاً اجازهی خروجی گرفتن ازشون رو هم نده.
ممکنه با خودت بگی: چرا اپل این رو اینقدر پیچیده کرده؟ یه روند ساده برای پخش موسیقی نباید اینقدر سخت باشه. مگه اپل قرار نبود استفادهی سادهای داشته باشه؟
دلیلش اینه که اپل برای تو ساخته نشده. شاید خودت رو یه «کاربر حرفهای» ندونی، ولی بازم کاربر معمولی نیستی. اپل یه شرکت شدیداً opinionatedـه. تمرکزش روی چیزیه که بیشتر مخاطب هدفش لازم داره. شدیداً به اکوسیستم خودش متکیه. مخاطب هدف اپل هم کاملاً راضیه که تا ابد از iTunes استفاده کنه.
حالا این ممکنه برای بعضیها احمقانه به نظر بیاد. خیلی از کاربران اندروید اپل رو به خاطر همچین چیزهایی مسخره میکنن. بخشی از این انتقادها کاملاً وارده، و منم شخصاً از اینکه کاربر اپلم متنفرم، ولی با این حال فکر میکنم این کار نابغهوار بوده.
آیفون سعی نمیکنه از هر نظر ممکن یه سیستمعامل موبایل خوب باشه. هدفش اینه که برای آدمهایی که فقط میخوان کارهای ساده و معمولی رو با اپهاشون انجام بدن، سادهترین و قابلفهمترین روند ممکن رو فراهم کنه. اپل برای موبایل همون نقشی رو داره که ویندوز برای دسکتاپ داره. لینوکس بدون شک از ویندوز از خیلی جهات، اگه نگیم از بیشتر جهات، بهتره؛ ولی فهمیدن و استفاده کردن ازش خیلی سختتره.
اپل دستت رو مثل یه بچه میگیره و هر جا که بخوای بری، هدایتت میکنه. اندروید بیشتر بهت اجازه میده خودت بگردی و راهت رو پیدا کنی. این هم یکی از دلایلیه که اپل تونسته اینقدر موفق باشه. هدف نهاییش تجربهی کاربری بوده، یا حداقل قبلاً بوده، نه توان بالقوهی کاربر.
این همیشه با یه سری trade-off همراهه. هرچی بیشتر سعی کنی تنبلترین و کمتکنیکالترین کاربرها رو در نظر بگیری و کارها رو براشون راحت کنی، محصولت opinionatedتر میشه. و هرچی opinionatedتر بشه، آدمهای بیشتری بهش ایراد میگیرن که چرا متفاوته و چرا هر use case ممکنی رو پشتیبانی نمیکنه.
اپل این موضوع رو کاملاً فهمیده. برای همینه که احتمالاً متوجه شدی خیلی از کاربرهاش از نظر تکنولوژی تقریباً هیچی نمیدونن و حتی ممکنه احمق به نظر برسن. حالا شاید واقعاً احمق باشن، ولی ممکنه صرفاً متفاوت باشن. اپل اون خلأ موجود توی بازار رو پر کرده.
این موضوع ارتباط نزدیکی با مقاله ی "آیا ابسترکشن واقعاً ارزشش رو داره؟" داره. وقتی به پروژهت abstraction اضافه میکنی، در واقع داری به سمت یه جور سادهسازی یا حتی احمقسازی حرکت میکنی. بخشی از توان بالقوه رو از بین میبری و بعضی کارها رو سختتر میکنی، حتی وقتی از بیرون ساده به نظر میرسن.
این ابسترکشنها کارهای تکراری رو خیلی سادهتر و قابلفهمتر میکنن، ولی هرچی بیشتر از محدودهای که اون ابسترکشنها برای پشتیبانی ازش طراحی شدن خارج بشی، بیشتر با مشکلاتی مواجه میشی که خیلی بزرگتر از چیزی به نظر میرسن که اگر بدون اون ابسترکشنها کار میکردی، باهاشون مواجه میشدی.
سادهترین روند پخش موسیقی ممکنه روی اندروید دو برابر آیفون زمان ببره. ولی اگه بخوای کاری فراتر از کارهای معمول انجام بدی، ممکنه همون کار روی آیفون حالا پنج برابر اندروید زمان ببره.
این موضوع به مقالهی "وابستگی زیانبار تلگرام". داری خودت رو به رابط انتزاعیای که برای خودت ساختی وابسته میکنی. اگه اپلیکیشن موسیقیات یه روز آپدیت بشه و قابلیت خروجی گرفتن رو تبدیل به یه قابلیت پولی کنه، حالا دیگه گیر افتادی و مجبوری کاری رو بکنی که اون اپ میخواد. این یه محدودیت محسوب میشه.
مثل همون چرخهای کمکیه که وقتی بچهای و تازه داری دوچرخهسواری یاد میگیری، روی دوچرخه میبندی. یه جایی باید اونها رو برداری اگه میخوای به نهایت تواناییهات برسی. وابسته موندن به اون چرخها فقط سرعتت رو کم میکنه و حتی ممکنه روی روند یادگیریت هم تأثیر بذاره.