JavaScript Workplace Hall of Fame ، الجزء 2

تم تخصيص الجزء الأول من المراجعة لمكتبات Prototype.js و Requjs. بالفعل في عملية الكتابة ، أصبح من الضروري النظر ليس فقط في المكتبات التي أثرت بشكل كبير على الحالة الحالية لجافا سكريبت ، ولكن أيضًا الأفكار التي تم نشرها في المقالات التي تم وضعها في المواصفات ، على سبيل المثال: ajax ، commonjs ، تطبيقات الويب العالمية / المتشابهة.

1998 - BigInt.js ، RSA.js


يعد العمل الأصلي مع الأعداد الصحيحة الكبيرة ميزة جديدة نسبيًا (والتي لا يشك الجميع حتى - نعم بالفعل - والسؤال هو عدد أنواع البيانات في JavaScript للمقابلات التي تحتاج إلى إعادة تدريبها مرة أخرى). قبل ذلك ، كانت مكتبة ohdave.com/rsa/BigInt.js التنفيذ الأقدم والأكثر نجاحًا للأعداد الصحيحة الكبيرة . ناجح - لأنه سريع. يبحث عن معلومات عن طريق البريد الإلكتروني لمؤلف مكتبة Dave@ohdave.com ، باستثناء Dave Shapiro ، إلا أن الاسم واللقب لم يعط معلومات جديدة. أيضا على الموقع تم وضع تسجيلات لمؤلفات الغيتار من قبل فنانين بارزين ، من تأليف مؤلف المكتبة عن طريق الأذن - معلومات أخرى مفيدة للبحث. بعد ذلك ، وجد مؤلف تويتر twitter.com/daveohdaveمع ارتباط إلى ohdave.com. لدى Twitter 52 مشتركًا معي ولا يشترك John Resig فيه. تم نشر مقطع فيديو على تويتر حيث يلعب مؤلف المكتبة الحانات الأولى من القصيدة السمفونية لريتشارد شتراوس "So Spoken Zarathustra" (المعروف للجمهور السوفيتي في البرنامج التلفزيوني "ماذا؟ أين؟ متى؟")


والآن يمكننا أن نقول بثقة أن هذا هو www.linkedin.com/in/dshapiro الذي يعمل في Four Winds Interactive كمطور برامج مؤسسي ، وهذا لا يعني ، على أي حال ، صورتها في صفحة القيادة:



هذه أقرب مكتبة نوقشت. لكنها لا تزال ذات صلة ، حيث لا تزال الأعداد الصحيحة الكبيرة لا تدعم جميع متصفحات الويب اليوم.

2002 - متصفح متقاطع ، ويعرف أيضًا باسم x.js


تم تصميم مكتبة x.js لتطوير جافا سكريبت عبر المتصفح. لست متأكدًا من أنه تم استخدامه على نطاق واسع في تطوير التطبيقات ، ولكن فكرة إخفاء العمل مع DOM في استدعاءات طريقة المكتبة - الفكرة التي بنيت عليها Prototype.js ومكتبات jquery والمستخدمة على نطاق واسع - كانت مبتكرة. ربما لهذا السبب لم تكن المكتبة في عجلة من أمرها لاستخدامها في مشاريع حقيقية. في ذلك الوقت ، بدا أن مواصفات DOM Level 1 و CSS 2 جعلت أي رمز عبر المتصفح ، على الأقل مقارنة بما حدث في التسعينات المحطمة.

يتم سرد نسخة مكتبة x.js بواسطة مايكل فوستر mike@cross-browser.com. أيضا ، على موقع المكتبة ، هناك معلومات تفيد بأن مايك (مايكل فوستر) يعمل الآن في 33Across. بمعرفة هذا ، يمكنك العثور على مؤلف LinkedIn .

في حفلة جماعية ، والتي سميت فوستر داي على شرف المؤلف (أقصى اليسار) ، أخبر المؤلف القليل عن نفسه: "أعزف على الطبول والناي وقليل من الساكسفون. قراءة NT اليونانية هي واحدة من هواياتي الحالية. لطالما أحببت علم الفلك ، لذا لديّ تلسكوب ضخم.



18 فبراير 2005 - أياكس


قصة جيسي جيمس غاريت "Ajax: نهج جديد لتطبيقات الويب" تم وصفها عدة مرات ، وهناك مقالات ذات صلة حول التكنولوجيا ومؤلفها على ويكيبيديا. لذلك ، ليست هناك حاجة للبحث الإضافي عن المعلومات. كل شيء متاح.

قد يكون من المحير أن جميع الأدوات اللازمة لعمل Ajax كانت موجودة في متصفحات الويب منذ أواخر التسعينات. من المهم بشكل خاص تأثير جيسي جيمس غاريت على تطوير الويب الحديث. عندها فقط جاءت مقالة "Tim O'Reilly - What Is Web 2.0" بتاريخ 30 سبتمبر 2005 ، والتي أضافت الفلسفة بين علامتي اقتباس وبدون تعريف Web 2.0. ولكن ماذا ستكون هذه الفلسفة بدون أفكار جيسي جيمس غاريت. بالمناسبة ، هل يعرف أحد ما هو الويب 3.0؟

يمكن قراءة المؤلف على twitter.com/jjg. ملفه الشخصي في Linkedin هو www.linkedin.com/in/jesse-james-garrett-1341 . آخر وظيفة Capital One Sr. مدير ، Dgital Design.



