Panoramic : un nouveau langage Basic

Panoramic est un langage BASIC que je développe pour Windows depuis une dizaine d'années et que j'ai récemment porté sous Android puis maintenant sous MAC OS.


 

Mon but est de proposer un langage multi-plateforme avec la devise : "code somewhere, execute anywhere" (coder quelque part, exécuter partout).

 

Ce langage utilise les mots-clés classiques du BASIC (DIM, IF, THEN, ELSE, DATA, PRINT, etc) auquel j'ai ajouté des fonctionnalités pour utiliser les objets graphiques (BUTTON, EDIT, FORM, MAIN_MENU, etc), le dessin, les SPRITEs, la 3D.

 

Je l'ai voulu le plus simple possible, à  la portée du programmeur du dimanche.

Par exemple, pour créer un bouton qui visualise un texte, c'est :



BUTTON 1 : REM crée un bouton qui portera le numéro 1
CAPTION 1,"cliquez"


Pour créer un programme qui :

- crée un bouton affichant "cliquez"

- puis qui affiche "OK" quand on a cliqué dessus, on a besoin de 8 instructions (difficile de faire plus simple !):



LABEL clic
BUTTON 1
CAPTION 1,"cliquez"
ON_CLICK 1,clic : REM le sous-programme clic s'exécutera quand on cliquera sur le bouton
END : REM le programme principal s'arrête ici
clic:
CAPTION 1,"OK"
RETURN


 

Pour fonctionner, il n'a besoin de rien et se suffit à  lui-même.

