À propos du projet

Ring est un langage de programmation dynamique multi-paradigme à usage général et pratique, conçu pour développer des applications, des outils et des langages dédiés. Il prend en charge les paradigmes impératif, procédural, orienté objet, déclaratif (à l'aide de structures imbriquées), fonctionnel, de méta-programmation et de programmation naturelle. Le langage est portable sur MS-DOS, Windows, Linux, macOS, Android, WebAssembly et microcontrôleurs, et peut être utilisé pour créer des applications console, GUI, web, des jeux et des applications mobiles. Les principales caractéristiques incluent : - **Batteries Included** : des liaisons de haute qualité pour des bibliothèques populaires (par exemple, Allegro, LibSDL, RayLib, OpenGL, FreeGLUT, Tilengine, Qt3D). - **Pratique** : de nombreuses bibliothèques (StdLib, WebLib, Natural Library, Games Engine) et l'IDE Ring (Ring Notepad, Form Designer) sont écrits en Ring lui-même. - **Développement GUI** : des outils RAD pour créer rapidement des applications GUI en utilisant le modèle de conception MVC ; le même code source peut cibler le bureau, le web et le mobile. - **Développement de jeux** : un support de premier ordre avec des liaisons natives et un moteur de jeu 2D simple utilisant la programmation déclarative. - **Développement web** : front-end via WebAssembly et back-end utilisant MVC avec des modèles HTML et une génération HTML déclarative. - **Développement mobile** : distribuer des applications sur Android, iOS, etc. - **Outils en ligne de commande** : créer rapidement des outils CLI ; le Ring Package Manager en est un exemple. - **Implémentation transparente** : inspecter les étapes du compilateur et le comportement d'exécution de la VM. - **Implémentation visuelle** : conçu à l'aide de l'outil de programmation visuelle PWCT, générant du code ANSI C. - **Gestion intelligente de la mémoire** : déterministe, sûre, basée sur la portée avec analyse d'échappement et comptage de références optionnel avec détection de cycles. - **Pas de GIL** : les threads peuvent exécuter des instructions Ring en parallèle. - **Performance** : suffisamment rapide pour de nombreuses applications ; des extensions C/C++ pour plus de vitesse. Des instructions de compilation sont fournies pour Windows, Ubuntu Linux et macOS. Le langage est distribué sous licence MIT.