2011-01-01 15 views
8

Sembra che entrambi questi linguaggi siano soprannominati "cosa dovrebbe essere C#", con macro hygenic, REPL, compilatore come Serivce (CaaS), tipizzazione statica + anatra (molto prima che C# ce l'avesse). Ci sono grosse differenze tra queste due lingue, o sono solo due differenti implementazioni di più o meno la stessa cosa? Ho letto da qualche parte che il servizio macro di Nemerle è più potente di quello di Boo; è vero?Quali sono le differenze tra Boo vs Nemerle?

Come si confrontano in termini di attività corrente, scadenza e integrazione IDE?

Inoltre, la caratteristica CaaS del C# 5.0 probabilmente renderà obsoleti se si arriva a compimento, o ci sono caratteristiche che li manterranno rilevanti?

risposta

8

Aggiungere CaaS a un linguaggio come C#, o anche macro a Boo, non è abbastanza per raggiungere il livello di metaprogrammazione di Nemerle, per il quale il linguaggio è stato progettato sin dall'inizio. I tipi algebrici, la citazione e la corrispondenza dei modelli sono un must per l'elaborazione della struttura sintattica astratta.

Nemerle ha recentemente raggiunto lo stato di candidato. Il lavoro su Nemerle 2.0 è già in corso. Boo sembra essere vicino a un palco simile, ma un po 'indietro.

Boo si integra principalmente con SharpDevelop, mentre Nemerle integra Visual Studio 2008.

+3

Boo è la qualità di produzione per * anni * –

+1

Direi che entrambi sono stati a lungo più stabili di C# 1.0-1.2. :) –

+2

Anche Nemerle ha un'integrazione con SharpDevelop. Puoi compilarlo dalle fonti. –

8

Il linguaggio dei tasti ha molte funzioni che il linguaggio Boo non ha. E se hai bisogno di alcune funzionalità Boo in Nemerle è molto facile aggiungerlo.

+0

Che ne dici della funzione di boo che non devi digitare parentesi graffe o punto e virgola? :-) –

+4

@Robert P: La sintassi di Boo viene da Python, mentre Nemerle da C# ... Ma, Nemerle può anche usare [sintassi Python-like] (http://nemerle.org/Indentation-based_syntax) –

+0

Ha! Così sembra. Immagino che l'unico altro sia che (afaict) Nermele non ha la capacità di girare come un linguaggio interpretato (ala python/perl/etc), o mi sbaglio anche io? –

Problemi correlati