MD ACME Software - Home Page
Home  •  Blog  •  ACME Desk  •  Historique / History  •  Screenshots  •  Download  •  FAQ  •  Betas
ACME Viewer  •  ACME TreeNote  •  ACME TX Tool  •  ACME ZipFolder  •  ACME Checksum  •  Pourquoi PureBasic ? / (Why PureBasic ?)
English version here

PureBasic ?

Tous les programmes présents sur ce site ont été créés en basic... étonnant non ?
Mais pas n'importe quel "vieux" basic, un basic récent (1998) et toujours maintenu (2018).
(20 ans en 2018! Pour mémoire, Visual Basic jusqu'à 6 (Microsoft) n'a été maintenu que durant 7 ans)

Ce langage s'appelle PureBasic. Son auteur est un Français, Frédéric Laboureur La première version est sortie le 22 octobre 2001 La version actuelle est la 5.62 (janvier 2018). Il sort environ une version par an.
Une version de démo (tous OS) est proposée en téléchargement libre. Les restrictions sont la limitation à environ 800 lignes et l'absence d'accès direct aux API. Ces 800 lignes permettent de tester chaque fonction même les plus élaborées.
Il est maintenu en parallèle une version LTS (Long Time Support) sur une durée de deux ans. Chaque nouvelle version est précédée d'une phase beta ouverte aux utilisateurs enregistrés.


