Salut,
Bon pour les question de langage, chacun prêche pour sa paroisse. Ceci dit, vu ton expérience, je ne serai que trop te conseiller Lazarus.
Le langage est du Pascal-Objet (comme Delphi). Ce qui est assez agréable car :
Tu dispose d'un vrai langage de programmation procedural et objet, fortement typé. Qui te permet du maîtriser ton application de A jusqu'a Z (j'appelle ça supprimer la magie).
Ceci-dit tu dispose :
- de routines de haut niveau et de qualité pour gérer les problèmes courent sans réinventer la roue (transtypage, gestion des pointeurs, travail sur les listes, les fichiers, les buffers...)
- d'un clikodrome fonctionnel pour faire des interfaces graphiques (support de GTK et Windows, GTK2 en phase beta et QT en projet).
- de la possibilité de compiler sous Linux, Windows, FreeBsd, Mac OS
beta) sans changer un mot de tes sources (a moins que tu appelles des routines système sans passer par le framework fournie)
Comme un petit exemple vaut mieux qu'un long discours. Voici un petit exemple
Pour appeler des commandes tu peux utiliser un composant TProcess :
//on définit une procédure
procedure Execute_dd(var_if, var_of :string) ;
//var_if et var_of serons importés lors de l'appel de la procédure
var
path_dd: string;
//path_dd est une variable locale
Process_dd : TProcess;
//on initialise une instance locale de l'objet TProcess
begin //on commence
// on définit l'emplacement de dd très simplement
path_dd := FileSearch('dd', GetEnvironmentVariable('PATH'));
//renvoie la chaîne '/bin/dd'
try //permet de prévenir les exceptions d'I/O
begin
with Process_dd do //on crée un objet TProcess (implicite)
begin
CommandLine := path_dd+' if='+var_if+' of=' +var_of;
Execute;
end
end
except
showmessage('Une erreur s''est produite');
end
end;
Ensuite tu appelle ta procédure
Execute_dd('~/boot.img', '/dev/fd0');
C'est assez simple. Ceci dit rien ne t'empèche de faire plus compliqué en appelant directement le programme, en implemantant une fonction similaire à dd.
C'est ça que j'aime avec ce langage. On peut faire simple ou compliqué suivant ses besoins.
Enfin j'espère que cela n'est pas trop confus... :=)