39 puan yazan GN⁺ 2025-05-29 | 10 yorum | WhatsApp'ta paylaş
  • Bu yıl JavaScript'in 30. yılı vesilesiyle Deno, bugüne kadarki tarihi kısaca özetliyor
  • JavaScript, 10 günde geliştirilen bir betik dili olarak başlayıp bugün dünyanın en popüler dili haline geldi
  • JavaScript'in nasıl geliştiğini ve gelecekte nereye yöneldiğini gösteren bazı önemli tarihsel anlar tanıtılıyor

A brief history of JavaScript (1994-2025)

[1994]

  • Netscape Navigator 1.0'ın çıkışı

    • Aralık 1994'te Netscape Navigator 1.0 yayımlandı
    • Önceki tarayıcılardan daha hızlı olması ve GUI sunması popülerliğinin başlıca nedenleriydi
    • HTML 2.0 desteğiyle birlikte, daha sonra JavaScript'in bu tarayıcıda çalışacağı temel hazırlanmış oldu

[1995]

  • JavaScript'in doğuşu

    • Mayıs 1995'te Brendan Eich, 10 günde JavaScript taslağını geliştirdi
    • O dönemde popüler olan Java'ya benzer sözdizimine sahip bir betik dili talebi üzerine geliştirildi
    • Adı, pazarlama amacıyla JavaScript olarak belirlendi
  • Netscape ve Sun'ın resmî duyurusu

    • Aralık 1995'te JavaScript, “web için hafif nesne yönelimli bir betik dili” olarak duyuruldu
    • 28 teknoloji şirketinin desteğiyle açıklanırken, kurumsal ortamları da hedefleyen bir dil olarak konumlandırıldı

[1996]

  • Microsoft'un hamlesi

    • Mart 1996'da Microsoft, Internet Explorer 3'e JScript ekledi
    • JScript, ActiveX ile entegre çalışarak Excel gibi uygulamaları kontrol edebiliyordu
  • JavaScript 1.0 yüklü Navigator 2.0'ın çıkışı

    • Aynı yılın mart ayında, Netscape Navigator 2.0 ile JavaScript 1.0 resmen çıkış yaptı
    • DOM(Document Object Model) kavramı da bu dönemde ortaya çıkmaya başladı

[1997]

  • ECMA'ya standardizasyon önerisi

    • Haziran 1997'de Netscape, JavaScript'in ECMA International bünyesinde standartlaştırılmasını önerdi
    • Amaç, Microsoft'un JScript'iyle yaşanan uyumluluk sorunlarını çözmekti
    • ECMA-262 adlı spesifikasyon oluşturuldu ve adı ECMAScript olarak belirlendi
    • TC39 komitesi kurularak dilin gelişimini yönetmeye başladı

[1998]

  • Mozilla projesinin başlaması

    • Ocak 1998'de Microsoft'un tarayıcı pazarındaki tekeline karşılık olarak Netscape kaynak kodunu açtı
    • Projenin adı “Mozilla” oldu; bu girişim daha sonra Firefox, Rust gibi çeşitli açık kaynak başarılarına yol açtı
  • ECMAScript 2'nin duyurulması

    • Eylül 1998'de ECMAScript 2 resmen duyuruldu
    • Yeni özellikler yoktu, asıl hedef spesifikasyonun tutarlılığı ve daha rafine dokümantasyondu

[1999]

  • IE5 ve XMLHttpRequest'in tanıtılması

    • Mart 1999'da IE5 ile XMLHttpRequest tanıtıldı
    • Bu, daha sonra AJAX teknolojisinin temelini oluşturdu
  • JSDoc'un ortaya çıkışı

    • Nisan 1999'da JavaScript dokümantasyonu için JSDoc tanıtıldı
    • Java tabanlı Javadoc'tan etkilenmişti ve bugün de doküman üretim aracı olarak kullanılıyor
  • ECMAScript 3'ün duyurulması

    • Aralık 1999'da ECMAScript 3 resmen duyuruldu
    • do-while, düzenli ifadeler, string metotları ve istisna işleme gibi eklemelerle dilin gerçek anlamda büyümesinin temeli atıldı
    • Sonraki 10 yılı aşkın süre boyunca web standardı JavaScript'in fiilî ölçütü olarak kullanıldı

