2010-06-04 3 views
4

Je suis un programmeur AS3 décent. Je travaille dans les jeux, et c'est ma raison pour la programmation. Bien qu'il y ait beaucoup à faire avec Adobe AIR, je crois comprendre que l'apprentissage du C++ est probablement une bonne direction à suivre. J'apprendrais beaucoup de programmation de niveau inférieur si j'en avais besoin plus tard, et j'aurais plus de facilité à apprendre d'autres langages orientés C. Je vois beaucoup d'informations pour les personnes qui cherchent à apprendre l'AS3 qui connaissent le C++, mais pas l'inverse.Apprendre C++ à partir de AS3

Pourquoi C++? La compatibilité multi-plateforme est importante pour moi, donc je ne suis pas particulièrement intéressé par C# ou Objective-C à cette jonction. Je suis également conscient de Haxe, et bien que j'adore le concept, après avoir fait quelques recherches, je m'inquiète d'investir beaucoup de temps dans quelque chose de si récent avec des ressources d'apprentissage limitées et de la documentation.

Je suis à la recherche de conseils et de ressources (livres, articles) liés à ce sujet. Merci d'avance!

+2

Votre question n'est pas différente de toutes les autres questions "Comment puis-je apprendre C++?" Je pense qu'il est sûr de dire que presque tout le monde qui essaie d'apprendre le C++ sous-estime les différences entre la langue qu'il/sait déjà et C++. Vous semblez être l'un d'entre eux car vous vous attendez à ce que "d'autres langages orientés C" soient similaires. La similarité est principalement limitée à la syntaxe. Le style de programmation est totalement différent. Ma suggestion serait de commencer au début. Rechercher des recommandations de livres. – sellibitze

+0

http://stackoverflow.com/questions/2963019/how-to-learn-proper-c – Amarghosh

+0

@sellibitze: d'un point de vue AS3 est, je pense qu'il y a des tonnes de choses similaires entre "langages orientés C", qui donnent vous devez vous soucier de WTF, comme la différence entre le tas et la pile, la gestion de la mémoire explicite, l'arithmétique du pointeur et le processus de construction. En outre, je pense qu'une comparaison entre C++ et un langage de choix, soulignant à la fois les similitudes et les différences est utile. Et la question n'est pas la même pour toutes les langues, car les langages autres que C++ diffèrent également. : P – back2dos

Répondre

2

