Bisakah kita berasumsi bahwa semua pengguna saat ini memiliki akses Internet?

18

Karena Internet cukup banyak di mana-mana, dapatkah kita sebagai pengembang menganggap bahwa semua pengguna memiliki akses Internet? Sekarang saya tidak bermaksud bahwa kode tersebut ditulis sedemikian rupa sehingga jika tidak ada koneksi maka seluruh program crash karena kurangnya kode kesalahan. Maksud saya adalah, dapatkah program saat ini dikembangkan berdasarkan asumsi bahwa para penggunanya akan selalu memiliki akses ke Internet?

Anda mungkin bertanya, "Apa yang kita dapatkan dengan menganggap itu?" Alasan mengapa saya bertanya adalah karena di Uni kami menggunakan beberapa program yang memerlukan akses Internet karena cara memeriksa lisensi (memeriksa alamat IP Anda - jika itu bukan alamat di kampus, maka Anda Anda tidak diizinkan menggunakannya). Perhatikan bahwa program itu sendiri harus berfungsi dengan baik tanpa akses Internet; itu hanya diperlukan untuk pemeriksaan lisensi.

EDIT: Saya sedang berbicara tentang aplikasi desktop di sini.

EDIT2: Dari beberapa jawaban saya merasa dituduh mengeksploitasi pengguna dengan cara yang tidak etis. Saya tidak mendukung apa yang telah saya jelaskan dalam pertanyaan ini - saya hanya bertanya tentang hal itu karena pengembang dari beberapa program yang kami gunakan di uni telah melakukan ini. Secara pribadi saya pikir melakukan ini jelas-jelas bodoh dan salah.

Gablin
sumber
4
Idealnya, pemeriksaan lisensi tidak akan menjadi masalah.
alternatif
1
aplikasi desktop? aplikasi seluler?
Marcie
@Marcie: Ah. Maksud saya aplikasi desktop. Pertanyaan diperbarui.
gablin
7
Saya mungkin memiliki akses internet, tetapi firewall perusahaan saya mungkin tidak suka komputer saya berbicara dengan komputer Anda :)
Tim Post
Harap dicatat bahwa akses web bukan Akses Internet.
MSalters

Jawaban:

45

Gagasan buruk, karena tiga alasan. Pertama, meskipun setiap orang memiliki akses Internet hari ini, yang pada dasarnya benar, mereka tidak selalu selalu tersedia setiap saat. Mesin utama saya adalah laptop, dan itu sering terhubung, tetapi tidak ketika saya berada di bus, misalnya.

Kedua, dan jenis yang terkait dengan yang pertama, adalah metode Anda memeriksa. Bagaimana jika seorang siswa mendapatkan salinan program yang sah, meletakkannya di komputer laptopnya, dan kemudian pergi belajar dengan seorang teman yang tinggal di luar kampus? Anda baru saja memperkenalkan heck dari kondisi positif palsu ke dalam pemeriksaan lisensi Anda.

Ketiga, ada masalah etika dengan lisensi memeriksa di tempat pertama. Jika seseorang memilih untuk menempatkan program di komputer mereka, Anda tidak berhak menyebabkan komputer mereka menganggapnya tidak valid. Dalam konteks lain apa pun yang disebut peretasan dan itu dapat membuat Anda terkena segala macam air panas, dan hanya karena undang-undang hak cipta kami telah dibajak oleh pemilik hak cipta untuk membuat pengecualian kasus khusus untuk skenario ini, itu tidak menjadikannya benar .

Menegakkan hukum adalah tugas penegakan hukum, dan orang-orang pribadi sangat tidak dianjurkan untuk mengambil penegakan hukum ke tangan mereka sendiri (main hakim sendiri) karena mereka cenderung melakukan semuanya salah. (Lihat saja Sony rootkit!)

Tindakan terbaik Anda adalah mengasumsikan bahwa pengguna memiliki koneksi Internet yang tersedia untuk fitur yang benar-benar membutuhkannya, tetapi tidak memerlukannya untuk fitur yang dapat bertahan tanpanya, dan tentu saja tidak memerlukannya hanya untuk meyakinkan program yang itu bukan salinan tidak sah!