[2001]

  • JSON'un ilk kez ortaya çıkışı

    • İlk JSON mesajı gönderildi
    • Web sayfası içindeki betiklerde { to, do, text } biçiminde nesne yapısı kullanıldı
    • JavaScript tabanlı hafif bir mesajlaşma formatı olarak daha sonra web API iletişiminin standardı haline geldi

[2002]

  • JSLint'in tanıtılması

    • Douglas Crockford, statik sözdizimi denetim aracı JSLint'i duyurdu
    • Bu araç JavaScript kod kalitesini artırdı ve daha sonra onun “JavaScript: The Good Parts” kitabına uzanan sürece katkı sağladı
  • Firefox'un öncülü Phoenix 0.1'in çıkışı

    • Mozilla topluluğu, mevcut ürün ailesinin hantallığına tepki olarak hafif tarayıcı Phoenix'i geliştirdi
    • Sekmeli gezinme, pop-up engelleme gibi yenilikçi özellikler sundu → daha sonra Firefox'a dönüştü

[2003]

  • Apple'ın Safari ve WebKit'i duyurması

    • Safari tarayıcısı ve WebKit motorunun tanıtılmasıyla Mac, Microsoft bağımlılığından uzaklaşmaya başladı
    • Bu daha sonra iPhone'daki Mobile Safari için temel oldu

[2004]

  • Gmail ve AJAX

    • Gmail'in AJAX tabanlı arayüzü, yeni nesil web uygulaması UX'i için standart belirledi
    • Sayfayı tamamen yeniden yüklemeden sunucuyla veri alışverişi → Web 2.0 çağının başlangıcı

[2005]

  • AJAX teriminin yerleşmesi

    • Jesse James Garrett, “AJAX” kavramını net biçimde tanımladı
    • JavaScript + XML birleşimi üzerinden asenkron sunucu iletişimi yapısı şekillendi
  • Mozilla DevMo'nun başlaması → MDN'e dönüşmesi

    • Standart tabanlı JavaScript dokümantasyon merkezi MDN ortaya çıktı
    • Parçalı tarayıcı desteği belgeleri için birleşik bir referans sundu

[2006]

  • jQuery'nin ortaya çıkışı

    • John Resig, jQuery projesini başlattı
    • DOM manipülasyonu, olay işleme ve AJAX gibi alanlarda çapraz tarayıcı sorunlarının çözümüne büyük katkı sağladı
    • Kısa ve sade API'si sayesinde hızla yayıldı

[2007]

  • iPhone'un çıkışı ve Flash desteğinin olmaması

    • Apple iPhone tanıtıldı, Safari ise Flash'ı desteklemiyordu
    • Bu durum, mobil ortamda HTML+JavaScript tabanlı içeriklere geçişi hızlandırdı

[2008]

  • Netscape Navigator'ın resmen sona ermesi

    • AOL, Netscape geliştirmesini sonlandırdı ve birinci tarayıcı savaşı sona erdi
    • MS'in IE tekeli daha sonra antitröst davalarına uzandı
  • JavaScript: The Good Parts'ın yayımlanması

    • Crockford'un kitabı, JavaScript'in profesyonel bir geliştirme dili olarak yeniden değerlendirilmesine zemin hazırladı
  • Google Chrome ve V8 motorunun duyurulması

    • Chrome ile birlikte V8 JavaScript motoru tanıtıldı
    • JIT derleme ve çöp toplayıcı optimizasyonu sayesinde performans büyük ölçüde arttı
    • Daha sonra Node.js gibi sunucu tarafı genişlemelerin temelini hazırladı

[2009]

  • CommonJS'in ortaya çıkışı

    • Tarayıcı dışı ortamlarda (sunucu vb.) modüler JS kodu kullanımını standartlaştırma girişimi başlatıldı
    • Bu, daha sonra Node.js ekosistemindeki modül yapısının temeli oldu
  • Node.js projesinin başlaması

    • Ryan Dahl, Node.js geliştirmeye başladı
    • JavaScript'in sunucu ortamında çalışmasını sağlayarak onu full-stack bir dil haline doğru genişletti
  • Oracle'ın Sun Microsystems'i satın alması

    • Java ile birlikte JavaScript ticari markası da Oracle'a geçti
    • JavaScript adının ticari markasıyla ilgili sorunlar ortaya çıktı
  • Express.js'in ortaya çıkışı

    • Express.js için ilk commit atıldı; Node.js tabanlı bir web framework'ü olarak öne çıktı
    • REST API geliştirmeye odaklı middleware yapısı önerdi
  • ECMAScript 5'in duyurulması

    • strict mode, JSON desteği, yeni Array metotları gibi eklemelerle modern JS özelliklerinin temeli düzenlendi
  • CoffeeScript'in ortaya çıkışı

    • Kısa sözdizimi, arrow function, destructuring gibi ES6 öncesi sözdizimi iyileştirmelerini deneyen bir yaklaşım sundu
    • Daha sonra JavaScript sözdiziminin gelişimini dolaylı olarak etkiledi

