Je me prenais pour un "Cador" !!!

Résolu
mimo37 Messages postés 7 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 - 26 janv. 2009 à 21:15
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011 - 8 juil. 2009 à 00:22
Bonsoir à Toutes et Tous,
Voilà, je me prenais pour un "Cador" car depuis 2 années j'ai développé via le VBA de Excel une application qui correspond tout à fait à nos besoins et je suis émerveillé par sa fiabilité de fonctionnement.
J'ai développé cette application comme beaucoup à partir des macros dans un premier temps et ensuite avec l'aide fournie et aussi un peu grâce à des questions posées ici sur des forums (très efficaces).
Maintenant que cette appli tourne sans souci, je me sens un peu desoeuvré et j'ai décidé que fort de mon expérience, j'avais un avenir certain dans ce domaine !!!! malgré mes 56 balais et mon BAC - 3 ! d'autant que je souhaite pousser plus loin le développement de mon application !
Qu'est ce que je découvre ?
Visual Basic, VB 6, VB.NET, VB 2005, qu'est ce que tout cela ?
Vais-je devoir apprendre tout cela ?, si c'est oui je reprends la trompette immediatement au détriment de l'informatique...
Quelqu'un saurait il m'expliquer simplement ce qu'il en est ?
Peut être que mes questions sont trop basiques alors peut être que certains sites pour débuter sont mieux adaptés, mais lequels?
Je sais la compétence qu'il existe sur ces forums et je suis certain que je trouverai un guide dans ce labyrinthe !
Merci par avance
Mimo37

11 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
26 janv. 2009 à 21:45
ha les vieux
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2009 à 23:24
Visual Basic, VB 6, VB.NET, VB 2005....
Tout ça c'est de la daube avec laquelle on n'a jamais rien produit (aucun vrai logiciel), laisse tomber. Reste sur VBA, c'est largement suffisant comme pseudo langage.

Faut te mettre au C, seul langage avec lequel on peut tout faire. Bien entendu c'est nettement plus compliqué mais tu pourras faire de vrais programmes.
Peu importe l'age puisque dans tous les cas c'est trop tard pour en faire une profession. Si tu te sens tous les neurones en place et connectés alors fonce sur le C.
Bon courage.

ciao...
BruNews, MVP VC++
3
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
27 janv. 2009 à 12:08
encore mieux : mets toi au c++

attention il faut d'abord bien comprendre les bases du C, mais par la suite c'est beaucoup beaucoup plus puissant.
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 janv. 2009 à 12:46
"puissant" ???
Tant que le mot n'aura pas officiellement changé de sens, c'est non.

ciao...
BruNews, MVP VC++
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
27 janv. 2009 à 13:38
Exact.. le C++ n'est pas plus "puissant" que le C, c'est simplement la façon de programmer qui est totalement différente (quoi que... en C, on prend une structure, avec quelques énumérations comme membres, et on obtient presque une classe).

Cordialement, uaip.
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
27 janv. 2009 à 14:55
Salut,

Visual Basic : Version "visuelle" du BASIC, un langage de programmation polyvalent pour débutants. Le "visual" signifiant que tu peux dessiner tes fenêtres par glisser/déposer des composants.

