2009-07-17 13 views
5

Boo sembra un linguaggio molto interessante. È compatibile al 100% C#? Voglio dire: posso usare qualsiasi DLL/classe C#? Potrei usare il framework XNA?È compatibile Boo 100% C#?

+0

Se viene eseguito su .NET, dovrebbe essere. –

+0

Sì, penso di aver ottenuto un'implementazione funzionale di XNA lavorando con F #. – RCIX

risposta

6

Per quanto ne so, Boo ha un'implementazione su .NET CLR, il che implica che dovrebbe essere in grado sia di consumare che di essere utilizzato dal codice C#. La sintassi potrebbe non essere sempre carina quando si utilizza Boo da C#, ma il contrario dovrebbe essere piuttosto elegante, data la sintassi di Boo.

Inoltre, tutte le classi in .NET BCL dovrebbero essere disponibili in Boo.

+0

Se ricordo bene, non era programmato il Boo in C#? – Isaiah

1

Non sarebbe diverso dall'utilizzo di VB.NET con C#. Attualmente l'unico grande diverso tra i due (funzionalmente) è che Boo non ha puntatori ... ma ci sono modi per gestirlo.

PS: Boo È una lingua meravigliosa.

1

IIRC, qualsiasi linguaggio che compaia in IL (Intermediate Language, versione .NET del bytecode di Java) può funzionare con qualsiasi altra lingua che faccia lo stesso. Quindi puoi mescolare C#, F #, ASP.NET, VB.NET, e se Boo fa lo stesso, dovresti essere in grado di usarlo anche con C#.

+2

Non esattamente. È possibile creare costrutti in alcune lingue che non possono essere utilizzati da altre lingue. Esempio: http://codebetter.com/blogs/matthew.podwysocki/archive/2008/09/10/object-oriented-f-extension-everything.aspx –

2

Sì Boo è facilmente consumato da C# e viceversa. La maggior parte delle migliori funzionalità di Boo non vengono trasferite a C#, come i macro sintattici, per ovvi motivi, ma puoi creare macro in C# e consumarle in Boo. Inoltre Boo ha la bella caratteristica di essere in grado di creare moduli, cosa che non si può fare in C#.

Entrambi possono creare metodi di estensione. Boo ha digitato "duck" mentre C# ora ha la parola chiave "dynamic". Anche se sono entrambi funzionalmente equivalenti, potresti finire per vedere la fusione dei due alla fine.

Boo attualmente ha problemi noti con i generici, ma la funzionalità sarà completamente supportata una volta che tutti saranno risolti. Sospetto che ci sarà bisogno di un lavoro extra per supportare le nuove funzionalità di Co/Contra-variance anche in .NET 4.