[2010]

  • npm 1.0'ın çıkışı

    • JavaScript için paket yöneticisi npm resmen yayımlandı ve kod paylaşımı ile yeniden kullanımın standartlaşması başladı
    • Bugün 3 milyondan fazla pakete sahip, dünyanın en büyük açık kaynak kayıt deposuna dönüştü
  • WebStorm 1.0'ın çıkışı

    • JetBrains, JavaScript'e adanmış ilk IDE'sini yayımladı
    • Statik analiz, hata tespiti, otomatik tamamlama ve debug özelliklerini entegre biçimde sundu
  • AngularJS & Backbone.js'in ortaya çıkışı

    • SPA framework patlamasının başlangıcı
    • Angular, bildirimsel/dependency injection odaklıyken Backbone prosedürel/sadelik odaklıydı
    • Bu dönemden itibaren framework'lerin sık sık ortaya çıkıp yok olması olgusu görülmeye başladı ("Framework churn")

[2011]

  • Node.js'in Windows'a port edilmesi

    • Joyent ve Microsoft iş birliğiyle Node.js'in Windows'ta da çalışması sağlandı
    • libuv kütüphanesinin geliştirilmesi → asenkron I/O için birleşik bir platform sağladı
    • Sonrasında TypeScript, VSCode, Azure stratejileri gibi adımlarla sürecek Microsoft'un açık kaynak hamlelerinin başlangıcı

[2012]

  • Webpack'in ortaya çıkışı

    • Web varlıklarını bundle'lama aracı olarak modül sistemini istemci tarafına genişletti
    • Daha sonra React, Angular, Vue gibi projelerin temel build sistemi olarak benimsendi
  • TypeScript 0.8'in duyurulması

    • Microsoft, statik tiplendirme tabanlı bir JavaScript superset'i tanıttı
    • Büyük ölçekli projeler için uygun bir yapı sundu, sonrasında ES standardını da etkiledi

[2013]

  • Electron'ın öncülü Atom Shell'in başlaması

    • HTML/CSS/JS ile masaüstü uygulaması geliştirmeyi mümkün kıldı
    • Slack, Visual Studio Code gibi ürünlerde benimsenerek masaüstü geliştirme yaklaşımını değiştirdi
  • asm.js'in duyurulması

    • C/C++ kodunu JS'e dönüştürerek tarayıcı içinde yüksek performanslı hesaplama yapılmasını sağladı
    • Sonrasında WebAssembly'ye evrildi
  • MEAN stack'in tanımlanması

    • MongoDB + Express + Angular + Node.js kombinasyonu adlandırıldı
    • JavaScript tabanlı full-stack geliştirme yaklaşımı yaygınlaştı
  • React'in duyurulması

    • Facebook'ta dahili kullanımın ardından açık kaynak olarak yayımlandı
    • Bileşen tabanlı UI geliştirme paradigmasını yerleştirdi
  • ESLint geliştirmesinin başlaması

    • Nicholas C. Zakas tarafından başlatılan genişletilebilir bir lint aracı
    • Mevcut lint araçlarına göre daha yüksek özelleştirme imkanı sunduğu için hızla yayıldı
  • Gulp'ın çıkışı

    • Yapılandırma odaklı Grunt'tan farklı olarak kod tabanlı akışkan build aracı sundu
    • JavaScript ile build işlerini otomatikleştirme akımını güçlendirdi

