طبقات اللغة

يا هبر!

أوجه انتباهكم إلى ترجمة المقال "طبقات اللغة» بقلم روبرت سي مارتن (العم بوب).

طبقات اللغة
أقضي وقتي في لعب لعبة قديمة تسمى Lunar Lander منذ عام 1969. كتبه جيم ستورر، وهو طالب في المدرسة الثانوية. لقد كتبه على PDP-8 في FOCAL. وهذا ما يبدو عليه البرنامج:

طبقات اللغة

وهنا الكود المصدري لـ FOCAL:

طبقات اللغة

كان جيم ستورر طالبًا موهوبًا إلى حد ما في المدرسة الثانوية. نلقي نظرة على هذا الرمز. لقد حصل على بعض تعبيرات تايلور المثيرة للاهتمام هناك.

في الأساس، أقوم بإجراء بحث ثنائي لتحديد قيمة K التي، عند استخدامها باستمرار، ستهبط السفينة بشكل مثالي. لذلك قمت بتعديل البرنامج بحيث يقبل قيمة واحدة فقط ثم يطبقها عدة مرات حتى تهبط السفينة أو تتحطم. بينما أكتب هذا أعلم أن الإجابة تقع بين 76.40625 و76.4453125 وسأحاول 76.4257813. لقد بدأت أعتقد أن الوقت سوف ينفد قبل أن أجد الإجابة.

وفي هذه الأثناء، خطر لي أنني قمت بتشغيل هذا البرنامج على المحاكي PDP-8، الذي كتب في لوا لجهاز iPad.

لذا، حسنًا، دعونا نفكر في هذا.

  • iPad لديه شريحة A8X، مع ثلاثة مراكز تعمل بسرعة جيجاهيرتز أو نحو ذلك.
  • تمت كتابة Lua بلغة C ويتم تجميعها إلى A8X.
  • تمت كتابة محاكي PDP8 الخاص بي بلغة Lua باستخدام الحزمة كوديا من قسم "حياتان متبقيتان".
  • تمت كتابة FOCAL في أواخر الستينيات على PDP1960.
  • تمت كتابة Lunar Lander باللغة FOCAL.

هذه هي A8X وC وLua وPDP8 وFOCAL. هذه خمس لغات مختلفة. خمس آليات مختلفة تخبر الآلة بما يجب أن تفعله؛ كلها مكدسة فوق بعضها البعض!

ما هو؟ لماذا يوجد الكثير من اللغات؟ في الواقع، انسَ أمر iPad وPDP-8 وC وLua وكل شيء آخر. لماذا يوجد الكثير من اللغات؟

##لماذا يوجد الكثير من اللغات؟

فكر في الأمر! كم عدد لغات البرمجة التي يمكنك تسميتها؟ وهنا، اسمحوا لي أن أقدم لكم قائمة صغيرة:

  • فورتران
  • الغل
  • COBOL
  • سنوبول
  • LISP
  • BCPL
  • B
  • C
  • محاكاة
  • حديث قصير
  • ايفل
  • C + +
  • JAVA
  • C#
  • PYTHON
  • RUBY
  • LOGO
  • MOON
  • أساسي
  • PL / 1
  • جافا سكريبت
  • GO
  • DART
  • مقدمة
  • فورث
  • سويفت
  • ML
  • أوكام
  • OCAML
  • ADA
  • إيرلانج
  • إكسير
  • الارتكاز

يمكنك بالطبع التفكير في الآخرين الذين لم أذكرهم. السؤال هو لماذا يوجد الكثير منهم؟ لا يمكن أن يكون هناك سوى إجابة واحدة لهذا السؤال. سبب وجود الكثير من لغات الكمبيوتر:

نحن لا نحبهم.

حسنًا، ربما هذا بيان قوي جدًا. وربما ينبغي أن أقول:

كنا في هوليوود.
كنا في ريدوود.
لقد عبرنا المحيط من أجل الرمز الذهبي.
كنا خارج عقولنا
إنه خط رفيع.
هذا يجعلنا نبحث عن الكود الذهبي.

ونحن نتقدم في السن.

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

وماذا سنفعل باللغة المثالية إذا وجدناها؟

لقد أنشأنا محاكيات PDP-8 وFOCAL للعب "Lunar Lander"، التي كتبها طالب في المدرسة الثانوية في عام 1969!

هذا ما اعتقده.

تعامل مع. توقف عن البحث. لا توجد لغة مثالية. نظرنا في كل مكان. نظرنا من أعلى ومن أسفل. لقد بحثنا في الداخل والخارج.

نظرنا إلى اللغات من كلا الجانبين.
داخل وخارج
وما زالت تفعل، بطريقة أو بأخرى.
ولنتذكر أن هذه مجرد أوهام لغوية.

نحن حقا لا نفهم شيئا في اللغات.
… على الاطلاق.

نعم، اليوم هو يوم غير عادي.

ولكن مع ذلك فإن النقطة هي:

لا نحتاج إلى لغة أخرى.
لا نحتاج إلى معرفة الطريق إلى المنزل.
كل ما نريده هو أن نذهب إلى ما هو أبعد من الحياة.
SQL

نعم يوم غريب

إذن هذه فكرة واحدة. ربما نحتاج إلى التوقف عن إنشاء لغات جديدة والهدوء واختيار لغة أو اثنتين جيدتين حقًا. وهذا سيجعل الحياة أسهل كثيرا، أليس كذلك؟

وفي حال كنت تتساءل، فإن 76.43844461 يمنحك هبوطًا جيدًا بسرعة 2.23 ميلاً في الساعة.

المصدر: www.habr.com

إضافة تعليق