A l'heure actuelle, le Visual  Basic est en gros subdivisé en différentes heu... familles :
<li>VB6 : Visual Basic 6. Environnement de développement Visual Basic en version 6. 10 ans d'âge. Obsolète selon Microsoft. Permet de faire des logiciels en natif ou en pseudo code interprété. Dernière version non dotnet, donc encore utilisée à cause de cela. Introuvable. Simple et facile d'emploi pour un débutant. Syntaxe très proche de VBA + fonctionnalités plus avancées.</li><li>VBA : Visual Basic for Applications. Tu connais il me semble.</li><li>VBScript : Proche de VBA/VB6. Permet de faire des scripts systèmes .vbs, un peu comme en remplacement du DOS. Utilisable aussi dans du HTML (On peut faire la même chose qu'en JScript le Java Script de Microsoft) à condition que le navigateur soit IE. Il n'y a pas encore de remplaçant au vbscript/jscript à ma connaissance (Un interpréteur de scripts systèmes très répandu sur les windows).
</li><li>VB.NET : Changement de technologie : les logiciels sont compilés vers du pseudo code .NET. La syntaxe du VB change profondément, ainsi que la phylosophie, beaucoup plus tout objet, et les librairies. Dans l'ombre du C#. Utilisé pour coder ce site. Différents VB.NET sont sortis :</li><ol><li>VB 2002 (VB7). Première version .NET.</li><li>VB 2003 (VB7.1). Passage au framework dotnet 1.1.</li><li>VB 2005 (VB8). Passage au framework dotnet 2.0.</li><li>VB 2008 (VB9). Passage au framework dotnet 3.5 (Globalement un 2.0 avec des librairies supplémentaires)</li></ol>Tu dois pouvoir télécharger une VB 2008 edition express gratuitement. Par contre, l'apprentissage sera plus dur que si tu pouvais te procurer une VB6 qui est infiniment plus proche du VBA.

Si tu veux abandonner le VB (Le passage au VBA -> VB.NET est pas forcément évident...) je te conseille le Delphi. Tu peux télécharger Delphi 6 ici, et trouver une clé . L'aide fournie avec l'environnement de développement est de très bonne qualité. Le langage est simple à apprendre tout en permettant de réaliser des applications presque aussi légères, portables et performantes que le C. Delphi 6 est une vielle version largement suffisante en terme de fonctionnalités, tout en étant très légères à l'installation et très rapides à l'exécution sur les configurations "modernes".
3
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
27 janv. 2009 à 16:23
pourquoi dire que C++ n'est pas plus puissant que C?

déjà il faudrait connaitre parfaitement les deux langages

Argument simple, C est inclus dans C++, donc a fortiori tu peux faire davantage de choses en C++ qu'en C (exemple: les algorithme de tri générique en C, il y en a ou?? il faut créer une nouvelle fonction si le type qu'on veut manipuler change..)
Y'a pas à dire, sans parler de programmation objet, rien que la généricité avec les templates permet de faire des choses bien plus puissantes qu'en C.

La puissance d'un langage se mesure par le panel d'outils qu'il offre au programmeur.. Aucun outil du C n'est pas présent en C++, la réciproque étant fausse, C++ est plus puissant que le C..

et d'ailleurs plus difficile à comprendre à 100%..
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 janv. 2009 à 17:17
Mais comme toute surcouche, le C++ masque l'implémentation, que soit pas template ou autre, le compilo aura écrit les autres fonctions et on ne les verra pas dans le script.
La belle affaire...
Pour autant c'est avec le C qu'on peut tout faire et non avec le C++. Essaie donc un 'new' sur une classe en kernel mode, tu nous raconteras.

ciao...
BruNews, MVP VC++
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
27 janv. 2009 à 20:21
Pour étudier la puissance C vs C++, je me propose d'étudier un peu la fonction mathématique "puissance" justement.

Les macros du C permettent souvent de faire le même code que les templates du C++. Mais pas toujours, comme ici.

C'est un algo parfois cité comme exemple où le C++ et ses templates, permettant la meta programmation, est censé  permettre d'obtenir ni plus ni moins qu'un code plus optimisé. "Optimisé" au sens performance à l'exécution meilleurs que celle du C à ce que je comprend.

Comment ? On va en fait utiliser les templates pour que le code machine généré soit exactement le bon code. On évite boucle, tests, et théoriquement même la récursivité. On sait que :

x^Y = x * x ^ (Y - 1)
x^0 = 1

Code testé sous gcc :
<hr size="2" width="100%" />#include
#include <stdlib.h>
#include <windows.h>

#define X 5
#define Y 5

using namespace std;

template inline double Puissance(double x)
{
    return x * Puissance<N - 1>(x);
}
template <> inline double Puissance<0>(double x)
{
    return 1.0;
}

double inline PuissanceC(double x, int N)
{
    int i;
    double res;

    res = 1;
    for (i = N; i > 0; i--)
        res *= x;

    return res;
}

double inline PuissanceC2(double x, int N)
{
    if (N == 0) return 1.0;

    return x * PuissanceC2(x, N - 1);
}

