تقريبا. الترجمة:
في الآونة الأخيرة ، افتتح مؤسس NodeJS Rain Dahl مؤتمر HolyJS في سانت بطرسبرغ. وتذكرت أنه كان لدي ترجمة غير منشورة من مدونته وقررت نشرها. في بعض الأماكن ، تكون الترجمة صريحة تمامًا. آمل أن تكونوا مهتمين. تاريخ الإصدار لهذه المقالة هو أكتوبر 2011. تاريخ الإصدار NodeJS هو 27 مايو 2009.إنه غير ضروري ومعقد على كل طبقة تقريبًا. أفضل ما يمكنني فعله هو تهنئة شخص ما على الحل السريع والسهل للمشكلة ، بالنظر إلى القرف الذي يقدمونه. البرنامج الوحيد الذي أحبه هو أنه يمكنني فهمه بسهولة ، وهو يحل مشاكلي. مقدار الصعوبة التي أوافق على تحملها يتناسب مع حجم المشكلة التي يجب حلها.
على مدار العام الماضي ، أعتقد أنني وصلت أخيرًا إلى فهم مُثل يونكس: يتم تنظيم واصفات الملفات وعملياتها باستخدام C. هذه فكرة رائعة. لكن هذا ليس ما نتعامل معه. لم يكن التعقيد ضمنيًا. على العكس من ذلك ، لا بد لي من التعامل مع DBus و / usr / lib و Boost و ioctls و SMF والإشارات والمتغيرات المتقلبة ووراثة النموذج الأولي و _C99_FEATURES_ و dpkg و autoconf.
أولئك منا الذين يكتبون البرمجيات على رأس هذه الأنظمة يضيفون تعقيدًا. أنت الآن بحاجة إلى معرفة ليس فقط $ LD_LIBRARY_PATH لجعل النظام يعمل ، ولكن أيضًا $ NODE_PATH - تعرف ، هذا نشاطي التجاري ، هذا تعقيد إضافي! المستخدمون - أولئك الذين يرغبون في رؤية صفحة ويب - لا يهتمون على الإطلاق. إنهم لا يهتمون بكيفية تنظيمنا / usr ، ولا يهتمون بكيفية عمل عمليات الزومبي ، على أي حال ، إضافة الأوامر في أعمال bash ، بغض النظر عن كيفية ارتباط zlib بشكل ثابت أو ديناميكي بالعقدة. سيأتي وقت يكون فيه التعقيد المتراكم لأنظمتنا الحالية أكبر من تعقيد إنشاء نظام جديد. عندما تأتي هذه اللحظة ، سيذهب كل هذا القرف إلى سلة المهملات. يمكننا أن نحقق دفعة ونمض وندفع إلى المرحاض ولا نفكر فيهم أبدًا.
أولئك الذين ما زالوا يستمتعون بتعلم تفاصيل ، على سبيل المثال ، لغة برمجة - على سبيل المثال ، أولئك الذين يسعدون بمعرفة كيف يقولون ما إذا كان NaN باطلاً أم لا - أنت لا تفهم إلى أي مدى سخيف. إذا كنت تعتقد أنه سيكون من الجيد محاذاة جميع الأحرف المتساوية في التعليمات البرمجية ، إذا كنت تقضي وقتًا في إعداد مدير النوافذ أو المحرر ، إذا قمت بإدراج علامات اختيار يونيكود في عداء الاختبار ، إذا أضفت تسلسلات هرمية غير ضرورية في مجلداتك البرمجية ، إذا قمت بذلك على الأقل شيء آخر غير حل المشكلة - أنت لا تفهم كم هي باهتة. لا أحد يهتم بنموذج كائن glib.
شيء واحد مهم في تطوير البرمجيات هو كيف يشعر المستخدم (تجربة المستخدم).