-- RomainCHAUMAIS - 18 Feb 2004

http://www.linuxfrench.net/article.php?id_article=915&var_recherche=gambas

DIS PAPA, LE BASIC, C’EST UN LANGAGE D’AVENIR ? Gambas : votre nouveau Basic VERSION 0.80 Le 23 janvier 2004

Il y a des langages que les moins de Vingt ans n’ont peut-être pas connus, certains préférant déjà le c, perl ou python.

Mais le basic a bercé l’enfance de certains d’entre nous (tout comme le langage machine, mais cela est déjà une autre histoire...)

Gambas est un basic, c’est-à-dire un langage simple, mais pas n’importe lequel... un basic orienté objet !

Oeuvre de Benoît Minisini, ce basic a tout pour plaire, et est un bon moyen d’apprendre un langage à la fois simple et structuré.

L’auteur c’est inspiré dans le concept de « Visual Basic » le célèbre basic de Microsoft, mais seulement pour son environnement de travail et la possibilité de commencer à créer son interface à partir d’un IDE graphique, pour tout le reste Gambas n’a absolument rien à voir avec son homologue...

Il évite déjà ses travers en structurant chaque projet créé, en le séparant en fichiers distincts. Ainsi lors de son écriture un projet est défini par des fichiers pour les classes, les formulaires, les modules, les données, etc. Son auteur le reconnaît lui-même, il s’est beaucoup inspirer de l’esprit de Java.

A la compilation, tous les fichiers sont réunis dans un seul et même exécutable.

Les possibilités sont nombreuses et il est également facile d’étendre le langage par l’ajout de librairies ou de classes supplémentaires

Bien sûr, l’accès aux bases de données n’a pas été oublié, ainsi il est tout à fait possible de se servir de MySQL ou PostgreSQL. Un gestionnaire de bases de données est d’ailleurs inclus dans Gambas, de quoi simplifier la vie du néophyte.

Gestionnaire de bases de données Gambas

Mais aussi piloter d’autres applications KDE (pour l’instant l’auteur a porté l’essentiel de son développement sur QT, mais prévoit de le faire sur GTK) grâce aux DCOP

Les possibilités sont nombreuses, et le basic est un langage simple, à essayer pour apprendre la programmation, voire plus si affinité (de nombreux projets (même commerciaux) sont en effet réalisés en Basic...

Un dernier mot toutefois sur le systeme de traduction de Gambas, vous trouverez dans l’éditeur de Gambas (lui-même totalement écrit grâce à Gambas) un menu "translate/traduire", ce menu vous permettra très simplement de traduire les zones de texte de vos applications, en les recherchant pour vous et en vous proposant de choisir la traduction. ainsi traduire une application Gambas est à la portée de tous...

Un logiciel et un langage à découvrir !

Interview de Benoît Minisini en 3 Questions !

pourquoi avoir créé Gambas ?

1) Parce que j’en avais envie.

2) Parce ce que cela me trottait depuis longtemps dans la tête.

3) Parce que Visual Basic est un langage mal conçu, incohérent, et bourré de bugs.

4) Parce que c’est un outil qui manque sous Linux et autres systèmes libres.

expliquez-nous pourquoi Gambas est un basic atypique ?

Gambas n’est pas vraiment un BASIC atypique. Il n’a rien de foncièrement révolutionnaire par rapport à Visual Basic, du moins pour l’instant :-)

Simplement, je l’ai programmé du mieux que j’ai pu, tout en me souciant de la cohérence du langage, de l’efficacité de son implémentation et de sa facilité d’utilisation. Et tout ça sans sacrifier à sa puissance d’expression.

Ainsi, la cohérence du langage implique que les instructions et les interfaces des composants emploient un vocabulaire intelligemment choisi, succinct, sans synonymes : par exemple, une propriété appelée ’Count’ renverra toujours le nombre d’éléments d’un objet, que celui-ci soit un tableau, une collection, une ListBox, ou un TreeView.

L’efficacité de l’implémentation signifie que les algorithmes utilisés soient optimaux, et que le programmeur sache toujours à quoi s’attendre : la classe Collection utilise une table de hachage qui se redimensionne automatiquement, les tables de symboles internes sont des arbres binaires, etc. Les sources sont disponibles ! D’autre part, l’interpréteur évite au maximum les tests sur les types de données et les recherches dans ses tables de symboles internes, en optimisant le code à la première exécution.

L’interpréteur en lui-même est loin d’être optimal (pas de Just In Time). Par exemple, je pense qu’il est plus lent que celui de VB en puissance de calcul brute et en boucles, mais largement plus rapide en traitement de chaînes de caractères(car celui-ci est fait "intelligemment") et dans l’accès aux contrôles graphiques (ActiveX est un ralentisseur considérable).

Sa facilité d’utilisation réside dans le fait que cela soit un Basic, dans son souci de cohérence, dans son modèle objet-évènement simple mais puissant, et, en gros, dans le fait qu’il n’y a en général qu’une seule manière de faire quelque chose (contrairement au C ou au Perl).

Dans tous les cas, l’IDE, lui-même programmé en Gambas, est une preuve de ce qu’on faire avec :-)

l’avenir de Gambas

Ce serait très simple s’il ne dépendait pas un peu du mien, et du peu de temps dont je dispose :-)

J’envisage les choses suivantes :

L’amélioration de l’IDE (complément automatique des instructions, interface MDI, plus de fonctionnalités de débogage, etc.)

Un système de persistence d’objets basé sur la notion de prévalence (http://www.prevayler.org), qui permettrait de stocker des objets SANS bases de données et d’une manière TRES SIMPLE (rien à voir avec ce qu’il faut faire en Java ou en .Net)

La possibilité de dessiner des états depuis l’IDE.

La possibilité de dessiner des pages HTML depuis l’IDE, enfin disons plutôt des formulaires spéciaux transformables en HTML. L’idéal serait de transformer un formulaire en XUL et une partie du code Gambas en JavaScript.

Mais je ne sais pas si c’est possible...

L’amélioration notoire du composant réseau, grâce à ’libcurl’. C’est Daniel Campos qui s’en occupe, et ça sera peut-être prêt pour la 1.0 : client HTTP avec gestion des cookies, connexions SSL, proxies, mots de passe, client FTP, client TELNET.

La possibilité de pouvoir faire des serveurs avec sessions.

Un composant SDL amélioré pour faire des jeux.

Un composant pour gérer les expressions rationnelles "à la Perl".

Un composant GTK+ entièrement compatible avec le composant QT, de manière à pouvoir utiliser son programme indifféremment avec l’un ou l’autre.

Bon, maintenant mélangez ce qui précède, et on commence à avoir un outil de développement qui permettra de créer des sites Web dynamiques sans écrire une seule ligne de SQL, de HTML, de ASP, de PHP et j’en passe ! Et pas nécessairement plus lents que les solutions actuelles.

ça devient intéressant, non ? Mais il ne faut pas rêver, certaines choses comme la transformation en XUL/JavaScript ne sont peut-être pas possibles... On verra !

par Albert Bruc