Jak zakończyć moją zależność od .NET? [Zamknięte]

10

Tworzę aplikacje GUI dla systemu Windows od wielu lat i wskoczyłem do platformy .NET na początku 2005 r. .NET jest niewątpliwie niezwykłą platformą i nadal z niej korzystam, ale dzięki różnorodnym technologiom nie chcę pozostać poświęcony temu obozowi. Chcę nauczyć się nowych języków, w których mogę tworzyć aplikacje GUI.

Uczę się Ruby i właśnie zainstalowałem Python. Czytałem o WxRuby, frameworku do tworzenia aplikacji GUI dla systemu Windows. w Ruby. Szukam podobnej struktury dla Pythona.

Poza tym chcę wiedzieć, który język jest bardziej odpowiedni dla aplikacji GUI na poziomie produkcyjnym. Wątpię, czy Ruby bardziej skupia się na platformie internetowej ze swoim urokiem, Ruby on Rails.

Wiem, że mogę nie zdobyć tych bogatych klas .NET i tego imponującego IDE Visual Studio, ale nadal chcę iść drogą mniej uczęszczaną. Nie chcę korzystać z IronPython i IronRuby, jednak później mogę zanurzyć ręce, aby je odkryć.

RPK
źródło
5
Szkoda, że ​​Microsoft postanowił po prostu losowo porzucić IronPython i IronRuby. Nie sądzę, aby naprawdę rozumieli, jaki rodzaj niepokojącego przesłania wysłali do branży / społeczności.
Rei Miyasaka,
2
@Mahmoud Przestali wydawać na to pieniądze; po prostu pozwalają społeczności na prowadzenie tego teraz. Główny programista, Jim Hugunin, nie mógł już nad tym pracować z Microsoftu, więc naturalnie również opuścił firmę: hugunin.net/microsoft_farewell.html
Rei Miyasaka
1
@Thomas: h-online.com/open/news/item/…
Rei Miyasaka,
9
@Thomas Nadal jest porzucony. To, że porzuciłem moją dziewczynę, nie oznacza, że ​​ona już nie istnieje lub nie jest opłacalna ... cokolwiek to może oznaczać.
Rei Miyasaka,
2
@Rei, jeśli chodzi o ciebie, ona już nie istnieje :) Ditched to bilet w jedną stronę do tego singlowego baru, gdzie możesz spotkać się z MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython i IronRuby i powiedzieć opowieści o tym, ile miłości dawałeś w dawnych czasach.
gbjbaanb

Odpowiedzi:

14

Sprawdź Qt.

jest prawdopodobnie tak bogaty jak .NET, a IDE (QtCreator) jest prosty, ale dość potężny. Oczywiście lepiej jest go używać w natywnym C ++, ale powiązanie Pythona jest kompletne i aktualne.

Co więcej, jest naprawdę wieloplatformowy i obejmuje teraz również platformy mobilne :-)

Javier
źródło
1
Trudno nazwać Qt rodzimym systemem C ++, ponieważ wymaga on osobnego kompilatora przed budowaniem z nim. To nie jest zły system.
Billy ONeal,
1
wcale „natywna” jako „kompiluje się prosto do języka maszynowego, bez kodu bajtowego / VM / JIT tam”, również jako: „bez warstwy emulacji platformy, wynikowy kod jest specyficzny dla systemu operacyjnego”. mocPrekompilator jest niczym więcej niż trochę cukru składni, aby prostszy wyglądający kod w pewnych określonych kątach (przeważnie sygnał obsługi); pasuje do łańcucha kompilacji mniej więcej w tym samym miejscu co preprocesor C. Jest to głównie historyczny artefakt stabilizacji API, zanim niektóre funkcje C ++ ustabilizowały się w kompilatorach
Javier
Szczerze mówiąc, moc dodaje dynamiki, której brakuje C ++ nawet w dzisiejszych czasach.
Tamás Szelei
6

Cóż, wxRuby to tylko powiązanie Ruby dla wxWidgets , niesamowitego wieloplatformowego zestawu GUI. Istnieje podobne powiązanie dla Pythona o nazwie wxPython, a także powiązania dla wielu innych języków.

Robert Harvey
źródło
Widżety istnieją, ale jak bezproblemowo integrują się z podstawowym językiem? Jak aktywne jest wsparcie społeczności?
RPK
1
@RPK - Będziesz mieć dość małą społeczność, używając dowolnego zestawu narzędzi GUI z Pythonem lub Ruby. Społeczność wxPython jest jednak większa niż Ruby; Społeczność Ruby jest obecnie zdominowana przez Rails, ale Python ma bardziej widoczną różnorodność.
Jeremy
Społeczność @Jeremy Ruby nie jest zdominowana przez Rails, ale daje wrażenie, że jest, a szkoda.
alternatywny
5