[2014]

  • Vue.js'in çıkışı

    • Evan You tarafından yayımlanan ilerlemeli bir UI framework'ü
    • React'in bildirimsel UI yaklaşımı ile Angular'ın şablon özellikleri arasında bir denge kurdu
  • Express.js'in satın alınması

    • StrongLoop, Express.js'i satın aldı → ardından kendisi de IBM tarafından satın alındı
    • Topluluk bağımsızlığı tartışmalarıyla birlikte Koa gibi devam niteliğindeki framework'ler ortaya çıktı
  • Babel.js'in başlaması (eski adıyla 6to5)

    • En yeni JS sözdiziminin eski tarayıcılarda da çalışmasını sağladı
    • Tüm framework'lerde standart transpiler olarak yerleşti
  • Meteor 1.0'ın çıkışı

    • Gerçek zamanlı, tek yığınlı web uygulaması geliştirme aracı olarak dikkat çekti
    • Sonrasında GraphQL, Firebase gibi gerçek zamanlı teknolojileri etkiledi
  • Facebook'un Flow'u duyurması

    • JS hatalarını önceden tespit eden statik tip kontrol aracı
    • Sonrasında TypeScript'in büyümesiyle kullanım oranı düştü
  • AWS Lambda'nın duyurulması

    • JavaScript(Node.js) tabanlı serverless computing anlayışını tanıttı
    • Olay tabanlı fonksiyon çalıştırma ile altyapı yönetimi olmadan backend geliştirmeyi mümkün kıldı
  • io.js fork'u

    • Joyent'in Node.js sürümlerini yavaş yayımlamasına tepki olarak topluluk tarafından io.js ayrıldı
    • Daha sonra 2015'te yeniden Node.js ile birleşti

[2015]

  • Jamstack teriminin ortaya çıkması

    • JavaScript + API + Markup kombinasyonu vurgulandı
    • SSR ve SSG yöntemlerinin öne çıkmasıyla statik site üreticileri yükselişe geçti
  • Node.js Foundation'ın kurulması

    • io.js ile birleşme de dahil olmak üzere topluluk yönetişimi yeniden düzenlendi
    • IBM, Microsoft gibi büyük şirketler katıldı
  • GraphQL'in lansmanı

    • Facebook tarafından geliştirilen bir API sorgu dili
    • Bildirimsel yaklaşım, güçlü tip sistemi ve sunucu isteklerini azaltmasıyla öne çıktı
  • Redux'un çıkışı

    • React'in state yönetimi için öngörülebilir bir state container
    • Daha sonra Vue, Angular gibi ekosistemlerde de benimsendi
  • WebAssembly'nin duyurulması

    • Tarayıcıda C/C++ gibi yüksek performanslı kodların çalıştırılmasını mümkün kıldı
    • asm.js'in devamı olarak web'in genel amaçlı çalışma ortamı haline geldi
  • Atom 1.0'ın çıkışı

    • GitHub tarafından geliştirilen Electron tabanlı, hacklenebilir bir metin editörü
    • VSCode üzerinde doğrudan etkili oldu
  • ECMAScript 6 (ES2015)'in resmen duyurulması

    • import/export, let/const, Promise, fetch gibi büyük ölçekli sözdizimi iyileştirmeleri getirdi
    • Modern JavaScript'in temelini oluşturan sürüm oldu
  • Node.js ve io.js'in birleşmesi

    • Node.js v4.0'ın duyurulmasıyla iki proje yeniden tek çatı altında toplandı
    • Uzun dönem destek (LTS) ve anlamlı sürüm politikası yerleşti

[2016]

  • Microsoft'un Chakra motorunu açık kaynak hale getirmesi

    • Edge tarayıcısının JS motoru olan Chakra açık kaynak yapıldı
    • Geliştirici topluluğunun ilgisini çekti ancak sonrasında V8'in üstünlüğü karşısında durduruldu
  • Leftpad olayı

    • left-pad modülünün silinmesiyle büyük çaplı bir paket bağımlılığı çöküşü yaşandı
    • npm politika değişikliklerine zemin hazırladı
  • VSCode 1.0'ın çıkışı

    • Electron ve TypeScript tabanlı hafif bir IDE
    • Hızı, genişletilebilirliği ve güçlü JS/TS desteğiyle hızla popüler oldu
  • ECMAScript 2016'nın duyurulması

    • ** operatörü ve array.includes() gibi küçük ölçekli güncellemeler
  • Angular2'nin duyurulması

    • AngularJS'ten tamamen farklı TypeScript tabanlı bileşen mimarisi
    • AOT derleme ve güçlendirilmiş güvenlikle kurumsal tarafta güçlü bir seçenek haline geldi
  • Next.js 1.0'ın çıkışı

    • React tabanlı server-side rendering framework'ü
    • SEO ve performansı gözeten full-stack React geliştirme standardizasyonunu hedefledi

