2009-06-11 7 views
5

Lorsque je travaille sur des projets de passe-temps, j'aime vraiment programmer dans des langages de bas niveau (dans le sens où C et C++ sont de bas niveau). Je ne veux pas travailler avec les langages gérés avec la récupération des ordures et tout ce que ça enlève tout le plaisir (ouais, nous sommes tous différents ;-)).Langue de remplacement pour C++?

Normalement j'utilise C++ pour ce type de projets. C++ est plutôt complexe et pas très élégant donc j'ai cherché un langage pour le remplacer. Quelqu'un peut-il me donner des suggestions?

Préférences (non exigences):

  • devrait être faible niveau (comme C et C++)
  • compilation en code natif (suivant type de de ce qui précède, mais pas de mal à être explicite)
  • ciblent de préférence Win32/Win64
  • objet
  • orienté
  • typé statiquement

J'ai regardé l'objectif C mais je ne l'aime pas.

+0

"C++ est plutôt complexe et pas si élégant" - C'est parce qu'il est de bas niveau. Si vous voulez simple et élégant voir Python. – jjnguy

+2

Etes-vous en train d'essayer de faire de la publicité pour D de manière indirecte? : P – hasen

Répondre

16

D? (Wikipedia page)

Le langage D est statiquement typé et directement compile en code machine. C'est multiparadigm, supportant de nombreux styles de programmation : impératif, orienté objet , et métaprogrammation. C'est un membre de la famille de syntaxe C, et son apparence est très similaire à celle de C++. Pour une comparaison rapide des fonctionnalités , voir cette comparaison de D avec C, C++, C# et Java.

Je pense que cela couvre tout ce dont vous avez besoin, à l'exception du support Windows, ce qui est également le cas.

Notez qu'il a la récupération de place, mais votre question semble associer la récupération de place à la gestion - ce n'est pas la même chose. Je crois que la collecte des ordures peut être assez bien contrôlé D.

Je dois souligner que je n'ai absolument aucune expérience dans la langue que ce soit :)

+1

Juste sur une note de côté, il a garbage collection mais peut être désactivé (son activé par défaut, donc doit être désactivé manuellement) – hasen

+1

J'allais suggérer D, mais il est garbage collecté par défaut. Je suppose que je viens d'apprendre quelque chose - arrête ça! :-P –

+0

En outre, la question semble associer la collecte des ordures à être un langage géré - ce n'est pas nécessairement vrai. (Objective-C a aussi un ramassage des ordures, IIRC, mais n'est pas géré.) –

4

Delphi? Pascal syntaxe, mais toujours citation puissante et juste un peu plus haut niveau que C++.

4

La demande de no gc est plutôt forte et élimine presque toutes les langues modernes - des choses comme Ocaml, par exemple, remplissent toutes les autres exigences.

Il y a aussi l'ADA qui remplit tous vos désirs, mais c'est un langage très strict. La syntaxe est quelque peu similaire à Pascal je pense, et le langage a beaucoup moins de trous par rapport à C. Il a un support intégré pour les threads et les 'modules' (mieux que les en-têtes C).

1

FreePascal Delphi Oberon

Tous trois seraient grands remplacements. Ils sont plus faciles à utiliser que C++.

2

Ada est une très bonne langue, cependant, il utilise des collections d'ordures (remarqué que mamboking mentionné.) Ne suis pas sûr Oberon et Modula 3.

Pascal/Delphi utilise également la collecte des ordures pour autant que je sais . (ou au moins des pointeurs intelligents d'une certaine sorte.)

1

Je suggère Limbo! C'est un langage créé par Rob Pike (co-auteur avec Kerninghan de nombreux livres de programmation). Ce langage est interprété par la machine virtuelle DIS (memory-to-memory) ou compilé. Il a de nombreux types de données intégrés tels que tuple, pipe, list, array, channel (utile pour communiquer FACILEMENT entre les threads), etc. c'est simultané, modulaire. Il met en œuvre de nombreuses fonctionnalités modernes! et il est utilisé pour écrire une application pour le système d'exploitation Inferno.

Limbo review by Dennis Ritchie et Limbo review by Kernighan

1

Je suggère Vala! essayez c'est est incroyable

Questions connexes