»

Langage de programmation localisé



Citrine est un langage de script flexible, polyvalent et localisé, conçu pour permettre aux utilisateurs d'écrire du code dans leur langue maternelle. Espérons que ce faisant, nous pourrons obtenir un code plus lisible et maintenable, réduire les obstacles à la programmation, atteindre de nouveaux publics et démocratiser les logiciels. Citrine peut être utilisé comme langage de programmation autonome, langage de script intégré, DSL ou comme transpileur. Apprenez citrine en une minute.
☞ phrase ≔ ‘Vive la nation!’.

phrase nation: ‘France’.

✎ écrire: phrase.
		
Vive la France!
 

Caractéristiques


 

Localisé

Permet à chacun de coder dans sa langue maternelle. Rendre le code plus accessible et expressif.

 

Objets purs

Vrai, inspiré de Smalltalk, Programmation Orientée Objet: la façon dont elle était censée être.

 

Grammaire simple

Grammaire très simple et minimaliste. Facile à apprendre et à retenir.

 

Prototypes

Héritage prototypique flexible, tout comme JavaScript mais sans la bizarrerie.

 

Portée dynamique

Portée dynamique extrêmement puissante, tout comme le bon vieux BASIC et certains LISP.

 

Traduction

Des équipes internationales? le code est traduit automatiquement d'une langue dans une autre.

 

Manuel

Citrine est très facile à apprendre, vous créez un programme en envoyant des messages aux objets. Il existe 3 types de messages: messages unaires (sans arguments), binaires (un argument) et mots clés (un ou plusieurs arguments), Voici comment:

☞ x ≔ ‘Hello’ longueur.
☞ x ≔ 3 + 7.
☞ x ≔ Nombre entre: 0 et: 10.

Nous utilisons pour déclarer une nouvelle variable. Dans le deuxième exemple nous envoyons un message +7 à 3, l'objet résultant sera 10. Il n'y a pas besoin d'instructions if, while ou for pour exécuter du code conditionnellement envoyer oui: à un booléen, pour exécuter du code dans une boucle, multipliez la tâche en envoyant × :

(x ≥ y) oui: { ✎ écrire: ‘buy!’. }.
{ :i ✎ écrire: i. } × 3.
{ x additionner: 1. } tant: { ↲ x < 9. }.

Vous pouvez écrire Citrine dans votre langue maternelle, ainsi, par exemple, en néerlandais, le troisième exemple ressemble à ceci :

{ x optellen: 1. }
zolang: { ↲ x < 9. }.

Aucune syntaxe spéciale n'est nécessaire pour l'interpolation de chaîne, il suffit d'envoyer un message non défini à une chaîne pour remplacer le mot spécifié par le message par l'argument :

‘Hola señor!’ señor: ‘Don Quijote’.
Hola Don Quijote!

Pour créer votre propre objet, envoyez new à l'objet principal, vous pouvez également utiliser d'autres objets comme prototype. Vous pouvez ajouter une nouvelle logique à tous les objets avec on:do:, même ceux existants. Il n'y a pas de classes.

Nombre quand: ‘double’ faire: { ↲ ⛏ × 2. }.
✎ écrire: 3 double.

Notez que fait référence à l'objet lui-même. Pour stocker une valeur en tant que propriété d'un objet, utilisez : , les propriétés ne sont accessibles qu'à partir de l'objet lui-même et de ses dérivés.

☞ chat ≔ Objet nouveau.
chat quand: ‘nom:’ faire: { :je
	⚿ nom ≔ je.
}.

À part quelques détails, c'est essentiellement tout ce qu'il y a à faire ! Maintenant vous connaissez Citrine! Pour plus d'exemples, ouvrez le manuel d'apprentissage par l'exemple qui est disponible pour toutes les langues prises en charge par Citrine!

EXEMPLES (TOUTES LANGUES)

AMÉLIORER LES TRADUCTIONS

 


Produits

Citrine est open source (sous licence BSD) et le code source est disponible gratuitement.

TÉLÉCHARGER (GRATUIT) LE CODE SOURCE (GRATUIT)



Si vous n'aimez pas compiler la source vous-même (et qu'il n'y a pas encore de binaire disponible pour votre plate-forme), je peux créer un binaire pour votre plate-forme et la langue de votre choix pour une somme modique (les contributeurs et traducteurs Citrine l'obtiennent gratuitement, bien sûr).

CUSTOM BUILD

Souhaitez-vous un support de développement pour Citrine ? Vous souhaitez intégrer le langage de programmation Citrine dans votre service cloud, votre plateforme en ligne ou votre application métier ?

SOUTIEN AUX ENTREPRISES