[2017]

  • Temporal önerisinin ilk commit'i

    • Date nesnesinin sorunlarını çözmek için Temporal API önerisi
    • 2021'de ECMAScript standardına dahil edilmesi onaylandı, şu anda yalnızca bazı ortamlarda destekleniyor
  • Prettier 1.0'ın çıkışı

    • Tutarlı kod stilini otomatik olarak uygulayan bir formatter
    • Python'daki Black ve Rust formatter'larının ortaya çıkışını da etkiledi
  • ECMAScript 2017'nin yayımlanması

    • async/await, Object.entries(), Object.values() gibi modern JS özelliklerini getirdi
    • fetch() kullanımını yaygınlaştırdı
  • Yarn'ın çıkışı

    • npm'nin yavaşlığına ve çakışmalarına çözüm getirmeyi amaçlayan paket yöneticisi
    • yarn.lock, paralel kurulum, cache gibi yenilikçi özellikler sundu
  • Cloudflare Workers'ın çıkışı

    • Edge computing çağını başlattı
    • Serverless kodun dünya geneline dağıtılarak çalıştırılmasını mümkün kıldı

[2018]

  • Puppeteer 1.0'ın çıkışı

    • Headless Chrome tabanlı tarayıcı otomasyon aracı
    • Node.js dostu API'siyle Selenium'a göre daha sade bir kullanım sundu
  • TensorFlow.js'in çıkışı

    • Tarayıcıda makine öğrenmesi çalıştırmayı mümkün kıldı
    • WebGL/WebGPU tabanlı gerçek zamanlı yapay zeka uygulamaları sağladı
  • Smooshgate

    • Array.flatten ad çakışması nedeniyle isim flat() olarak değiştirildi
    • Sorun MooTools ile uyumluluk meselesinden kaynaklandı
  • Ryan Dahl'ın Deno'yu duyurması

    • Node'un sorunlarına dönük bir değerlendirmeyle birlikte Deno runtime'ının ilk sürümü tanıtıldı
  • ECMAScript 2018'in yayımlanması

    • promise.finally(), async iteration, nesne rest/spread özelliklerini getirdi

[2019]

  • OpenJS Foundation'ın kurulması

    • Node.js Foundation ile JavaScript Foundation birleşti
    • Sunucu/istemci projelerinin yönetişimi birleştirildi
  • Node.js v12: ESM için deneysel desteğin başlaması

    • .mjs, type: module gibi özelliklerle ES modülleri deneysel olarak sunuldu
  • ECMAScript 2019 yayımlandı

    • Object.fromEntries(), String.prototype.trimStart() vb. eklendi
  • Node.js v13.2: ESM resmen kararlı hale geldi

[2020]

  • SpaceX Dragon, JS ile uzaya çıktı

    • Chrome tabanlı dokunmatik ekran arayüzünde JavaScript kullanıldı
  • Deno 1.0 yayımlandı

    • Varsayılan TypeScript desteği, izin modeli, HTTP import gibi yenilikçi yaklaşımlar
  • Adobe Flash resmen sona erdi

    • JS merkezli web multimedya ortamı yerleşti

[2022]

  • Deno, TC39'a katıldı

    • JavaScript standardizasyonuna katılım duyuruldu
  • IE11 desteği sona erdi

    • Standart tabanlı web ekosistemine geçiş tamamlandı
  • ECMAScript 2022 duyuruldu

    • top-level await, sınıf statik blokları vb. eklendi

[2023]

  • Bun 1.0 yayımlandı

    • Zig ile yazılmış, son derece hızlı bir Node.js alternatif runtime'ı
    • npm uyumluluğu, entegre build araçları

