2009-10-06 34 views
9

W porównaniu do C#, Boo czuje się nieco bardziej Pythonicznie, ale jest również skompilowany do .NET MSIL. Podobała mi się jego składnia, nawet bardziej niż składnia C#. Ale nie mogłem znaleźć ani jednej książki nauczającej Boo.Boo vs C# vs Python?

I naprawdę nie wiem, czy nauka Boo jest lepsza niż C# czy nauka C# jest lepsza niż Boo. Po prostu chcę użyć niektórych typów danych podobnych do Pythona. Są to:

  • {key1:value1, key2:value2} → słowniku
  • [Value1,Value2,Value3] → listy (można edytować/zmieniony)
  • (Value1,Value2,Value3) → Tuple (nie można edytować/zmieniony)

używam słowniki więcej niż lista i krotki. Chcę wiedzieć, który z nich jest lepszy?

+1

2 słowa, formatowanie tekstu! – leppie

+1

Jedyna książka, którą widziałem na Boo to http://www.manning.com/rahien/ –

+0

Możliwy duplikat? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-boo –

Odpowiedz

14

Zauważyłem, że Boo jest bardzo przydatny w tworzeniu prostych jednorazowych skryptów, przy zachowaniu mojego stylu źródłowego Python. A ponieważ kompiluje się do uruchamianego EXE lub DLL, mogę spakować pojedynczy plik EXE z wszystkimi potrzebnymi bibliotekami DLL (w tym Boo.Lang.dll) przy użyciu ILMerge, a następnie wysłać to do klienta, zwykle w celu szybkiego rozwiązywania problemów lub diagnoza systemu.

Używam również Boo do wspierania mojego rozwoju C#. Często uruchamiam interpreter Boo, aby wypróbować wariacje formatowania ciągów lub dat, a następnie mogę replikować ostateczną wersję niemal bezpośrednio do C#.

Ale to cerę trudno znaleźć dokumenty dla Boo. Musiałem w Google trochę znaleźć składnię dla generycznych, ponieważ są one stosunkowo nowym dodatkiem do Boo i nie zostały jeszcze wspomniane w żadnych samouczkach, a nawet stronach referencyjnych. Googling dla "boo" generuje sporo niechcianych hitów, co sprawia, że ​​wyszukiwanie jest jeszcze trudniejsze.

Krótko mówiąc, nie rób tego z Boo i C# - właściwie bardzo dobrze się uzupełniają.

+2

Wypróbuj CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl – Dykam

2

Masz listy i słowniki w .Net: System.Collections.Generic.List i System.collections.Generic.Dictionary.

Jeśli chodzi o język: po prostu ucz się tego, który jest dla ciebie zabawniejszy. Wybór języka jest najczęściej religijny. Szczególnie na platformie .Net, gdzie każdy język ma prawie takie same możliwości.

+0

"gdzie każdy język ma prawie takie same możliwości", który dotyczy tylko języka C# i VB –

+0

Myślisz, że tak? Nie ... Mogę, na przykład, zrobić prawie wszystko, co mogę zrobić w C# do C++/CLI. I jestem pewien, że mogę zrobić prawie wszystko, co mogę zrobić w Boo w C# też jakoś. Jedyną inną rzeczą byłyby dynamicznie wpisywane języki, takie jak IronPython, i które również zmienią się w C# 4. –

+0

spróbuj stworzyć boo-podobny DSL w C# (nawet 4.0) lub C++. Zobacz http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html –

3

Znając C# będzie bardzo przydatne, jeśli chcesz kariery w rozwoju .NET. Ale uczenie Boo pozwoliłoby ci na korzystanie z funkcji podobnych do Pythona, których szukasz w środowisku .NET. powinieneś również zajrzeć do IronPython, który ma książek dostępnych (Iron Python in Action)

6

Moja ogólna opinia jest taka, że ​​byłoby lepiej, aby przejść do C#, ponieważ jest z mojego punktu widzenia, łatwiej znaleźć środki, dokumentacji i tutoriali dla C#.

+1

Nic złego w VB.NET. Z technicznego punktu widzenia. Ludzie, którzy nie lubią tego, zwykle po prostu nie lubią tego zapachu, w rzeczywistości nie rozumieją VB.NET. Jedyną prawdziwą skargą, którą widziałem, jest to, że jej składnia jest dość gadatliwa, ale dla mnie to mocna strona. Do tej pory wiele funkcji VB.NET zostało dodanych do C# (i na odwrót), języki różnią się niewiele oprócz składni powierzchni. – reinierpost

0

Nie jestem pewien, jaki jest twój cel końcowy, ale zanim zrezygnujesz z pythona, sprawdź komendę python/Qt na temat budowania GUI. Możesz budować złożone, wieloplatformowe gui i dość łatwo je odbierać. Qt, Python Bindings

+0

Już wiem (i wypróbowałem) PyQt, wxPython, Boa Constructor, IronPython Studio i inne, ale tnx o poradę (nie jestem Pythonem n00b: S). – PythEch