Làm thế nào để chấm dứt sự phụ thuộc của tôi vào .NET? [đóng cửa]


10

Tôi đã phát triển các ứng dụng GUI của Windows từ nhiều năm và đã nhảy vào .NET vào đầu năm 2005. .NET chắc chắn là một nền tảng đáng chú ý và tôi vẫn đang sử dụng nó, nhưng với nhiều công nghệ khác nhau, tôi không muốn duy trì Dành riêng cho trại này. Tôi muốn học các ngôn ngữ mới mà tôi có thể phát triển các ứng dụng GUI.

Tôi đang học Ruby và chỉ cần cài đặt Python. Tôi đã đọc về WxRuby, một khung phát triển ứng dụng GUI Windows. trong Ruby. Tôi đang tìm kiếm một khung tương tự cho Python.

Ngoài ra, tôi muốn biết ngôn ngữ nào phù hợp hơn cho ứng dụng GUI cấp sản xuất. Tôi nghi ngờ rằng Ruby tập trung nhiều hơn vào nền tảng Web với sự quyến rũ của nó, Ruby on Rails.

Tôi biết rằng tôi có thể không có được các lớp .NET phong phú đó và Visual Studio IDE ấn tượng đó, nhưng tôi vẫn muốn đi theo con đường ít đi. Tôi không muốn đi với IronPython và IronRuby, tuy nhiên sau đó, tôi có thể nhúng tay để khám phá chúng.


5
Thật xấu hổ khi Microsoft quyết định bỏ ngẫu nhiên IronPython và IronRuby. Tôi không nghĩ họ thực sự hiểu loại tin nhắn đáng lo ngại nào họ đã gửi cho ngành / cộng đồng khi làm như vậy.
Rei Miyasaka

2
@Mahmoud Họ đã ngừng chi tiền cho nó; họ chỉ để cho cộng đồng điều hành nó bây giờ. Nhà phát triển chính, Jim Hugunin, không thể làm việc với nó từ Microsoft nữa, do đó, một cách tự nhiên, anh cũng rời công ty: hugunin.net/microsoft_farewell.html
Rei Miyasaka


9
@Thomas Nó vẫn bị bỏ. Chỉ vì tôi bỏ bạn gái của tôi không có nghĩa là cô ấy không còn tồn tại hoặc không còn khả thi ... bất cứ điều gì sau này có thể có nghĩa.
Rei Miyasaka

2
@Rei, theo như bạn quan tâm, cô ấy không còn tồn tại nữa :) Ditched là vé một chiều đến quán bar dành cho người độc thân nơi bạn có thể đi chơi với MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython và IronRuby và nói những câu chuyện về bao nhiêu tình yêu bạn có được trong những ngày xưa.
gbjbaanb

Câu trả lời:


14

Kiểm tra Qt.

nó được cho là phong phú như .NET và IDE (QtCreator) đơn giản nhưng khá mạnh mẽ. Tất nhiên, nó được sử dụng tốt hơn trên C ++ bản địa, nhưng liên kết Python được giữ đầy đủ và cập nhật.

Trên hết, nó thực sự là nền tảng chéo và bao gồm cả nền tảng di động nữa :-)


1
Thật khó để gọi Qt là một hệ thống C ++ riêng do nó cần một trình biên dịch riêng trước khi xây dựng với nó. Đó không phải là một hệ thống tồi.
Billy ONeal

1
hoàn toàn không phải, "bản địa" của nó là "biên dịch thẳng sang ngôn ngữ máy, không có mã byte / VM / JIT ở đó", cũng như: "không có lớp mô phỏng nền tảng, mã kết quả là dành riêng cho hệ điều hành". trình mocbiên dịch trước không có gì khác hơn một số đường cú pháp để tạo mã trông đơn giản hơn ở một số góc cụ thể (chủ yếu là xử lý tín hiệu); nó phù hợp với chuỗi biên dịch ở cùng một nơi với bộ tiền xử lý C. Đây chủ yếu là một tạo tác lịch sử của quá trình ổn định API trước khi một số tính năng C ++ đã ổn định trên các trình biên dịch
Javier

Công bằng mà nói, moc không thêm tính năng động mà C ++ thiếu ngay cả những ngày này.
Tamás Szelei

6

Chà, wxRuby chỉ là một ràng buộc của Ruby cho wxWidgets , một bộ công cụ GUI đa nền tảng tuyệt vời. Có một ràng buộc tương tự cho Python được gọi là wxPython, cũng như các ràng buộc cho nhiều ngôn ngữ khác.


Các vật dụng ở đó nhưng làm thế nào liền mạch chúng tích hợp với ngôn ngữ cốt lõi? Làm thế nào tích cực là hỗ trợ cộng đồng?
RPK