int main()
{
    LARGE_INTEGER init;
    LARGE_INTEGER end;
    double res;

    QueryPerformanceCounter(&init);
    res = Puissance<Y>(X);
    QueryPerformanceCounter(&end);
    cout << res << " " << end.LowPart - init.LowPart << endl;

    QueryPerformanceCounter(&init);
    res = PuissanceC(X, Y);
    QueryPerformanceCounter(&end);
    cout << res << " " << end.LowPart - init.LowPart << endl;

    QueryPerformanceCounter(&init);
    res = PuissanceC2(X, Y);
    QueryPerformanceCounter(&end);
    cout << res << " " << end.LowPart - init.LowPart << endl;

    system("pause");
}

<hr size="2" width="100%" />En théorie, le code C++ est plus rapide, et devrait être composé d'une série de Y multiplications par X. Pas de test, pas d'incrémentations... Un code "customisé" en somme.

En pratique, bif bof. Plutôt bof même. Faut dire que le compilo soit sacrément intelligent pour optimiser correctement notre template. Les résultats dépendent fortement de X et Y, et probablement des options de compilations.

Bon admettons que le compilo soit très intelligent. Faut se dire que ça va arriver un jour.

Conclusion : La voici, la preuve finale, ultime, suprême, incontestable, que comme le Java qui peut être plus rapide que le C (Je l'ai jamais vu celle là !) le C++ peut générer du code plus rapide que le C !

Brûlez le C !
Faîtes du C++ !

Nan partez pas encore, c'était une blague !

En fait on peut optimiser le code :
res = 3125;

Bah vi, tout est connu à la compilation !

Mais supposons que cela ne soit pas le cas...
Y est forcément connu pour que le compilo puisse générer le code du template.
Donc même pour le code C, un compilo intelligent pourrait inliner PuissanceC2 et dérouler la boucle.
Sachant qu'on peut l'inciter un peu plus à le faire avec une macro :
<hr size="2" width="100%" />#define PuissanceC3(result, x, N) { \
    int i;                          \
                                    \
    result = 1;                     \
    for (i = N; i > 0; i--)         \
        result *= x;                \
}
<hr size="2" width="100%" />Mais cela n'est pas si intéressant que ça à l'usage.

Vrai conclusion : Alors oui, je te plussois cosmobob : le C++ est plus puissant que le C. Tout le code ci-desssus est en C++ après tout. Mais un cas où les fonctionnalités que le C++ a en plus du C apporte quelque chose de vraiment positif je cherche encore.

Faut pas oublier les inconvénients des templates :


Codes généré plus gros, autant de fois que l'on instancie le template
(Sous certaines condition, généré une seule fois pour un Y).


Temps de compilation plus élevé. C'est toujours "amusant" à constater sur les projets mixtes C/C++.


Pas des plus portables : Le code ci-dessus ne fonctionne pas sous VC6. Non testé sous un autre VC.


Plutôt technique à coder. Vite fait de faire une bourde et code pas des plus lisible.


Le débogage (Pas à pas...) est plus complexe, vu que le lien entre le source et le code généré est plus floux.
3
mimo37 Messages postés 7 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009
29 janv. 2009 à 18:55
Bonsoir à tous et surtout merci d'avoir accordé un peu de votre précieux temps à répondre à mes questions.

Je dois avouer que vos différentes réponses sont plus des échanges entre vous afin de justifier un choix que des fusées éclairantes pour me montrer un chemin. C'est en tout cas ce que je ressens, mais c'est probablement parce que mon niveau de départ est trop faible.
Enfin pour positiver un peu, je vous dirais que la contribution (la première) de rt15 est assez conforme à ce que je m'attendais à trouver ici ! Et c'est pour cette raison que je vais aller voir Delphi.!  je sais que les critères de ce choix sont complètement débile, mais je n'en ai pas d'autres suffisamment compréhensibles.
Aussi je vous donne rendez vous dans 6 mois ou là je serai devenu un "Cador de Delphi" ou je me serai suicidé !

Merci encore et ne m'en veuillez pas de vous dire les choses telles que je les pense !
A bientôt
Mimo
3
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
8 juil. 2009 à 00:22
Ca fait 6 mois

Cordialement, uaip.
0
Rejoignez-nous