Muon est un langage de programmation de bas niveau moderne, inspiré de C, C #, Go, Rust et Python.
- Fortement et statiquement typé.
- Orienté données: Juste des fonctions, des structures et des enums. NO: classes, héritage, propriétés, etc.
- Pas de runtime: L’absence d’exécution rend le langage plus simple, réduit la latence de démarrage des applications et facilite l’utilisation du code Muon à partir d’autres langages.
- Noyau extrêmement minimal: Une langue ne devrait pas dicter les dépendances. Il existe une bibliothèque standard, mais elle est complètement facultative.
- Haute performance: S’efforcer d’obtenir la parité avec C.
- Gestion de la mémoire flexible: Les programmeurs peuvent basculer dynamiquement entre les allocateurs et définir leurs propres allocateurs.
- Évitez les pièges de sécurité de la mémoire communs: La mémoire est initialisée à zéro. Les limites du tableau sont vérifiées (peuvent être désactivées si nécessaire).
- Pas de comportement indéfini: Un comportement indéfini peut entraîner divers bogues difficiles à détecter. Dans Muon, tous les comportements, y compris ceux spécifiques à la plate-forme, sont définis.
- L’ergonomie compte: Les programmeurs passent beaucoup de temps à travailler avec une langue. L’ergonomie est donc importante. Muon a:
- Inférence de type pour les valeurs de retour de fonction et les locales
- Génériques
- Commander des déclarations indépendantes
- Newline comme instruction separator
- Syntaxe d’appel de fonction uniforme
- Notation du type de référence
- Espaces de noms
- Échec rapide: Généralement, le signalement / le traitement des erreurs se produit via les valeurs de retour. Pour les erreurs irrécupérables et les erreurs qu’un appelant n’est pas prêt à gérer, Muon fournit un abandon.
- Petite langue: S’efforcer d’avoir un langage simple et petit. Avoir moins de moyens de faire quelque chose encourage un écosystème plus cohérent et plus ciblé.
- Outils rapides et rapides: Fournir des outils centrés sur le retour rapide d’informations et l’amélioration de la compréhension du programme. Exemple: serveur de langues, REPL, rechargement à chaud, débogueurs, profileurs.
Source : GitHub