Nie jestem pewien, czy twoje pytanie ogranicza się do ustalenia, czy Ruby lub Python jest lepszy, czy też pytasz, które inne języki możesz nauczyć się ogólnie tworzyć aplikacje GUI dla systemu Windows. Zakładam to drugie.

Istnieją również Java, Delphi lub natywne programowanie Win32. Każdy z nich nadaje się do tworzenia aplikacji GUI w systemie Windows. Natywny kod Win32 może (musi?) Nadal być zapisywany przez Visual Studio, ale nie ma zależności .NET.

Adam Lear
źródło
4
+1 dla Delphi. Twórz szybkie, natywne 32-bitowe aplikacje Windows bez bagażu .NET. Wersja 64-bitowa prawdopodobnie pojawi się w 2011 roku.
tcrosley
1
GUI Java są wolne? Gdzie to udowodniono?
Tim Williscroft,
9
@Tim Williscroft - SWT jest szybki, ale większość aplikacji Swing jest dość powolna. Jest to tak oczywiste, że nawet nie wyobrażam sobie potrzeby udowodnienia tego.
Jeremy
1
@Jeremy kłaniam się twojej wiedzy. Jestem tak zawstydzona, że ​​robię to źle przez lata, ale teraz wiem.
Tim Williscroft,
2
Natywna wersja win32 jest w porządku. Nie nadaje się do szybkiego rozwoju, ale nie jest to trudne.
Paul Nathan
5

HTML5 i JavaScript.

Chciałbym żartować, ale nie jestem .

Przerażające jest myślenie, że nikt nie miał tej odpowiedzi pół roku temu.

Smutny...

Rei Miyasaka
źródło
Mniej więcej rok temu skomentowałem programistów, że Microsoft wyrzucił VB6 z kąpielą i że mogą zrobić to samo z .NET. Ktoś odpowiedział mi i napisał, że MS nigdy nie porzuci platformy .NET. Cóż, niespodzianka, niespodzianka! Dlatego raczej trzymam się oprogramowania wolności i społeczności open source. Gdyby .NET był oprogramowaniem typu open source, zachowanie MS nie miałoby tak wielkiego znaczenia, ponieważ społeczność mogłaby posunąć naprzód ramy.
systemovich,
1
Mono w dużej mierze nadrobiło zaległości. Problem polega na tym, że piętno i polityka wokół niego uniemożliwiają innym firmom wygodne przyjęcie go. Ta sama historia dotyczy Java, która jest oprogramowaniem typu open source, a Sun próbuje pozwać Google. Różnica polega na tym, że Google nie spodziewał się, że Sun ich pozwie. Wszyscy oczekują, że Microsoft ich pozwie, a więc pomimo ślubowania, ludzie unikają .NET / Mono / ECMA C #. Naprawdę nie chodzi o open source vs. cokolwiek; chodzi o to, że stwardnienie rozsiane całkowicie straciło głowę. Prawie wszystkie programy są narażone na ryzyko, że ich główni współtwórcy oszaleją lub się nudzą, są otwarci lub nie.
Rei Miyasaka,
+1, ponieważ wspaniale jest móc przenosić HTML5 i JS bezpośrednio z przeglądarki do natywnej aplikacji komputerowej. Teraz mamy przeglądarkę internetową, mobilną (za pomocą PhoneGap ) i Windows 8 w ramach jednej platformy open source!
Raynos,
1
Koniec artykułu, do którego linkujesz, sugeruje, że MS nie porzuci swojej ogromnej bazy programistów i / lub uczyni ich wszystkimi kodami w HTML5 + JS, i że jest to bardziej gaf PR niż cokolwiek innego.
Scott Whitlock,
@ScottWhitlock to po prostu Microsoft, który rozszerza narzędzia, których możesz używać, bez wycofywania lub rezygnacji z obsługi istniejących narzędzi. To świetny sposób na przyciągnięcie większej liczby programistów do eko systemu Microsoft.
Raynos,
4

Pamiętaj, że hardkorowi ludzie spoza firmy Microsoft, którzy nie są komputerami Apple, są obsługiwani z poziomu wiersza poleceń, a projektowanie GUI jest tam bezużyteczne. Będą do pewnego stopnia narażać się na szwank i tworzyć GUI w HTML, które będą używane przez przeglądarki, ale to jest dla ich klientów, a nie dla nich samych.

