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.
fuente
Respuestas:
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!
fuente
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.
fuente
¡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.
fuente
No
Excluyendo las aplicaciones web, una aplicación de escritorio no debe asumir en mi mente que tiene acceso a Internet.
fuente
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.
fuente
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).
fuente
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.
fuente
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.
fuente
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!
fuente
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.
fuente