Avant que vous ne lisiez le descriptif officiel (recopié ci dessous en italique) laissez-moi vous donner quelques indications techniques.
Ces informations seront utiles aux professionnels qui pourraient (devraient!) envisager d'utiliser ce langage.
Je l'utilise depuis des années dans le domaine du middleware, ETL, adminstration système, en parallèle avec Perl. (après avoir utilisé depuis des années, le C, C++, VB, Delphi, Lazarus, Python)
Ceci vous expliquera avant tout pourquoi on donne à ce langage comme qualité principale: l'efficacité (= productivité)
  • Ce basic ne compile pas directement, en fait il génère du code assembleur (en utilisant fasm pour la version Windows et Linux et yasm pour Mac OS X) et c'est ce code qui est ensuite compilé pour créer l'EXE.
    Pour info, cette technique de "générateur de code" est utilisée depuis des années dans l'industrie (exemple: les générateur de Cobol)
    C'est un système simple et brillant utilisé par plusieurs autres produits aussi (mais qui n'est hélas pas mise en avant sur le site)
    • L'assembleur est le langage le plus rapide qui existe.
    • Les 3 compilateurs ASM sont des produits connus, stables et rapides.
    • Le codeur peut se détacher de la syntaxe (imbuvable) des API système.
    • Le basic a une syntaxe très simple (On s'en sert partout: VB, VBS, VBA etc)
    • Cette simplicité de langage permet au programmeur de se concentrer sur le programme lui-même et pas perdre du temps à chercher des libs tiers, bugguées, abandonnées, payantes.
    • Le même code peut être utilisé (à quelques modifications près) pour générer un binaire Windows, Linux ou Mac
    • Il s'agit réellement d'exe, pas de machine virtuelle (java) ou de runtime encapsulé (python)
    • Les EXE sont petits et autonomes, y compris pour l'accès aux bases de données, à la génération graphique etc
    • On peut avec le même compilateur créer des applications Graphiques (GUI Windows ou GTK), Console ("DOS" ou shell, utilisable dans les scripts) et des DLL portables tous systèmes.
    • Il contient près de 1800 fonctions.
    • Un Form Designer est inclus, comme dans les IDE du langage C (il ne s'agit pas d'un RAD).
    • La documentation contextuelle (disponible en 3 langues) est particulièrement bien réalisée, cohérente et tenue à jour avec un exemple autonome pour chaque fonction.
  • Il n'y a qu'une seule version. Il n'y a pas, par exemple, de version "architecte" pour accéder aux bases de données comme c'est le cas ailleurs. PureBasic gère nativement l'accès aux bases SQL: SQLite, PostgreSQL, MariaDB/MySQL. Toutes les autres bases de données sont accessibles via ODBC
  • PureBasic gère bien-sur tous les types de variables, structures, pointeurs, assembleur interne, ActiveX, la 2D, la 3D, le dessin vectoriel...
  • Les encodages sont gérés (ex: Unicode, UTF-8)
  • Quelques librairies internes qui intéressent les entreprises:
    • Support liaisons série (donc aussi USB et Bluetooth si mappée sur un port série par le système)
    • Lib réseaux avec tout ce qu'il faut pour créer des application client/serveur TCP/IP
    • Lib HTTP (avec par exemple la possibilité de faire navigateur www en une seule ligne de code), une lib FTP avec dialogue FTP, CGI
    • Lib Zip, 7zip etc
    • Lib de chiffrement, CRC
    • Fonctions Drag and drop
    • Gestion du facteur de zoom dans les applications (DPI Aware)
    • Impression
    • Multi-tâches avec gestion des mutex, semaphores etc
    • Expressions régulières RegEx utilisant la lib Perl PCRE
    • Formats de données XML, INI, JSON
    • Gestion des Webservices (REST api)
    • et bien d'autres...
  • L'aide est disponible au format chm, en ligne (html) et au format PDF (manuel de 2150 pages en français)
  • La même licence donne droit (à vie) à toutes les versions (32 et 64 bits) et à tous les OS (Windows, Linux, Mac). (L'auteur apprécie les dons :-)
  • Il ne s'agit pas de cross-compilation: Il faut installer chaque compilateur sur chaque OS. On peut cependant en une seule passe (en mode projet) compiler les versions 32 et 64 bits d'un même programme et même utiliser plusieurs versions du compilateur.
  • Le programme est livré sous forme d'une archive de 30 Mo (décompacté 80). Il peut-être installé en version portable (même sur une clé usb)
  • Il n'y a pas de Royalty payment à reverser à l'auteur pour les programmes que vous créez.
  • L'auteur principal et son équipe sont présents sur les forums, les suggestions sont prises en compte (pas forcément tout de suite, et selon l'intérêt général). Les bugs même complexes sont étudiés et souvent résolus rapidement (pourvus qu'ils soient bien décrits)
  • Ne soyez pas effrayé par l'aspect vieillot de l'IDE: il est d'une prodigieuse efficacité, notamment au niveaux des outils de debbug

En un mot: tout ce dont on a besoin, on le fait et sans stress. D'ailleurs une grande partie des utilisateurs ont pas mal d'années d'expérience dans d'autres langages et le jour où on leur demande de produire quelque-chose de viable, rapide, simple à maintenir sans leur imposer de langage, c'est ce langage qu'ils choisissent.

Je cite ici maintenant la description par son auteur.


PureBasic est un langage de programmation basé sur les règles du langage BASIC. Ses caractéristiques majeures sont :
  • Portabilité: fonctionne sous Windows, Linux et MacOS X.
  • Rapidité: véritable compilateur qui produit des exécutables compacts et optimisés.
  • Simplicité: utilise la syntaxe du langage BASIC, très répandue et simple à apprendre.

PureBasic a été conçu aussi bien pour les débutants que pour les programmeurs expérimentés. Nous avons consacré beaucoup de temps et d’efforts pour vous proposer un langage rapide, fiable et convivial. Malgré sa syntaxe de base simple et rapidement assimilable, les possibilités de PureBasic sont infinies, grâce à de nombreuses caractéristiques évoluées comme, entre autres, les pointeurs, structures, procédures, listes dynamiques, etc. Le programmeur expérimenté n’aura aucune difficulté à accéder aux structures du système d’exploitation et aux API’s.

Les caractéristiques principales de PureBasic:

  • Large panel de commandes internes permettant de créer tout type d'application ou de jeu
  • Support de tous les mots-clé du Basic standard
  • Compilateur très rapide qui crée des fichiers exécutables optimisés et compacts
  • Aucun fichier externe (DLL, exécuteur...) n'est nécessaire lors de la création du fichier exécutable
  • Support des procédures pour une programmation structurée avec variables locales et globales
  • Accès total aux API's du système d'exploitation pour les programmeurs avancés
  • Utilisation optimale des possibilités de chaque machine par l'utilisation de commandes spécifiques
  • Code source du programme immédiatement transposable sur Windows, MacOS X ou Linux
  • Editeur de texte et système de développement dédiés à PureBasic

Quelques références:
Webmaster: webmaster@mdacme.com
MD ACME Software (mdacme.com) est un site personnel à but non-commercial hébergé par / is a personal site for non-commercial purposes hosted by gandi.net
Toutes les marques citées en référence sont copyright de leur auteurs respectifs / All trademarks referenced are copyright of their respective authors