¿Podemos suponer que todos los usuarios de hoy tienen acceso a Internet?

18

Como Internet es bastante ubicuo, ¿podemos nosotros como desarrolladores asumir que todos los usuarios tienen acceso a Internet? Ahora no quiero decir que el código esté escrito de tal manera que si no hay conexión, todo el programa falla debido a la falta de código de error. Lo que quiero decir es, ¿pueden los programas de hoy desarrollarse bajo el supuesto de que sus usuarios siempre tendrán acceso a Internet?

Usted puede preguntar "¿Qué ganamos al asumir eso?" La razón por la que pregunto es porque en la universidad utilizamos bastantes programas que requieren acceso a Internet debido a la forma en que verifica las licencias (verifica su dirección IP; si no es una dirección en el campus, entonces usted es no está permitido usarlo). Tenga en cuenta que el programa en sí debería funcionar bien sin acceso a Internet; solo es necesario para verificar la licencia.

EDITAR: estoy hablando de aplicaciones de escritorio aquí.

EDIT2: De algunas de las respuestas tengo la sensación de ser acusado de explotar a los usuarios de manera poco ética. Estoy no refrendar lo que he descrito en esta pregunta - Sólo estoy preguntando al respecto porque los desarrolladores de algunos de los programas que utilizamos en la universidad han hecho esto. Personalmente, creo que hacer esto es simplemente estúpido e incorrecto.

gablin
fuente
44
Idealmente, la verificación de la licencia ni siquiera sería un problema.
alternativa
1
¿aplicación de escritorio? ¿aplicación movil?
Marcie
@Marcie: Ah. Me refería a las aplicaciones de escritorio. Pregunta actualizada
gablin
77
Es posible que tenga acceso a Internet, pero es posible que el firewall de mi empresa no quiera que mi computadora hable con su computadora :)
Tim Post
Tenga en cuenta que el acceso web no es acceso a Internet.
MSalters

Respuestas:

45

Mala idea, por tres razones. En primer lugar, aunque todos tienen acceso a Internet en estos días, lo cual es básicamente cierto, no siempre lo tienen disponible en todo momento. Mi máquina principal es una computadora portátil, y está conectada muchas veces, pero no cuando estoy en el autobús, por ejemplo.

Segundo, y más o menos relacionado con el primero, es su método de verificación. ¿Qué sucede si un estudiante obtiene una copia legítima del programa, la coloca en su computadora portátil y luego va a estudiar con un amigo que vive fuera del campus? Acaba de introducir una condición de falso positivo en la comprobación de su licencia.

Tercero, hay un problema ético con la verificación de la licencia en primer lugar. Si una persona elige colocar un programa en su computadora, no tiene derecho a hacer que su computadora lo trate como no válido. En cualquier otro contexto que se llama piratería y podría aterrizar en todo tipo de agua caliente, y solo porque nuestras leyes de derechos de autor han sido secuestradas por los propietarios de derechos de autor para hacer una exención legal de caso especial para este escenario, eso no lo hace correcto .

Hacer cumplir la ley es el trabajo de la aplicación de la ley, y los particulares están muy desanimados de tomar la aplicación de la ley en sus propias manos (vigilantismo) porque tienden a hacerlo todo mal. (¡Solo mira el rootkit de Sony!)

Su mejor curso de acción sería asumir que el usuario tiene una conexión a Internet disponible para las funciones que realmente lo requieren, pero no lo requiere para las funciones que pueden funcionar sin él, y ciertamente no lo requieren solo para convencer al programa de que ¡No es una copia ilegítima!

Mason Wheeler
fuente
2
Nota personal: vote cuando se restablezca el contador de votos
Inaimathi
No creo que gablin esté realmente interesado en diseñar un sistema de este tipo, solo lo está usando como ejemplo (lo que también hizo mi universidad, con servicios basados ​​en la web como JSTOR). Sin embargo, estoy de acuerdo con todo lo que sugieres. El acceso a Internet no es omnipresente ...
msanford
2
Como acaba de decir msanford, no estoy absolutamente interesado en diseñar un sistema de este tipo. Y estoy completamente de acuerdo con su respuesta: ¡tener que ingresar a la VPN desde el campus desde el hogar solo para poder trabajar en el laboratorio de forma remota es un fastidio! No puedo entender lo que estaban pensando al diseñar un sistema de validación de este tipo, y pensé "Tal vez estaban asumiendo que todos tienen acceso a Internet". Por lo tanto, esta pregunta. Nuevamente, buena respuesta. +1
gablin
26
  • No todos los usuarios tienen acceso a internet utilizable. Por ejemplo, fuera de las ciudades pequeñas y medianas (y sus suburbios) y las ciudades universitarias, los Estados Unidos casi no tienen infraestructura de banda ancha. Los usuarios de las ciudades pequeñas y las zonas rurales generalmente usan el satélite o el acceso telefónico (y sus líneas telefónicas no siempre son las mejores, por lo que el acceso telefónico suele ser inferior a 50k / s).

  • Los usuarios con buen acceso a Internet en el hogar / oficina a menudo operan en otros lugares: parques, aviones, cafeterías, salas de conferencias, etc., que generalmente carecen de acceso confiable a Internet.

  • Muchos usuarios invierten en energía de respaldo por una razón: para que no experimenten tiempo de inactividad durante las interrupciones. Si paraliza su aplicación cuando se cae Internet, simplemente les ha robado esa inversión.

  • Las conexiones a Internet fallan, los ISP (o lugares de trabajo o universidades) bloquean el tráfico a su antojo, los usuarios domésticos configuran mal sus NAT ... es simplemente estúpido crear un punto de falla artificial (es decir, no una consecuencia técnica de construir la cosa) en tu software