1
@RPK - Bạn sẽ có một cộng đồng khá nhỏ bằng cách sử dụng bất kỳ bộ công cụ GUI cụ thể nào với Python hoặc Ruby. Cộng đồng wxPython lớn hơn Ruby; Hiện tại cộng đồng của Ruby bị chi phối bởi Rails nhưng Python có sự đa dạng rõ ràng hơn.
Jeremy

@Jeremy Cộng đồng của Ruby không bị chi phối bởi Rails nhưng nó mang lại nhận thức rằng đó là một sự xấu hổ.
thay thế

5

Tôi không chắc chắn nếu câu hỏi của bạn bị giới hạn trong việc xác định xem Ruby hay Python tốt hơn hay nếu bạn hỏi những ngôn ngữ khác mà bạn có thể muốn học để phát triển ứng dụng GUI Windows nói chung. Tôi giả sử sau này.

Ngoài ra còn có Java, Delphi hoặc lập trình Win32 bản địa. Bất kỳ ứng dụng nào phù hợp để phát triển ứng dụng GUI trên Windows. Mã Win32 gốc có thể (phải?) Vẫn được viết thông qua Visual Studio, nhưng không có phụ thuộc .NET.


4
+1 cho Delphi. Xây dựng các ứng dụng Windows 32 bit nhanh, tự nhiên mà không cần hành lý .NET. Phiên bản 64 bit có thể sẽ xuất hiện vào năm 2011
tcrosley

1
GUI của Java có chậm không? Điều đó được chứng minh ở đâu?
Tim Williscroft

9
@Tim Williscroft - SWT rất nhanh nhưng hầu hết các ứng dụng Swing đều hơi chậm chạp. Rõ ràng đến mức tôi không thể tưởng tượng được cần phải chứng minh điều đó.
Jeremy

1
@Jeremy Tôi cúi đầu trước kiến ​​thức vượt trội của bạn. Tôi rất lúng túng, tôi đã làm sai trong nhiều năm nhưng bây giờ tôi biết.
Tim Williscroft

2
Win32 bản địa là tốt. Không tuyệt vời để phát triển nhanh, nhưng nó không quá khó.
Paul Nathan

5

HTML5 và JavaScript.

Tôi ước tôi đang đùa, nhưng tôi thì không .

Đáng sợ khi nghĩ rằng không ai có câu trả lời này nửa năm trước.

Buồn...


Cách đây một năm, tôi đã nhận xét về các lập trình viên rằng Microsoft đã ném VB6 ra khỏi nước tắm và họ có thể làm điều tương tự với .NET. Ai đó đã trả lời tôi và viết rằng MS sẽ không bao giờ bỏ .NET. Vâng, bất ngờ, ngạc nhiên! Đó là lý do tại sao tôi thích gắn bó với phần mềm tự do và cộng đồng nguồn mở. Nếu .NET là nguồn mở, hành vi của MS sẽ không quan trọng đến thế, bởi vì cộng đồng có thể đã đưa khuôn khổ về phía trước.
systemovich

1
Mono đã bắt kịp phần lớn. Vấn đề là sự kỳ thị và chính trị xung quanh nó khiến các công ty khác không thể chấp nhận nó một cách thoải mái. Câu chuyện tương tự áp dụng cho Java, vốn nguồn mở, với Sun đang cố gắng kiện Google. Sự khác biệt là Google đã không mong đợi Sun sẽ kiện họ. Mọi người đều mong đợi Microsoft sẽ kiện họ, và vì vậy mặc dù họ đã thề sẽ không, mọi người tránh .NET / Mono / ECMA C #. Thực sự, đây không phải là về nguồn mở so với bất cứ điều gì; đó là về việc MS đã hoàn toàn mất đầu. Hầu như tất cả các phần mềm đều có nguy cơ những người đóng góp chính của nó phát điên hoặc chán, mở hay không.
Rei Miyasaka

+1 vì thật tuyệt khi có thể chuyển HTML5 và JS trực tiếp từ trình duyệt sang ứng dụng máy tính để bàn gốc. Bây giờ chúng tôi có web, di động (sử dụng PhoneGap ) và tất cả windows 8 dưới một nền tảng nguồn mở!
Raynos

1
Phần cuối của bài viết mà bạn liên kết để đề xuất rằng MS sẽ không từ bỏ cơ sở nhà phát triển khổng lồ của họ và / hoặc biến tất cả thành mã trong HTML5 + JS, và đây là một trò hề PR hơn bất kỳ điều gì khác.
Scott Whitlock

@ScottWhitlock chỉ là microsoft mở rộng các công cụ bạn có thể sử dụng mà không làm mất giá trị hoặc giảm hỗ trợ cho bất kỳ công cụ hiện có nào. Đó là một cách tuyệt vời để thu hút thêm nhiều nhà phát triển vào hệ sinh thái microsoft.
Raynos

4

