Bagaimana cara mengakhiri ketergantungan saya pada .NET? [Tutup]

10

Saya telah mengembangkan aplikasi Windows GUI sejak bertahun-tahun dan melompat ke .NET pada awal 2005. .NET adalah platform yang luar biasa dan saya masih menggunakannya, tetapi dengan berbagai teknologi di luar sana, saya tidak ingin tetap didedikasikan untuk kamp ini. Saya ingin belajar bahasa baru yang dapat digunakan untuk mengembangkan aplikasi GUI.

Saya belajar Ruby dan baru saja menginstal Python. Saya membaca tentang WxRuby, kerangka kerja untuk mengembangkan aplikasi Windows GUI. di Ruby. Saya mencari kerangka kerja serupa untuk Python.

Selain itu saya ingin tahu bahasa mana yang lebih cocok untuk aplikasi GUI tingkat produksi. Saya ragu bahwa Ruby lebih fokus pada platform Web dengan glamornya, Ruby on Rails.

Saya tahu bahwa saya mungkin tidak mendapatkan orang-orang kaya. NET kelas dan Visual Studio IDE yang mengesankan, tetapi masih saya ingin mengikuti jalan yang jarang dilalui. Saya tidak ingin pergi dengan IronPython dan IronRuby, namun beberapa saat kemudian, saya mungkin ingin menjelajahi mereka.

RPK
sumber
5
Sangat memalukan bahwa Microsoft memutuskan untuk secara acak menyingkirkan IronPython dan IronRuby. Saya tidak berpikir mereka benar-benar mengerti pesan mengganggu macam apa yang mereka kirimkan kepada industri / komunitas dalam melakukannya.
Rei Miyasaka
2
@ Mahmoud Mereka berhenti menghabiskan uang untuk itu; mereka hanya membiarkan komunitas menjalankannya sekarang. Pengembang utama, Jim Hugunin, tidak bisa lagi mengerjakannya dari Microsoft, jadi tentu saja, ia meninggalkan perusahaan juga: hugunin.net/microsoft_farewell.html
Rei Miyasaka
1
@Thomas
Rei Miyasaka
9
@ Thomas Masih ada. Hanya karena saya meninggalkan pacar saya tidak berarti dia tidak ada lagi atau tidak lagi layak ... apa pun yang terakhir berarti.
Rei Miyasaka
2
@Rei, sejauh yang Anda ketahui, ia tidak ada lagi :) Ditched adalah tiket satu arah ke bar lajang tempat Anda dapat bergaul dengan MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython dan IronRuby dan beri tahu kisah-kisah tentang seberapa besar cinta yang Anda miliki di masa lalu.
gbjbaanb

Jawaban:

14

Periksa Qt.

itu bisa dibilang sekaya .NET, dan IDE (QtCreator) sederhana namun cukup kuat. Tentu saja, ini lebih baik digunakan pada C ++ asli, tetapi pengikatan Python tetap lengkap dan terbaru.

Terlebih lagi, itu benar-benar lintas platform, dan itu termasuk platform seluler sekarang juga :-)

Javier
sumber
1
Sulit untuk memanggil Qt sistem C ++ asli mengingat bahwa itu membutuhkan kompiler terpisah sebelum membangun dengannya. Ini bukan sistem yang buruk.
Billy ONeal
1
tidak sama sekali, 'asli' sebagai "mengkompilasi langsung ke bahasa mesin, tidak ada bytecode / VM / JIT di sana", juga sebagai: "tidak ada lapisan emulasi platform, kode yang dihasilkan adalah khusus OS". yang mocprecompiler tidak lebih dari beberapa gula sintaks untuk membuat kode sederhana yang tampak di beberapa sudut tertentu (kebanyakan sinyal-penanganan); itu cocok dengan rantai kompilasi di kira-kira tempat yang sama dengan preprosesor C. Ini sebagian besar merupakan artefak historis dari stabilisasi API sebelum fitur-fitur C ++ tertentu telah stabil di kompiler
Javier
Agar adil, moc menambahkan dinamisme yang tidak dimiliki C ++ bahkan akhir-akhir ini.
Tamás Szelei
6

Yah, wxRuby hanyalah sebuah pengikat Ruby untuk wxWidgets , toolkit GUI lintas platform yang mengagumkan. Ada pengikatan serupa untuk Python yang disebut wxPython, serta binding untuk banyak bahasa lainnya.

