İnternet ile Web Arasındaki Fark ve Pratikteki Karşılığı
İnternet ile web'i eşitlemek gündelik konuşmada kimseyi yanıltmaz. Arayüz kararı verirken yanıltır: "web uygulaması mı yapalım, masaüstü uygulaması mı" sorusunu yanlış yerden kurmanıza yol açar. Ayrım aslında basit ve protokol düzeyinde duruyor.
Ayrım protokolde
İnternet, cihazları birbirine bağlayan ağ ve üzerinde konuşulan protokol yığınıdır. TCP/IP taşıma işini görür, onun üstünde SMTP, IMAP, FTP, SSH, DNS, HTTP gibi onlarca protokol çalışır. Web ise bunlardan birinin, HTTP'nin, hipermetinle birleşmiş hali. Web internetin üstünde duran bir katman, alternatifi değil.
Pratik ölçüt: bir şeyin web olup olmadığını anlamak için neyle konuştuğuna bakın. Tarayıcı bir adrese HTTP ile gidiyor ve içerik bağlantılarla dolaşılabiliyorsa web. imap.example.com:993 adresine bağlanan bir posta istemcisi aynı ağı ve aynı kabloları kullanır ama web'e hiç uğramaz.
Gmail web değil, Gmail arayüzü web
E-posta bu ayrımın en net örneği. Gönderim SMTP ile yapılır, okuma IMAP ya da POP3 ile. Hiçbiri HTTP değil. Tarayıcıda Gmail açtığınızda web olan şey yalnızca arayüz; posta kutusunun kendisi ve sunucular arası teslimat, tarayıcı hiç açılmasa da aynı protokollerle yürür. Thunderbird de aynı kutuya bağlanır, farkı arayüzünün sekmede olmaması.
Bunun tasarıma bakan tarafı şu: çevrimdışı davranış, bildirim, çoklu hesap gibi konularda karşınıza çıkan kısıt çoğu zaman arayüzün değil protokolün kısıtıdır. IMAP'te okundu bilgisi sunucuda tutulur ve istemciler onu gecikmeli çeker. İki cihazda farklı görünmesi arayüz hatası değil, senkronizasyon penceresi. Bu ayrımı yapmadan yapılan kullanılabilirlik testi, düzeltilemeyecek bir şeyi bulgu olarak raporlar.
Web mi uygulama mı sorusu artık temiz bir ikilik değil
Bu konudaki metinlerin çoğu ayrımı performansa bağlar: web yavaştır, masaüstü hızlıdır. 2010'ların başında büyük ölçüde doğruydu. Bugün masaüstünde kullandığınız uygulamaların önemli bir kısmı zaten gömülü Chromium paketleri. Slack, VS Code, Discord, Spotify istemcisi; hepsinin arayüzü HTML ve JavaScript. "Masaüstü uygulaması yapalım" dediğinizde çoğu ekipte kastedilen şey, aynı web arayüzünün bir kabuk içine konması.
Gerçek fark başka yerde: dosya sistemine doğrudan erişim, uygulama kapalıyken arka planda çalışabilme, işletim sistemi bildirimleri ve donanıma yakın işler. Tarayıcı sekmesi bu dördünde de kısıtlı, ve bu kısıtlar güvenlik modelinden geliyor, eksiklikten değil.
Kararı nasıl vereceksiniz
Bu kararı genelde tek soruyla çözerim: uygulamanın kurulu kalmaya ihtiyacı var mı? Kullanıcı işini bitirip sekmeyi kapatıyorsa ve geriye makinede bir iz kalmasına gerek yoksa web yeter. İşin bir kısmı kullanıcı bakmıyorken yürüyecekse, bir klasörü izleyecekse ya da cihazla konuşacaksa paketlenmiş istemci gerekir.
Maliyet tarafı da bu soruyla birlikte gelir. Paketlenmiş istemci demek her sürüm için imzalama, güncelleme kanalı, üç platformda ayrı test ve kullanıcının güncellemeyi ne zaman kabul ettiğine bağlı bir sürüm dağılımı demek. Webde tek deploy var ve herkes ertesi sabah aynı sürümde. Bu farkı görmezden gelip "native daha iyi deneyim verir" demek, deneyimin faturasını bakım ekibine kesmektir.
Terminolojiyi düzgün kullanmanın faydası tam burada ortaya çıkıyor. "Siteyi uygulamaya çevirelim" cümlesi tek başına hiçbir şey söylemiyor. Hangi kısıt sizi tarayıcıdan çıkarıyor, onu söyleyin; cevap çoğu zaman sizi tarayıcıda tutar.