2009-10-06 17 views
9

Rispetto a C#, Boo si sente un po 'più Pythonic ma è anche compilato su .NET MSIL. Mi è piaciuta la sua sintassi, anche più della sintassi di C#. Ma non sono riuscito a trovare un singolo libro che insegnasse a Boo.Boo vs C# vs Python?

E io davvero non lo so, se imparare Boo è meglio di C# o imparare C# è meglio di Boo. Voglio solo usare alcuni tipi di dati simili a Python. Questi sono:

  • {key1:value1, key2:value2} → dizionario
  • [Value1,Value2,Value3] → Elenco (può essere modificato/cambiato)
  • (Value1,Value2,Value3) → Tuple (non può essere modificato/cambiato)

Io uso dizionari di più di lista e tuple. Voglio sapere, qual è il migliore?

+1

2 parole, formattazione del testo! – leppie

+1

L'unico libro che ho visto su Boo è http://www.manning.com/rahien/ –

+0

Possibile duplicato? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo –

risposta

14

Ho trovato che Boo è molto utile per creare semplici script one-off, pur mantenendo il mio stile sorgente Pythonic. E dal momento che si compila in EXE o DLL eseguibili, posso impacchettare un singolo EXE con tutte le DLL necessarie (incluso Boo.Lang.dll) usando ILMerge, e poi mandarlo a un client, di solito per qualche tipo di risoluzione rapida dei problemi o diagnosi del sistema.

Io uso anche Boo per supportare lo sviluppo C#. Accendo spesso un interprete Boo per provare varianti di formattazione di stringhe o data, quindi posso replicare la versione finale quasi direttamente in C#.

Ma è daneggiato difficile trovare documenti per Boo. Ho dovuto Google un po 'per trovare la sintassi per i generici, dal momento che sono un'aggiunta relativamente nuova a Boo, e non ancora menzionata in alcun tutorial, o anche pagine di riferimento. E googling per "boo" genera parecchi colpi indesiderati, rendendo la ricerca ancora più difficile.

Quindi, in breve, non fare una scelta tra Boo e C# - in realtà si completano a vicenda abbastanza bene.

+2

Prova CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl – Dykam

2

Sono presenti elenchi e dizionari in. Net: System.Collections.Generic.List e System.collections.Generic.Dictionary.

Per quanto riguarda la lingua: basta imparare quello che è più divertente per te. La scelta della lingua è più spesso religiosa. Soprattutto sulla piattaforma .Net, dove ogni lingua ha quasi le stesse capacità.

+0

"dove ogni lingua ha quasi le stesse capacità" che si applica solo a C# vs VB –

+0

La pensi così? Io non ... Posso, per esempio, fare quasi tutto ciò che posso fare in C# do in C++/CLI. E sono sicuro di poter fare quasi tutto ciò che posso fare in Boo in C# in qualche modo. L'unica cosa diversa sarebbe linguaggi digitati dinamicamente come IronPython e cambierà anche in C# 4. –

+0

prova a creare un DSL simile a un boo in C# (anche 4.0) o C++. Vedi http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html –

3

Conoscere C# ti sarà molto utile se desideri una carriera nello sviluppo .NET. Ma imparare Boo ti permetterebbe di usare le funzionalità simili a Python che cerchi in un ambiente .NET. Probabilmente si dovrebbe anche prendere in considerazione IronPython, che non hanno libri disponibili (Iron Python in Action)

6

La mia opinione generale è che sarebbe meglio andare per C# in quanto è dal mio punto di vista, più facile trovare le risorse, la documentazione e tutorial per C#.

+1

Nulla di sbagliato con VB.NET. Tecnicamente, questo è. Le persone a cui non piacciono di solito non gradiscono il loro odore, in realtà non capiscono VB.NET. L'unica lamentela sincera che ho visto contro di esso è che la sua sintassi è piuttosto prolissa, ma per me questo è un punto di forza. A questo punto, molte funzionalità di VB.NET sono state aggiunte a C# (e viceversa), le lingue differiscono in poco, tranne la sintassi di superficie. – reinierpost

0

Non sono sicuro di quale sia il tuo obiettivo finale, ma prima di rinunciare a Python, controlla la combinazione python/Qt per creare una GUI. È possibile creare complessi strumenti multipiattaforma ed è abbastanza facile da raccogliere. Qt, Python Bindings

+0

Conosco già (e ho provato) PyQt, wxPython, Boa Constructor, IronPython Studio e altri, ma tnx per consigli (non sono un Python n00b: S). – PythEch