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


18

Dato che Internet è praticamente onnipresente, possiamo noi sviluppatori supporre 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 si arresta in modo anomalo a causa della mancanza di codice di errore. Quello che voglio dire è che oggi i programmi possono essere sviluppati partendo dal presupposto che i suoi utenti avranno sempre accesso a Internet?

Potresti chiedere "Che cosa otteniamo assumendo che?" Il motivo per cui lo sto chiedendo è perché in uni usiamo alcuni 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 nel campus, allora sei tu non è consentito usarlo). Si noti che il programma stesso dovrebbe funzionare correttamente senza accesso a Internet; è necessario solo per il controllo della licenza.

EDIT: 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. Sto Non approvando quello che ho descritto in questa domanda - sto solo chiedendo su di esso perché gli sviluppatori di alcuni dei programmi che usiamo a uni hanno fatto questo. Personalmente penso che farlo sia chiaramente stupido e sbagliato.


4
Idealmente, il controllo delle licenze non sarebbe nemmeno un problema.
alternativa il

1
app desktop? app mobile?
Marcie,

@Marcie: Ah. Intendevo applicazioni desktop. Domanda aggiornata.
gablin

7
Potrei avere accesso a Internet, ma il firewall della mia azienda potrebbe non gradire il mio computer mentre parla al tuo computer :)
Tim Post

Si noti che l'accesso al web non è Accesso a Internet.
Saluti

Risposte:


45

Cattiva idea, per tre motivi. Prima di tutto, anche se oggigiorno tutti hanno accesso a Internet, il che è sostanzialmente vero, non sempre lo hanno sempre disponibile. La mia macchina principale è un laptop, ed è collegato per la maggior parte del tempo, ma non quando sono sull'autobus, per esempio.

Secondo, e in qualche modo correlato al primo, è il tuo metodo di controllo. Che 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 controllo di una condizione di falsi positivi nel controllo della 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 si ha il diritto di fare in modo che il proprio computer lo consideri non valido. In qualsiasi altro contesto chiamato hacking e potrebbe farti atterrare in ogni tipo di acqua calda, e solo perché le nostre leggi sul copyright sono state dirottate dai proprietari del copyright per fare un'esenzione legale per casi speciali per questo scenario, ciò non lo rende giusto .

Far rispettare la legge è compito delle forze dell'ordine e i privati ​​sono fortemente scoraggiati dal prendere le forze dell'ordine nelle loro mani (vigilanza) perché tendono a fare tutto di sbagliato. (Guarda il rootkit di Sony!)

Il miglior modo di agire sarebbe quello di supporre che l'utente abbia una connessione Internet disponibile per le funzionalità che lo richiedono effettivamente, ma non lo richiedono per funzionalità che possono cavarsela senza di esso, e certamente non lo richiedono solo per convincere il programma che non è una copia illegittima!


2
nota a se stessi: vota quando il contatore dei voti si ripristina
Inaimathi,

Non penso che Gablin sia effettivamente interessato a progettare un tale sistema, lo sta solo usando come esempio (come ha fatto anche la mia università, con servizi basati sul web come JSTOR). Sono d'accordo con tutto ciò che suggerisci, però. L'accesso a Internet non è davvero onnipresente ...
msanford,

2
Come ha appena detto msanford, non sono assolutamente interessato a progettare un tale sistema. E sono completamente d'accordo con la tua risposta: dover VPN nel campus da casa solo per poter lavorare in laboratorio da remoto è una seccatura! Non riesco a capire cosa stessero pensando durante la progettazione di un tale sistema di convalida e ho pensato "Forse presumevano che tutti avessero accesso a Internet". Quindi, questa domanda. Ancora una volta, buona risposta. +1
gablin

26
  • Non tutti gli utenti hanno accesso a Internet utilizzabile. Ad esempio, al di fuori delle piccole e medie città (e dei loro sobborghi) e delle città universitarie, gli Stati Uniti non hanno quasi alcuna infrastruttura a banda larga. Gli utenti delle piccole città e delle aree rurali sono generalmente via satellite o dialup (e le loro linee telefoniche non sono sempre le migliori, quindi il dialup è spesso inferiore a 50k / s).

  • Gli utenti con un buon accesso a Internet a casa / in ufficio spesso operano in altri luoghi: parchi, aeroplani, caffè, sale per conferenze, ecc. Che solitamente non dispongono di un accesso a Internet affidabile.

  • Molti utenti investono nel potere di backup per un motivo: quindi non subiscono tempi di inattività durante le interruzioni. Se paralizzi la tua applicazione quando Internet non funziona, 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 punto di errore artificiale (cioè non una conseguenza tecnica della costruzione della cosa) nel tuo software.

