Skip to content

لماذا لغةٌ عربيّةُ النحو

هذه الصفحةُ لا تُعلِّمُك شيئًا تفعلُه؛ تشرحُ لماذا صُمِّمَت ص هكذا، وأينَ تقفُ حدودُ هذا الاختيار.


الاعتراضُ المعتاد

«الكلماتُ المفتاحيّةُ ثلاثونَ أو أربعون. من عجزَ عن حفظِ if وwhile لن يبرمج.»

الاعتراضُ صحيحٌ في مقدّمتِه وخاطئٌ في نتيجتِه. العائقُ ليس الكلماتِ المفتاحيّة: هو أنّ البرنامجَ نصٌّ يُقرَأ. والمبتدئُ الذي لغتُه الأولى العربيّةُ يقرأُ إذا (الدرجة >= 90) قراءةً واحدةً، ويقرأُ if (grade >= 90) قراءتَين: فكُّ الرموزِ ثمّ فهمُ المنطق. والفرقُ لا يظهرُ في السطرِ الواحد، بل في مئةِ سطرٍ متتابعة.


ما هو عربيٌّ فعلًا في ص

ليس المعجمَ وحده. المقيسُ في language-truth/:

  • ١٠٤ كلماتٍ في المعجمِ الرسميّ: ٤٠ محجوزةً · ٣ عواملَ منطقيّةً تُلفَظُ كلماتٍ (و · أو · ليس) · ٤٤ سياقيّةً · ١٧ اسمَ نوعٍ مدمَج.
  • ١٠٧ قواعدَ نحوٍ مُعلَنة — كلٌّ منها بمعرّفٍ (gr.stmt.if، gr.decl.function) ومجلَّدُ بذورٍ يحرسُها.
  • ١٩١ رمزَ خطأٍ في الكتالوج، لكلِّ واحدٍ عنوانٌ ووصفٌ وعلاجٌ بالعربيّةِ والإنجليزيّةِ معًا.
  • الترقيمُ عربيّ: الفاصلةُ ، تفصلُ عناصرَ المصفوفةِ ووسائطَ الدالّة.
  • أعلامُ سطرِ الأوامرِ الطويلةُ عربيّةٌ قانونيّة: --إصدار، --اشرح، --لغة=ar. ولا مرادفاتِ إنجليزيّةً لها.

فالعربيّةُ ههنا ليست ترجمةَ واجهةٍ فوقَ لغةٍ أجنبيّة: هي مصدرُ الحقيقة، ومنه تُولَّدُ جداولُ المترجِّمِ ورسائلُه.


رسالةُ الخطأِ هي المكسبُ الأكبر

الفرقُ الحقيقيُّ ليس في كتابةِ إذا؛ هو في أنّ المترجِّمَ حينَ يرفضُ يقولُ لك بالعربيّةِ ما العطبُ وما العلاج:

error: [SEM001] (AR) المتغير 'ص' غير معرَّف
  → عرّف المتغير قبل استخدامه: متغير ص = <قيمة>

سطرُ حقلٌ مُعلَنٌ في الكتالوجِ لكلِّ رمز. والمبتدئُ الذي يقفُ أمامَ رسالةٍ إنجليزيّةٍ غامضةٍ يتوقّف؛ والذي يقرأُ علاجًا بلغتِه يُكمِل.


اللغةُ ليست مغلقةً على العربيّة

مقيسٌ: المعرِّفاتُ اللاتينيّةُ تُقبَل — متغير xVal = 8 يُترجَمُ ويطبعُ 8. وبعضُ الكلماتِ لها بدائلُ إملائيّةٌ مُعلَنةٌ في المعجم (إذا واذا، وإلا ووالا) — كلاهما يُترجَم. ورسائلُ المترجِّمِ تُقلَبُ إلى الإنجليزيّةِ بـ--لغة=en.

الاختيارُ إذًا افتراضٌ لا سياج.


حدودُ هذا الاختيار — مُعلَنةً

ما لا تَعِدُ به العربيّة

الأداةُ ليست كلَّ التجربة. المحرِّراتُ والطرفيّاتُ ومحرِّكاتُ البحثِ تتعاملُ مع الاتّجاهِ من اليمينِ إلى اليسارِ بدرجاتٍ متفاوتة، والسطرُ الذي يخلطُ العربيّةَ بالأقواسِ والأرقامِ قد يظهرُ بترتيبٍ مربكٍ في بعضِ البرامج. هذا عيبُ محيطٍ لا عيبُ لغة، ولا تُصلِحُه اللغةُ وحدَها.

المعجمُ عربيٌّ والسطحُ ليس كلُّه موصوفًا

language-truth/builtins/ يُعلِنُ ١٢٠٥ مدخلًا لسطحِ المكتبة، ونصيبٌ معتبَرٌ منها يُعلِنُ الاسمَ والوحدةَ ولا يُعلِنُ ما يُرجِعُ ولا حدودَه. فالعربيّةُ حُلَّت في النحو حلًّا محروسًا بالبذور، وسطحُ المكتبةِ ما زالَ يُواصَف.

الأمثلةُ عربيّةٌ وحدَها

حدٌّ مُعلَنٌ في tracks/core.yaml: رسائلُ المترجِّمِ ثنائيّةُ اللغة، أمّا أمثلةُ هذا التوثيقِ فعربيّةٌ وحدَها اليوم.


الخلاصة

عربيّةُ النحوِ في ص قرارُ قراءةٍ لا قرارُ هويّة: أن يكونَ البرنامجُ نصًّا يقرؤه صاحبُه بلا ترجمةٍ في رأسِه، وأن يكونَ الرفضُ مفهومًا لا مُبهَمًا. وما عدا ذلك — الأداةُ والمحيطُ وعمقُ المكتبة — يُقاسُ ويُعلَنُ حدُّه، ولا يُوعَدُ به لأنّ اللغةَ عربيّة.

مُرخَّص بموجب رخصة MIT