2010-08-15 16 views
5

Je veux aller en programmation C++ natif après l'université, mais il semble que les langages qui compilent avec JIT (comme .Net) dépassent le C++. Que réserve le code natif pour l'avenir?Le codage en C++ natif est-il toujours populaire?

+1

Vous posez la question "que nous réserve l'avenir * moi *". Beaucoup de place dans la pièce de gauche, les employés qui alimentent la machine. Prendre la bonne pilule colorée est à vous. –

Répondre

11

C++ est le septième langage de programmation J'ai été payé professionnellement pour programmer, et je suis sûr que ce ne sera pas le dernier. Mon conseil est de ne pas penser à vous en tant que programmeur de langage spécifique. Même si JIT prend le contrôle du monde, il doit finalement se tourner vers le code machine natif, et quelqu'un doit écrire ce logiciel.

+0

7 langues? Je tiens à deviner..C? VB? COBOL? RPG? PL/I? Assembleur? Ai-je eu des coups? Mais +1, d'accord à 100%. – SqlACID

+0

J'aimerais pouvoir voter 100 fois. L'instant où vous vous voyez comme un programmeur de langage X est l'instant où vous devenez obsolète. C'est au-dessus des concepts de niveau supérieur, pas de la langue elle-même. –

+0

Selon ce http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html c'est le 3ème. –

1

Si vous utilisez le bureau, le C++ est toujours la solution, surtout si vous voulez être multi-plateforme.

Les bibliothèques d'interface graphique Java ralentissent et .NET n'est pas portable (la partie GUI). Mais C++ est une bête de langue, le seul langage où je peux comprendre les gestionnaires pour demander 5 ans d'expérience.

Dans le monde des serveurs, le VM/JIT a tellement d'avantages que seule l'infrastructure de base est codée en natif. Si c'est l'industrie que vous voulez rejoindre apprendre (infrastructure) ou ne pas apprendre (applications) C++.

Il est également très populaire dans la programmation intégrée où vous ne pouvez pas lancer une machine virtuelle MB hundert.

Puisque C/C++ est le seul langage de programmation natif impératif rapide laissé dans le courant dominant, vous devriez apprendre au moins les bases.

+1

Pour être juste, vous pouvez coder des applications semi-portables écrites en C# avec Mono. Mais vous avez raison, il ne bat pas encore C++ en termes de portabilité. –

+0

J'ai écrit pour les parties GUI. Oui, les applications WinForms simples peuvent être utilisables mais pas de fonctionnalités WPF ou graphiques complètes. – Lothar

7

Il existe de nombreuses possibilités de travail sur le code C++ compilé en mode natif. Il est particulièrement populaire (avec C) dans les environnements non-PC tels que les environnements embarqués et en temps réel, et dans beaucoup de situations où un niveau de certification de sécurité est requis.

La programmation de jeux, où la performance est souvent critique, est un autre domaine où C++ est très populaire. Il est moins populaire que dans les applications de bureau traditionnelles et les applications de service Web, bien que vous puissiez trouver des projets de code natif dans ces deux domaines - en particulier le premier - si vous traquez.

+0

Encore, si vous voulez développer des applications de bureau multiplateformes, c'est toujours l'un des meilleurs, sinon le meilleur choix, en combinaison avec Qt. –

3

Il y aura toujours une place pour C/C++

  1. Toute application qui doit être aussi vite que possible sera écrit dans une langue maternelle comme C/C++
  2. Toute application qui fonctionne sur un périphérique qui a limité la mémoire sera fonctionner mieux en C/C++ puisque la gestion de la mémoire est plus déterministe.
  3. Les systèmes d'exploitation continueront à être écrits en C. Que incluent les pilotes de périphérique .

Jusqu'à récemment, on avait toujours le luxe d'accélérer une application en utilisant un meilleur matériel. La loi de Moore étant poussée à son maximum, il est probable que les améliorations de performance devront provenir des logiciels. Les chances sont que les langues qui donnent de meilleures performances viendront à leur propre compte à cet égard.

+0

On pourrait argumenter que l'avenir des processeurs est un nombre croissant de cœurs. C et C++ ne sont peut-être pas les meilleurs langages dans cet environnement, bien qu'il y ait évidemment quelques bibliothèques décentes pour fournir le support nécessaire. En outre, certains systèmes d'exploitation sont déjà écrits dans une langue autre que C. C'est une sorte de technicité, cependant. – ChrisInEdmonton

4

Je ne suis pas sûr de ce que vous voulez dire quand vous dites que vous allez «aller en C++ natif après le collège». Votre carrière ne sera pas définie par les langues que vous connaissez, elle sera définie par ce que vous pouvez faire avec ces langues.

Toutefois, C++ est largement utilisé dans de nombreuses applications. Je travaille dans des systèmes et nous utilisons C++ pour tout. .NET n'est pas une option dans mon monde, mais les gars qui font la porte d'à côté de GIU l'utilisent pour tout. Il se résume à ce que vous voulez faire avec votre carrière. Le langage que vous utiliserez viendra naturellement, vous y pensez à rebours.

+0

"Si vous créez des applications de bureau, alors non, C++ serait un choix ridicule." : Je ne vois aucune raison pour cela. Pourriez-vous développer votre point de vue? – Dinaiz

+0

@Dinaiz: Je ne suis pas sûr de savoir pourquoi j'ai écrit ça, d'autant plus que je suis un grand fan de QT ... Je ne sais vraiment pas. –

+0

lol, ok pas de problème! – Dinaiz

1

Oui, bien sûr, il est:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

http://langpop.com/

Et quelques-unes des fonctionnalités comme rvalue références, des modèles variadique, initialisations uniformes, lambdas, les syndicats sans restriction, fil locale Le stockage, les modèles externes et ... tout en gardant C++ pour être un bon choix pour les 20 prochaines années, jusqu'à ce que le comité C++ décide de publier une nouvelle norme pour les autres années restantes (comme do...while!) (:

Notez que les ordinateurs ont besoin de programmes natifs pour s'exécuter! Java, .NET, python et ... nécessite un environnement natif pour fonctionner dessus! Ainsi, les programmes natifs sont la base des logiciels.