عن المشروع

V هي لغة برمجة مترجمة وذات أنواع ثابتة، مصممة لبناء برمجيات قابلة للصيانة. أهدافها المعلنة هي البساطة، والترجمة السريعة، والأداء المماثل للغة C، والسلامة. المترجم مكتوب بلغة V نفسها ويمكنه الإقلاع في أقل من ثانية على الأجهزة النموذجية. الخصائص الرئيسية الموصوفة في المشروع: - البساطة: اللغة مصممة لتكون قابلة للتعلم في وقت قصير. - الترجمة السريعة: يذكر ملف README حوالي 110 آلاف سطر/ثانية مع خلفية Clang وحوالي 500 ألف سطر/ثانية مع الخلفيات الأصلية و tcc على جهاز اختبار محدد. - الاستضافة الذاتية: يترجم V نفسه بسرعة، والخلفية الرئيسية تُصدر كود C قابل للقراءة البشرية. - ميزات السلامة: لا null، لا متغيرات عامة، ثبات افتراضي، والعمل نحو القضاء على السلوك غير المحدد. - خيارات إدارة الذاكرة: جمع القمامة افتراضيًا، بالإضافة إلى أوضاع يدوية (`-gc none`)، وتخصيص الساحة (`-prealloc`)، والتحرير التلقائي (`-autofree`). - الترجمة من C إلى V، كما هو موضح في عرض ترجمة DOOM. - إعادة التحميل الساخن للكود. - ORM مدمج وإطار ويب مدمج (veb). - خلفيات C وJavaScript، بالإضافة إلى REPL. - مكتبة واجهة مستخدم متعددة المنصات ومكتبة رسومات مدمجة. - ترجمة متقاطعة سهلة، بما في ذلك الملفات الثابتة عبر صور Alpine/musl الخاصة بـ Docker. التثبيت يتم بشكل أساسي من المصدر: استنسخ المستودع وشغّل `make` (أو `makev.bat` على Windows، أو `gmake` على BSD/Solaris). يقوم البناء بتنزيل Tiny C Compiler مرفق عندما توجد نسخة متوافقة. كما يتم توفير Docker و Alpine Dockerfiles. `v up` يحدّث المترجم، و`v symlink` يضيفه إلى PATH. الدعم للمحررات وبيئات التطوير متاح لـ Atom وCodeLite وEmacs وJetBrains وSublime Text وVim/Neovim وVS Code وZed، مع إمكانيات خادم اللغة المقدمة من v-analyzer. تغطي الأمثلة برنامج hello world، وعداد كلمات، وجالب أخبار، وتتريس، و2048. تتطلب أمثلة الواجهة الرسومية والألعاب التي تستخدم وحدات sokol أو gg مكتبات تطوير نظام إضافية. يمكن لوحدات الشبكات (net.http، net.websocket) و`v install` استخدام Mbed-TLS المرفق أو OpenSSL الخاص بالنظام عبر `-d use_openssl`. تعتمد وحدة sync على libatomic. يذكر ملف README أن اللغة قبل الإصدار 1.0 وقد تتغير، ويتم التعامل مع تغييرات الصياغة إلى حد كبير بواسطة vfmt. بعد 1.0، يخطط المشروع لتجميد الميزات على غرار Go، مع إصلاحات الأخطاء وتحسينات الأداء فقط.