Come terminare la mia dipendenza da .NET? [chiuso]


10

Sto sviluppando applicazioni GUI di Windows da molti anni e sono entrato in .NET all'inizio del 2005. .NET è senza dubbio una piattaforma straordinaria e la sto ancora usando, ma con una varietà di tecnologie là fuori, non voglio rimanere dedicato a questo campo. Voglio imparare nuove lingue con le quali posso sviluppare applicazioni GUI.

Sto imparando Ruby e ho appena installato Python. Ho letto di WxRuby, un framework per lo sviluppo di app GUI di Windows. in Ruby. Sto cercando un framework simile per Python.

A parte questo, voglio sapere quale lingua è più adatta per un'app GUI a livello di produzione. Dubito che Ruby sia più concentrato sulla piattaforma Web con il suo glamour, Ruby on Rails.

So che potrei non ottenere quelle ricche classi .NET e quell'imponente IDE di Visual Studio, ma comunque voglio seguire la strada meno percorsa. Non voglio andare con IronPython e IronRuby, tuttavia qualche tempo dopo, potrei immergermi nelle mani per esplorarli.


5
Peccato che Microsoft abbia deciso di abbandonare casualmente IronPython e IronRuby. Non credo che capiscano davvero quale tipo di messaggio inquietante hanno inviato all'industria / comunità nel farlo.
Rei Miyasaka,

2
@Mahmoud Hanno smesso di spendere soldi per questo; stanno solo lasciando che la community lo esegua ora. Lo sviluppatore principale, Jim Hugunin, non poteva più lavorarci su da Microsoft, quindi naturalmente lasciò anche l'azienda: hugunin.net/microsoft_farewell.html
Rei Miyasaka,


9
@ Thomas È ancora abbandonato. Solo perché ho lasciato la mia ragazza non significa che non esiste più o che non è più praticabile ... qualunque cosa significhi quest'ultima.
Rei Miyasaka,

2
@Rei, per quanto ti riguarda, non esiste più :) Ditched è un biglietto di sola andata per quel singolo bar dove puoi uscire con MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython e IronRuby e dire racconti di quanto amore hai avuto ai vecchi tempi.
gbjbaanb,

Risposte:


14

Controlla Qt.

è probabilmente ricco come .NET e l'IDE (QtCreator) è semplice ma piuttosto potente. Ovviamente, è meglio utilizzato sul C ++ nativo, ma l'associazione Python è mantenuta completa e aggiornata.

Inoltre, è davvero multipiattaforma e ora include anche le piattaforme mobili :-)


1
È difficile chiamare Qt un sistema C ++ nativo dato che ha bisogno di un compilatore separato prima di compilarlo. Non è un cattivo sistema però.
Billy ONeal,

1
per niente, il suo "nativo" come "compila direttamente in linguaggio macchina, nessun bytecode / VM / JIT lì", anche come: "nessun livello di emulazione della piattaforma, il codice risultante è specifico del sistema operativo". il mocprecompilatore non è altro che un po 'di zucchero di sintassi per rendere il codice più semplice in alcuni angoli specifici (principalmente la gestione del segnale); si adatta alla catena di compilazione all'incirca nello stesso posto del preprocessore C. È principalmente un artefatto storico della stabilizzazione dell'API prima che certe funzionalità C ++ si stabilizzassero tra i compilatori
Javier,

Per essere onesti, moc aggiunge dinamismo che al C ++ manca anche in questi giorni.
Tamás Szelei,

6

Bene, wxRuby è solo un'associazione Ruby per wxWidgets , un fantastico toolkit GUI multipiattaforma. Esiste un'associazione simile per Python chiamata wxPython, oltre a associazioni per molte altre lingue.


I widget ci sono, ma quanto si integrano perfettamente con il linguaggio principale? Quanto è attivo il supporto della comunità?
RPK

