Web’in Görmezden Gelinen Kahramanı "HTML"

Picture of Atakan Kızılbey
Atakan Kızılbey
Software Team Leader

Ailenin dışlanan çocuğu HTML, modern web deneyimlerinin vazgeçilmezi olan dijital dünyanın sessiz kahramanı..

CSS ve JavaScript kadar göz önünde olamasa da aslında bu iki arkadaş her şeyi HTML’e borçludur. Yani bir nevi, CSS ve Javascript eğer iPhone ise, HTML bir Nokia’dır hatta Ericsson’dur :). HTML olmadan, web sadece bakıldığında anlamak için ciddi çaba sarf etmeniz gereken bir şey haline gelirdi. Yabancıların genellikle zor olmayan bir şey için kullandıkları deyime gönderme yapmak gerekirse HTML için şunu diyebilirim. “It’s rocket science.” 🙂 Ama telaş etmeyin şükürler olsun ki öyle bir evrende yaşamıyoruz.

“Hyper Text Markup Language” kelimelerinin baş harflerinden meydana gelen bu dil web sayfalarındaki metinleri düzenlemek ve işaretlemek için kullanılır. Türkçesi, internet tarayıcınızın anlayacağı dilde bir hiyerarşide yazılan kodlar sayesinde her gün onlarca web sitesinde, yüzlerce textbox’lara yazılar yazıp butonlara tıklayarak işleminizi kolaylaştırarak filmlerdeki hackerlar (!) gibi kod blokları ezberleyip tıkı tıkı komutlar yazmanıza gerek kalmıyor. Şahsen 20 seneyi geçkin bir yazılım geçmişim var ama hala filmlere yetişemiyorum ne yalan söyleyeyim. “Bill Gates misin be mübarek!” derler adama. Hoş, Bill amcanın da böyle kod yazdığını düşünmüyorum açıkcası :).

html
Not: Bunlar sadece filmlerde olur. 🙂
Esprili girişimizi yaptığımıza göre makalemizin ciddileştiği bölüme geçebiliriz :). 1980’lerin sonlarında Tim Berners-Lee, bilgi paylaşımını daha etkili hale getirmek için HTML’i geliştirdi. İlk başta basit bir yapıya sahip sadece yazıların, linklerin, listelerin, başlıkların ve ayraçların olduğu basit bir yapıydı. Özetleyecek olursak bir word dosyasının çevrimiçi versiyonundan ibaretti desek yalan olmazdı herhalde. Hatta örnek olarak internetin ilk web sitesini size takdim edebilirim.
İlk internet sitesi “The World Wide Web project” den ekran görüntüsü.
Merak edenler için site halen taş gibi sapa sağlam. İşte HTML’in küçümsenemeyecek gücü!! (Biz ne ASP’ler, PHP’ler gördük bee hani nerdesiniz diyesi geliyor insanın.) Burdan şunu anlıyoruz ki eski toprak analojisi teknoloji dünyasında da çalışıyor. Merak edenler için linki de şuraya bırakıyorum.

Hepimizin aşina olduğu web sitelerine resim/fotoğraf eklemeye  yarayan <img> tagi, tablo yapıları meta tag’leri bile 1995’de HTML 2.0 ile resmi olarak tanıtıldı. Bugün geldiğimiz nokta ise korkunç. Sen, hâlâ HTML’i küçümseyen dostum, sen ne dediğini bilmiyorsun :). Çok şaşıracaksın, çook! Günümüzde HTML5 ile birlikte gelen devasa özellikler sayesinde 1980’lerde Tim abi “The World Wide Web Project” projesine kankalarıyla start verirken bugün geldiğimiz noktayı hayal edebiliyor muydu bilemem fakat oldukça gururlanıp böbürlendiğine yemin edebilirim ama kanıtlayamam :).

HTML5 ile Birlikte Gelen Özellikler