Jeśli chcesz pozostać w świecie GUI, przypuszczam, że możesz chcieć spojrzeć na Apple lub pozostać przy .NET w systemie Windows.

Ma sens?

HTH

Christopher Mahan
źródło
4
To nie jest do końca prawda. W świecie * nix mamy i używamy GUI dość szeroko.
greyfade
@Christopher: Wiem o tym i jestem tego absolutnie świadomy. Weźmy na przykład Oracle. Wyszli z HTML GUI, który jest bardzo wolny. Nie szukam tylko negatywów, prawdopodobnie Oracle można bardzo dobrze zarządzać za pomocą wiersza poleceń.
RPK
@RPK: IIRC, Oracle 9i miał wspaniałe narzędzie administracyjne, które było aplikacją graficzną GUI. Wolałem to od administracji za pomocą wiersza poleceń. Oracle 10g zaimplementował to jako stronę internetową, co nie było wcale tak miłe.
David Thornley,
1
GTK jest dość popularny na komputerach z systemem Linux i istnieją inne zestawy narzędzi GUI. Nie wydaje mi się, żeby uruchamianie pulpitu bez GUI było powszechne, nawet jeśli używasz terminala do wielu zadań; choć serwery * nix zwykle wszystko robisz za pomocą wiersza poleceń.
Jeremy
2
+1, ponieważ przypominam tę uwagę. Zazwyczaj programowanie przez GUI jest związane z aplikacjami internetowymi. Podejmuję świadomy wysiłek, aby ten stopień projektowania zadziałał, czyniąc go intuicyjnym, prostym i oczywistym, ale moje własne doświadczenia z komputerem to coś w rodzaju 80% Emacsa, 15% przeglądarki, 6% innych (z marginesem błędu 1%) .
Inaimathi
3

Polecam Javę w twojej sytuacji.

Powody:

  • Jeśli znasz platformę .NET, będziesz względnie swobodnie posługiwał się Javą (C # był w dużej mierze zainspirowany Javą, a wiele konwencji, a nawet nazwy bibliotek są bardzo podobne)
  • Java ma imponujące możliwości GUI (nawet jeśli nie są tak powszechnie znane). Najlepsze międzyplatformowe zestawy narzędzi GUI to moim zdaniem Swing (który jest całkowicie wieloplatformowy, o spójnym wyglądzie i działaniu) i SWT (który również wykorzystuje natywne komponenty, takie jak np. Eclipse). JavaFX 2.0 również wygląda obiecująco na przyszłość.
  • Dla obu dostępnych jest wiele narzędzi typu „GUI builder” (ogólnie dostępnych jako wtyczki IDE dla np. Netbeans lub Eclipse)
  • Prawdopodobnie jest to kwestia osobistych preferencji, ale twierdzę, że Netbeans lub Eclipse są, ogólnie rzecz biorąc, lepszymi IDE niż Visual Studio i na pewno są bardziej zdolne niż widzisz dla innych języków lub platform.
  • Platforma / ekosystem Java to świetne miejsce do bycia ogólnie - ogromna różnorodność bibliotek i narzędzi, szczególnie jeśli lubisz open source.

Ewentualnie możesz wypróbować jeden z nowych innowacyjnych języków JVM, takich jak Scala lub Clojure, jeśli masz ochotę na przygodę .....

mikera
źródło
3
Również programiści Java są bardziej na czasie, jeśli chodzi o właściwy sposób pisania oprogramowania, podczas gdy wielu innych .NET po prostu proceję kodu bez stosowania wzorców projektowych, SOLID itp.
Wayne Molina
-1

Python działa dobrze dla GUI. Możesz spojrzeć na PyQt, PyGTK, WxPython itp. Są one aktywnie wykorzystywane do programowania GUI (w Linuksie) i są nazywane wieloplatformowymi.

ma sens
źródło
-4

Sprawdź inne języki programowania, które działają z środowiskiem uruchomieniowym .Net, takie jak IronRuby i IronPython. Następnie sprawdź projekt mono .

Te kroki pozwolą ci wyjść ze strefy komfortu .Net i rozwijać się w systemie Linux. Od tego momentu jest to niewielki skok do pełnego rozwoju w stylu UNIX.

Chris McCall
źródło
5
-1, ponieważ stwierdza w pytaniu „Nie chcę iść z IronPython i IronRuby”
Inaimathi