I motivi di cui sopra sono più che sufficienti per non utilizzare il modello DRM "call home"; ma anche se nessuno di questi fosse vero, lo sconsiglioi ancora perché, come Mason ha già provato a sottolineare, è eticamente sbagliato sfruttare i tuoi utenti in questo modo.

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


7
+1 per "creare un punto di fallimento artificiale". È un ottimo modo per descriverlo.
Mason Wheeler,

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 collegato.

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

Come hanno anche pubblicato altre risposte, è lecito ritenere che il computer sarà collegato ad un certo punto in futuro. Molte app di tipo di sincronizzazione che dispongono di una modalità offline funzionano in questo modo. Tuttavia, per gentile concessione degli utenti, non operare in questo modo a meno che non sia un servizio per l'utente . Non credo che il controllo delle licenze rientri in quella categoria.


15

No

non puoi presumere che tutti gli utenti abbiano accesso a Internet. Per le statistiche di base clicca qui

Escludendo le applicazioni Web, un'applicazione desktop non dovrebbe supporre che abbia accesso a Internet.


1
Mi piace il fatto che tu abbia incluso le statistiche nella tua risposta. Modo di fornire prove tangibili.
lazyPower il

1
a meno che non sia un browser (anche se anche quello sta cambiando con HTML5).
dan_waterworth,

2
Sì, ma anche un browser può essere utilizzato off-line :) Esistono molte situazioni legittime in cui questo può essere utilizzato. Ad esempio, in .NET un controllo "browser web" può essere incorporato nei moduli. Ciò consente a un'applicazione desktop di creare HTML (ad es. Report) e di visualizzarli all'interno del modulo incorporato, il file HTML viene passato in memoria (caricato da una stringa) o letto dal disco rigido.
Darknight,

Anche le app Web potrebbero essere basate esclusivamente su Intranet e gli utenti potrebbero non avere alcun accesso a Internet.
MartW,

6

La versione breve è NO, non puoi presumere che tutti gli utenti abbiano accesso a Internet. Come altri hanno già detto, ci sono molte persone con accesso a Internet limitato o assente a casa.

Il tuo schema 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 per le aziende avere reti isolate da Internet (specialmente quando si tratta di problemi di sicurezza). Ciò è particolarmente vero se mai vorrai poter vendere il tuo software a un'agenzia governativa. L'altro lato è come gestirai gli aggiornamenti? Se desideri vendere a società / governi, dovrai supportare l'implementazione Enterprise degli aggiornamenti.


4

Sì, nel senso che la maggior parte delle persone che lavorano con i computer possono accedere a una connessione Internet (quindi probabilmente va bene distribuire correzioni di bug 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 supporre che ciascuno dei tuoi utenti possa abbassare costantemente 20 mb / s è probabilmente una cattiva idea. Le persone usano periodicamente anche autobus e aeroplani in cui è praticamente garantita la mancanza di connettività).


2

Penso che sia ragionevole presumere che tutti gli utenti avranno accesso a Internet la maggior parte delle volte , o almeno al momento dell'installazione. Tuttavia, se porto il mio laptop con me su un aereo, in una capanna nel bosco o su una barca in mare, mi aspetterei che tutto ciò che ovviamente non richiede l'accesso a Internet funzioni correttamente.


3
In realtà, l'accesso alla rete al momento dell'installazione è una pessima ipotesi. Non è sempre possibile o consentito connettere la macchina in cui è necessario eseguire il software su Internet, quindi è importante consentire a qualcuno di scaricare i file necessari con una macchina diversa e quindi trasferirli manualmente sulla macchina in cui devono essere installati.
Chris Stratton,

1

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


1

Potrebbe non essere desiderabile disporre di una connessione Internet, come nel caso degli utenti che utilizzano il mio Pawnshop Management System (un'app desktop basata su RDBMS). Non si fidano solo di avere Internet collegato 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!


0

Il server di licenze mobile è un concetto simile. Ho usato un compilatore su AIX di IBM, che ha costantemente verificato un server di licenze. Quindi è stato lento e abbiamo finalmente portato il codice su gcc.

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

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.