جيريمي أشكيناس


قدم لنا جيريمي أشكيناس عدة منتجات في وقت واحد أثرت بشكل كبير على تطوير برمجة JavaScript:

2009 - CoffeeScript
2009 - Underscore.js
2010 - Backbone.js

CoffeeScript - أول محاولة ناجحة لتحديث JavaScript ، مع ضمان تشغيل البرامج النصية في الإصدار الحالي من الويب المتصفح ، من خلال تحويل شفرة مصدر نصوص CoffeeScript النصية إلى نص سكريبتات JavaScript القياسية. الآن تعمل بابل والنسخ المطبعي أيضًا. ولكن في وقت عام 2009 ، لم يكن لدى أحد مثل هذه التجربة. لم يكن من الواضح حتى ما إذا كانت جافا سكريبت قوية بما يكفي لتنفيذ مترجم عليها.

أثرت كوفي سكريبت على تلك المجموعة من الابتكارات التي سيتم تقديمها في ES6 / ES2015 ومواصفات اللغة اللاحقة ، على وجه الخصوص: وظائف السهم ، والدوال ذات العدد المتغير من الحجج ، وعامل الوصول إلى الملكية مع التحقق من الوجود؟

يواصل Underscore.js ككل خط العمل مع المجموعات في Prototype.js ، ولكنه لا يستخدم لهذا الغرض إضافة كائن صفيف بخصائص جديدة ، ولكن نقل مصفوفة إلى وظيفة قد لا يبدو موجزًا ​​في البداية ، ولكن مع العلم أن مسار Prototype.js يمكن أن يؤدي إلى من الصعب اكتشاف الأخطاء (على سبيل المثال ، إذا أضاف مطور آخر كائن Array له نفس خصائص الاسم) - يمكنك التعود عليه. الآن يستخدم الجميع تقريبًا شوكة Undescore.js - lodash.js.

Backbone.js - معناه متناقض للغاية والتصنيفات قطبية. على أي حال ، يتم استخدامه الآن بشكل أقل تكرارًا عما كان عليه قبل 10 سنوات.

يعمل جيريمي أشكيناس في صحيفة نيويورك تايمز. يمكن قراءة مقالاته على www.nytimes.com/by/jeremy-ashkenas . يمكنك من خلال twitter.com/jashkenas twitter الخاص به أن تكتشف أنه راكب الدراجة النارية ، ويتناول العشاء دائمًا في نفس المقهى ، ويوقف دائمًا دراجته النارية في نفس المكان عندما يتناول العشاء في هذا المقهى. وقد سُرق منه بالفعل ثلاث مرات في هذا المكان. من الصعب جدًا العثور على صورة لجيريمي أشكيناس بدون خوذة دراجة نارية. أحد أحدث مقاطع الفيديو من المؤتمر في عام 2015:


2010 - step.js


حتى تلك اللحظة ، أخذنا في الاعتبار الأفكار والمكتبات التي أصبحت شائعة للغاية وأثرت على تطوير الويب ولغة جافا سكريبت. الآن سأتذكر المكتبة ، التي لم تؤثر على مسار التاريخ ، ولكن ربما كان لديها مثل هذه الفرصة.

استند نموذج البرمجة التنافسي (غير المتزامن) في node.js في الإصدارات الأولى إلى Callback Hell. يتم استخدام هذه الطريقة الآن أقل وأقل ، نظرًا لأنه من الصعب جدًا إدارة مكالمات Callback Hell المتداخلة. لتبسيط الموقف ، تم تنفيذ Promise ، الذي أصبح أكثر ملاءمة بشكل كبير من Callback Hell ، ولكنه كان لا يزال معقدًا ، خاصة قبل ظهور وظائف الأسهم. وأخيرًا ، بدلاً من Promise ، تم اقتراح عامل انتظار يمكن استخدامه داخل دالة غير متزامنة. وراء الشعور بالنشوة الأولية بعض خيبة الأمل. النمط الوظيفي لاستدعاء سلسلة الدالات بعد ذلك (). لا يزال Catch () أقل شأناً في الإيجاز لعامل الانتظار ، والذي اتضح أنه "فجأة" ضروري لتضمينه في كتل المحاولة / الالتقاط. حتى أن أحدهم بدأ يتحدث عن Promise Hell ، جرب Catch Hell.

تم اقتراح طريقة الخروج من هذه الحلقة المفرغة في عام 2010 من قبل تيم كاسويل في مكتبة step.js. انظر كيف كان من الممكن العمل مع كل هذا:

Step(
  function readSelf() {
    fs.readFile(__filename, this);
  },
  function capitalize(err, text) {
    if (err) throw err;
    return text.toUpperCase();
  },
  function showIt(err, newText) {
    if (err) throw err;
    console.log(newText);
  }
);

ولكن ، للأسف ، ذهب التطور السائد في اتجاه مختلف. ومع ذلك ، يواصلون الآن استخدام تطوير آخر بواسطة Tim Caswell: مدير إصدار العقدة - nvm. يعمل المؤلف الآن في منصب المهندس المعماري الرئيسي في Magic Leap. تغريده هو twitter.com/creationix .

أيضا ، قام المؤلف بنقل node.js إلى لوا ، كما هو موضح في حديثه:


All Articles