Quand j'y pense .... Small is beautiful

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quand j'y pense .... Small is beautiful

Message par Kwai chang caine »

crisot a écrit :J'aime bien Purebasic, parce-que justement il ressemble beaucoup au C, mais avec une syntaxe simplifiée et des variables auto-declarantes (entre autres).
Oui c'est exactement ce qui me laisse de l'espoir pour atteindre un jour mon rêve
Au debut j'ai trouvé et choisi PB parce que c'etait un Basic, qu'il etait portable (sens clef USB), petit, bas niveau donc puissant, qu'il creait des "vraies" DLL aussi facilement que des EXE.
Puis avec le temps, est venu se greffer la puissance des forums et de leurs utilisateurs et en dernier je me suis aperçu de la similarité avec le C ce qui m'a encore conforté dans mon choix. 8)

Maintenant je vais faire plaisir à FALSAM, si un jour j'arrive à atteindre mon rêve...pour créer ma fenetre je devrais ecrire ....
C'est long....mais il parait que plus c'est long....plus c'est bon :mrgreen:

Code : Tout sélectionner

#include <windows.h>

HWND WindowHandle; /* Handle de la fenêtre que l'on va créée */
HINSTANCE _hInstance; /* Instance du programme */

/* Nom de la classe que l'on va donner lors de
   l'enregistrement de la classe(Ca peut être
   n'importe quoi et sans espaces si possible :)) */
const char WinClassName[] = "MyWindowClass";

/* Prototype de la procédure qui va recevoir les messages envoyer */
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow);
void Eric(HWND hwnd);

/* Entré du programme */
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow)
{

	 /* Déclaration des variables */
	 /* Va contenir les messages */
	MSG message;
	/* Va servir pour créé la classe */
	WNDCLASSEX wc;

	/* Sauvegarde l'instance du programme */
     	_hInstance = hInstance;

	/* Création de la classe */
     	wc.hInstance = _hInstance; /* Instance du programme */
     	wc.lpszClassName = WinClassName;  /* Nom de la classe */
     	wc.lpfnWndProc = WindowProcedure;  /* Adresse de la procédure qui va recevoir les messages */
     	wc.style = CS_DBLCLKS;  /* Styles! */
     	wc.cbSize = sizeof(WNDCLASSEX);  /* Taille de la classe(ou struct) */
     	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);  /* Grande icône */
     	wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);  /* Petite icône */
     	wc.hCursor = LoadCursor(NULL, IDC_ARROW);  /* Curseur */
     	wc.lpszMenuName = NULL;  /* Menu */
     	wc.cbClsExtra = 0;  /* Optionnel */
     	wc.cbWndExtra = 0;  /* Optionnel */
      wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);  /* Couleur de fond de la fenêtre */

	/* Enregistre la classe */
	if (!RegisterClassEx(&wc))
            return 0;  /* En cas d'échec, renvoie zéro(Ferme le programme) */

	/* Crée la fenêtre */
	WindowHandle = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WinClassName, "Ma première fenêtre!!!",\
		WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, HWND_DESKTOP, NULL, _hInstance,\
		NULL);

	/* En cas d'échec, renvoie zéro */
	if (WindowHandle == NULL)
		return 0;  /* Ferme le programme */

	/* Affiche la fenêtre */
	ShowWindow(WindowHandle, SW_SHOW);
	/* Met à jour la fenêtre */
	UpdateWindow(WindowHandle);

	/* Tant qu'on recoi des messages, on boucle */
	while (GetMessage(&message, NULL, 0, 0))
	{

		TranslateMessage(&message);
		DispatchMessage(&message);

	}

	/* Fin du programme */
	return message.wParam;

}
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Quand j'y pense .... Small is beautiful

Message par microdevweb »

Perso, j'utilisais un 5gl avant (windev). j'avais pris Pb pour le fun, mais je réalise de plus en plus sa puissance. Et puis l'aide est top un petit coup de F1 et voila. Résultat j'utilise Pb de plus en plus, même si regrette un peux qu'il n'aie pas de couche Poo, je m'éclate de plus en plus à développer avec cet outil. Dommage qu'il soi encore trop méconnu et rarement utilisé en milieu pro.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Quand j'y pense .... Small is beautiful

Message par blendman »

