Possiamo supporre che tutti gli utenti oggi abbiano accesso a Internet?

18

Dato che Internet è praticamente onnipresente, possiamo, come sviluppatori, assumere che tutti gli utenti abbiano accesso a Internet? Ora non intendo che il codice sia scritto in modo tale che se non c'è connessione, l'intero programma va in crash a causa della mancanza del codice di errore. Quello che voglio dire è che i programmi oggi possono essere sviluppati supponendo che i loro utenti avranno sempre accesso a Internet?

Potresti chiedere "Cosa guadagniamo assumendo questo?" Il motivo per cui lo chiedo è perché all'università usiamo un bel po 'di programmi che richiedono l'accesso a Internet a causa del modo in cui controlla le licenze (controlla il tuo indirizzo IP - se non è un indirizzo al campus, allora tu sei non è permesso usarlo). Si noti che il programma stesso dovrebbe funzionare bene senza l'accesso a Internet; è solo necessario per il controllo della licenza.

Modifica Sto parlando di applicazioni desktop qui.

EDIT2: Da alcune delle risposte ho la sensazione di essere accusato di sfruttare gli utenti in modi non etici. Sono non che approva ciò che ho descritto in questa domanda - ci sto solo chiedendo perché gli sviluppatori di alcuni dei programmi che usiamo in uni hanno fatto questo. Personalmente penso che farlo sia semplicemente stupido e sbagliato.

    
posta gablin 17.12.2010 - 00:01
fonte

10 risposte

45

Cattiva idea, per tre motivi. Prima di tutto, anche se oggigiorno tutti hanno accesso a Internet, il che è fondamentalmente vero, non sempre sono disponibili in ogni momento. La mia macchina principale è un laptop, ed è connessa molto tempo, ma non quando sono sul bus, per esempio.

Secondo, e in qualche modo correlato al primo, è il tuo metodo di controllo. Cosa succede se uno studente ottiene una copia legittima del programma, lo mette sul suo computer portatile, e poi va a studiare con un amico che vive fuori dal campus? Hai appena introdotto un diavolo di una condizione di falso positivo nel controllo della tua licenza.

In terzo luogo, c'è un problema etico con il controllo della licenza in primo luogo. Se una persona sceglie di posizionare un programma sul proprio computer, non ha il diritto di considerare il proprio computer come non valido. In qualsiasi altro contesto si chiama hacking e potrebbe portarti in ogni tipo di acqua calda, e solo perché le nostre leggi sul copyright sono state dirottate dai proprietari dei diritti d'autore per fare una deroga legale per questo caso, che non lo rende giusto .

L'applicazione della legge è compito delle forze dell'ordine, e i privati sono strongmente scoraggiati dal prendere le forze dell'ordine (vigilantismo) perché tendono a sbagliare completamente. (Guarda il rootkit Sony!)

La tua migliore linea di condotta sarebbe quella di presumere che l'utente abbia una connessione Internet disponibile per funzionalità che lo richiedono, ma non lo richiede per funzionalità che possono farne a meno, e certamente non lo richiede solo per convincere il programma che non è una copia illegittima!

    
risposta data 17.12.2010 - 00:17
fonte
26
  • Non tutti gli utenti hanno accesso a Internet utilizzabile. Ad esempio, al di fuori delle città piccole e medie (e dei loro sobborghi) e delle città universitarie, gli Stati Uniti non hanno quasi nessuna infrastruttura a banda larga. Le piccole città e gli utenti rurali sono generalmente su satellite o dialup (e le loro linee telefoniche non sono sempre le migliori, quindi dialup è spesso inferiore a 50k / s).

  • Gli utenti con un buon accesso a Internet a casa o in ufficio operano spesso in altri luoghi: parchi, aerei, caffè, sale per conferenze, ecc. che di solito non hanno accesso a Internet affidabile.

  • Molti utenti investono in energia di riserva per un motivo: in questo modo non subiscono interruzioni durante le interruzioni. Se paralizzi la tua applicazione quando Internet va giù, li hai appena derubati di quell'investimento.

  • Le connessioni Internet falliscono, gli ISP (o i luoghi di lavoro o le università) bloccano il traffico a loro piacimento, gli utenti domestici configurano erroneamente i loro NAT ... è semplicemente stupido creare un artificio (cioè non una conseguenza tecnica della costruzione la cosa) punto di errore nel tuo software.

Le sole ragioni di cui sopra sono più che sufficienti per non usare il modello DRM "call home"; ma anche se nessuno di essi fosse vero, vorrei comunque sconsigliarlo perché, come Mason ha già cercato di sottolineare, è eticamente sbagliato sfruttare i tuoi utenti in questo modo.

