Domanda
Qual è la differenza tra IronPython e BOO ? C'è bisogno di 2 lingue simili a Python?
Soluzione
IronPython è progettato per essere un'implementazione fedele di Python sul Piattaforma .NET. La versione 1 si rivolge a Python 2.4 per compatibilità, e la versione 2 si rivolge alla versione 2.5 (anche se la maggior parte dei moduli di libreria standard Python implementati in C non sono supportati).
Lo scopo dichiarato di?? Boo è quello di essere un linguaggio [dinamico] adatto al polso per la CLI . " Prende molta ispirazione da Python, ma diverge su quattro punti principali:
- È progettato specificamente per sfruttare al meglio la piattaforma .NET
- Il designer si discosta dalla sintassi di Python dove non è d'accordo con le decisioni di progettazione (in particolare, la mancanza di un sé esplicito)
- La lingua è esplicitamente progettata per essere "adatta al polso" - cioè per ridurre al minimo la necessità di utilizzare il tasto Maiusc o altre combinazioni di più tasti.
- Boo è tipizzato staticamente per impostazione predefinita, ma consente la tipizzazione anatra opzionale.
Vi sono alcune differenze minori nell'implementazione / prestazioni, ma gli obiettivi di progettazione divergenti di cui sopra dovrebbero (IMO) informare la scelta delle lingue.
Altre due cose da tenere in considerazione sono la maturità e la comunità. Python è molto più maturo di Boo e ha una comunità molto più ampia. IronPython ha anche la benedizione esplicita di Microsoft.
Altri suggerimenti
IronPython è un'implementazione di Python in cui Boo è un'altra lingua con una sintassi simile a Python. Una delle principali differenze è che Boo è tipizzato staticamente per impostazione predefinita.
Sono sicuro che ci sono più differenze, ho guardato Boo solo brevemente, ma intendevo guardare un po 'più a fondo (così tante lingue così poco tempo!).
Ecco un elenco di Boo gotcha per programmatori python che riassume abbastanza bene le differenze:
IronPython è Python. Boo sembra Python.
Hanno obiettivi diversi e mentre IronPython mira ad essere proprio come Python, Boo no. Boo non è preoccupato per la compatibilità con Python come IronPython è ...
In poche parole, l'affermazione di Boo sulla fama è che dovrebbe darti la maggior parte dei vantaggi dell'elegante sintassi concisa di Python e delle astrazioni di altissimo livello, ma senza sacrificare (la maggior parte) dei vantaggi di velocità di una tipizzazione statica linguaggio come C #.