Muazzam bir yapı olan web workers web sayfalarından bağımsız olarak browserınızın arka planında siz YouTube’da videonuzu izlerken bile kod parçacıklarının çalışmasına olanak sağlayan servislerdir. Örnek olarak push notification servisleri bu şekilde çalışır. Tabii kötü amaçlı kod parçacıkları çalıştıran web servislerde vardır. Bazı kaçak dizi izleme sitelerinin arka planda Bitcoin madenciliği yaptırdığı söylentilerinin de doğruluk payı olabilir. Ben öyle sitelere girmiyorum tabii ki, bana da bir arkadaşım söyledi. 🙂
Artık bakkaldaki Mehmet amcanın bile “Sürükle bırak” methodlarına aşina olduğunu düşünerek bu maddeyi ekstra açıkamaya gerek duymuyorum. 🙂 HTML5 ile birlikte gelen bu özellik adeta kullanıcıya bir websitesinde olduğunu unutturabiliyor. Kullanın, kullandırın!

Çok yaygın kullanılmasa da <canvas> tagi dinamik ve etkileyici grafikler yaratmakta oldukça başarılı. WebGL’e gelince ister istemez “Wow, wait a minute!” diyerek orada bir durmak istiyorum. Kendi hayatımdan bir hikaye anlatmak istiyorum o yüzden bu bölümü direkt geçebilirsiniz isterseniz.

***
Yıl 2000 o zamanlar 8 yaşındayım ve internetin ülkemizde yeni yaygınlaşmaya başladığı bir dönemdi. ADSL falan hak getire, Evinde KabloTV, Kablonet’i olanı internet kafeden attığımız zamanlardan söz ediyorum hahah. 2 boyutlu MMORPG oyunları yeni yeni keşfediliyor. Ultima Online isimli efsane bir oyuna sarmıştım. Günlerimi internet kafede geçiriyordum o derece. Aksi gibi evdeki bilgisayarımda da bu oyunu kuracak yer yoktu. (Oyun 700 MB bu arada). Evet, bir dönemler 200 MB’lık 500 MB’lık harddiskler vardı bilgisayarlarımızda. O sıralar hep düşünürdüm ya keşke şu oyunlar Internet Explorer’dan girip oynanabilse diye. (Tabi o zamanlar browserda çalışan uygulamaların cache için belleğe ihtiyacı olduğundan bir haberdim.) Ve yıl 2017’ye geldiğinde hayalim ütopik olmaktan çıkmıştı ama ben de çocuk değildim.
***

WebGL Hayatımıza 2017 itibariyle girince artık browser üzerinde 3D görseller renderlama imkanı doğdu. Tabii bu da browser gaming sektörüyle tanıştırdı bizi. Hala HTML cazip gelmediyse sana o halde okumaya devam etmelisin.

HTML5 ile çok minimal Javascript desteği ile kullanıcıların konum tespitini yapabilmemize olanak tanıyan güzel bir destek.

Günümüzde hemen hemen her web uygulamada kullanılan localstorage yapısı işte HTML5’in yazılımcılar için en hayat kolaylaştıran hedefidir. Bir data tutmanız gerekiyor ama veri tabanınızı yormak istemiyorsunuz ya da sadece HTML kullanarak site yapıyorsunuz belki de? 🙂 Nereye kaydedeceksiniz dataları? Sayfa kapatılsa bile kaybolmaması gerekiyor. Web Storage işte burada devreye giriyor. Tabii eskiden bu işlemi yapmak için Cookie’ler gibi ya da Bookmark’a atılan QueryString linkler gibi alternatif yöntemler mevcuttu. Ama bu kadar verimli değildi tabii ki.

Adından da anlaşılabileceği gibi internet bağlantınız olmadığı zamanlarda uygulamalarınızı çalıştırmaya olanak sağlayan bir service yapısı. Çalışma prensibi temelde önbellekleme mekanizmaları ile yapılan işlemleri kayıt altına alıp internet bağlantınız geldiğinde service worker’ların sunucu tarafına işlemleri aktarmasından ibaret. Basit yani anlayacağınız. 🙂

Desktop uygulamalardan aşina olduğumuz component’ler, web uygulamalara geçince tabii eksikliğini hissettirdi ve bu alanda yeni ihtiyaçlar meydana getirdi. Bu vesileyle HTML5 ile hayatımıza yeni typeta input elementleri de girmiş oldu. Bunlardan bazıları DatePicker, ColorPicker, Otomatik tamamlayıcılardır.

