إلى أينَ تمضي — اختيارُ مجالِك
الجذعُ انتهى: تعرفُ المتغيّرَ والشرطَ والحلقةَ والدالّة، وتعرفُ كيف تُترجِمُ وتقرأُ رفضًا. وما بعدَه ليس «المستوى المتقدّم» — هو مجالٌ تختارُه.
وهذه الصفحةُ لا تدلُّك على «الأفضل»؛ تعرضُ عليك المجالاتِ بدرجةِ نضجِها المُعلَنة، لأنّ أسوأَ ما يقعُ للمبتدئِ أن يختارَ طريقًا ثمّ يكتشفَ في منتصفِه أنّه لم يُبنَ بعد.
الدرجاتُ الثلاثُ التي تعنيك
| الدرجة | معناها |
|---|---|
| جاهزٌ للاستعمال | تُتبَعُ صفحاتُه فتصلُ إلى ناتجٍ يعمل |
| يعملُ بحدودٍ مُعلَنة | يعملُ، وحدودُه مكتوبةٌ قبلَ أن تصطدمَ بها |
| ليس من مجالِ ص اليوم | لا طريقَ فيه — والسببُ منشورٌ بلا تجميل |
مجالاتٌ جاهزةٌ للاستعمال
🔬 الباحثون في اللغاتِ والمترجِمات
«أريدُ أن أفهمَ كيف تُبنى هذه اللغةُ وكيف تُحرَسُ قواعدُها.»
تتبعُ قاعدةً من مصدرِ الحقيقةِ حتّى الشفرةِ المولَّدةِ والاختبارِ الذي يحرسُها. أقربُ المجالاتِ إلى من أحبَّ ما رآه في رسائلِ الأخطاء.
🌐 مطوّرو الويب
«أريدُ أن أكتبَ خادمًا يستجيبُ لطلبِ HTTP.»
خادمٌ يردُّ على / بنصٍّ من عندِك، مُترجَمًا إلى ملفٍّ تنفيذيٍّ واحد.
⚙️ مطوّرو أنظمةِ التشغيل
«أريدُ أن أكتبَ نواةً أو مُشغِّلًا بلا نظامِ تشغيلٍ تحتَه.»
نواةٌ تُقلِعُ في QEMU وتطبعُ على الشاشةِ بالعربيّة. وهو أيضًا مكانُ التعاملِ مع مكتباتِ C عبرَ الدوالِّ الخارجيّة.
مجالاتٌ تعملُ بحدودٍ مُعلَنة
🖥️ تطبيقاتُ سطحِ المكتب
«أريدُ أن أبنيَ تطبيقًا بنافذةٍ وأزرار.»
نافذةٌ فيها زرٌّ يستجيبُ للنقر. والحدُّ المُعلَنُ صريح: لا مجموعةَ بذورٍ سلوكيّةٍ للواجهةِ في شجرةِ الاختبارات، فالمخرَجُ المرئيُّ غيرُ محروسٍ بانحدارٍ آليّ؛ وطبقةُ المنصّةِ UIPlatform اثنانِ مستقرّانِ من ٤٣.
🎨 واجهاتُ SadUI
«أريدُ أن أبنيَ واجهةَ استعمالٍ بلغة ص.»
هذا محورٌ لا مجالٌ مستقلّ: شجرةُ واجهةٍ واحدةٌ تُوصَفُ مرّةً وتُصيَّرُ على أكثرَ من مخرَج. يتقاطعُ مع سطحِ المكتب، وحدودُه هي حدودُه.
مجالاتٌ لا تُطرَقُ اليوم
هذه الثلاثةُ مُدرَجةٌ كي لا تُضيِّعَ فيها أسبوعًا. ولكلٍّ منها صفحةُ حالٍ تشرحُ ما الموجودُ فعلًا وما الخطواتُ التي تفتحُه:
| المجال | لماذا لا |
|---|---|
| 📱 تطبيقاتُ الهواتف | لا تطبيقَ هاتفٍ يُبنى من ص بلا مرورٍ بأدواتِ المنصّة. الموجودُ مولِّدا مصدرٍ (Compose · SwiftUI) يُخرِجانِ نصَّ شفرةٍ ولا يرسمانِ ولا يُديرانِ حلقةَ أحداث |
| 🗄️ قواعدُ البيانات | الشفرةُ في الشجرةِ ومقطوعةٌ عنها في ثلاثةِ مواضعَ معًا: غلافُ SQLite خلفَ #ifdef اختياريّ، وملفُّ المدمَجاتِ ليس في أيِّ هدفِ بناء، ولا مدخلَ في مصدرِ الحقيقةِ ولا اسمَ استيراد |
| 🧠 الذكاءُ الصناعيّ | صفرُ إشارةٍ إلى tensor أو BLAS أو CUDA في الشجرةِ خارجَ third_party. الموجودُ ٢٧ دالّةً رياضيّةً قياسيّةً و٢٢ مدمَجةَ SIMD — سطحٌ منخفضُ المستوى لا أداةُ حسابٍ عدديّ |
من أرادَ الحسابَ العدديَّ اليوم
سبيلُه ربطُ مكتبةِ C عبرَ الدوالِّ الخارجيّةِ وتمثيلِ البنيةِ على نسقِ C — وهي قدرةٌ حقيقيّةٌ مُنفَّذة، ومكانُها مسارُ أنظمةِ التشغيل.
إن لم تختَرْ بعد
فلا تختَرْ. أعِدْ قراءةَ الدوالِّ واكتُبْ ثلاثةَ برامجَ صغيرةٍ من عندِك: آلةً حاسبةً بسيطة، عدَّادًا يطبعُ مضاعفاتِ عددٍ، دالّةً تُرجِعُ الأكبرَ من ثلاثة. المجالُ يختارُك حينَ تصطدمُ بحاجةٍ لا يسدُّها الجذع.
قبلَ أن تمضي
اقرأْ حدودَ الجذعِ المُعلَنة. الحدُّ ههنا علامةُ صدقٍ لا علامةُ نقص: ما لا يُعلَنُ يُكتشَفُ في منتصفِ العمل.