Mason Wheeler
sumber
2
catatan untuk diri sendiri: memberikan suara ketika penghitung suara ulang
Inaimathi
Saya tidak berpikir gablin sebenarnya tertarik untuk merancang sistem seperti itu, dia hanya menggunakan itu sebagai contoh (yang dilakukan universitas saya juga, dengan layanan berbasis web seperti JSTOR). Saya setuju dengan semua yang Anda sarankan. Akses internet memang tidak ada di mana-mana ...
msanford
2
Seperti yang dikatakan msanford, saya sama sekali tidak tertarik untuk merancang sistem seperti itu. Dan saya sepenuhnya setuju dengan jawaban Anda - harus VPN ke kampus dari rumah hanya untuk dapat bekerja di lab jarak jauh adalah rasa sakit di pantat! Saya tidak mengerti apa yang mereka pikirkan ketika merancang sistem validasi seperti itu, dan saya pikir "Mungkin mereka berasumsi semua orang memiliki akses ke Internet". Karenanya, pertanyaan ini. Sekali lagi, jawaban yang bagus. +1
gablin
26
  • Tidak semua pengguna memiliki akses internet yang dapat digunakan. Misalnya, di luar kota kecil dan menengah (dan pinggiran kota) dan kota-kota universitas, AS hampir tidak memiliki infrastruktur broadband. Pengguna kota kecil dan pedesaan umumnya menggunakan satelit atau dialup (dan saluran telepon mereka tidak selalu yang terbaik, sehingga dialup sering di bawah 50k / dtk).

  • Pengguna dengan akses internet yang baik di rumah / kantor sering beroperasi di tempat lain: taman, pesawat terbang, kafe, tempat konferensi, dll. Yang biasanya kurang memiliki akses internet yang dapat diandalkan.

  • Banyak pengguna berinvestasi dalam daya cadangan karena suatu alasan: sehingga mereka tidak mengalami waktu henti selama pemadaman. Jika Anda melumpuhkan aplikasi Anda ketika internet turun, Anda baru saja merampok investasi mereka.

  • Koneksi internet gagal, ISP (atau tempat kerja, atau universitas) memblokir lalu lintas dengan kemauan mereka sendiri, pengguna rumahan salah mengkonfigurasi NAT mereka ... itu benar-benar bodoh untuk membuat buatan (yaitu bukan konsekuensi teknis dari membangun hal itu) titik kegagalan dalam perangkat lunak Anda.

Alasan di atas saja sudah lebih dari cukup untuk tidak menggunakan model DRM "panggilan rumah"; tetapi bahkan jika tidak satupun dari mereka benar, saya masih menyarankan untuk tidak melakukannya karena, seperti yang sudah coba ditunjukkan oleh Mason, secara etis salah mengeksploitasi pengguna Anda dengan cara ini.

Anda tidak bisa memaparkan informasi tentang pengguna Anda hanya untuk kepentingan pikiran Anda sendiri. Anda tidak berhak memantau kapan dan dari mana mereka menggunakan perangkat lunak Anda. Melakukan hal semacam ini melanggar kepercayaan pengguna Anda.

HedgeMage
sumber
7
+1 untuk "membuat titik kegagalan buatan." Itu cara yang sangat bagus untuk menggambarkannya.
Mason Wheeler
16

Tidak!

Semua program harus mempertimbangkan akses ke internet sebagai skenario terbaik, dengan mode mundur ketika komputer mungkin tidak terhubung.

Dengan begitu banyak laptop di luar sana, dan dengan sifat sebagian besar jaringan nirkabel publik untuk tetap membayar, sebagian besar pengguna laptop akan secara teratur mengalami kondisi di mana mereka perlu menggunakan komputer dan program mereka tanpa koneksi ke internet. .

Seperti jawaban lain juga diposting, aman untuk mengasumsikan bahwa komputer akan terhubung di beberapa titik di masa depan. Banyak aplikasi tipe sinkronisasi yang memiliki mode offline berfungsi seperti ini. Tapi, sebagai rasa hormat kepada pengguna, jangan beroperasi dengan cara ini kecuali itu adalah layanan untuk pengguna . Saya tidak berpikir pemeriksaan lisensi termasuk dalam kategori itu.

Nicole
sumber
15

Tidak

Anda tidak dapat menganggap semua pengguna memiliki akses internet. Untuk Statistik dasar, klik di sini

Tidak termasuk aplikasi web, aplikasi desktop seharusnya tidak menganggap saya memiliki akses internet.