À propos de Haxe: Personnellement, je ne vois aucun risque à l'utiliser. J'ai complètement changé pour Haxe d'AS3 il y a environ 9 mois, et je pense que c'était une très bonne décision. AS3 a complètement calé depuis sa sortie. Bien sûr, l'API du lecteur a grandi, mais le langage lui-même n'a pas évolué, à l'exception de l'introduction de vecteurs typés. Bien que je pense que votre préoccupation générale envers Haxe est injustifiée, je dois souligner que Haxe/CPP est une bête différente. Bien que le projet soit très prometteur et ambitieux, il a ses problèmes. Beaucoup de fonctionnalités Haxe cool sont traduites en C++ avec un surcoût sérieux (bien que dans les situations critiques de performance, vous pouvez simplement les éviter). Le code résultant n'est vraiment pas agréable à lire, le débogage n'est pas vraiment évident (vous pouvez déboguer le code, mais vous devez corriger le problème dans la source Haxe d'origine) et il n'y a pas de façon canonique d'utiliser la sortie Haxe de C++ d'une manière décente. Et la plate-forme C++ est connue pour avoir des bizarreries mineures, bien qu'elle soit devenue raisonnablement stable.

La question est maintenant, qu'est-ce que vous essayez exactement d'atteindre l'apprentissage C++. Haxe/CPP est une manière décente d'utiliser un langage de haut niveau obtenant à peu près les mêmes performances que C++, tout en restant encore plus multiplateforme. À mon humble avis, d'un point de vue AS3, la chose la plus intéressante à propos de C++ est son accès de bas niveau et les modèles, qui sont tous deux des aspects très puissants.

Pour moi, AS3 est fondamentalement un Java pauvre, à l'exception des traits dynamiques et fonctionnels pour la plupart inutilisés. Ainsi, si vous êtes déterminé à apprendre le C++, je suggère, vous essayez learning C++ from Java.

+0

-1 pour dire haxe est "encore plus crossplatform." C'est une déclaration sérieusement erronée. –

+0

@AscensionSystems: Vous voulez m'éclairer? – back2dos

+0

@AscensionSystems: 1. haXe peut être compilé avec le code source NekoVM ou le code source PHP, les deux interpréteurs étant écrits en langage C. 2. haXe n'obtient pas explicitement la portabilité de C++ lorsqu'il est exécuté sur l'AVM, mais accessoirement. Il n'y a aucune raison pour laquelle ils ne l'auraient pas implémenté en langage C ou D ou tout autre langage assez proche du métal. 3. Il n'y a pas de bonne façon d'exécuter C++ dans un navigateur standard (les meilleures options que je connaisse sont http://tinyurl.com/3jpky3b et http://tinyurl.com/6bf6mr), mais il représente l'un des plus grands du monde plates-formes. 4.C'est 30+ ans;) – back2dos

4

Je ne pense pas que vous allez trouver beaucoup d'aide qui est adaptée aux personnes qui connaissent AS3 qui cherchent à apprendre le C++. C'est un peu trop spécifique. Essentiellement, votre expérience AS3 vous aidera dans votre capacité générale à programmer, formuler des algorithmes et des classes, mais très peu est pertinent pour le fonctionnement de C++.

En tant que tel, le meilleur que je peux offrir est ce que les autres ont offert auparavant. Ce sont quelques discussions avec des liens vers bonne ressource:

What is the best source to learn C++?

What is the best way to learn C++ if I have a bit of other programming experience?

En général, je suis contre des tutoriels qui tentent d'enseigner une langue en termes d'une autre; c'est comme essayer d'apprendre une nouvelle langue étrangère en traduisant chaque mot - ça ne marche tout simplement pas. Vous devez apprendre une langue dans ses propres termes pour l'apprécier pleinement.

+0

Je suis en désaccord avec votre dernier point. Par exemple, savoir le latin et l'anglais est très utile pour apprendre le français. Il y a des similitudes entre les langues et il y a des différences et apprendre une langue en utilisant une autre est accompli en comprenant les deux. C'est aussi la façon dont vous apprenez une langue étrangère basée sur la vôtre. C'est à peu près la même chose avec les langages de programmation. La seule erreur (très fréquente) que vous ne devez pas faire est d'essayer de traduire, au lieu d'utiliser les idiomes appropriés du langage pour exprimer ce que vous avez l'intention de faire (que ce soit dans une phrase ou un programme). – back2dos

+0

@ back2dos ne pas oublier que les différences entre les langues (programmation et parlé) peuvent dérouter les gens, par exemple en russe, vous voyez la lettre anglaise P qui ressemble à un R. anglais Et exactement la même chose en programmation, si vous essayez d'utiliser Les optimisations AS3 en C++ ne fonctionneront tout simplement pas. – Shedokan

1

Je sais c'est une vieille question, mais, eh bien:

Procurez-vous un exemplaire de « Programming Principles and Practice using C++ » par Bjarne Stroustrup, inventeur du C++. Votre histoire ressemble presque exactement à la mienne. J'ai commencé en tant que développeur AS3 et cela m'a donné un réel amour pour le développement, mais je réalise qu'en fin de compte si je voulais vraiment pouvoir exprimer mes visions artistiques avec la plus grande puissance et portabilité qu'il ne faisait aucun doute, C++ était le chemin à parcourir. Après m'être aventuré sur cette route, j'avais 100% raison. J'ai essayé Java et d'autres langages différents et vous ne pouvez pas comparer la puissance et les fonctionnalités (parfois même dans le même) de C++.

Cela dit, tout ce que vous avez appris dans AS3 sera très probablement pas vous aider que ce soit. C'est un monde entièrement différent tous ensemble. Littéralement, la seule chose que les deux langues ont un peu en commun est la syntaxe lorsqu'il s'agit de vecteurs. Vous déclarez un vecteur et son type en disant vector<myType>. C'est absolument ça. Donc, mon conseil est de simplement plonger dans le C++ et le livre que j'ai mentionné est parfait, il suppose non seulement que vous ne connaissez rien au C++ mais que vous ne sachiez rien sur la programmation. Et honnêtement, ne pas insulter (rappelez-vous, j'étais là aussi) mais si vous venez d'un passé en AS3 alors vous ne savez vraiment rien sur la programmation. :) Cela vous aidera à voir clairement la distinction entre un programmeur et un «développeur» aka scripteur. Bonne chance!