Input Type ve Attributelar
DatePicker, Colorpicler ve Autocomplete örnekleri.
Şahsen her ne kadar hiç pratikte kullanma imkanım olmasa da kişisel olarak favorilerim bu iki arkadaş <audio> ve <video> tagleri. Eskiden bir web sayfasında video oynatmak için Macromedia Flash Player, Microsoft Silverlight gibi eklentinler ile boğuşup birde yetmiyormuş gibi kullanıcılarınıza da bu paketleri kurdurmak durumunda kalıyordunuz. Şimdi sadece basit bir <video> tagi ile herşeyi halletmek çok kolay. Kolay da abicim şu işi YouTube çıkmadan çıkarsaydınız keşke!? Yeni nesil artık YouTube’a yüklüyor, embed alıyor. Biraz geç kalmadınız mı? 🙂
Audio ve Video Elementleri
AudioPlayer ve VideoPlayer örnekleri.
Aslında bu özelliği dahil etmeyecektim ama sonra bu özellik ile dinamik işlemlerde form ve input yapıları kullanmaksızın işlemler gerçekleştirilebilir, veri güncellebilir ya da silebilmeye olanak sağlayabilir diye düşündüm. Temelde her hangi bir tage contenteditable=’true’ değerini verdiğinizde. O element üzerinde kullanıcıya düzenleme yetisi kazandıran bir attribute ve işin en güzel tarafı ise hiçbir butona ya da input fielda ihtiyacınız yok. Sanki word dosyası editler gibi imleci sayfaya koyup yazıları resimleri düzenleyebilirsiniz.

Sonuç: Her Şey <html> ile Başlar!

Bu yazıda, web geliştirmenin temel taşlarından biri olan HTML’in gelişimini ve modern web deneyimlerindeki önemini inceledik. Bu makaleden de anlıyoruz ki HTML, her ne kadar sıklıkla arka planda kalsa da, web sitelerinin, web sayfalarının yapı taşı olup ve diğer teknolojilerin de temelini oluşturmakta. HTML’in sadece metin düzenlemek için kullanılan basit bir dil olmaktan çıkıp, web uygulamalarının geliştirilmesinde vazgeçilmez bir role sahip olduğu açıkça ortada.

Web’in ilk günlerinden bugüne, HTML’in evrimini takip ederek, günümüzdeki HTML5’in sunduğu güçlü özelliklere ulaştığını gördük, deneyimledik. Web tarayıcılarının gelişimiyle birlikte, bu dilin de sahip olduğu yetenekler inanılmaz ölçüde genişledi. Web sayfaları artık daha etkileşimli, daha güzel ve daha kullanıcı dostu bir hale geldi. Web Workerlar’dan, Canvas’a, Drag-and-Drop ve WebGL gibi HTML5’in sunduğu sayısız imkanlarla web deneyimleri her gün giderek daha da zenginleşiyor.

Ve tabii unutulmaması gereken bir nokta var: Her tıkladığınız bağlantı, her görüntülediğiniz resim ve her doldurduğunuz form, HTML’in altında yatıyor. İşte bu yüzden; HTML, modern web dünyasının sessiz kahramanıdır. Hem kullanıcıların gözünde hem de web geliştirme süreçlerinde belirleyici bir rol oynamaktadır. HTML olmadan, ne internet bu kadar erişilebilir, ne de bilgiye ulaşmak bu kadar kolay olurdu.

Sonuç olarak, HTML’in bu denli sakin ve alçakgönüllü dili olması, dijital dünyanın kalbi olduğu gerçeğini değiştirmiyor. Teknolojinin hızla geliştiği günümüzde bile, HTML’in hala vazgeçilmez olması ve gücü her geçen gün daha da artması bu hikayeyi azımsanılmayacak bir başarı hikayesi yapmaya yetiyor. Bu yüzden bir dahaki sefere “HTML biliyorum.” diyen bir arkadaşınızla karşılaştığınızda, onunla dalga geçmeden önce iki kere düşünün derim. 😉

Yeni kodlar, yeni başarılar. Yolunuz açık olsun!

Takipte kalın!

</html>

“Umarım interneti engelleri aşmak ve kültürleri birbirine bağlamak için kullanırız.”
Tim Berners-Lee
Father of the Internet
Facebook
Twitter
LinkedIn