Malam gelap
sumber
1
Saya suka fakta bahwa Anda memasukkan statistik dalam jawaban Anda. Cara untuk memberikan bukti nyata.
lazyPower
1
kecuali itu peramban (meskipun itu pun berubah dengan HTML5).
dan_waterworth
2
Ya, tetapi bahkan browser dapat digunakan secara off-line :) Ada banyak situasi yang sah di mana ini dapat digunakan. Misalnya dalam .NET kontrol "browser web" dapat disematkan dalam formulir. Ini memungkinkan aplikasi desktop untuk membuat HTML (mis. Laporan) dan membuatnya ditampilkan dalam formulir yang disematkan, file HTML dapat dilewatkan dalam memori (dimuat dari string) atau dibaca dari hard drive.
Darknight
Bahkan aplikasi web bisa murni berbasis intranet dan pengguna mungkin tidak memiliki akses internet apa pun.
MartW
6

Versi singkatnya adalah TIDAK, Anda tidak dapat menganggap semua pengguna memiliki akses internet. Seperti yang telah disebutkan orang lain, ada sejumlah besar orang dengan akses internet terbatas atau tidak ada di rumah.

Skema lisensi Anda harus dapat menangani kasus di mana komputer tempat perangkat lunak akan berjalan tidak akan pernah memiliki akses ke internet. Bukan hal yang aneh bagi perusahaan untuk memiliki jaringan yang terisolasi dari internet (terutama ketika berhadapan dengan masalah keamanan). Ini terutama benar jika Anda ingin dapat menjual perangkat lunak Anda kepada agen pemerintah. Sisi lain adalah bagaimana Anda menangani pembaruan? Jika Anda ingin menjual kepada perusahaan / pemerintah Anda harus mendukung peluncuran Perusahaan dari pembaruan.

Ken Henderson
sumber
4

Ya dalam arti bahwa kebanyakan orang yang bekerja dengan komputer dapat mengakses koneksi internet (jadi mungkin tidak masalah untuk mendistribusikan perbaikan bug melalui manajer paket atau FTP atau yang serupa).

Tidak dalam arti bahwa kebanyakan orang tidak selalu memiliki akses yang konsisten, andal, berkinerja ke internet sepanjang hari (jadi dengan asumsi bahwa setiap pengguna Anda dapat menarik 20mb / s secara konsisten mungkin merupakan ide yang buruk. Orang juga secara berkala menggunakan bus dan pesawat terbang di mana Anda dijamin tidak memiliki konektivitas).

Inaimathi
sumber
2

Saya pikir masuk akal untuk mengasumsikan bahwa semua pengguna akan memiliki akses internet sebagian besar waktu , atau setidaknya pada waktu pemasangan. Namun, jika saya membawa laptop saya di pesawat, ke kabin di hutan, atau di kapal di laut, saya akan mengharapkan apa pun yang jelas tidak memerlukan akses internet untuk bekerja dengan baik.

Brant Bobby
sumber
3
Sebenarnya, akses bersih pada waktu instalasi adalah asumsi yang buruk. Tidak selalu mungkin atau diizinkan untuk menghubungkan mesin di mana perangkat lunak perlu dijalankan ke internet, jadi penting untuk memungkinkan seseorang mengunduh file yang diperlukan dengan mesin yang berbeda dan kemudian secara manual mentransfernya ke mesin tempat mereka akan diinstal.
Chris Stratton
1

Jawabannya tentu saja, itu tergantung. Jika Anda membangun perangkat lunak untuk lantai pabrik ada kemungkinan mereka tidak akan memiliki akses internet. Untuk aplikasi konsumen kemungkinan besar mereka akan melakukannya.

Craig
sumber
1

Mungkin tidak diinginkan memiliki koneksi internet, seperti dalam kasus pengguna yang menggunakan Sistem Manajemen Pegadaian saya (aplikasi desktop berbasis RDBMS). Mereka hanya tidak percaya internet terhubung ke komputer yang sama yang menyimpan semua informasi pribadi pelanggan mereka dan transaksi pegadaian. Jika mereka ingin mengakses web, mereka menggunakan komputer terpisah yang tidak memiliki info pribadi di dalamnya!

Frank R.
sumber
0

Server lisensi mengambang adalah konsep serupa. Saya menggunakan kompiler pada AIX IBM, yang terus-menerus diperiksa terhadap server lisensi. Karena itu lambat dan kami akhirnya porting kode ke gcc.

Ini rapuh dan menjengkelkan. Saya pikir itu masuk akal untuk perangkat lunak yang sangat mahal oleh perusahaan yang hampir monopolistik.

Program Lenny
sumber