[2024]

  • Node.js maskotu olarak Rocket Turtle seçildi

    • Topluluk yarışmasıyla nihai karakter belirlendi
  • ECMAScript 2024 yayımlandı

    • toWellFormed() vb. ile Unicode işleme güçlendirildi
  • JSR registry yayımlandı

    • Deno ekibinin modern ECMAScript modüllerine özel registry'si
    • TypeScript, Deno, Bun, Cloudflare Workers ile uyumlu
  • FreeJavaScript hareketi başladı

    • Oracle'ın JavaScript ticari markasını geri vermesi için çağrı yapan kampanya
    • Brendan Eich gibi önemli isimler imza attı
  • Deno 2 yayımlandı

    • Node uyumluluğu geliştirildi, reklam kampanyalarıyla birlikte runtime savaşları resmen kızıştı

[2025]

  • TypeScript'in Go'ya port edilmesi duyuruldu

    • 10 katın üzerinde daha yüksek performans hedefiyle tsgo projesi yürütülüyor
    • TypeScript 7.0'dan itibaren resmen benimsenmesi planlanıyor
  • Copilot Chat'in açık kaynak yapılacağı duyuruldu

    • Microsoft, VSCode'u açık kaynaklı yapay zeka geliştirme IDE'sine dönüştürme stratejisini açıkladı

[Kapanış]

  • JavaScript, basit bir betik dilinden başlayıp web frontend, backend, makine öğrenimi, uzay-havacılık ve yapay zeka geliştirme IDE'lerini kapsayan genel amaçlı bir geliştirme diline dönüştü
  • Açık kaynak topluluğu, dilin sürekli gelişen sözdizimi ve runtime yenilikleri bu büyümeyi sürükledi; bundan sonra da daha hızlı, daha akıllı araçlarla birlikte web'in ötesine geçerek daha geniş alanlara yayılması bekleniyor

10 yorum

 
princox 2025-12-17

Artık bir dil standardından çok bir uygulama standardına dönüşmüş gibi... İstesek de istemesek de miras alınmış eski yapıları da beraberinde taşımak zorunda olan bir sözdizimi haline gelmedi mi diye düşünüyorum.

 
dkang 2025-05-31

İyi kaynak için teşekkürler.

 
dontdieych 2025-05-31

IE 3 sürümü neredeyse çöptü. O dönemde Navigator 3 fiilen standart gibiydi ama IE 4 çıkınca durum tersine döndü. Üstelik IE 4, Windows’a varsayılan olarak kurulu geliyordu.

Navigator 4 çıkmıştı ama gidişatı tersine çevirecek kadar iyi değildi. Bu yüzden IE’nin pazar payı artmaya devam etti.

Navigator açık kaynağa geçince Mozilla projesi ortaya çıktı ve Phoenix beta sürümü yayınlandı; sanırım o zaman kullanıcılar bir şeylerin gerçekten değiştiğini hissetmeye başladı. Ben de dahil. Ticari marka sorunu nedeniyle adı Firefox olarak değiştirildi ve bu dönemden itibaren Firefox, IE’nin gerçek bir rakibi olarak konumlanmaya başladı.

Adı muhtemelen Phoenix -> Firebird -> Firefox şeklinde değişmişti. Sanırım bunun nedeni Firebird adlı bir veritabanının zaten var olmasıydı.

 
aer0700 2025-05-30

Bir şeyi baştan sona okurken, bir noktadan sonra içim burkuldu.
Sanki çok yakın zamandı ama bir yandan da çok eskiymiş gibi...

 
tsboard 2025-05-29

Orijinali gerçekten çok iyi derlenip toparlanmış. Ekran görüntülerinden nostaljik kodlara kadar...! Umarım Deno da daha iyi yerlere gelir. haha

 
tested 2025-05-29

JavaScript'in gelişimi, Node.js'in piyasaya sürülmesinden öncesi ve sonrası olarak ikiye ayrılıyor gibi görünüyor.

 
bobross0 2025-05-29

Katılıyorum.

 
dlehals2 2025-05-29

Java ile birlikte JavaScript ticari markası da Oracle'a devredilmiş. Bu kısmı ilk kez öğrendim.

 
spp00 2025-05-30

Başlangıçta JS'nin ticari marka hakkı Sun'daydı; Sun satın alınınca JS'nin ticari marka hakkı da (ve MySQL gibi diğerleri de) Oracle'a devredildi.

 
xguru 2025-05-29

Orijinal yazıda çok sayıda görsel ve çeşitli kodlar da var; onlara da birlikte bakmanız iyi olur.