Domanda

Dopo aver esaminato ciascuno di questi due progetti, sembra che entrambi siano MOLTO simili. Entrambi vengono eseguiti in cima alla CLI, entrambi hanno una sintassi in stile Python, entrambi usano .NET invece delle librerie standard di Python.

Quindi, quali sono le differenze tra loro e i vantaggi di ciascuno?

È stato utile?

Soluzione

La differenza principale, a mio modo di vedere, è che Boo è tipizzato staticamente, il che significa che il tipo di una variabile viene dedotto al suo primo incarico e viene risolto da lì - mentre IronPython ha il "reale" comportamento dinamico del normale codice Python.

IronPython è ufficialmente gestito da Microsoft ora e ha come target il nuovo Dynamic Language Runtime nella versione 2.0. Sospetto per la sua natura tipicamente statica Boo potrebbe essere più veloce. Non ho molto " real " esperienza con questo però ...

IronPython reimplementa anche molta libreria standard di Python in modo da poter eseguire molti software python senza modifiche su IronPython (ad es. Django ).

Altri suggerimenti

Boo è tipizzato staticamente, ma ha la tipizzazione anatra opzionale (che funziona abbastanza bene, nella mia esperienza). Boo è anche specificamente progettato per essere "adatto al polso". - in altre parole, per ridurre al minimo la necessità di utilizzare le combinazioni di tasti Maiusc. Ha un buon supporto IDE in SharpDevelop .

Come è abbastanza evidente, Boo prende molta ispirazione da Python, ma è anche progettato per sfruttare al meglio le funzionalità di .NET.

Dal punto di vista delle prestazioni, Boo si sente leggermente più veloce di IronPython, e in particolare manca del notevole ritardo di avvio di IronPython.

Boo è ancora un linguaggio immaturo e manca della comunità di Python. Personalmente sarei un po 'diffidente nell'utilizzarlo in produzione. Inoltre, non sono d'accordo con tutte le partenze fatte da Python, come sbarazzarsi del sé esplicito in classe.

Non ho ancora usato IronPython, ma ecco cosa so di Boo ...

  • Boo è stato ispirato da Python e ha molte somiglianze sintattiche. Per le differenze, vedere http://boo.codehaus.org/Gotchas+for+Python+Users
  • Boo è stato scritto appositamente per il CLR
  • È tipizzato staticamente, con diversi vantaggi
    • Può essere compilato in una DLL e referenziato dai progetti VB e C #
    • ottieni il completamento del codice negli IDE
  • La lingua stessa se estensibile. Puoi scrivere " macro sintattiche " e in realtà aggiungere nuovi elementi alla lingua. Questo lo rende un buon candidato per la scrittura di DSL.
  • Non è ancora a 1.0, mentre IronPython lo è. La lingua sta ancora attraversando dolori crescenti, ma è ancora molto utilizzabile.

Ho usato Boo per cose come:

  • Creazione di script per lavori pianificati. È un'ottima alternativa ai file VBScript e BAT, soprattutto se si accede alle API .NET. Da allora sono passato principalmente a Powershell, ma è specifico del sistema operativo e ha una sintassi più pesante, quindi uso ancora Boo per alcune cose.
  • Test delle unità di scrittura
  • Linguaggio di scripting incorporato

Ho scritto applicazioni in Boo e IronPython. Per me IronPython è stata la scelta più solida e gran parte di ciò che ho scritto nelle porte CPython senza modifiche. Tutti i progetti recenti sono stati IronPython puro se destinati a .Net Framework.

Poiché Jim "disertato" rispetto a Microsoft, IronPython è stato elevato a un linguaggio di livello superiore. C'è anche Visual Studio per questo.

Sono d'accordo con VolkA qui. Essere in grado di eseguire Django è grande. È solo un quadro così straordinario, che Boo avrà difficoltà a rifarlo. Oggi è più una questione di framework forniti da una lingua, che di costrutti che fornisce. E Boo non offre molti miglioramenti rispetto a Python nei costrutti che supporta.

La differenza principale, secondo me, è che IronPython è un'implementazione di un linguaggio maturo - mentre Boo è più giovane e meno conosciuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top