Las razones anteriores son más que suficientes para no usar el modelo DRM "llamar a casa"; pero incluso si ninguno de ellos fuera cierto, aún lo desaconsejaría porque, como Mason ya intentó señalar, es éticamente incorrecto explotar a sus usuarios de esta manera.

No puede exponer información sobre sus usuarios solo por su propia mente. No tiene derecho a controlar cuándo y desde dónde utilizan su software. Hacer este tipo de cosas viola la confianza de sus usuarios.

HedgeMage
fuente
77
+1 para "crear un punto artificial de falla". Esa es una muy buena manera de describirlo.
Mason Wheeler
16

¡No!

Todos los programas deben considerar el acceso a Internet como el mejor escenario, con un modo alternativo para cuando la computadora no esté conectada.

Con tantas computadoras portátiles por ahí, y con la naturaleza de la mayoría de las redes inalámbricas públicas que todavía son de pago por uso, la mayoría de los usuarios de computadoras portátiles experimentarán regularmente condiciones en las que necesitan usar su computadora y sus programas sin una conexión a Internet .

Como también se han publicado otras respuestas, es seguro asumir que la computadora se conectará en algún momento en el futuro. Muchas aplicaciones de tipo sincronización que tienen un modo fuera de línea funcionan de esta manera. Pero, como cortesía para los usuarios, no opere de esta manera a menos que sea un servicio para el usuario . No creo que la verificación de licencias caiga en esa categoría.

Nicole
fuente
15

No

No puede asumir que todos los usuarios tienen acceso a Internet. Para estadísticas básicas, haga clic aquí

Excluyendo las aplicaciones web, una aplicación de escritorio no debe asumir en mi mente que tiene acceso a Internet.

Noche oscura
fuente
1
Me gusta el hecho de que incluiste estadísticas en tu respuesta. Manera de dar evidencia tangible.
lazyPower
1
a menos que sea un navegador (aunque incluso eso está cambiando con HTML5).
dan_waterworth
2
Sí, pero incluso un navegador se puede usar fuera de línea :) Hay muchas situaciones legítimas en las que esto podría usarse. Por ejemplo, en .NET se puede incrustar un control de "navegador web" en los formularios. Esto permite que una aplicación de escritorio cree HTML (por ejemplo, informes) y los muestre dentro del formulario incrustado, el archivo HTML se pasa en la memoria (cargado desde una cadena) o se lee desde el disco duro.
Darknight
Incluso las aplicaciones web podrían estar basadas exclusivamente en la intranet y los usuarios posiblemente no tengan acceso a Internet.
MartW
6

La versión corta es NO, no puede asumir que todos los usuarios tienen acceso a Internet. Como otros han mencionado, hay una gran cantidad de personas con acceso limitado o nulo a Internet en sus hogares.

Su esquema de licencia debería ser capaz de manejar el caso en que la computadora en la que se ejecutará el software nunca tendrá acceso a Internet. No es tan inusual que las corporaciones tengan redes aisladas de Internet (especialmente cuando se trata de problemas de seguridad). Esto es especialmente cierto si alguna vez desea vender su software a una agencia gubernamental. El otro lado es ¿cómo manejará las actualizaciones? Si desea vender a corporaciones / gobiernos, deberá respaldar el lanzamiento de las actualizaciones por parte de Enterprise.

Ken Henderson
fuente
4

Sí, en el sentido de que la mayoría de las personas que trabajan con computadoras pueden acceder a una conexión a Internet (por lo que probablemente esté bien distribuir las correcciones de errores a través de un administrador de paquetes o FTP o similar).

No, en el sentido de que la mayoría de las personas no necesariamente tienen acceso constante, confiable y eficiente a Internet todo el día (por lo que asumir que cada uno de sus usuarios puede bajar 20 mb / s de manera consistente probablemente sea una mala idea. Las personas también usan autobuses periódicamente) y aviones en los que está prácticamente garantizado la falta de conectividad).

Inaimathi
fuente
2

Creo que es razonable suponer que todos los usuarios tendrán acceso a Internet la mayor parte del tiempo , o al menos en el momento de la instalación. Sin embargo, si llevo mi computadora portátil conmigo en un avión, a una cabaña en el bosque o en un bote en el mar, esperaría que cualquier cosa que obviamente no requiera acceso a Internet funcione bien.

Brant Bobby
fuente
3
En realidad, el acceso a la red en el momento de la instalación es una mala suposición. No siempre es posible o permisible conectar la máquina donde el software debe ejecutarse a Internet, por lo que es importante permitir que alguien descargue los archivos necesarios con una máquina diferente y luego los transfiera manualmente a la máquina donde se instalarán.
Chris Stratton
1

La respuesta es, por supuesto, depende. Si está creando software para una fábrica, es muy probable que no tengan acceso a Internet. Para aplicaciones de consumo, lo más probable es que lo hagan.

Craig
fuente
1

Puede que no sea deseable tener una conexión a Internet, como en el caso de los usuarios que usan mi Sistema de administración de casa de empeño (una aplicación de escritorio basada en RDBMS). Simplemente no confían en tener Internet conectado a la misma computadora que contiene la información personal de todos sus clientes y las transacciones de las casas de empeño. Si quieren acceder a la web, ¡usan una computadora separada que no tiene ninguna información personal!

Frank R.
fuente
0

El servidor de licencias flotante es un concepto similar. Usé un compilador en AIX de IBM, que constantemente verificaba contra un servidor de licencias. Por lo tanto, fue lento y finalmente portamos el código a gcc.

Es frágil y molesto. Creo que solo tiene sentido para un software muy caro por parte de compañías casi monopolísticas.

LennyProgrammers
fuente