microdevweb a écrit :Dommage qu'il soi encore trop méconnu et rarement utilisé en milieu pro.
oui, c'est vraiment dommage, car pb a un beau potentiel. il ne lui manque que quelques features pour qu'il soit vraiment énormissime (RTT avec sprite, Shader sur sprite/Screen, mise à jour de la lib 2D (pour l'AA), et quelques possibilités en plus pour les gadgets, + d'autres bricoles).
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quand j'y pense .... Small is beautiful

Message par Kwai chang caine »

Cette histoire de POO...
Je la lis depuis 10 ans...
Perso je n'aime pas ça, mais pas mal de membres en parle. .
Il y a même certains qui ont fait mieux qu'en parler, ils ont fait des pbi.
Ce que j'ai du mal à comprendre, c'est que si c'est si important que ça, pourquoi un des caids des forum ne prend pas les choses en main en complétant si besoin un pbi existant pour en faire un vraie surcouche poo ??
Je n'y connais rien, mais dans toutes les initiatives qui ont été offertes en open source, y en a peut être bien une qui est bien codée,...peut être incomplète mais bien codée. ..
Car de souvenir, ceux qui se sont lancés dans l'aventure, n'étaient pas des brouettes. ..
Alors pourquoi, quand le cador il pose son code...Ça fait pchiiit ??? :?
Y'a quand même pas que comate qui pourrait devenir une lib incontournable, open source et d'utilité publique. ..
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
crisot
Messages : 98
Inscription : lun. 30/août/2004 21:03

Re: Quand j'y pense .... Small is beautiful

Message par crisot »

Ce n'est pas simple. Je suis en plein dans le débat POO justement, codant et maîtrisant le C sur Amiga depuis des années, pour mon passage sur PC j'ai commencé à me pencher sur le C++. Au bout des premiers cours, j'avais le sentiment que ça ne servait à rien, que tout ce que le C++ permettait, le C pouvait le faire avec quelques fonctions de substitution. Mais pour avoir discuté avec des mecs qui touchent en POO et continué à lire les cours, il y a un moment où les possibilités deviennent tellement grandes et puissantes qu'on comprend qu'il faut être sur un langage pensé et conçu POO depuis le début.

Après il faut voir les choses autrement. La POO n'est pas une fin en soit. On peut tout à fait choisir un langage comme le C ou PB par pur choix personnel ! On est plus brillant quand est on plus à l'aise. PB est quand même bien loti de ce point de vue.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quand j'y pense .... Small is beautiful

Message par Kwai chang caine »

C'est justement ce qui m'étonnait...
N'y connaissant rien, et lisant bien souvent que la poo n'était qu'une simple couche, je trouvais bizarre que personne n'ai eu le courage de sortir un pinceau :mrgreen:
Je te rejoins sur ce point.
Un programmeur C bien organisé, avec ses lib, celles des autres, et maîtrisant ce dernier sur le bout des doigt, est sûrement plus rapide ou performant qu'un amateur, voir un programmeur moyen en C++
Et pour ce qui est de la passion, c'est pas tout d'avoir des grandes nageoires encore faut il avoir assez d'eau :mrgreen:

Et pourquoi devrait on suivre toutes les modes...des langages poo Y'a plus que ça. ..
Alors pensez aux anciens, et à ceux qui aiment lire de haut en bas et de gauche à droite ..
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Quand j'y pense .... Small is beautiful

Message par microdevweb »

On peut faire la même chose avec un langage procédural ou Poo, mais le gros avantage de Poo réside surtout dans la réutilisabilité du code, avec Pb on peut utiliser les modules, mais pas les instancier, ni faire une classe héritée. Bien qu'avec de la bricole on arrive à faire un semblant de Poo. La Poo est rébarbative si le language est pur Poo exemple java, mais donne d'énorme possibilité si le langage permet le procédural et la Poo. Quant on utilise des liste structurée on développe un peut dans le Style Poo

Code : Tout sélectionner

maListe\sonMembre=Valeur
idem pour les module, on accède en plus au méthodes

Code : Tout sélectionner

monModule::SonMembre=Valeur
monModule::Calcul(X,X)
La Poo (comme les modules) permet de regrouper tout le code, et de ne rendre accessible à l’utilisateur final que ce qui est vraiment nécessaire, moins de risque de boulettes.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quand j'y pense .... Small is beautiful

Message par Kwai chang caine »

Merci de tes explications MicroDevWeb 8)
Mouaihhh !! Je pense qu'il doit y avoir des cerveaux orientés objets..et des cerveaux procéduraux :|
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
crisot
Messages : 98
Inscription : lun. 30/août/2004 21:03

Re: Quand j'y pense .... Small is beautiful

Message par crisot »

C'est exactement ça. La POO permet de penser un programme à deux "layers" de développement. D'un côté le développement des objets, leurs attribus, leurs méthodes, qui seront codées par les "développeurs", et une couche "plus haute", qui sera l'utilisation de ces objets, par les "utilisateurs".

Sans doute encore plus puissant en développement en équipe. Après on peut effectivement tout faire avec un language procédural, c'est juste beaucoup plus long (et j'en suis pas encore au cours des classes héritées, mais il parait que le gros de la puissance de la POO réside là dedant).

Dans l'absolue le plus total, on peut tout faire en assembleur, puisque c'est finalement le langage unique. Tous les autres langages ne font que compiler vers l'ASM. Sauf que pour revenir au sujet de base, pour ouvrir une fenêtre, il faudra pour certains plusieurs semaines de code :mrgreen:
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Quand j'y pense .... Small is beautiful

Message par falsam »

microdevweb a écrit :La Poo (comme les modules) permet de regrouper tout le code, et de ne rendre accessible à l’utilisateur final que ce qui est vraiment nécessaire, moins de risque de boulettes.
Voila qui est bien résumé. En effet les modules disposent :
- D'un Espace Privé pour stocker les variables et procédures non accessibles par l'utilisateur du module.
A noter : Une variable dans cet espace privé peut être Global tout en étant inaccessible à l'extérieur du module.

- Un espace public pour stocker les variables et procédures qui seront accessibles par l'utilisateur du module.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre