2009-06-11 20 views
5

Quando lavoro su progetti hobbistici mi piace molto programmare in linguaggi di basso livello (nel senso che C e C++ sono di basso livello). Non voglio lavorare con le lingue gestite con la garbage collection e quant'altro ci toglie tutto il divertimento (sì, siamo tutti diversi ;-)).Lingua sostitutiva per C++?

Normalmente utilizzo C++ per questo tipo di progetti. Il C++ è piuttosto complesso e non così elegante, quindi ho cercato un linguaggio per sostituirlo. Qualcuno può darmi suggerimenti?

Preferenze (non gli altri requisiti):

  • dovrebbero essere a basso livello (come C e C++)
  • Compila in codice nativo (tipo di segue da quanto sopra, ma nessun danno di essere esplicito)
  • preferibilmente bersaglio win32/Win64
  • object oriented
  • staticamente tipizzato

Ho visto l'obiettivo C ma non mi piace.

+0

"Il C++ è piuttosto complesso e non così elegante" - Questo perché è di basso livello. Se vuoi semplice ed elegante vedi Python. – jjnguy

+2

Stai cercando di pubblicizzare D in modo indiretto? : P – hasen

risposta

16

D? (Wikipedia page)

Il linguaggio D è tipizzazione statica e compila direttamente in codice macchina. È multiparadigm, supporta molti stili di programmazione : imperativo, oggetto orientato e metaprogrammazione. È un membro della famiglia di sintassi C e il suo aspetto è molto simile a quello di C++. Per un rapido confronto delle funzioni , vedere questo confronto di D con C, C++, C# e Java.

Penso che copra tutto nelle vostre esigenze tranne il supporto di Windows, che ha anche.

Nota che ha la garbage collection, ma la tua domanda sembra associare la garbage collection a essere gestita - non sono la stessa cosa. Credo che la raccolta dei rifiuti può essere abbastanza strettamente controllato in D.

Vorrei sottolineare che non ho assolutamente alcuna esperienza nella lingua impiegata :)

+1

Solo una nota a parte, ha garbage collection ma può essere disabilitato (è attivo per impostazione predefinita, quindi deve essere disabilitato manualmente) – hasen

+1

Stavo per suggerire D, ma è garbage collection per impostazione predefinita. Credo di aver appena imparato qualcosa - smettila! :-P –

+0

Inoltre, la domanda sembra associare la garbage collection ad essere un linguaggio gestito - questo non è necessariamente vero. (Anche Objective-C ha la garbage collection, IIRC, ma non è gestita.) –

4

Delphi? Sintassi Pascal, ma cita ancora potente e solo un po 'più di alto livello rispetto al C++.

4

La richiesta di non gc è piuttosto forte ed elimina quasi tutti i linguaggi moderni: ad esempio, ad esempio, Ocaml soddisfa tutti gli altri requisiti.

C'è anche ADA che riempie ogni tuo desiderio, ma è un linguaggio molto severo. La sintassi è in qualche modo simile a Pascal, penso, e il linguaggio ha meno buchi rispetto a C. Ha un supporto integrato per i thread e 'moduli' (meglio delle intestazioni di C).

1

FreePascal Delphi Oberon

Qualsiasi 3 sarebbe grande sostituzioni. Sono più facili da usare rispetto al C++.

2

Ada è davvero un buon linguaggio, tuttavia, utilizza garbage collection (notato che mamboking accennato.) Non sei sicuro di Oberon e Modula 3.

Pascal/Delphi è anche utilizzando la raccolta dei rifiuti per quanto ne so . (o almeno dei puntatori intelligenti di qualche tipo.)

1

Suggerisco Limbo! È un linguaggio creato da Rob Pike (co-autore con Kerninghan di molti libri di programmazione). Questa lingua è interpretata dalla macchina DIS virtuale (memoria-a-memoria) o compilata. Ha molti tipi di dati incorporati come tuple, pipe, list, array, channel (utile per FACILMENTE comunicare tra thread), ecc. È concomitante, modulare. Attua molte funzionalità moderne! ed è usato per scrivere applicazioni per il sistema operativo Inferno.

Limbo review by Dennis Ritchie e Limbo review by Kernighan

1

Vorrei suggerire Vala! prova è incredibile