1
@RPK - Avrai una comunità abbastanza piccola che utilizza un determinato toolkit GUI con Python o Ruby. La comunità di wxPython è più grande di Ruby; La comunità di Ruby è dominata da Rails ora, ma Python ha una diversità più evidente.
Jeremy,

La comunità di @Jeremy Ruby non è dominata da Rails ma dà la percezione che lo sia, il che è un peccato.
alternativa il

5

Non sono sicuro se la tua domanda si limiti a determinare se Ruby o Python è migliore o se stai chiedendo quali altre lingue potresti voler imparare a sviluppare app GUI di Windows in generale. Sto assumendo quest'ultimo.

Esistono anche programmazione Java, Delphi o Win32 nativa. Ognuno di questi è adatto per lo sviluppo di app GUI su Windows. Il codice nativo Win32 può (deve essere?) Ancora scritto tramite Visual Studio, ma non esiste alcuna dipendenza .NET.


4
+1 per Delfi. Crea app Windows native a 32 bit veloci senza il bagaglio di .NET. La versione a 64 bit arriverà probabilmente nel 2011.
tcrosley,

1
Le GUI Java sono lente? Dov'è dimostrato?
Tim Williscroft,

9
@Tim Williscroft - SWT è veloce ma la maggior parte delle app Swing sono piuttosto lente. È così evidente che non riesco nemmeno a immaginare di doverlo provare.
Jeremy,

1
@Jeremy Mi inchino alla tua conoscenza superiore. Sono così imbarazzato, lo sto facendo da anni ma ora lo so.
Tim Williscroft,

2
Win32 nativo va bene. Non eccezionale per uno sviluppo rapido, ma non è gravemente difficile.
Paul Nathan,

5

HTML5 e JavaScript.

Vorrei scherzare, ma non lo sono .

Paura di pensare che nessuno abbia avuto questa risposta un anno e mezzo fa.

Triste...


Circa un anno fa, ho commentato i programmatori che Microsoft ha lanciato VB6 con l'acqua del bagno e che potevano fare lo stesso con .NET. Qualcuno mi ha risposto e ha scritto che MS non avrebbe mai abbandonato .NET. Bene, sorpresa, sorpresa! Questo è il motivo per cui preferisco attenermi al software per la libertà e alle comunità open source. Se .NET fosse open source, il comportamento di MS non avrebbe avuto molta importanza, perché la comunità avrebbe potuto far avanzare il framework.
systemovich,

1
Mono ha ampiamente recuperato. Il problema è che lo stigma e la politica che lo circonda rendono impossibile per altre aziende adottarlo comodamente. La stessa storia vale per Java, che è open source, con Sun che tenta di citare in giudizio Google. La differenza è che Google non si aspettava che Sun li citasse in giudizio. Tutti si aspettano che Microsoft li denunci e, anche se hanno giurato di non farlo, le persone evitano .NET / Mono / ECMA C #. Davvero, non si tratta di open source rispetto a nulla; riguarda la SM che ha completamente perso la testa. Quasi tutti i software corrono il rischio che i suoi collaboratori principali diventino pazzi o annoiati, aperti o meno.
Rei Miyasaka,

+1 perché è fantastico poter trasferire HTML5 e JS direttamente dal browser in un'applicazione desktop nativa. Ora abbiamo web, mobile (usando PhoneGap ) e Windows 8 in un'unica piattaforma open source!
Raynos,

1
La fine dell'articolo che hai collegato suggerisce che MS non abbandonerà la sua enorme base di sviluppatori e / o renderà tutto il loro codice in HTML5 + JS, e che questo è più un gaff di PR che altro.
Scott Whitlock,

@ScottWhitlock è solo Microsoft che espande gli strumenti che è possibile utilizzare senza deprecare o abbandonare il supporto per qualsiasi strumento esistente. È un ottimo modo per attirare più sviluppatori nel sistema eco microsoft.
Raynos,

4

Ricorda che le persone hard-core non-microsoft non-apple sono guidate dalla riga di comando e il design della GUI è abbastanza inutile lì. In una certa misura, comprometteranno e realizzeranno le GUI in HTML, per essere utilizzate dai browser, ma questo è per i loro clienti, non per loro stessi.