Non puoi esporre informazioni sui tuoi utenti solo per il tuo stesso pensiero. Hai nessun diritto per monitorare quando e da dove utilizzano il tuo software. Fare questo genere di cose viola la fiducia dei tuoi utenti.

    
risposta data 17.12.2010 - 01:02
fonte
16

No!

Tutti i programmi dovrebbero considerare l'accesso a Internet come uno scenario ottimale, con una modalità di fallback per quando il computer potrebbe non essere connesso.

Con così tanti portatili là fuori, e con la natura della maggior parte delle reti wireless pubbliche per essere ancora a pagamento, la maggior parte degli utenti di laptop sperimenterà regolarmente le condizioni in cui è necessario utilizzare il proprio computer e i propri programmi senza una connessione su Internet.

Come hanno anche postato altre risposte, è lecito ritenere che il computer sarà connesso in futuro. Molte app di tipo sincronizzazione che hanno una modalità offline funzionano in questo modo. Tuttavia, per motivi di cortesia per gli utenti, non operare in questo modo a meno che non si tratti di un servizio per l'utente . Non credo che il controllo delle licenze ricada in quella categoria.

    
risposta data 17.12.2010 - 00:20
fonte
15

No

you can not assume all users have internet access. For basic Stats click here

Escludendo applicazioni web, un'applicazione desktop non dovrebbe presumere che abbia accesso a Internet.

    
risposta data 17.12.2010 - 00:36
fonte
6

La versione breve è NO, non puoi assumere che tutti gli utenti abbiano accesso a Internet. Come altri hanno già accennato, c'è un gran numero di persone con accesso a Internet limitato o assente a casa.

Il tuo sistema di licenze dovrebbe essere in grado di gestire il caso in cui il computer su cui verrà eseguito il software non avrà mai accesso a Internet. Non è poi così insolito che le aziende abbiano reti isolate da Internet (specialmente quando si tratta di problemi di sicurezza). Questo è particolarmente vero se vorrete mai essere in grado di vendere il vostro software ad un'agenzia governativa. L'altro lato è come gestirai gli aggiornamenti? Se desideri vendere a società / governo, dovrai supportare l'implementazione degli aggiornamenti da parte di Enterprise.

    
risposta data 17.12.2010 - 01:24
fonte
4

Sì, nel senso che la maggior parte delle persone che lavorano con i computer possono accedere a una connessione Internet (quindi probabilmente è giusto distribuire correzioni di errori tramite un gestore di pacchetti o FTP o simili).

No, nel senso che la maggior parte delle persone non ha necessariamente un accesso coerente, affidabile e performante a Internet tutto il giorno (quindi supponendo che ognuno dei tuoi utenti possa ridurre 20mb / s in modo coerente è probabilmente una cattiva idea. usa periodicamente autobus e aeroplani dove ti è praticamente garantita la mancanza di connettività).

    
risposta data 17.12.2010 - 00:18
fonte
2

Penso sia ragionevole presumere che tutti gli utenti abbiano la maggior parte del tempo di accesso a Internet , o almeno al momento dell'installazione. Tuttavia, se porto il mio laptop con me su un aereo, in una baita nei boschi o su una barca in mare, mi aspetterei che qualsiasi cosa che ovviamente richieda l'accesso a Internet funzioni bene .

    
risposta data 17.12.2010 - 00:19
fonte
1

La risposta è ovviamente, dipende. Se stai costruendo software per una fabbrica, ci sono buone probabilità che non abbiano accesso a Internet. Molto probabilmente per applicazioni consumer.

    
risposta data 17.12.2010 - 00:12
fonte
1

Potrebbe non essere desiderabile avere una connessione internet, come nel caso degli utenti che usano il mio Pawnshop Management System (un'app desktop basata su RDBMS). Semplicemente non si fida che Internet sia connesso allo stesso computer che contiene tutte le informazioni personali dei clienti e le transazioni dei banchi dei pegni. Se vogliono accedere al web, usano un computer separato che non ha informazioni personali su di esso!

    
risposta data 22.05.2011 - 05:57
fonte
0

Il server di licenze mobili è un concetto simile. Ho usato un compilatore su AIX di IBM, controllato costantemente da un server di licenze. Quindi è stato lento e abbiamo finalmente portato il codice a gcc.

È fragile e fastidioso. Penso che abbia senso solo per i software molto costosi di aziende quasi monopolistiche.

    
risposta data 17.12.2010 - 13:38
fonte

Leggi altre domande sui tag