Robert Harvey
sumber
Widget ada di sana, tetapi seberapa mulus mereka berintegrasi dengan bahasa inti? Seberapa aktif dukungan komunitas?
RPK
1
@RPK - Anda akan memiliki komunitas yang cukup kecil menggunakan toolkit GUI apa pun dengan Python atau Ruby. komunitas wxPython lebih besar dari Ruby; Komunitas Ruby sekarang didominasi oleh Rails tetapi Python memiliki keanekaragaman yang lebih jelas.
Jeremy
Komunitas @Jeremy Ruby tidak didominasi oleh Rails tetapi memberikan persepsi bahwa itu memang memalukan.
alternatif
5

Saya tidak yakin apakah pertanyaan Anda terbatas untuk menentukan apakah Ruby atau Python lebih baik atau jika Anda menanyakan bahasa lain yang mungkin ingin Anda pelajari untuk mengembangkan aplikasi Windows GUI secara umum. Saya mengasumsikan yang terakhir.

Ada juga pemrograman Java, Delphi, atau Win32 asli. Semua itu cocok untuk mengembangkan aplikasi GUI di Windows. Kode asli Win32 masih dapat (harus?) Ditulis melalui Visual Studio, tetapi tidak ada .NET dependensi.

Adam Lear
sumber
4
+1 untuk Delphi. Bangun aplikasi Windows 32-bit asli yang cepat tanpa bagasi .NET. Versi 64-bit mungkin datang sekitar tahun 2011.
tcrosley
1
GUI Java lambat? Di mana itu terbukti?
Tim Williscroft
9
@Tim Williscroft - SWT cepat tetapi sebagian besar aplikasi Swing agak-sangat-lamban. Ini sangat jelas sehingga saya bahkan tidak bisa membayangkan perlu membuktikannya.
Jeremy
1
@ Jeremy Saya tunduk pada pengetahuan superior Anda. Saya sangat malu, saya telah melakukan kesalahan selama bertahun-tahun tapi sekarang saya tahu.
Tim Williscroft
2
Win32 asli baik-baik saja. Tidak bagus untuk pengembangan cepat, tetapi tidak terlalu sulit.
Paul Nathan
5

HTML5 dan JavaScript.

Saya berharap saya bercanda, tetapi saya tidak .

Menakutkan untuk berpikir bahwa tidak ada yang punya jawaban ini setengah tahun yang lalu.

Sedih...

Rei Miyasaka
sumber
Setahun yang lalu, saya berkomentar di Programmer bahwa Microsoft membuang VB6 dengan air mandi dan bahwa mereka dapat melakukan hal yang sama dengan .NET. Seseorang merespons saya dan menulis bahwa MS tidak akan pernah membuang .NET. Nah, kejutan, kejutan! Itu sebabnya saya lebih suka dengan perangkat lunak kebebasan dan komunitas open source. Jika .NET adalah open source, perilaku MS tidak akan terlalu penting, karena komunitas bisa mengambil kerangka kerja ke depan.
systemovich
1
Mono sebagian besar berhasil menyusul. Masalahnya adalah bahwa stigma dan politik di sekitarnya membuatnya mustahil bagi perusahaan lain untuk menerapkannya dengan nyaman. Kisah yang sama berlaku untuk Java, yang merupakan open source, dengan Sun mencoba menuntut Google. Perbedaannya adalah bahwa Google tidak mengharapkan Sun untuk menuntut mereka. Semua orang mengharapkan Microsoft untuk menuntut mereka, dan meskipun mereka telah bersumpah untuk tidak melakukannya, orang-orang menghindari .NET / Mono / ECMA C #. Sungguh, ini bukan tentang open source vs apa pun; ini tentang MS yang benar-benar kehilangan akal. Hampir semua perangkat lunak menanggung risiko kontributor utamanya menjadi gila atau bosan, terbuka atau tidak.
Rei Miyasaka
+1 karena sangat bagus untuk dapat mem-porting HTML5 dan JS langsung dari browser ke aplikasi desktop asli. Sekarang kami memiliki web, seluler (menggunakan PhoneGap ) dan windows 8 semuanya dalam satu platform open source!
Raynos
1
Akhir artikel yang Anda tautkan menunjukkan bahwa MS tidak akan meninggalkan basis pengembang besar mereka dan / atau menjadikan mereka semua kode dalam HTML5 + JS, dan bahwa ini lebih merupakan galah PR daripada yang lainnya.
Scott Whitlock
@ScottWhitlock hanya microsoft yang memperluas alat yang dapat Anda gunakan tanpa mencela atau menjatuhkan dukungan untuk alat yang ada. Ini cara yang bagus untuk menarik lebih banyak pengembang ke dalam sistem eco microsoft.
Raynos
4