Il est autonome et portable (je l'utilise d'ailleurs à  partir d'une clé USB).

Il ne nécessite pas que XCode soit installé sur votre machine.

Il tourne sous Yosemite et EL Capitan (je n'ai pas encore essayé d'autres versions de MAC OS).

 

Il se présente sous forme d'un éditeur qui permet de charger, de sauvegarder et de modifier un source, de l'exécuter et d'en produire un exécutable.

De même, l'exécutable produit se suffit à  lui-même : il est autonome et portable et n'a besoin de rien pour tourner, si ce n'est d'un MAC !

 

Il est livré avec une aide (Help) et quelques exemples divers.

 

J'allais oublier : il est gratuit.

 

Comment on l'utilise ?

Vous le téléchargez à  partir d'un fichier :


ou d'une image disque :


Vous le faites glisser par exemple sur le bureau ou dans le dossier de votre choix.

Vous double-cliquez sur son icône et il se lance.

 

La fenêtre principale s'ouvre et il est prêt à  accueillir votre source.

Quelques fichiers exemples sont automatiquement installés dans le répertoire de l'application.

Vous pouvez les essayer pour voir de quoi est fait ce langage Basic.

Ces exemples disparaissent quand l'éditeur est fermé.

 

Vous pouvez les charger par la commande Fichier / Ouvrir, puis les exécuter de 3 façons (au choix) :

- en cliquant sur l'icône éclair,

- par le menu Fichier / Exécuter,

- par le raccourci F9.

 

C'est juste une version alpha d'un portage sur MAC. Des fonctionnalités ne sont pas présentées dans les exemples et ne figurent pas encore dans l'aide.

 

Des bugs peuvent exister car je n'ai pas encore tout testé en profondeur.

 

PANORAMIC possède sous Windows une communauté très active et très réactive sur son forum.

 

Aidez-moi à  le développer et à  l'améliorer. Je ne vous demande pas de le coder avec moi, mais seulement de me signaler les améliorations que vous aimeriez, et de me donner des détails si vous rencontrez un bug.

C'est ainsi qu'il progresse sous Windows depuis 10 ans...

Et qu'il progressera demain sur Mac.

Réponses

  • Ton post manque peut-être d'un lien sur le forum du langage :


     


    http://panoramic-language.pagesperso-orange.fr/French/


     


    Il est écrit avec quoi ce Basic ? Objective-c ?

  • Je cherchais justement quelque chose comme ça pour mon petit fils. Il a 16 ans et vient de faire une seconde technique "informatique". Tout ce qu'il a appris c'est, utiliser un programme de dessin 3D (de base) sous windows. Boucles, variables ....etc, lui pas connaitre du tout !


  • Je viens de tenter de l'utiliser. Je n'ai pas réussi a charger une application de démo. Par rapport aux règles de Apple, les menu en Anglais alors que je suis sur un système Français, ce n'est pas bon. 


    J'aimerais savoir en quel language c'est programmé et sous quel système de développement, car l'architecture interne du programme est ultra minimale ! C'est plus une version alpha qu'une béta !

  • C'est bon, j'ai trouvé le Français et j'ai téléchargé une exemple !


  • JaeckJaeck Membre
    août 2016 modifié #6

     


    Ton post manque peut-être d'un lien sur le forum du langage :


     


    http://panoramic-lan...ange.fr/French/


     


    Il est écrit avec quoi ce Basic ? Objective-c ?



    Merci d'avoir donné le lien sur le site du langage.


    Il y a aussi un magazine qui sortira son numéro 30 le mois prochain. 


    Panoramic le Mag


    Le langage lui-même est codé avec Delphi et l'éditeur est codé avec Lazarus. On peut donc dire que tout est codé en Pascal.


     


     


    Merci à  Tablier d'avoir testé quelques exemples.



     


     


    l'architecture interne du programme est ultra minimale !

    Et pourtant, le code du langage proprement dit (sans l'éditeur) fait à  ce jour un peu plus de 125000 lignes.


     


    Il gère 633 mots-clés sous Windows, et 410 sous Mac.


     


    Il permet de manipuler 32 sortes d'objets système sous Windows et 25 sous Mac (BUTTON, EDIT, MEMO, COMBO, ALPHA


    FORM, LIST, PICTURE, CHECK, OPTION, MAIN_MENU, SUB_MENU, SOUND, TRACK_BAR, OPEN_DIALOG, SAVE_DIALOG, SCROLL_BAR, PROGRESS_BAR, CONTAINER, DLIST, SCENE2D, TIMER, PANEL, HVIEWER, IMAGE).

     


    Il permet de manipuler 17 sortes d'objets 3D sous Windows et 7 sous Mac (3D_CUBE, 3D_BOX, 3D_SPHERE, 3D_CONE, 3D_CYLINDER, 3D_TEXT, 3D_MESH).


  • Ah le Pascal ! les premiers Mac se programmaient en Pascal ! il y a longtemps, longtemps, longtemps !!


     Je ne parlais pas de l'architecture du basic, mais de l'architecture du Bundle. Le basic lui-même fonctionne bien, rien à  dire jusqu'à  présent. La doc en Français est un plus pour les débutants jeunes (même s'ils devront par la suite se mettre à  l'anglais). 


    Les choses qui surprennent: pas de sélection automatique de la langue et les options ne sont probablement pas sauvegardées (il faut remettre la langue à  chaque lancement). Surprenant mais pas essentiel la traduction de "option" par "choix". Généralement on met "Option" ou plutôt "Préférences" (c'est mineur). 


  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2016 modifié #8

    Bonsoir Jaeck


     


    Franchement, j'ai des soucis avec une appli qui comporte pas comme tous les autres applis OS X. Surtout avec une appli qui à  jonché mon bureau avec plusieurs fichiers inattendus !!!


     


    Je connais très bien Delphi et le soit-disant FireMonkey. De mon avis, tu devrais renoncer la folie de porter une telle appli vers OS X.


     


    De ce que j'ai pu déterminé avec un essai bref, elle n'apparaà®t comme attendu, les elements UI ne sont pas "native" et, même avec considération qu'elle est encore jeune, si les applis qu'elle pourrait créer sont de même apparence, je n'oserais jamais l'utiliser commercialement.


     


    Joanna (ex-TeamB)  :-*


  • Joanna: Jaeck ne fait pas du commercial, il fait du gratuit (free), c'est ce que j'aime et pour ma part je ne fais rien d'autre. Néanmoins tu as raison, l'aspect et la manière dont fonctionne le GUI est à  coté de ce que préconise Apple. Je pense que Jaeck va y remédier car c'est une version bêta qu'il présente là .


  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2016 modifié #10


    Joanna: Jaeck ne fait pas du commercial, il fait du gratuit (free), c'est ce que j'aime et pour ma part je ne fais rien d'autre.


    ça, c'est bien entendu. Il a fait un sacré boulot pour arriver où il se trouve aujourd'hui. Pour Windows, aucun problème. Pour eux qui aime BASIC, c'est un outil extraordinaire :)


    Néanmoins tu as raison, l'aspect et la manière dont fonctionne le GUI est à  coté de ce que préconise Apple. Je pense que Jaeck va y remédier car c'est une version bêta qu'il présente là .


    Côté OS X, je m'inquiète si c'est jamais possible d'utiliser les APIs FireMonkey, fournis avec Delphi, pour bien accomplir un UI vraiment multi-plateforme et qui convient les utilisateurs d'OS X, dans un seul base de code. Il y a les autres solutions qui peuvent créer les UIs vraiment "native" mais, après 10 ans de codage en Delphi, je peux imaginer qu'il serait réticent de se bouger de ce qu'il connaà®t.


    Moi, j'ai quitter Delphi il y a 12 ans pour C# et, si j'avais jamais le choix pour les applis multi-plateforme, je choisirais C# avec Xamarin ou, mieux, pour une choix de langues, RemObjects, que l'on puisse utiliser avec Oxygene (Pascal), C# et même Swift pour cibler Windows, Android, iOS et Mac.


    Surtout, il faut éviter d'essayer de faire les UIs "universel"
  • tabliertablier Membre
    août 2016 modifié #11

    Surtout, il faut éviter d'essayer de faire les UIs "universel"



    Tout a fait ! ++++++++


     


    Je n'ai jamais regardé ça: Est-ce que LLVM compile le Pascal ?


  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2016 modifié #12


    Je n'ai jamais regardé ça: Est-ce que LLVM compile le Pascal ?




     


    Oui, Embarcadero (Delphi) et RemObjects tous deux utilisent LLVM. La difference est que Embarcadero utilise encore trois modèles de mémoire : déterministe, comptage de références et ARC - dans le même code !!!  :'(


  • LexxisLexxis Membre
    août 2016 modifié #13

    Le projet à  l'air vraiment intéressant. Cependant l'éditeur s'écarte tout de même des conventions Mac OS:


    • CTRL à  la place de COMMAND pour accéder au copy&paste m'a vraiment dérouté, tout comme certaines options du menu (Lignes/Pas Lignes par exemple).
    • L'éditeur était scotché en haut à  droite sans possibilité de déplacer la fenêtre, je ne sais pas si cela est le fonctionnement voulu.

    Je suis parfaitement conscient du caractère "jeune" de l'éditeur sur Mac OS mais s'il t'est impossible de faire autrement avec les outils que tu utilises cela risque d'être un frein à  son adoption sur cette plate-forme.


     


    Il serait intéressant d'avoir une version standalone du compilateur (il me semble que la séparation avec l'éditeur est déjà  réalisé) qui pourrait s'intégrer dans n'importe quelle chaine de compilation (voire même une version REPL) cela peut être utile un langage simple  comme le basic pour automatiser certaine tâche par exemple, tout le monde ne fait pas du python, perl ou autre.


     


    Delphi pour le Core et pour l'éditeur il me semble que en créer un from scratch ne devrait pas être long, du coup Xamarin pourrait être une solution (les bases du C# sont relativement simple à  appréhender) ou Xcode (avec swift) ou l'intégration dans des éditeurs qui existent (comme Sublime Text, ou... bon je n'en connais pas vraiment d'autre) voire éventuellement un projet communautaire (sur Github ou autre) pour que tout le monde puisse participer à  l'élaboration de l'éditeur et même à  l'amélioration du compilateur (de nos jours il n'y a pas de secret, si tu veux que PANORAMIC ai une change d'être adopté massivement (enfin tout est relatif) il faut le lâcher dans la nature)


     


    Autre chose (et c'est un avis tout personnel) le site semble tout droit sorti des année 80 mais c'est surtout les PDFs. Je conçois leur caractères pratiques mais c'est anti-ergonomique sur un site. Un petit site sous WordPress avec une extension pour générer automatiquement le PDFs du post en cours de lecture et le tour est joué. Un site différent pourrait participer aussi à  l'adoption de ta solution. Mais je le répète c'est un avis tout personnel et certainement pas une critique.


     


    En tout cas Bravo pour ce projet pour ta ténacité (10 ans tout de même sur ce projet)


     


     


    ----


    function JeRale;


    begin


    Personnellement j'ai toujours trouvé que Delphi (Pascal et Objet dans la même phrase ce n'est pas saint) était une abomination sans nom. Et encore plus depuis leur framework FMX. Cela étant dit je ne dénigre pas le travail colossal que les développeurs ont dû sué pour créer un tel produit. Et cela ne pas pas empêché de l'utiliser (sous la torture) pendant plusieurs années.


    end;


  • J'ai envoyé 2 messages perso à  jaeck exactement dans le droit fil de ce que tu proposes là . Je lui ai même envoyé le petit programme basic que j'ai écrit pour me rendre compte des problèmes. Il est ci-dessous.


     


  • Joanna CarterJoanna Carter Membre, Modérateur

    Question :



    until 1>2

    ça fait une boucle infinie ?  ???


  • Ben ouais, c'est très simple ! et pour sortir du programme on entre 0 (ou rien du tout) et on clique "Ok"




  • Ben ouais, c'est très simple ! et pour sortir du programme on entre 0 (ou rien du tout) et on clique "Ok"




    C'est surtout très tordu ..

  • tabliertablier Membre
    août 2016 modifié #18

    C'est surtout très tordu ..



    Non, c'est une technique très classique en C. Cela permet d'enchainer les calculs sans relancer l'application et la sortie de l'application est une décision de l'utilisateur. J'ai écrit 1>2, mais n'importe quelle condition non réalisée marche. En C on écrivait:


    bool the_hell_freeze = false ;


    et on terminait la boucle infinie par


     } until the_hell_freeze ;


  • Je sais bien, moi aussi j'ai bidouillé en C au siècle précédent. Ce qui est tordu c'est d'utiliser une expression mathématique fausse pour générer une valeur booléenne.

  • JaeckJaeck Membre
    août 2016 modifié #20

    Merci pour ces retours.


    Je viens de mettre à  disposition une nouvelle version qui a été améliorée suite à  vos remarques.


     


    Pour l'éditeur :


    - prise en compte des raccourcis usuels sur Mac pour Undo, Cut, Copy, Paste, Find, Replace (COMMAND au lieu de CONTROL)


    - dans le menu en français, Option a été remplacé par Préférences


    - les préférences sont mémorisées (langue, couleurs et style des mots-clés, des commentaires et des chaines, période de l'autosave, police et taille des caractères)


     


    Pour le langage :


    - la fenêtre de saisie (correspondant à  INPUT) est déplaçable


    - le fenêtre de saisie réagit à  RETURN du clavier (plus besoin de cliquer sur le bouton OK)


     


    Je suis en train d'examiner vos autres remarques (emploi d'un autre éditeur, version standalone, ...)


  • Je trouve ça génial un BASIC sur Mac  :)


    Je vais pouvoir apprendre un peu de programmation à  mes filles (9 et 11 ans).


     


    Ha, le logiciel fonctionne sur MacOS Sierra même si chaque lancement de l'éditeur affiche un avertissement qui-fait-peur.


     


     


  • DrakenDraken Membre
    août 2016 modifié #22

    Un vrai geek enseigne le C++ à  ces enfants, de préférence à  5 ans .. 


  • Un geek, ça pue la transpi, ça boit du Coca même pas light et ça porte la barbe donc c'est suspect.


  • Et les pizzas, alors ? Ne jamais oublier les pizzas quand on parle des geeks.

  • Ooooooouf !  Je n'ai pas de barbe, je ne bois pas de coca et je mange rarement des pizzas ! Je ne suis pas un geek !


  • Rarement cela ne veux pas dire JAMAIS. Moi je ne mange JAMAIS de pizza !


    (saleté d'intolérance au Gluten..  >:( )



  • Rarement cela ne veux pas dire JAMAIS. Moi je ne mange JAMAIS de pizza !


    (saleté d'intolérance au Gluten..  >:( )




     


    Avec un peut d'huile de coude -> des pizzas sans gluten

  • Oui, je sais. Mais il n'y a pas de four dans mon appartement, ce qui limite mes possibilités culinaires. Même pas besoin d'huile de coude. Il y a des fonds de pizza sans gluten prêtes à  l'emploi chez mon dealer bio habituel (Les Nouveaux Robinsons à  Montreuil).

  • Ho... Je compatis dans ce cas.


  • JaeckJaeck Membre
    septembre 2016 modifié #30

    J'ai remanié un peu l'interface de l'éditeur.


     


    Les fichiers d'exemples ne sont plus créés automatiquement au démarrage, mais sur demande, dans le menu "Examples".


    STOP a été retiré du menu, car sans effet.


    Lines / No Lines a été placé dans les "Préférences"


Connectez-vous ou Inscrivez-vous pour répondre.