Vale ancora la pena imparare lo sviluppo del desktop gui? [chiuso]

18

Negli ultimi due anni, tutti i progetti seri su cui ho lavorato sono stati basati sul web o avevano un'interfaccia utente non grafica (servizi, script da riga di comando, ecc ...). Posso creare un'app WinForms o fare un semplice WPF quando necessario, ma non ho mai approfondito alcune API di livello inferiore come MFC o QT.

Capisco che ciò dipenda dalla situazione, ma in generale vale ancora la pena dedicare del tempo per apprendere bene lo sviluppo del desktop o le applicazioni che si spostano sul web e sui dispositivi mobili a un ritmo tale da rendere questa conoscenza meno rilevante? Inoltre, ti aspetti che gli sviluppatori con cui lavori abbiano esperienza di desktop gui?

    
posta aubreyrhodes 18.11.2010 - 18:54
fonte

7 risposte

38

Direi di sì, lo è. C'è una sorta di effetto a pendolo nello sviluppo del programma. Prima tutto funzionava direttamente sul computer. Poi, quando il computer è diventato abbastanza potente da eseguire più programmi, ha ottenuto mainframe con terminali stupidi. Ma i terminali stupidi fanno davvero schifo in termini di usabilità, quindi non appena i computer diventano abbastanza potenti da inserire quantità ragionevoli di hardware all'interno di un sistema di dimensioni terminali, abbiamo i personal computer, e tutto è andato direttamente sul computer.

Poi hanno inventato il World Wide Web e siamo tornati a un mainframe (server) e un terminale stupido (browser). Ma i terminali stupidi ancora fanno davvero schifo in termini di usabilità e persone stanno iniziando a reimparare le lezioni di 30 anni fa, e ne stiamo tornando di nuovo lontano. Al giorno d'oggi molti degli sviluppi davvero interessanti sono le app desktop (o mobili) che vengono eseguite localmente, ma sono in grado di connettersi a Internet per scopi specifici per migliorarne la funzionalità.

    
risposta data 18.11.2010 - 19:14
fonte
11

Anche se non hai intenzione di creare un desktop dev, ti suggerirei di avere abbastanza esperienza per avere un parere informato su quando è meglio usare una soluzione desktop su un client web.

    
risposta data 18.11.2010 - 20:33
fonte
7

Sì, ma non nel modo in cui stai pensando.

La programmazione GUI non è più difficile né richiede competenze specialistiche oltre alla familiarità con l'interfaccia di programmazione gui. Agganciare pulsanti, finestre e controlli non è molto difficile ed è piuttosto facile con gli ambienti di programmazione moderni rispetto ai primi giorni con cose come MFC. La programmazione GUI è abbastanza facile da imparare quando è richiesta.

Tuttavia, mentre agganciare i pulsanti e le caselle di testo è abbastanza facile, sapere quando e dove posizionare i pulsanti e progettare una guida per essere utilizzata dagli esseri umani è molto difficile. Questa è un'abilità molto preziosa e importante da avere. Tuttavia, i principi di progettazione che si applicano alle interfacce native rispetto al web sono molto simili.

Quindi impara come progettare buone interfacce utente efficaci e non confondere gli utenti, e avrai familiarità con la programmazione gratuita.

    
risposta data 18.11.2010 - 20:54
fonte
5

Dipenderà davvero dalla tua situazione. Recentemente ho lavorato per una società Fortune 500 che aveva diversi progetti per convertire le applicazioni Web in applicazioni desktop (SmartClient / Click-Once). Nelle loro circostanze particolari ha avuto molto senso ed ha eliminato diversi problemi di usabilità delle loro app esistenti.

Se sei un dipendente a tempo pieno e la tua azienda in genere non progetta app per desktop, probabilmente non ha senso essere completamente aggiornato su Winforms o WPF. Se, tuttavia, sei un consulente e desideri essere in grado di offrire un altro servizio ai tuoi clienti, allora non può danneggiare.

    
risposta data 18.11.2010 - 19:16
fonte
4

Hmm, oltre a GMail, Stack-Exchange e l'home banking della mia banca, uso tutto il giorno software non web. Ora con l'avvento di smartphone e tablet, le applicazioni Web sono ancora meno attraenti per me (io uso il mio smartphone client di Facebook). Questo è il lato utente.

Lato sviluppatore: nei miei ultimi 10 anni, ho lavorato quasi esclusivamente su software non web (e la mia carriera ha occupato molti domini molto diversi mentre lavoravo come consulente software) e non vedo alcuna tendenza futura del web in il mio lavoro.

Quindi sì, è ancora un must per l'apprendimento degli ambienti della GUI desktop.

    
risposta data 18.11.2010 - 19:13
fonte
2

Ovviamente "dipende" - ma penso che la tua esperienza sia tipica. Raramente ho dovuto creare un thick client per qualsiasi applicazione che ho scritto. A meno che non vi sia un motivo specifico per cui il client deve essere in esecuzione sul desktop (problemi di connettività o gioco 3D, ecc.), Credo che sia più facile per lo sviluppatore e gli amministratori mantenere una "istanza" dell'applicazione. Se hanno le competenze necessarie per progettare un'applicazione web, dovrebbero andare bene nel regno delle app desktop in genere.

In realtà penso che sia più importante che uno spesso sviluppatore di client apprenda la programmazione di applicazioni Web - l'ereditarietà dell'apolidia di HTTP lo rende un paradigma di sviluppo di applicazioni più difficile da avvolgere (o almeno devi pensare un po 'di più piuttosto che schiaffeggiare i controlli su un pannello).

Non dimenticare - hai tecnologie come Silverlight e Adobe Flex / AIR che possono essere messe a confronto tra desktop e applicazioni web.

    
risposta data 18.11.2010 - 19:32
fonte
0

Secondo il team di IE9:

Non dovrebbe esserci spazio tra le app native e web. Accelerazione HW, JS veloce e pinning del sito si avvia

Penso che sia una scommessa sicura che queste tecnologie cresceranno più vicine. Se sei uno sviluppatore Java, c'è pochissima differenza tra lo sviluppo di app desktop e applicazioni web (usando GWT). Non è irragionevole aspettarsi che sempre più piattaforme di sviluppo "desktop" siano in grado di indirizzare il motore del browser. Inoltre, non è irragionevole aspettarsi che sempre più app desktop abbiano un modello di distribuzione simile al web (aggiornamento automatico in background, esecuzione in modalità sandbox, come chrome).

    
risposta data 18.11.2010 - 21:19
fonte

Leggi altre domande sui tag