من همیشه فکر میکردم که توسعهدهندگان نرمافزار شبیه به زاغیها هستند؛ پرندگانی که به دزدیدن اشیای درخشان برای تزئین لانههای پیچیدهشان شهرت دارند. مانند زاغیها، توسعهدهندگان نرمافزار هم بهطور غیرمعمولی باهوش و کنجکاو هستند، تقریباً بهصورت پیشفرض. اما ما حواس ما خیلی راحت توسط اسباببازیها و ابزارهای جدید و درخشان پرت میشود.
فهرست نهایی ابزارهای توسعهدهندهی اسکات هنسلمن (Scott Hanselman) دیگر برای من الهامبخش نیست. بلکه خستهکننده است. سرعت تغییرات در دنیای نرمافزار بیامان است. آنقدر با «درخشان» و «جدید» غرق شدهایم که خود این مفاهیم شروع به از هم پاشیدن کردهاند، واژهها بارها و بارها تکرار میشوند تا جایی که به جریانی بیمعنا از صداها تبدیل میشوند. «درخشان» و «جدید» به چیزی پیشپاافتاده و معمولی بدل شدهاند. دیگر جدید بودن چیزی خاص نیست، و دیگر درخشان بودن چیزی جذاب نیست. در نهایت، از این صف بیپایان اشیای درخشان و جدید خسته میشوید.
من تنها کسی نیستم که اینطور فکر میکنم. جرمی زاودنی (Jeremy Zawodny) هم به کاهش درخشش چیزهای جدید اشاره میکند:
بیش از یک سال پیش، اشتراک وبلاگ استیو را لغو کردم، چون عادت داشت با لحنی هیجانزده درباره آخرین چیزهای درخشان جدید بنویسد – آن هم چندین بار در روز. من افراد زیادی را میبینم که در هیاهوی این هیجانات نفسگیر گرفتار میشوند و فراموش میکنند که آیا آخرین چیز درخشان جدید واقعاً در کلان تصویر اهمیتی دارد یا نه.
دیو اسلوشر (Dave Slusher) نیز همعقیده است:
[رابرت اسکوبل (Robert Scoble)] میگوید که ایمیل زیاد دریافت میکند و ایمیل برای دریافت اطلاعیههای روابط عمومی از او بیاثر است. او پیشنهاد میکند که حالا باید برای او یک پیام در دیوار فیسبوک بگذارید. خدایا! در مدتی که اسکوبل را دنبال کردهام، چیزی شبیه به این را دهها بار از او شنیدهام. ایمیل نزنید، توییت کنید. توییت نکنید، پیام در Pwnce. پیام Jaiku. پیام دیواری بگذارید، SMS بفرستید، فقط تماس بگیرید، ایمیل بزنید، ایمیل نزنید، تماس نگیرید. بس است دیگر! حتی سعی نمیکنم با او تماس بگیرم و این مهاجرت مداوم از پلتفرمی به پلتفرم دیگر مرا خسته میکند. همین حس را زمانی داشتم که TechCrunch را کنار گذاشتم، خیلی بیش از یک سال پیش. از شنیدن یک روش کمی متفاوت برای انجام چیزی که قبلاً انجام میدادیم خسته شدم و اینکه چرا آن تفاوت کوچک ارزش ترک همه چیز و رفتن به آنجا را داشت. من رسماً جستجوی چیزهای جدیدتر و درخشانتر را رد میکنم.
این فقط سیل بیپایان اخبار فناوری نیست. بلکه کشمکشهای بیپایان و خستهکننده هزاران جنگ مذهبی نرمافزاری است که ما را همچون سنگهای سرگردان در جریان سریع رودخانه فرسوده میکند. شرط میبندم فرآیندی که دیوید مگینسون (David Megginson) شرح میدهد برای شما هم آشناست:
توسعهدهندگان نخبه (گورو) متوجه میشوند که افراد زیادی از زبان برنامهنویسی فعلیشان استفاده میکنند و به دنبال چیزی میگردند که آنها را از همکاران متوسطشان بهتر متمایز کند.
توسعهدهندگان نخبه فهرستی از مشکلات فعلیشان تهیه میکنند و به دنبال یک زبان جدید و کمتر شناختهشده میگردند که ظاهراً مشکلات کمتری داشته باشد.
توسعهدهندگان نخبه شروع به پیشبرد توسعه زبان جدید میکنند، کد مینویسند، کتابخانه ایجاد میکنند و غیره، سپس زبان جدید را تبلیغ میکنند. توسعهدهندگان نیمهنخبه (ارشد) نیز به دنبال توسعهدهندگان نخبه به سمت زبان جدید حرکت میکنند و بازاری برای کتابها، آموزشها و غیره ایجاد میکنند که توسعه و آزمایش زبان را نیز تسریع میکند.
توسعهدهندگان نیمهنخبه، که تأثیر زیادی دارند (چون توسعهدهندگان نخبه تمایل دارند در انزوا و روی پروژههای تحقیقاتی کار کنند و نه روی تیمهای توسعه تولید)، شروع به ترویج زبان جدید در محیط کار میکنند.
انبوه عظیم توسعهدهندگان معمولی متوجه میشوند که باید کتاب بخرند و دورههایی بگذرانند تا یک زبان جدید را یاد بگیرند.
توسعهدهندگان نخبه متوجه میشوند که افراد زیادی از زبان برنامهنویسی فعلیشان استفاده میکنند و به دنبال چیزی میگردند که آنها را از همکاران متوسطشان بهتر متمایز کند.
امیدوارم نشسته باشید، چون خبر بدی برایتان دارم. آن موضوعی که درباره روبی آن ریلز (Ruby on Rails) اینقدر به آن علاقه داشتید؟ مربوط به سال گذشته است. ما جلوتر رفتهایم.
با در نظر گرفتن اینکه، از نظر آماری، اکثریت عظیم برنامهنویسان هنوز حتی یک زبان پویا را تجربه نکردهاند – چه برسد به روبی – مضحک بودن این موضوع شگفتانگیز است. برخی ویژگیهای زبانهای پویا بهآرامی به قلمروهای جاوا و .NET نفوذ میکنند، اما کند و با سطوح مختلفی از موفقیت. اینطور به اصطلاح رهبران فکری، پیش از آنکه کسی فرصتی برای ورود داشته باشد، یک شهر ارواح مجازی را ترک کردهاند.
من برنامهنویس شدم چون کامپیوترها را دوست دارم، و برای دوست داشتن کامپیوترها باید تغییر را دوست داشته باشید. و من اینطور هستم. اما فکر میکنم توسعهدهنده زاغی گاهی اوقات به ضرر خودش تغییر را دوست دارد. اندی هانت (Andy Hunt) و دیو توماس (Dave Thomas)، برنامهنویسان عملگرا که نقش بزرگی در تغییرات اخیر روبی داشتند، این موضوع را در یک ستون IEEE سال 2004 بهخوبی بیان کردند:
کاربران اهمیتی نمیدهند که شما از J2EE، کوبول (COBOL)، یا حتی جفتی سنگ جادویی استفاده میکنید. آنها میخواهند پرداخت کارت اعتباریشان بهدرستی انجام شود و گزارشهای موجودیشان چاپ شود. شما به آنها کمک میکنید تا آنچه واقعاً نیاز دارند را کشف کنند و یک سیستم را با هم تصور کنید.
بهجای اینکه درگیر مسابقه سخت برای تسلط بر لبه پیشرفتهترین فناوری شویم، پیت (Pete) روی ساخت یک سیستم [با COBOL] تمرکز کرد که برای او و مشتریانش کارآمد باشد. این سیستم ساده است، شاید از نظر استانداردهای والا تقریباً ابتدایی باشد. اما استفاده از آن آسان، قابلفهم و بهسرعت قابل استقرار است. چارچوب پیت ترکیبی از فناوریها را به کار میگیرد: مقداری مدلسازی، مقداری تولید کد، مقداری اجزای قابلاستفاده مجدد و غیره. او اصل عملی اساسی را به کار میگیرد و از چیزی که کار میکند استفاده میکند، نه چیزی که صرفاً جدید یا مد روز است.
ما (بهعنوان یک صنعت) وقتی شکست میخوریم که سعی کنیم چارچوب نرمافزاری همهجانبه و کامل بسازیم. شاید به این دلیل که هیچ نظریه بزرگ و یکپارچهای برای ظهور در انتظار نیست. یکی از ویژگیهای پستمدرنیسم – که برخی آن را ویژگی متمایز زمان ما میدانند – این است که هیچ «روایت بزرگی» وجود ندارد، هیچ داستان فراگیری برای راهنمایی ما نیست. در عوض، داستانهای کوچک زیادی وجود دارد.
احساس کمبود نکنید اگر لانهتان را با درخشانترین و جدیدترین چیزها پر نکردهاید. چه اهمیتی دارد که از چه فناوریای استفاده میکنید، مادامی که کار میکند و شما و کاربرانتان از آن راضی هستید؟
زیبایی چیزهای جدید در این است که همیشه یک چیز جدید در راه است. اجازه ندهید جستجوی اشیای جدید و درخشان بهطور تصادفی به هدف شما تبدیل شود. سعی کنید یک توسعهدهنده زاغی نشوید. در جستجوی چیزهای جدید و درخشان گزیده عمل کنید، و ممکن است خود را توسعهدهنده بهتری بیابید.