Hãy nhớ rằng những người không phải là microsoft lõi cứng được điều khiển bằng dòng lệnh và thiết kế GUI khá vô dụng ở đó. Ở một mức độ nào đó, họ sẽ thỏa hiệp và làm cho GUI trong HTML, được sử dụng bởi các trình duyệt, nhưng đó là cho khách hàng của họ chứ không phải cho chính họ.

Nếu bạn ở lại trong thế giới GUI, tôi cho rằng bạn có thể muốn xem Apple hoặc ở lại với .NET trên Windows.

Có ý nghĩa?

HTH


4
Điều này không đúng. Trong thế giới * nix, chúng tôi có và sử dụng GUI khá rộng rãi.
greyfade

@Christopher: Tôi biết và hoàn toàn nhận thức được nó. Lấy ví dụ, Oracle. Họ đã đưa ra HTML GUI, rất chậm. Tôi không chỉ tìm kiếm tiêu cực, có lẽ Oracle có thể được quản lý thông qua dòng lệnh rất tốt.
RPK

@RPK: IIRC, Oracle 9i có một công cụ quản trị tuyệt vời, đó là một ứng dụng máy tính để bàn GUI. Tôi rất thích nó cho quản trị dòng lệnh. Oracle 10g đã triển khai như một trang web, gần như không đẹp.
David Thornley

1
GTK khá phổ biến trên máy tính để bàn Linux và có các bộ công cụ GUI khác. Tôi không nghĩ rằng tất cả đều phổ biến để chạy một máy tính để bàn không có GUI ngay cả khi bạn sử dụng thiết bị đầu cuối cho nhiều nhiệm vụ; mặc dù * máy chủ nix bạn thường sẽ làm mọi thứ thông qua một dòng lệnh.
Jeremy

2
+1 vì tôi giống với nhận xét đó. Thông thường, lập trình GUI tôi làm là liên quan đến ứng dụng web. Tôi thực hiện một nỗ lực có ý thức để đưa mức độ thiết kế đó hoạt động bằng cách làm cho nó trực quan, đơn giản và rõ ràng, nhưng trải nghiệm điện toán của riêng tôi là 80% Emacs, 15% trình duyệt, 6% khác (với sai số 1%) .
Inaimathi

3

Tôi muốn giới thiệu Java trong tình huống của bạn.

Lý do:

  • Nếu bạn biết .NET, bạn sẽ tương đối thoải mái với Java (C # chủ yếu được lấy cảm hứng từ Java và nhiều quy ước và thậm chí tên thư viện rất giống nhau)
  • Java có một số khả năng GUI ấn tượng (ngay cả khi chúng không được thừa nhận rộng rãi). Theo tôi, các bộ công cụ GUI đa nền tảng tốt nhất là theo quan điểm của tôi là Swing (hoàn toàn là đa nền tảng, với giao diện nhất quán) và SWT (cũng khai thác các thành phần gốc, như được sử dụng bởi ví dụ Eclipse). JavaFX 2.0 cũng có vẻ hứa hẹn cho tương lai.
  • Có rất nhiều công cụ loại "Trình xây dựng GUI" cho cả hai (thường có sẵn dưới dạng các trình cắm IDE cho ví dụ Netbeans hoặc Eclipse)
  • Đây có thể là vấn đề sở thích cá nhân nhưng tôi cho rằng Netbeans hoặc Eclipse, nói chung, IDE tốt hơn Visual Studio và chắc chắn có khả năng hơn bất kỳ ngôn ngữ hoặc nền tảng nào khác.
  • Nền tảng / hệ sinh thái Java là một nơi tuyệt vời để nói chung - rất nhiều thư viện và công cụ, đặc biệt nếu bạn thích nguồn mở.

Ngoài ra, bạn có thể thử một trong những ngôn ngữ JVM cải tiến mới như Scala hoặc Clojure nếu bạn cảm thấy phiêu lưu .....


3
Ngoài ra, các nhà phát triển Java có xu hướng tăng tốc về cách viết phần mềm thích hợp, trong khi nhiều người .NET khác chỉ viết mã mà không áp dụng các mẫu thiết kế, RẮN, v.v.
Wayne Molina

-1

Python hoạt động tốt cho GUI. Bạn có thể xem PyQt, PyGTK, WxPython, v.v. Những thứ này được sử dụng tích cực để phát triển GUI (trong Linux) và được cho là đa nền tảng.


-4

Nhìn vào các ngôn ngữ lập trình khác hoạt động với thời gian chạy .Net, như IronRuby và IronPython. Tiếp theo, hãy kiểm tra dự án mono .

Các bước này sẽ đưa bạn ra khỏi vùng thoải mái .Net của bạn và phát triển trên Linux. Từ đó, đây là một bước nhảy vọt nhỏ để phát triển theo phong cách UNIX đầy đủ.


5
-1 vì anh ta nêu trong câu hỏi "Tôi không muốn đi cùng IronPython và IronRuby"
Inaimathi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.