Ingat bahwa hard-core non-microsoft non-apple people digerakkan oleh command-line, dan desain GUI tidak berguna di sana. Mereka akan, sampai batas tertentu, berkompromi dan membuat GUI dalam HTML, untuk dikonsumsi oleh browser, tetapi itu untuk klien mereka, bukan untuk diri mereka sendiri.

Jika Anda tetap berada di dunia GUI, saya kira Anda mungkin ingin melihat Apple atau tetap menggunakan .NET di Windows.

Masuk akal?

HTH

Christopher Mahan
sumber
4
Ini tidak sepenuhnya benar. Di dunia * nix, kami memiliki dan menggunakan GUI secara luas.
greyfade
@Christopher: Saya tahu dan sangat menyadarinya. Ambil contoh, Oracle. Mereka keluar dengan HTML GUI, yang sangat lambat. Saya tidak hanya mencari yang negatif, mungkin Oracle dapat dikelola melalui command-line dengan sangat baik.
RPK
@RPK: IIRC, Oracle 9i memiliki alat administrasi yang luar biasa, yang merupakan aplikasi desktop GUI. Saya lebih suka administrasi baris perintah. Oracle 10g mengimplementasikannya sebagai halaman web, yang hampir tidak menyenangkan.
David Thornley
1
GTK cukup populer di desktop Linux, dan ada toolkit GUI lainnya. Saya tidak berpikir sama sekali untuk menjalankan desktop tanpa GUI bahkan jika Anda menggunakan terminal untuk banyak tugas; meskipun * nix server Anda biasanya akan melakukan semuanya melalui baris perintah.
Jeremy
2
+1 karena saya mirip dengan ucapan itu. Biasanya, pemrograman GUI yang saya lakukan terkait dengan web-app. Saya benar-benar berusaha keras untuk menjadikan gelar desain itu berfungsi dengan membuatnya intuitif, sederhana dan jelas, tetapi pengalaman komputasi saya sendiri adalah sesuatu seperti 80% Emacs, 15% browser, 6% lainnya (dengan margin kesalahan 1%) .
Inaimathi
3

Saya akan merekomendasikan Java dalam situasi Anda.

Alasan:

  • Jika Anda tahu .NET, Anda akan relatif nyaman dengan Java (C # sebagian besar terinspirasi oleh Java dan banyak konvensi dan bahkan nama perpustakaan sangat mirip)
  • Java memiliki beberapa kemampuan GUI yang mengesankan (bahkan jika mereka tidak diakui secara luas). Toolkit GUI lintas-platform terbaik menurut pendapat saya Swing (yang sepenuhnya cross-platform, dengan tampilan dan rasa yang konsisten) dan SWT (yang juga memanfaatkan komponen asli, seperti yang digunakan misalnya Eclipse). JavaFX 2.0 juga terlihat menjanjikan untuk masa depan.
  • Ada banyak jenis alat "GUI builder" untuk keduanya (umumnya tersedia sebagai plug-in IDE untuk misalnya Netbeans atau Eclipse)
  • Ini mungkin masalah preferensi pribadi tetapi saya berpendapat bahwa Netbeans atau Eclipse, secara keseluruhan, IDE lebih baik daripada Visual Studio, dan tentu saja lebih mampu daripada yang Anda lihat untuk bahasa atau platform lain.
  • Platform / ekosistem Java adalah tempat yang bagus untuk menjadi tempat umum - berbagai macam perpustakaan dan alat, terutama jika Anda menyukai open source.

Atau, Anda bisa mencoba salah satu bahasa JVM inovatif baru seperti Scala atau Clojure jika Anda merasa suka bertualang .....

mikera
sumber
3
Juga Jawa pengembang cenderung lebih sampai dengan kecepatan pada cara yang tepat untuk menulis perangkat lunak, sementara masih banyak lagi NET orang hanya sling kode tanpa menerapkan pola desain, SOLID, dll
Wayne Molina
-1

Python berfungsi dengan baik untuk GUI. Anda dapat melihat PyQt, PyGTK, WxPython dll. Mereka secara aktif digunakan untuk pengembangan GUI (di Linux) dan dikatakan cross-platform.

masuk akal
sumber
-4

Lihatlah ke bahasa pemrograman lain yang berfungsi dengan .Net runtime, seperti IronRuby dan IronPython. Selanjutnya, periksa proyek mono .

Langkah-langkah ini akan membuat Anda keluar dari zona nyaman .Net dan berkembang di Linux. Dari sana, ini adalah lompatan kecil menuju pengembangan penuh gaya UNIX.

Chris McCall
sumber
5
-1 karena ia menyatakan dalam pertanyaan "Saya tidak ingin menggunakan IronPython dan IronRuby"
Inaimathi