Programmation par blocs

image
Bonjour Je vais commencer l'article par une petite digression. Avez-vous été déçu lors de votre première rencontre avec la programmation? J'ai supposé que la création de programmes passe par l'interaction avec un outil complexe mais très intéressant, dans lequel je peux faire mon truc préféré (collecter des constructeurs) à un nouveau niveau. Cependant, à la place, j'ai dû apprendre à écrire des fichiers texte composés de divers opérateurs, crochets, chaînes et autres constructions de texte. Des décennies ont passé, j'ai appris à programmer, et j'avais déjà oublié cette déception, mais quand j'ai vu l'actualité de Google Blockly et Scratch sur le réseau, j'ai ressenti de la nostalgie ...

Ces outils, sans même prétendre être professionnels, sont tellement intéressants! Pas de textes ni de compilations - vous faites glisser des blocs et obtenez instantanément le résultat. Cela peut-il être fait pour les professionnels? Je suis sûr que vous le pouvez! Et dans cet article, je voudrais exprimer ma vision de comment.

À quoi ça sert?


Si nous nous éloignons de la méthode de test pour écrire des programmes, nous devons séparer la structure du code du programme et son type ...

Comment est-ce?


Pour ce faire, tout d'abord, nous devons stocker les codes source sous une forme différente. Ils doivent être une description des instructions et des données du programme dans l'une des formes existantes de stockage de données, telles que json, xml ou tout autre. Ce fichier (figure 1, à gauche) peut avoir une apparence plutôt laide et ne succombe à aucun moyen raisonnable de le modifier directement, cependant, dans un environnement de programmation, il se transformera en code bloc (figure 1, à droite).

image

L'environnement de programmation lui-même ne traite pas des codes de texte, mais des "blocs" à partir desquels le code de programme est construit.

Que nous apportera-t-il?


1. Premièrement, nous nous débarrasserons des différences insignifiantes dans la syntaxe des différentes langues. Par exemple, les blocs de code en C ++ sont séparés par des accolades, et Ruby fait attention aux mots-clés ... Dans l'éditeur, vous pouvez configurer les deux types de programmes, rien n'y changera. Les paramètres d'affichage personnels permettront au développeur de regarder le programme à sa guise. De plus, nous pouvons utiliser n'importe quel caractère dans la dénomination, y compris les espaces.

image

2. Deuxièmement, la vitesse d'écriture d'un programme augmentera. Maintenant, afin d'écrire une instruction for dans un langage de type C, nous devons écrire le texte for lui-même, puis les crochets, les paramètres, les points-virgules, les accolades et appuyez sur Entrée. Dans notre version, l'environnement de programmation, en cliquant sur une certaine combinaison de touches, insère un cycle et ne demande qu'à entrer ses paramètres. Par exemple, appuyer sur «f» mettra la boucle for à la place du curseur et proposera d'entrer le nombre de répétitions et le nom du compteur via la tabulation en appuyant sur la touche entrée à la fin.

image

3. Troisièmement, il sera possible d'assurer l'indépendance vis-à-vis du langage du programmeur. Les opérateurs de langue peuvent être indiqués par certains caractères ou des mots clés peuvent être affichés dans la langue maternelle du programmeur. S'il souhaite que les opérateurs soient appelés en anglais, russe ou dans toute autre langue, il sélectionne cette langue dans les paramètres de l'éditeur et les noms des opérateurs changent «à la volée». En ce qui concerne les noms des objets et des méthodes, c'est plus compliqué, mais dans tous les cas, si le programme est développé par des développeurs russes, vous pouvez tout nommer en russe - si vous sélectionnez ce scénario, il n'y aura pas de différence entre les noms des opérateurs et les noms des objets et des méthodes - tout sera en russe. Cela peut simplifier l'apprentissage pour les étudiants et les adultes qui ne connaissent pas l'anglais. De plus, dans les équipes multinationales, il est possible d'utiliser deux noms pour nommer les objets et les méthodes - en anglais et dans la langue du développeur.

image

4. Quatrièmement, il sera possible de mettre à jour la structure du programme. Si une nouvelle fonctionnalité apparaît dans la nouvelle version de la norme qui modifie l'apparence des conceptions de blocs, il sera possible de publier des correctifs pour les anciens programmes qui les apporteront automatiquement dans une nouvelle apparence. Dans la figure 4, vous pouvez voir quelles anciennes constructions de langage peuvent être transformées par l'environnement de programmation en une nouvelle forme.

image

image

5. Cinquièmement, il sera possible de représenter la structure du programme de n'importe quelle manière appropriée. Par exemple, sous la forme d'une salle en trois dimensions à travers laquelle vous pouvez naviguer comme des jeux informatiques et modifier la relation entre les classes et les objets en trois dimensions.

Environnement de programmation


Cette façon de présenter le programme ne permettra plus de le modifier dans un simple éditeur de texte. Pour éditer le programme, vous aurez besoin d'un environnement de programmation spécial. Développer la première version de cet environnement de programmation est plus difficile que pour les langages traditionnels, mais il existe des moyens de démarrer plus facilement. Par exemple, vous pouvez commencer avec l'éditeur de fichiers de données, qui vous permet d'éditer des fichiers de n'importe quel format (xml, json, yaml, etc.) de la même manière - en utilisant des blocs. Dans ce cas, l'utilisateur n'aura pas besoin d'étudier la syntaxe de ces fichiers et pourra éditer n'importe lequel d'entre eux en apprenant à éditer les fichiers de données uniquement dans ce programme.

Ensuite, il y aura la tâche de développer un compilateur qui peut "à la volée" construire un programme lors de son édition. Et à l'avenir, il sera plus facile de fournir des fonctionnalités de saisie semi-automatique et d'ajouter des fonctions à l'environnement de développement qui nécessitent une connaissance "approfondie" du code du programme, car vous n'avez pas à analyser les codes de texte. De plus, l'environnement de programmation «connaîtra» tout ce qui est nécessaire sur le programme pour une meilleure mise en évidence et refactorisation de la syntaxe, puisque toutes les données nécessaires pour cela peuvent être stockées de manière invisible pour le programmeur dans le fichier de données du programme.

Conclusion


Je suis sûr que la méthode de programmation décrite ouvrira d'énormes opportunités aux programmeurs et accélérera et simplifiera considérablement le développement d'applications. Cependant, l'un sur le terrain n'est pas un guerrier. Le développement d'un tel produit nécessite une approche et des ressources performantes. Je suis solitaire et je travaille à distance - ce projet est trop difficile pour moi ... Peut-être que si vous vous intéressiez à lui, pourrions-nous travailler ensemble?

Source: https://habr.com/ru/post/fr469337/


All Articles