30 votes

Quel langage de bas niveau de prochaine génération est le meilleur pari pour migrer la base de code?

Disons que vous avez une entreprise en cours d'exécution beaucoup de C/C++, et que vous voulez commencer la planification de la migration vers les nouvelles technologies afin de ne pas finir comme COBOL entreprises il y a 15 ans.

Pour l'instant, C/C++ fonctionne plus que bien et il y a beaucoup de dev sur le marché.

Mais vous voulez commencer à penser à ça maintenant, parce que compte tenu de l'énorme code en cours d'exécution de base et les données de la sensibilité, vous vous sentez qu'il peut prendre de 5 à 10 ans pour passer à l'étape suivante sans surcharger le budget et les équipes de développement.

Vous avez entendu parler D, commence à être assez mature, et d' Aller, en promettant d'être très populaire.

Quel serait votre choix et pourquoi?

40voto

CyberShadow Points 13244

D et seront probablement juste de devenir aussi populaire que Python et Ruby sont aujourd'hui. Ils remplissent une niche, et même si D était censé être un acteur à part entière de remplacement de C++, il ne sera probablement jamais acquérir suffisamment de masse pour pousser C++ loin. Pour ne pas mentionner qu'ils ne sont pas stable, assez mature, et on ne sait pas si vous aurez une prise en charge de ces langues dans 10 à 20 ans pour les matériels et systèmes d'exploitation. Considérant que le C/C++ est à peu près le langage compilé et est utilisée dans la grande majorité des systèmes d'exploitation et les applications de code, il est très peu probable que ça va aller loin dans un avenir prévisible.

36voto

jalf Points 142628

Le C et le C++ sont un peu près imbattable combo quand il s'agit de natif/non géré/"bas niveau" des langues.

Non pas parce qu'ils sont les meilleurs langues, loin de là, mais parce qu'ils sont là, ils font le job, et ils sont assez bon. Il ya peu de doute que le D, par exemple, est mieux que le C++ dans la plupart des égards. Mais il échoue dans le plus important: la Compatibilité avec tout le code C++ existant. Sans cette exigence, la plupart de ce code serait écrite dans un langage géré aujourd'hui de toute façon. La seule raison pour laquelle tant de nombreuses bases de codes utiliser C++ aujourd'hui est parce qu'ils ont utilisé l'an dernier, et il serait trop fastidieux de passer à autre chose. Mais si et quand ils passent, ils généralement ne pas passer en D. Ils peuvent passer à C# ou Java ou Python.

Le problème pour les D et autres "venir" les langues en concurrence pour les mêmes niches, c'est que pendant qu'ils sont mieux, ils ne sont pas révolutionnaire suffisante pour motiver les gens à passer à eux.

Donc, le C et le C++ sont ici pour rester. C est peu susceptible d'évoluer beaucoup plus loin. Il est comme il est, et l'un des niches elle a à remplir est "la simplicité, même pour les rédacteurs du compilateur". Aucun autre langue est susceptible de le battre dans ce créneau, même si ils n'ont jamais revoir la norme de nouveau.

C++ évolue de façon beaucoup plus spectaculaire, avec C++0x s'approcher, et ils ont déjà obtenu une énorme liste de caractéristiques qu'ils veulent faire par la suite. C++ n'est pas une impasse en aucune façon.

Les deux langues sont ici pour rester. Peut-être que dans 50 ans, d'autres langues seront les ont remplacés, mais il ne se passe pas de cette décennie.

24voto

dsimcha Points 32831

J'utilise actuellement D régulièrement. Je ne le recommande pas mais pour les gens de l'écriture de code de production parce que c'est trop avant-gardistes. - Je sortir avec elle parce que la plupart de mon code est prototypes de recherche en bio-informatique. Cependant, la langue commence à se stabiliser. Andrei Alexandrescu est de sortir un livre intitulé "Le D Langage de Programmation" au mois de Mars prochain, et maintenant il y a une poussée, afin de stabiliser le spec pour la version 2 du langage dans le temps pour le livre.

Tandis que D n'est pas formelle sur-ensemble de C, c'est ce que j'appellerais une idiomatiques sur-ensemble excepté le manque d'une préprocesseur. En d'autres termes, tout code écrit en C bonne (en ignorant le préprocesseur), peut être trivialement traduit à D sans une restructuration, parce que C des concepts comme les pointeurs et l'ASM inline sont là et fonctionnent de la même dans D en C. D prend également en charge un lien direct de code C et le D de la bibliothèque standard comprend l'ensemble de la bibliothèque C standard.

Aussi, en dépit D un manque de bibliothèques, car il est toujours à la pointe de la langue, c'est une bibliothèque de l'écrivain rêve en raison de ses métaprogrammation capacités. Si il prend son envol, il sera probablement assez impressionnant libs. Pour un aperçu de ce, voir les mst.gamme ou les mst.de l'algorithme dans le D2 de la bibliothèque standard (Phobos). Comme autre exemple, j'ai mis en place un OpenMP-comme le modèle de parallélisme (parallèle foreach, en parallèle de la carte, en parallèle de réduire, à terme) comme un pur bibliothèque en D, sans prise en charge du compilateur. (Voir http://cis.jhu.edu/~dsimcha/parallelFuture.html)

Étant donné que vous êtes surtout intéressé à long terme, je dirais donner D 6 mois pour stabiliser (donnée Andrei du livre et de l'actuel pousser à stabiliser la langue, la version 2 devrait être stable par rapport à l'époque) et puis prendre un coup d'oeil dur à elle.

Edit: Maintenant que le langage de base spec est relativement stable et l'accent a tourné pour la chaîne et le développement des bibliothèques, je voudrais vous recommandons D pour les petits projets de production, sauf si vous êtes dans un très averse au risque de l'environnement. Les grands projets qui doit absolument avoir un bon ensemble d'outils et de support de bibliothèque doit encore attendre, si.

14voto

Artyom Points 17387

C++ -- il est relativement jeune et la mise à jour... Il y a un grand nombre d'éditeurs de compilateurs et a obtenu l'amélioration de tous les temps.

C - il serait de vivre longtemps à combler l'écart entre l'assembleur et un langage de haut niveau. Il est également très simple et facile à mettre en œuvre la langue, si l'on en reste la la première langue dans les divers "étrange" architectures intégrées ou très nouveaux.

D est prometteuse, mais encore très nouveau et très instable, les spécifications et les bibliothèques.

Go est né il ya quelques semaines... ne Jamais utiliser quoi que ce soit de la version 0 pour les gros projets importants. Aussi, il est nettement plus limitée, de l' C++ ou D.

14voto

Ewan Todd Points 5201

Restez avec C et C ++. Je ne vois pas que cela fonctionne comme COBOL, il fonctionne aussi bien que n'importe quoi, et vous n'aurez aucun problème à trouver des personnes à coder en C et C ++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X