Le Soldat Inconnu a écrit :Garzul, Monsieur fait du C++, honte sur lui
Pour en revenir au sujet principal, moi ce qui m'a séduit dans PureBasic, c'est la facilité de prise en main (le fait d'avoir une aide en FR y ait pour beaucoup)
Je doit dire que j'avais essayé le C++ et le VB mais .... euh ... j'ai pas été loin, je retrouvais pas mes petits et je mettait une heure pour faire quelquechose.
PB, je le trouve vraiment rapide pour faire un programme (Logiciels ou 2D)
Bon j'ai pas essayé IBasic Pro, je te laisse te faire ton avis sur la question
chacun ses petites habitudes, à toi de prendre celui qui te correspond le mieux (enfin, moi, j'aurais choisi comme ça)
Moi, perso, j'ai pas envie d'en changer, de mon PB.
Je fais du C, oui, mais jamais pour des projets important (j'ai un rad de dev pour ca), je suis d'accord avec ton analyse, le c est un language rapide mais tres chiant a coder, par exemple un leger programme que je fais en bcx (basic) me prend environ 2 h, le meme codé directement en C pres du double de temps, c'est pour cette raison que je m'interesse aux nouveaux basics surtout ceux qui permettent d'allier vitesse de codage et optimisation de l'exe, c'est le cas de powerb, pure et ibaspro...
Dobro, ok, j'arrete, il est vrai que les forums que j'ai frequenté temporairement sont beaucoups moins cool que le votre, la plupart des membres prennent en general un post qui sort du produit utilisé comme une attaque, et croyez moi, c'est tres chiant de debattre dans ce cas la, perso, je laisse plutot tomber dans ce cas...
Pour en revenir au sujet, il me semble qu'il y'a tres de personnes qui ont testés ibaspro sur ce forum, sinon j'aimerais bien connaitre d'autres avis !
Je fais aussi du C et du C++ mais je te rectifierais en disant que c'est plutot lorsque l'on commence à programmer des interfaces graphiques que ces langages sont "chiants" (en fait ce sont plutot les apis à la microsoft qui le sont).
Comme pour le VB, l'idéal est de faire la partie graphique en PureBasic et la partie "core" ou les parties critiques en C/C++, ce qui ne te demandera pas beaucoup plus de temps.
nico, pour certains languages, au lieu de tester, j'aurais du dire informer sur le web, c'est le cas pour ethosbasic, gfabasic et powerbasic quoique pour gfa j'avais une licence sous atarist, donc je connais bien, la version pc doit s'en approcher ce basic etait pour l'epoque excellent...
Pour clarifier, je n'ai pas testé powerbasic parce que je l'ai trouvé un peu cher 199$ pour un compilo basic, meme la version dos, mais il devrait y'avoir une version demo sur le site officiel (je crois l'avoir vu) ou alors peut etre que tu peux faire une demande sur leur site. bien qu'il soit cher, l'avantage de powerbasic d'apres ce que j'ai lu sur c'est les pack suplementaire base de donnee et outils divers qui facilitent la programmations egallement beaucoup d'activité autour de ce language...
Ouaf-Ouaf (amusant le pseudo), attention je ne suis pas en train de t'inciter a abandonner pure, je n'ignore pas que le changement d'un language peut etre tres fatiguant car il faut s'adapter a de nouvelles commandes et syntaxe quoiqu'en basic ce n'est pas difficile. cela dit, ca ne peut pas faire de mal de voir les alternatives, mais je suis d'accord concernant la doc dispo uniquement en anglais, d'ailleurs je l'ai dit, c'est l'un des avantages de pureb...
KarLKoX, la desolé, je ne suis pas d'accord, tu oublie la declaration obligatoire et tres precises des variables, les pointeurs en c, la gestion de la memoire qui n'est pas simple et puis les classes en c++, la programmation object, et la syntaxe (les boucles for-next, les parentheses necessaires...) que je trouve vraiment merdique et qui demande une memorisation de tous les instants, la declaration des libs, et je ne parlerais pas de la creation de l'interface, a moins d'acheter borland c++ ou visual c++ avec leurs ides, et la on va vers les milles euros pour un systeme de dev complet. avouez que ce serait ridicule d'acheter ca pour la creation de petits utilitaires.
Tiens un exemple de bcx tiré des exemples de sources console (dos) :
DIM K
CLS
FOR K = 0 TO 15
COLOR K,0
LOCATE 2+K,5,0
PRINT "Introducing BCX! The Basic To C Translator for Win32 by Kevin Diggins."
NEXT
COLOR 15,1
LOCATE 23,28,0
INPUT "Press Enter To End" , K
COLOR 7,0
CLS
Le source basic occupe environ 1 ko, croirez vous que la translation en c occupe environ 8 ko et il s'agit d'un simpe programme avec une boucle et affichage d'une ligne a differentes couleurs en mode texte, vous remarquerez locate, cls, color qui existent nativement avec la syntaxe bcx et egallement avec l'ancien quickbasic dos doit etre cree sous C...
bon, il est vrai que la translation n'est peut etre pas optimisé car formaté sur un shema precis par bcx, mais le resultas approche une programmation manuelle, j'ai eté optimiste en disant que la prog basic me prenait 2 fois moins de temps, je rectifie en disant qu'en fait parfois le gain en temps est 4 fois superieur...
// *************************************************************
// Created with BCX -- The BASIC To C Translator (ver 4.76)
// BCX (c) 1999, 2000, 2001, 2002, 2003, 2004 by Kevin Diggins
// *************************************************************
// Translated for compiling using the Lcc-Win32 Compiler
// *************************************************************
#include <conio.h>
#include <direct.h>
#include <ctype.h>
#include <io.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
#include <setjmp.h>
#include <time.h>
#include <stdarg.h>
#include <process.h>
// *************************************************
// System Variables
// *************************************************
COORD cursor;
HANDLE hConsole;
int color_fg = 7;
int color_bg = 0;
int ScanError;
char InputBuffer[1048576];
// *************************************************
// User Global Variables
// *************************************************
static int K;
// *************************************************
// Standard Prototypes
// *************************************************
void cls(void);
void color (int,int);
void locate (int,int,int=1,int=12);
char* BCX_TmpStr(size_t);
char* mid (char*, int, int=-1);
char* left (char*,int);
char* RemoveStr (char*,char*);
int instr(char*,char*,int=0,int=0);
char *_stristr_(char*,char*);
int scan (char *input, char *format, ... );
int Split (char [][2048], char*, char*, int=0);
// *************************************************
// Main Program
// *************************************************
int main(int argc, char *argv[])
{
hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
cls();
for(K=0; K<=15; K+=1)
{
color (K,0 );
locate (2+K,5,0);
printf("%s\n","Introducing BCX! The Basic To C Translator for Win32 by Kevin Diggins.");
}
color (15,1 );
locate (23,28,0);
printf("Press Enter To End");
K=0;
gets(InputBuffer);
ScanError = scan(InputBuffer,"%d",&K);
*InputBuffer=0;
color (7,0 );
cls();
return 0; // End of main program
}
// *************************************************
// Run Time Functions
// *************************************************
int Split (char Buf[][2048], char *T, char *Delim, int Flg)
{
int Begin = 0;
int Count = 0;
int Quote = 0;
int Index = 0;
int lenT = strlen(T);
char Chr34[2]={34,0};
for(Index=1;Index<=lenT;Index++)
{
if(instr(Delim,mid(T,Index,1))&&!Quote)
{
strcpy(Buf[Count],(char*)mid(T,Begin,Index-Begin));
if ((Flg & 2) == 0) // 0 if old version
Count++;
else
if (Buf[Count][0] != 0) Count++;
Begin=0;
if((Flg & 1) == 1) // 1 if true
strcpy(Buf[Count++],(char*)mid(T,Index,1));
}
else
{
if(strcmp(mid(T,Index,1),Chr34)==0) Quote=!Quote;
if(Begin==0) Begin=Index;
}
}
if(Begin)
strcpy(Buf[Count++],(char*)mid(T,Begin,Index-Begin));
if((Flg & 1) == 0) // 0 if false
for(int i=0;i<=Count;i++) strcpy(Buf,(char*)RemoveStr(Buf,Chr34));
return Count;
}
Voici un autre exemple en bcx cette fois pour windows, creation d'une petite fenetre, centrage et avec un texte alert et changement fond ecran fenetre rouge et blanc alternativement, c'est assez simple en bcx (source environ 2ko) :
GUI "Alert"
GLOBAL TimerID
GLOBAL Change
GLOBAL Form1 AS CONTROL
GLOBAL Label AS CONTROL
SUB FORMLOAD
Form1 = BCX_FORM ("Alert",0,0,75,50)
Label = BCX_LABEL ("Alert",Form1,0,0,0,75,50)
TimerID = SetTimer (Form1, 1, 1000, NULL)
MODSTYLE (Form1,0,WS_MINIMIZEBOX|WS_SIZEBOX|WS_MAXIMIZEBOX,0)
MODSTYLE (Label,SS_CENTER OR SS_CENTERIMAGE)
BCX_SET_FONT Label, "Garamond", 28
CENTER (Form1)
SHOW (Form1)
END SUB
BEGIN EVENTS
SELECT CASE CBMSG
'***************
CASE WM_TIMER
'***************
IF wParam = 1 THEN
Change = NOT Change
InvalidateRect ( Label,0,TRUE ) ' Force a redraw
End If
'***************
CASE WM_CTLCOLORSTATIC ' Colorize our static text controls
'***************
IF (HANDLE) lParam = Label THEN
If Change Then
BCX_SET_LABEL_COLOR (Label,QBCOLOR(12),QBCOLOR(15))
ELSE
BCX_SET_LABEL_COLOR (Label,QBCOLOR(15),QBCOLOR(12))
END IF
END IF
'***************
CASE WM_DESTROY
'***************
KillTimer(hWnd,1)
PostQuitMessage(0)
EXIT FUNCTION
'***************
END SELECT
END EVENTS
Bon, ne regardons pas les apis, regarde seulement les boucles for-next, les parentheses, le parametres d'egalisation, les params de comparaisons, les if-else, c'est beaucoup de complications pour pas grand chose...
Concernant ta remarque *** Comme pour le VB, l'idéal est de faire la partie graphique en PureBasic et la partie "core" ou les parties critiques en C/C++, ce qui ne te demandera pas beaucoup plus de temps ***
Je ne sais pas vraiment si ce serait plus rapide, pureb si je ne me trompe pas genere de l'assembleur et ce language est a priori plus rapide que le C, il faudrait faire des tests a ce niveau notement avec des boucles for-next et calcul arithmetiques sur des nombres entiers, reels, je dois cependant avouer que la rapidité n'est pas mon critere personnellement, c'est plus le temps de developpement que je souhaites optimiser et le basic le permet si en plus j'ai la rapidité, tant mieux...
Pour le reste, sur internet, il y'a beaucoup de languages gratuits, perso j'ai installé dans la categorie C lcc, pellesC et Dernierement Dev C++ que j'utilisent parfois, j'ai egallement testé dev pascal (une daube par contre), sinon freepascal une alternative gratuite a delphi serait interessant si on lui ajoute l'interface lazarus, helas pour ce dernier, je ne suis pas allé loin, le fichier occupe environ 30 mo, difficile a telecharger avec mon modem 56k, je ne l'ai donc pas testé pour le moment mais sa reputation est bonne sur le web...
Depuis environ 3 ans, j'ai testé plusieurs languages, a part Le Soldat Inconnu et KarLKoX il n'y a pas beaucoup d'autres utilisateurs assez curieux pour tester d'autres languages, etes vous uniquement interessé par pureb...
pour ma part ton article m'a donné envie d'essayer le ETHOSbasic
qui est super cool, avec une gestion des Bank memoire comme le TOS Basic
et par contre il me parait un peut lent !! mais compillé ça roule bien !
par contre il dispose d'un Debuggeur comme j'en voudrait un sur le purebasic
en effet on peut poser des break points dans le listing sans avoir a taper une commande (call debugger) mais juste en selectionant une ligne du programme et en appuyant sur la touche F9 cela pose un petit sens interdit a coté des numero de lignes !
d'autre part en mode Trace on apercois les lignes du programme de l'editeur
défiler sur chaque commandes , quel confort de "voir" tourner les boucles
et de regarder le resultat a l'ecran !!
c'est presque un Softice !! ou un OLLYDBG
bref ce language est tres interessant, je continue mon observation !
petit bemol la doc est en anglais est n'est pas sensible a la ligne en cours
comme en purebasic ou l'on peut selectinner une commande dans l'editeur pour avoir l'aide relatif a cette commande selectionné a l'aide de la touche F1
a priori le Ethos basic n'est prevu que pour faire du Jeux 2D
la 3D j'ai pas encore trouvé !!
c'etait Dobro , de la ligne du front des Basics ..
Dobro a écrit :pour ma part ton article m'a donné envie d'essayer le ETHOSbasic
qui est super cool, avec une gestion des Bank memoire comme le TOS Basic
et par contre il me parait un peut lent !! mais compillé ça roule bien !
par contre il dispose d'un Debuggeur comme j'en voudrait un sur le purebasic
en effet on peut poser des break points dans le listing sans avoir a taper une commande (call debugger) mais juste en selectionant une ligne du programme et en appuyant sur la touche F9 cela pose un petit sens interdit a coté des numero de lignes !
d'autre part en mode Trace on apercois les lignes du programme de l'editeur
défiler sur chaque commandes , quel confort de "voir" tourner les boucles
et de regarder le resultat a l'ecran !!
c'est presque un Softice !! ou un OLLYDBG
bref ce language est tres interessant, je continue mon observation !
petit bemol la doc est en anglais est n'est pas sensible a la ligne en cours
comme en purebasic ou l'on peut selectinner une commande dans l'editeur pour avoir l'aide relatif a cette commande selectionné a l'aide de la touche F1
a priori le Ethos basic n'est prevu que pour faire du Jeux 2D
la 3D j'ai pas encore trouvé !!
c'etait Dobro , de la ligne du front des Basics ..
Tiens, tu me donne envie de reellement le tester celui la
Je vais voir si j'ai le temps, pour la 3d j'ai rien vu la dessus...
#include <stdio.h>
/* f = foreground - b = background */
void color(int f, int b)
{
printf("\033[%d;%dm", f, b);
}
int main(void)
{
int k;
fflush(stdout);
for (k = 0; k <= 15; k++)
{
color(k, 0);
gotoxy(2+k, 5)
printf("Introducing BCX! The Basic To C Translator for Win32 by Kevin Diggins.");
}
color(15, 1);
gotoxy(23, 28);
printf("Press Enter To End");
getch();
color(7, 0);
fflush(stdout);
return 0;
}
Pour le deuxième exemple, c'est le point que j'avais déja mis en avant : le C/C++ n'est pas ce qu'il y a de plus pratique pour la création d'une GUI.
Tu expliques :
- que le typage fort du C mais je ne pense pas que ce soit une lacune, au contraire, de nombreux utilisateurs de purebasic le demande à leur tour (j'en fait partis).
- les pointeurs : ca s'utilise de la même manière en C qu'en PureBasic,
- la gestion de la mémoire : la oui, je te l'accorde, PureBasic dispose d'une sorte de ramasse miette,
- les classes en c++ : la par contre, c'est plutot une qualité car bien utilisées elles offrent beaucoup de souplesse et ne sont nullement difficille à utiliser ('fin ca dépend de ce que l'on en fait),
- la programmation object : on peut en faire en purebasic,
- la syntaxe : la aussi, je te l'accorde même s'il s'agit d'un avis plutot personnel,
- la déclaration des libs : pas forcément, il existe moult technique pour éviter de déclarer les prototypes quand bien même lorsque l'on ne dispose pas de l'entête nécéssaire,
- la création d'interface : la aussi, je suis d'accord avec toi mais pas besoin de payer pour avoir quelque chose de pro, Pelles'C fait tres bien l'affaire tout comme Glade ou encore DevC++.
Donc en résumé même si je ne suis pas trop d'accord sur le fond, on est d'accord sur la forme : oui le C/C++ demande plus de travail que l'équivalent en PureBasic mais pas pour les tâches "critiques" qui ne demanderons pas beaucoup plus de temps.
Concernant le stos basic, j'avais failli l'acheter au lieu de gfabasic a l'epoque pour l'atari st, j'ai retrouvé la societe qui apparement l'a mis dans le domaine pulic et offre les sources a la communauté atari et amiga, c'est par ici :
Tient, j'ai fait un peu d'Amos dans ma jeunesse, ca ressemble pas du tout à l'assembleur mais plutot à du (Q)Basic mieux pensé : il permettait en quelques lignes de faire des démos de fou, je me souvient encore de la fois où j'ai réussi à refaire les effets psychédéliques de la démo State Of The Art de Spaceballs ^_^
Au fait Karlkox, j'ai pas repondu, j'etais occupe a telecharger ethosb...
J'ai fait ca a la va vite en utilisant bcx, A priori oui si tu enleve les fonctions ajouté par bcx qui selon le compilateur c sont en general contenu dans des includes suplementaires, je crois d'ailleur que ton code ne fonctionne pas tel quel, ou est la fonction gotoxy...
mais dans le fond c'est pareil, c'est du c avec toutes ces contraintes. comme tu l'admets toi meme, c'est quand meme plus simple et plus rapide en basic , c'est d'ailleur surement ce qui te fait utiliser pureb bien que tu as l'air de maitriser le c, c'est la ou je voulais en venir...
Maintenant, si tu dis que tu programmes avec la meme vitesse avec le c et avec pureb, alors je serais plus admiratif qu'autre chose, ce n'est helas pas mon cas, j'ai taté du quickC et du quickbasic sous dos il y'a longtemps, maintenant du c pour des petits utilitaires en ligne de commande, dernierement j'utilise plus souvent directement bcx pour le meme boulot car ca me fait gagner enormement de temps, pour ce qui de mes programmes de gestion base de donnee, j'utilise windev un rad assez performant dans ce domaine bien qu'il genere des programmes d'une taille relativement importante mais c'est corrigeable en utilisant un programme d'install exterieur avec un fort taux de compression, et puis de toutes facon le client s'en fout, ce qu'il veut, c'est une interface impeccable et un programme qui roule bien, qui est fiable et qui fait la tache qu'on lui demande...
maintenant, pour la creation d'interface avec pellesC ou dev c++, tu m'interesses, comment tu fais et avec quel outils, glade je crois que c'est sous linux, il y'a egallement kdevelop sous ce systeme...
Pour ce qui est de stos, sur le site officiel ils disent que c'est de l'assembleur 68000, attention je parle bien evidement du code source du basic lui meme pas des programmes fait avec
j'avais le GFA basic 3.5
avec les procedures repliable geant !! !!
j'ai fait queques programmes sous GEM et quelques acc (sur STF et Falcon030)
avec le minitel branché on pouvait debuger sur l'ecran du minitel
tout en utilisant l'ecran de l'ordi pour le programme !
du multi-ecran avant l'heure !!
le Stos + les addonts pour le Falcon030 (et oui il a tourné sur cette machine)
j'adoraie le principe des Bank memoires , et ça me manque un peu sur le pure !!
pis tu pouvais lancer une anime de sprites et l'afficher a l'ecran
alors que l'on continuai a programmer (sprites sous interuption )
cela permettai une previsualisation
il est en libre telechargement sur quasi tout les site d'emulation du ST
ainsi que le GFA d'ailleurs !
j'ai eu l'omicron et meme le fast Basic avec la cartouche
(je ne l'ai plus retrouvé !! demenagement !)
qui etait vraiment rapide !!
le Logo (j'ai encore le bouquin !!) ... mais ça n'a rien a voir !
Je viens de tester EthosBasic, je me marre, ce machin m'a planté l'ordinateur
a deux ou trois reprises, jamais vu un truc pareil, meme les compilateurs gratuits que j'ai essayé font mieux...
Je viens de tester EthosBasic, je me marre, ce machin m'a planté l'ordinateur Twisted Evil
comment ça planté ??
moi sur Xp ça tourne !!
ce machin comme tu dit c'est toi qui en a parlé le premier !
Bon, puisque le sujet a l'ai de vous interesser, j'ai testé les basic suivants :
Blitzbasic : etonnant pour la 3d, notement un exemple de fps genre doomlike tres rapide...
Bcx : opensource gratuit, translate les sources basic en C (lcc, pellesC, borland C 5.5 free), generation d'exe tres compacts vitesse des progs excellentes ameliorable avec les options d'optimisations des compilos C....
Basic4GL : opensource gratuit, Un interpreteur basic, opengl 3d, quelques exemples etonnant, seul defaut la generation d'exe peu performante, le core et le code sont generes dans le meme exe, ce qui fait des exes relativement important optimisable cependant avec upx un compresseur d'exe, mais c'est gratuit, il ne faut pas trop en demander en plus...
Powebasic : commercial, excellent.
Darkbasicpro : rien a en dire, pour les newbies peut etre, instable, mais permet de faire de la 3d assez facillement, ne m'a pas convaincu...
Gfabasic : je l'utilisais il y'a longtemp avec atari st, la version pc n'a pas l'air tres suivi...
Ethosbasic : pour la creation de jeux...
c'est d'ailleur sur tes dires (comme quoi tu avait deja testé)
que je me suis mis a le tester !
Je viens de tester EthosBasic, je me marre, ce machin m'a planté l'ordinateur Twisted Evil
comment ça planté ??
moi sur Xp ça tourne !!
ce machin comme tu dit c'est toi qui en a parlé le premier !
Bon, puisque le sujet a l'ai de vous interesser, j'ai testé les basic suivants :
Blitzbasic : etonnant pour la 3d, notement un exemple de fps genre doomlike tres rapide...
Bcx : opensource gratuit, translate les sources basic en C (lcc, pellesC, borland C 5.5 free), generation d'exe tres compacts vitesse des progs excellentes ameliorable avec les options d'optimisations des compilos C....
Basic4GL : opensource gratuit, Un interpreteur basic, opengl 3d, quelques exemples etonnant, seul defaut la generation d'exe peu performante, le core et le code sont generes dans le meme exe, ce qui fait des exes relativement important optimisable cependant avec upx un compresseur d'exe, mais c'est gratuit, il ne faut pas trop en demander en plus...
Powebasic : commercial, excellent.
Darkbasicpro : rien a en dire, pour les newbies peut etre, instable, mais permet de faire de la 3d assez facillement, ne m'a pas convaincu...
Gfabasic : je l'utilisais il y'a longtemp avec atari st, la version pc n'a pas l'air tres suivi...
Ethosbasic : pour la creation de jeux...
c'est d'ailleur sur tes dires (comme quoi tu avait deja testé)
que je me suis mis a le tester !
moi j'aime bien !
dobro, relis ce post, c'est l'un des basics que je n'ai pas reellement testé, j'ai juste visité le site officiel...
Ok, je viens de tester ethosbasic sous xp pro, effectivement, ca marche, mais alors c'est lent lent lent et pourtant j'ai un p4 2.8 et une geforce, du coup j'ai un peu honte d'avoir cité ce language sans l'avoir testé au prealable, ca m'apprendra, pourtant le site officiel avait l'air assez pro comme quoi les apparences, si vous voulez vraiment vous eclater, essayez Basic4GL , c'est gratuit, ca gere l'openGL et le forum est tres actif avec des exemples tres interessants...