مقارنة لغة ص مع اللغات الأخرى
| الميزة | 🇸🇦 لغة ص | 🐍 Python | 🌐 JavaScript | ⚙️ C++ | 🐹 Go | 🦀 Rust |
|---|---|---|---|---|---|---|
| لغة عربية أصيلة | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| كلمات مفتاحية عربية | ✅ | ❌ (إنجليزية) | ❌ | ❌ | ❌ | ❌ |
| مفسر فوري | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| مترجم أصيل | ✅ LLVM | ❌ | ❌ | ✅ | ✅ | ✅ |
| البرمجة الكائنية (OOP) | ✅ | ✅ | ✅ | ✅ | جزئي | جزئي |
| السمات (Traits/Interfaces) | ✅ | ABC | جزئي | ❌ | Interfaces | ✅ |
| البرمجة غير المتزامنة | ✅ async/await | ✅ | ✅ | ✅ C++20 | ✅ goroutines | ✅ |
| المولدات | ✅ | ✅ | ✅ | C++23 | ❌ جزئي | ❌ |
| مطابقة الأنماط | ✅ | ✅ 3.10+ | ❌ | C++23 | ❌ | ✅ |
| تعابير Lambda | ✅ | محدودة | ✅ | ✅ | ✅ | ✅ |
مقارنة الكود — نفس البرنامج بلغات مختلفة
مرحبا بالعالم (Hello World)
sad
اطبع_سطر("مرحباً يا عالم!")python
print("Hello, World!")javascript
console.log("Hello, World!")cpp
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}rust
fn main() {
println!("Hello, World!");
}الفيبوناتشي
sad
دالة فيبو(ن)
إذا (ن <= 1) ارجع ن نهاية
ارجع فيبو(ن - 1) + فيبو(ن - 2)
نهاية
لكل ي في مدى(0، 10)
اطبع(فيبو(ي) + " ")
نهايةpython
def fib(n):
if n <= 1: return n
return fib(n-1) + fib(n-2)
for i in range(10):
print(fib(i), end=" ")javascript
function fib(n) {
if (n <= 1) return n;
return fib(n-1) + fib(n-2);
}
Array.from({length:10}, (_,i) => i)
.forEach(i => process.stdout.write(fib(i) + " "));cpp
#include <iostream>
int fib(int n) {
if (n <= 1) return n;
return fib(n-1) + fib(n-2);
}
int main() {
for (int i = 0; i < 10; i++)
std::cout << fib(i) << " ";
}go
package main
import "fmt"
func fib(n int) int {
if n <= 1 { return n }
return fib(n-1) + fib(n-2)
}
func main() {
for i := 0; i < 10; i++ {
fmt.Printf("%d ", fib(i))
}
}rust
fn fib(n: u64) -> u64 {
if n <= 1 { return n; }
fib(n-1) + fib(n-2)
}
fn main() {
for i in 0..10 { print!("{} ", fib(i)); }
}صنف وكائن (OOP)
sad
صنف حيوان
باني(اسم، صوت)
هذا.اسم = اسم
هذا.صوت = صوت
نهاية
دالة تحدث()
اطبع_سطر(هذا.اسم + ": " + هذا.صوت + "!")
نهاية
نهاية
صنف كلب يرث حيوان
باني(اسم) الأساس(اسم، "هاو") نهاية
نهاية
متغير ك = جديد كلب("ريكس")
ك.تحدث() # ريكس: هاو!python
class Animal:
def __init__(self, name, sound):
self.name = name
self.sound = sound
def speak(self):
print(f"{self.name}: {self.sound}!")
class Dog(Animal):
def __init__(self, name):
super().__init__(name, "Woof")
d = Dog("Rex")
d.speak() # Rex: Woof!javascript
class Animal {
constructor(name, sound) {
this.name = name;
this.sound = sound;
}
speak() { console.log(`${this.name}: ${this.sound}!`); }
}
class Dog extends Animal {
constructor(name) { super(name, "Woof"); }
}
new Dog("Rex").speak(); // Rex: Woof!cpp
#include <iostream>
#include <string>
class Animal {
std::string name, sound;
public:
Animal(std::string n, std::string s): name(n), sound(s) {}
virtual void speak() { std::cout << name << ": " << sound << "!\n"; }
};
class Dog : public Animal {
public:
Dog(std::string n): Animal(n, "Woof") {}
};
int main() { Dog d("Rex"); d.speak(); }go
package main
import "fmt"
type Animal struct { Name, Sound string }
func (a Animal) Speak() { fmt.Printf("%s: %s!\n", a.Name, a.Sound) }
type Dog struct { Animal }
func NewDog(name string) Dog { return Dog{Animal{name, "Woof"}} }
func main() { NewDog("Rex").Speak() }rust
struct Animal { name: String, sound: String }
impl Animal {
fn speak(&self) { println!("{}: {}!", self.name, self.sound); }
}
struct Dog(Animal);
impl Dog {
fn new(name: &str) -> Self { Dog(Animal { name: name.into(), sound: "Woof".into() }) }
fn speak(&self) { self.0.speak(); }
}
fn main() { Dog::new("Rex").speak(); }الخلاصة
لغة ص — نقاط القوة الفريدة
- الميزة الوحيدة في العالم: لغة برمجة عربية كاملة بكلمات مفتاحية عربية
- مزدوجة التنفيذ: مفسر فوري + مترجم أصيل LLVM في حزمة واحدة
- أدوات مدمجة: مدير حزم + منسّق + LSP دون تثبيت إضافي
- منحنى تعلم منخفض: خاصة للعرب الذين لا يتقنون الإنجليزية
ما زال في طور النمو
- مجتمع المطورين ناشئ مقارنة باللغات الأخرى
- المنظومة البيئية (المكتبات) في طور البناء
- بعض ميزات المكتبة القياسية قيد التطوير