Se vuoi rimanere nel mondo della GUI, suppongo che potresti voler guardare Apple o rimanere con .NET su Windows.

Ha senso?

HTH


4
Questo non è strettamente vero. Nel mondo * nix, abbiamo e usiamo le GUI in modo abbastanza esteso.
Greyfade,

@Christopher: lo so e ne sono assolutamente consapevole. Prendiamo ad esempio Oracle. Sono usciti con la GUI HTML, che è molto lenta. Non sto cercando solo aspetti negativi, probabilmente Oracle può essere gestito molto bene dalla riga di comando.
RPK

@RPK: IIRC, Oracle 9i aveva un meraviglioso strumento di amministrazione, che era un'app desktop GUI. L'ho preferito molto all'amministrazione della riga di comando. Oracle 10g lo implementò come una pagina web, che non era altrettanto piacevole.
David Thornley,

1
GTK è piuttosto popolare sui desktop Linux e ci sono altri toolkit GUI. Non credo affatto comune eseguire un desktop senza una GUI anche se si utilizza il terminale per molte attività; sebbene i server * nix di solito faresti tutto attraverso una riga di comando.
Jeremy,

2
+1 perché assomiglio a quell'osservazione. In genere, la programmazione della GUI che eseguo è correlata all'app Web. Faccio uno sforzo consapevole per far funzionare quel grado di design rendendolo intuitivo, semplice e ovvio, ma la mia esperienza di elaborazione è qualcosa come 80% Emacs, 15% browser, 6% altro (con un margine di errore dell'1%) .
Inaimathi,

3

Consiglierei Java nella tua situazione.

Motivi:

  • Se conosci .NET, ti sentirai relativamente a tuo agio con Java (C # è stato in gran parte ispirato a Java e molte convenzioni e persino i nomi delle librerie sono molto simili)
  • Java ha alcune impressionanti funzionalità della GUI (anche se non sono così ampiamente riconosciute). I migliori toolkit GUI multipiattaforma sono a mio avviso Swing (che è totalmente multipiattaforma, con un aspetto coerente) e SWT (che sfrutta anche componenti nativi, come ad esempio utilizzato da Eclipse). Anche JavaFX 2.0 sembra promettente per il futuro.
  • Esistono molti strumenti di tipo "GUI builder" per entrambi (generalmente disponibili come plug-in IDE per es. Netbeans o Eclipse)
  • Probabilmente è una questione di preferenze personali, ma direi che Netbeans o Eclipse sono, nel complesso, IDE migliori di Visual Studio e sicuramente più capaci di quanto tu veda per qualsiasi altro linguaggio o piattaforma.
  • La piattaforma / ecosistema Java è un ottimo posto per essere in generale - enorme varietà di librerie e strumenti, in particolare se ti piace l'open source.

In alternativa, potresti provare una delle nuove lingue JVM innovative come Scala o Clojure se ti senti avventuroso .....


3
Anche gli sviluppatori Java tendono ad essere più veloci nel modo corretto di scrivere software, mentre molti altri ragazzi .NET semplicemente eseguono lo sling del codice senza applicare schemi di progettazione, SOLID, ecc.
Wayne Molina,

-1

Python funziona bene per la GUI. Puoi dare un'occhiata a PyQt, PyGTK, WxPython ecc. Questi sono attivamente utilizzati per lo sviluppo della GUI (in Linux) e si dice che siano multipiattaforma.


-4

Cerca in altri linguaggi di programmazione che funzionano con il runtime .Net, come IronRuby e IronPython. Quindi, controlla il progetto mono .

Questi passaggi ti faranno uscire dalla tua zona di comfort .Net e svilupparla su Linux. Da lì, è un piccolo passo verso lo sviluppo in pieno stile UNIX.


5
-1 perché afferma nella domanda "Non voglio andare con IronPython e IronRuby"
Inaimathi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.