2009-10-06 35 views
9

So với C#, Boo cảm thấy hơi Pythonic hơn một chút nhưng nó cũng được biên dịch xuống .NET MSIL. Tôi thích cú pháp của nó, thậm chí nhiều hơn cú pháp của C#. Nhưng tôi không thể tìm thấy một cuốn sách nào dạy Boo.Boo vs C# so với Python?

Và tôi thực sự không biết, nếu học Boo tốt hơn C# hoặc học C# tốt hơn Boo. Tôi chỉ muốn sử dụng một số kiểu dữ liệu giống Python. Đó là:

  • {key1:value1, key2:value2} → điển
  • [Value1,Value2,Value3] → Danh sách (có thể được chỉnh sửa/thay đổi)
  • (Value1,Value2,Value3) → tuple (không thể chỉnh sửa/thay đổi)

tôi sử dụng từ điển hơn hơn danh sách và bộ dữ liệu. Tôi muốn biết, cái nào tốt hơn?

+1

2 từ, định dạng văn bản! – leppie

+1

Cuốn sách duy nhất tôi đã xem trên Boo là http://www.manning.com/rahien/ –

+0

Có thể trùng lặp? - http://stackoverflow.com/questions/890420/why-would-one-choose-iron-python-instead-of-boo –

Trả lời

14

Tôi thấy Boo rất hữu ích trong việc tạo các tập lệnh một lần đơn giản, đồng thời duy trì kiểu nguồn Pythonic của tôi. Và vì nó biên dịch để chạy EXE hoặc DLL, tôi có thể đóng gói một EXE duy nhất với tất cả các DLL cần thiết (bao gồm Boo.Lang.dll) sử dụng ILMerge, và sau đó gửi cho khách hàng, thường là một số loại xử lý sự cố nhanh hoặc chẩn đoán hệ thống.

Tôi cũng sử dụng Boo để hỗ trợ phát triển C# của mình. Tôi thường khởi động một thông dịch viên Boo để thử các biến thể của chuỗi hoặc định dạng ngày, sau đó tôi có thể sao chép phiên bản cuối cùng gần như trực tiếp vào C#.

Nhưng đó là bị mờ khó tìm tài liệu cho Boo. Tôi đã phải Google khá một chút để tìm cú pháp cho generics, vì chúng là một bổ sung tương đối mới cho Boo, và chưa được đề cập trong bất kỳ hướng dẫn nào, hoặc thậm chí là các trang tham khảo. Và googling cho "boo" tạo ra khá nhiều lần truy cập không mong muốn, làm cho việc tìm kiếm thậm chí còn khó khăn hơn.

Vì vậy, trong ngắn hạn, không thực hiện điều này một sự lựa chọn giữa Boo và C# - họ thực sự bổ sung cho nhau khá tốt.

+2

Thử dùng CSharpRepl/Gsharp: http://www.mono-project.com/CsharpRepl – Dykam

2

Bạn có danh sách và từ điển trong .Net: System.Collections.Generic.List và System.collections.Generic.Dictionary.

Đối với ngôn ngữ: Chỉ cần tìm hiểu điều thú vị hơn cho bạn. Lựa chọn ngôn ngữ thường là tôn giáo nhất. Đặc biệt trên nền tảng .Net, nơi mỗi ngôn ngữ có khả năng tương tự.

+0

"trong đó mỗi ngôn ngữ có khả năng gần như giống nhau" chỉ áp dụng cho C# so với VB –

+0

Bạn nghĩ như vậy? Tôi không ... tôi có thể, ví dụ, làm hầu như tất cả mọi thứ tôi có thể làm trong C# làm trong C + +/CLI. Và tôi chắc chắn rằng tôi có thể làm hầu như bất cứ điều gì tôi có thể làm trong Boo trong C# quá bằng cách nào đó. Điều khác biệt duy nhất sẽ là các ngôn ngữ được gõ động như IronPython, và điều đó cũng sẽ thay đổi trong C# 4. –

+0

thử tạo một DSL giống như boo trong C# (thậm chí 4.0) hoặc C++. Xem http://blogs.codehaus.org/people/bamboo/archives/001588_dslfriendly_syntax.html –

3

Biết C# sẽ rất hữu ích cho bạn nếu bạn muốn có sự nghiệp phát triển .NET. Nhưng việc học Boo sẽ cho phép bạn sử dụng các tính năng giống Python mà bạn đang sử dụng trong môi trường .NET. Có lẽ bạn cũng nên xem xét IronPython, sách có sẵn (Iron Python in Action)

6

Ý kiến ​​chung của tôi là tốt hơn là nên tìm C# vì nó là từ quan điểm của tôi, dễ tìm tài nguyên, tài liệu và hướng dẫn hơn cho C#.

+1

Không có gì sai với VB.NET. Về mặt kỹ thuật, đó là. Những người không thích nó thường không thích mùi của nó, họ không thực sự hiểu VB.NET. Khiếu nại trung thực duy nhất mà tôi đã thấy chống lại nó là cú pháp của nó khá là tiết tú, nhưng với tôi đó là một điểm mạnh. Bây giờ, nhiều tính năng VB.NET đã được thêm vào C# (và ngược lại), các ngôn ngữ khác nhau đôi chút ngoại trừ cú pháp bề mặt. – reinierpost

0

Tôi không chắc mục tiêu cuối cùng của bạn là gì, nhưng trước khi bạn từ bỏ python, hãy kiểm tra kết hợp python/Qt để xây dựng một gui. Bạn có thể xây dựng guis đa nền tảng phức tạp và nó khá dễ dàng để nhận. Qt, Python Bindings

+0

Tôi đã biết (và đã thử) PyQt, wxPython, Boa Constructor, IronPython Studio và những người khác, nhưng tnx để được tư vấn (tôi không phải là Python n00b: S). – PythEch

Các vấn đề liên quan