Le Projet Citrine recherche activement des investisseurs. La technologie Citrine peut aider votre plate-forme SAAS/FAAS (ERP, CRM, gestion d'actifs, etc.) à faciliter la vie des utilisateurs expérimentés avec un langage de script localisé ou atteindre de nouveaux publics en fournissant aux utilisateurs ordinaires un outil de script extrêmement puissant dans leur langue maternelle. Permettez à vos utilisateurs de se libérer des capacités limitées des interfaces utilisateur graphiques.



Outils supplémentaires gratuits Outils supplémentaires gratuits

Téléchargez des logiciels supplémentaires, outils et suppléments linguistiques pour le langage de programmation Citrine.

 

FAQ

Pourquoi Citrine ?

Citrine est un langage de programmation simple, minimaliste et localisé suivant la philosophie Kayan1, pour les développeurs qui préfèrent écrire du code dans leur langue maternelle sans avoir de mots-clés anglais dans le mélange. Citrine a été spécialement conçue pour bien fonctionner avec n'importe quelle langue humaine naturelle. Citrine présente une grammaire très limitée mais flexible (et indépendante de la langue) et n’a pas de concepts complexes inutiles comme les classes, la syntaxe d'interpolation de chaînes et les types de données (tout est un objet), ce qui le rend facile à apprendre et à mémoriser. Citrine comporte également des nombres, des dates et une ponctuation localisés. La localisation peut être considérée comme l'étape finale dans la production d'un langage de programmation plus lisible et maintenable. Il a été prouvé que coder et étudier dans votre propre langue a un impact positif sur les résultats d'apprentissage2 et la qualité 3,4. Citrine peut également traduire du code. Citrine est référencée dans la littérature scientifique pertinente5. 1. D'après la philosophie de l'informaticien américain Dr. Alan Kay (considéré comme l'inventeur de la programmation orientée objet) 2. Apprendre à coder dans les langages de programmation localisés (MIT) 3. Effets de la localisation sur les exceptions en Java 4. L'enseignement de l'anglais est mauvais pour l'étude (PDF) 5. Article scientifique Inde (PDF)

A quoi sert Citrine ?

Le projet Citrine vise à créer (par ordre d'importance) un langage de programmation extrêmement simple, minimaliste, purement orienté objet et localisé pour améliorer la maintenabilité du code et réduire les barrières. Veuillez tenir compte de ces principes fondamentaux si vous envisagez de contribuer au code.

Qui sont les utilisateurs ?

Citrine peut être utilisé comme langage de programmation à usage général par les développeurs qui souhaitent améliorer la maintenabilité et la lisibilité en écrivant du code objet pur et minimaliste dans leur langue maternelle. Citrine vous permet également de discuter et d'expliquer la logique métier critique avec vos clients, leur permettant ainsi de vérifier son exactitude. En outre, Citrine peut être intégré dans des plates-formes cloud sans serveur ou FAAS* en tant que langage de script localisé. Une autre option consiste à intégrer Citrine en tant que DSL localisé** pour les utilisateurs expérimentés dans une solution SAAS***, afin de réduire les obstacles à l'adoption et d'atteindre de nouveaux publics. De plus, Citrine peut être utilisé pour enseigner la programmation de manière indépendante du langage dans les écoles et les universités. Enfin, Citrine est un projet de recherche pour analyser l'impact de la localisation sur la programmation.

Puis-je contribuer ?

Bien sûr, Citrine est open source (licence BSD) et nous pouvons partager du code par e-mail ou Github ou d'autres systèmes. Consultez la liste de souhaits des plug-ins pour commencer ! Citrine est écrit en C. Le Projet Citrine est apolitique.


Pourquoi des icônes dans la langue ?

Des concepts abstraits, mais fréquemment utilisés, sont représentés sous forme d'icônes dans Citrine. Par exemple, pour déclarer une nouvelle variable dans un programme Citrine, vous utilisez un doigt pointé (). L'inspiration pour cette approche vient de Smalltalk-701. Outre les pictogrammes, Citrine permet également l'utilisation d'espaces fins pour séparer les mots dans les noms d'objets et les parties de message afin d'éviter CaMelCase et snake_case. Vous pouvez utiliser les icônes dans votre code en installant la police Citrine (Citrine.ttf, qui fait partie du paquet de téléchargement) et en utilisant les codes Unicode (Linux : CTRL + SHIFT + u) l'IDE Berlian ou un paquet Geany Macro, voir la FAQ technique étendue. 1. Manuel Smalltalk-72

Quel type de portée Citrine utilise-t-elle ?

Citrine utilise la portée dynamique, par exemple, l'exemple suivant imprime '2' :

☞ f ≔ { q ≔ 2. }.

{ 
 ☞ q ≔ 1. f commencer.
 ✎ écrire: q.
}
commencer.
	

Puis-je utiliser l'héritage ?

Oui. En supposant que nous ayons un objet chat qui peut imprimer son nom, ici, nous remplaçons le comportement du message 'nom' par une nouvelle réponse. Le symbole "joue" une autre réponse du même objet. L'envoi du même message invoque le comportement remplacé. Si vous voulez vraiment la récursivité (c'est-à-dire invoquer le code que vous exécutez actuellement), préfixez votre message avec le mot "récursive". chat royal ≔ chat nouveau.

☞ chat royal ≔ chat nouveau.

chat royal quand: ‘nom’ faire: {
	↲ ‘votre altesse royale ’ +
	( ⚿ nom ).
}.

✎ écrire:
((chat royal nouveau nom: ‘Diva’) nom).

votre altesse royale Diva

Que se passe-t-il si un message n'est pas compris ?

Si un objet ne comprend pas un message, le message sera ignoré (Null Pattern). Vous pouvez cependant intercepter ces messages, de la même manière que les méthodes magiques de PHP :

☞ echo ≔ Objet nouveau.
echo
 quand: ‘répondre:’
 faire: 
 { 
  :s ↲ s + s. 
 }.
✎ écrire: echo ho!.
ho!ho!
 

Go back to homepage.