Esiste una filosofia di programmazione di Windows? [chiuso]

31

Ho programmato entrambi in ambienti Unix e Windows. Principalmente ho lavorato in Unix, dove ho imparato Unix Philosophy , che può essere riassunto come

  • Scrivi programmi che fanno una cosa e la fanno bene.
  • Scrivi programmi per lavorare insieme.
  • Scrivi programmi per gestire flussi di testo, poiché si tratta di un'interfaccia universale.

Sembra esserci una chiara differenza nelle culture di programmazione tra i mondi Unix e Windows, ad esempio:

  • GUI vs CLI
  • Registro vs file di configurazione
  • Un sacco di strumenti specializzati per qualsiasi esigenza rispetto a un gruppo di strumenti ortogonali generici che possono essere combinati

Esiste l'equivalente di "filosofia Unix" nel mondo Windows? Quale programmatore Unix può imparare da Windows o dovrebbe essere a conoscenza quando si passa alla programmazione in Windows?

Vorrei che le risposte si concentrassero sulle migliori pratiche della programmazione Windows (e non su una lotta tra Windows e Unix).

    
posta Maglob 07.02.2011 - 08:52
fonte

7 risposte

28

In realtà c'è qualcosa come "filosofia di Windows". Principalmente riguarda il concetto di composizione e la parte dell'interfaccia utente: programmi di progettazione per gli utenti e non per altri programmatori.

Ciò significa:

  • Interfacce utente semplici e intuitive
  • Flusso di lavoro naturale
  • Dovrebbe funzionare immediatamente
  • Nessuna conoscenza tecnica richiesta là dove non è richiesta

Ecco una buona lettura:

Biculturalismo

Con la proliferazione di Windows l'approccio hacker alla codifica iniziò a diventare sfavorevole. Prima stava scrivendo i programmi C / C ++ nel modo più complesso e confuso, in modo che solo i cervelli più duri potessero capirli, come una specie di rito di passaggio. Sotto Windows le cose hanno iniziato a cambiare e quello "stile codice" è ora molto sfavorito. Non sono sicuro se la sua influenza diretta su Windows o piuttosto il nuovo livello di comprensione della qualità del codice, ma almeno in modo tempestivo coincidono.

    
risposta data 07.02.2011 - 09:47
fonte
8

Penso che le differenze a cui si allude nella tua domanda riguardino maggiormente gli utenti di questi sistemi rispetto agli stili di programmazione dei loro sviluppatori. Per molto tempo, * nix è stato il campo del programmatore o degli appassionati di informatica. C'era molto poco nel modo di uso "casuale". Dove Windows ha [home] numeri degli utenti di ordini di grandezza maggiore.

Gli utenti occasionali non vogliono ricordare una dozzina di diversi flag a riga di comando per eseguire un programma. Vogliono fare clic su un pulsante.

Gli utenti occasionali non vogliono preoccuparsi dei loro file di configurazione dei sistemi, o di come Fluffy Kitties si ricordi della loro razza preferita di felini.

Gli utenti occasionali generalmente usano qualcosa finché fanno quello che vogliono, anche se ci sono prodotti "migliori" disponibili.

Penso che il mio punto principale qui sia ... Windows è molto creato per l' utente , piuttosto che per il creatore . Non andare contro i paradigmi di vecchia data che esistono nello sviluppo di Windows. Non inquinare gli utenti My Documents con crap, o inserirti nel loro avvio senza motivo.

Forse di importanza simile: scrivi la documentazione per l'utente.

    
risposta data 07.02.2011 - 09:47
fonte
8

Il blog di Raymond Chen, The Old New Thing , e il suo book con lo stesso nome offre una panoramica approfondita della filosofia, della storia e delle best practice della programmazione nativa di Windows.

    
risposta data 07.02.2011 - 21:16
fonte
4

Compromissione e amp; Personalizza

Non è il massimo in qualsiasi cosa, ma se sei disposto a mettere il tempo ea prendere alcune decisioni sgradevoli in alcuni punti c'è poco che non puoi farcela. Se non ti piace quello che sta facendo, probabilmente puoi cambiarlo. Ci sono pochi posti dove c'è solo un modo o anche un modo che è sempre il migliore.

Abbastanza buono da consentire all'utente di iniziare

Pochissime cose sono fenomenali fuori dagli schemi, ma molte cose sono utilizzabili. Unix tende ad andare nella direzione in cui nulla funziona finché non lo si configura e Apple rende tutto abbastanza lucido, ma a costo di una certa configurabilità / flessibilità.

Aspettatevi una coda di supporto log

Gli utenti Windows non si aggiornano solo perché c'è una versione più recente. Non vengono nemmeno aggiornati a causa di una vulnerabilità o di un bugfix. Spesso gli utenti di Windows devono essere obbligati ad eseguire l'aggiornamento, ma se li imponi di eseguire l'aggiornamento rapidamente cercheranno prodotti alternativi

Gli utenti hanno una vasta gamma di livelli di abilità

Unix ha un'elevata barriera percepita all'ingresso da un livello tecnico dal punto di vista di un utente domestico occasionale. Apple aveva un livello di abilità richiesto percepito molto basso, ma non incoraggia l'utente casuale a fare molto in termini di personalizzazione del proprio sistema operativo. Windows è nel mezzo. È solo un po 'più difficile iniziare a utilizzare i prodotti Apple, tuttavia sono disponibili molte informazioni semplici, a volte direttamente nell'installazione stessa, su come modificare alcune configurazioni di sistema piuttosto approfondite. Questo porta ad un livello di abilità piuttosto casuale nel livello medio degli utenti perché se sono abbastanza sicuri di provare qualcosa ci sono buone possibilità che possano capire come farlo. Inoltre lascia gli utenti più timidi senza alcuna esperienza in alcuni casi perché diffidano degli avvertimenti che le cose vanno male.

    
risposta data 07.02.2011 - 18:28
fonte
3

Windows è stato realizzato con il supporto esplicito per lo standard CUA (Common User Access) di IBM per guidare lo sviluppo di applicazioni.

Che, ovviamente, era un tentativo di creare un'esperienza simile a Mac per l'utente.

    
risposta data 07.02.2011 - 18:44
fonte
2

UNIX tempo fa era per programmatori e persone del genere e Windows era sempre per gli utenti che non sanno come scrivere script di bash. Quindi in Windows dovresti preoccuparti degli utenti, cioè creare uno strumento per tutte le attività di cui l'utente non deve preoccuparsi su chi configurare alcuni programmi per lavorare insieme.

    
risposta data 07.02.2011 - 09:34
fonte
1

Non sono sicuro che sia una filosofia, ma IMHO c'è una sorta di densità di pensiero che va con la programmazione di Windows. C'è anche un senso di sorpresa su come le cose funzionano a volte.

Raccomando la pazienza se si sta adottando lo sviluppo di Windows e ci si preoccupa un po 'di più delle proprie ipotesi.

    
risposta data 07.02.2011 - 14:04
fonte

Leggi altre domande sui tag