İçeriğe atla

Rust (programlama dili)

Rust
Resmi Rust logosu
ParadigmasıFonksiyonel, imperative, yapısal
İlk çıkışı7 Temmuz 2010 (14 yıl önce) (2010-07-07)
TasarımcıGraydon Hoare
GeliştiriciRust Vakfı
Kararlı sürüm1.82.0[1] Bunu Vikiveri'de düzenleyin
EtkilendikleriAlef, C#, C++, Cyclone, Erlang, Haskell, Limbo, Newsqueak, OCaml, Ruby, Scheme, Standard ML, Swift
EtkiledikleriCrystal, Elm, Idris, Spark, Swift, Project Verona, Zig, PHP
Uygulama diliRust
İşletim sistemiÇapraz platform
LisansMIT Lisansı
Olağan dosya uzantıları.rs, .rlib
Web sitesirust-lang.org

Rust; açık kaynak kodlu, çoklu paradigmalı, ilk olarak Mozilla tarafından dizayn edilen ve Rust Foundation tarafından geliştirilmekte olan; performansa, güvenliğe ve eş zamanlı işlem yapabilmeye odaklanmış bir sistem programlama dilidir.[2] Rust, söz dizimi olarak C++ diline benzemektedir. Rust, "güvenli, pratik ve hızlı" bir dil ortaya koymak amacı ile tasarlanmıştır.[3][4][5][6]

Rust dili, Mozilla çalışanı Graydon Hoare'ın kişisel bir çalışması olarak başlarken, Mozilla bu projeye 2009 yılında sponsor olmuştur.[7] 15 Mayıs 2015 tarihinde ilk stabil sürümü 1.0 yayınlanmıştır.[8]

Rust, 2016 yılından beri Stack Overflow'un yazılımcıların en çok sevdiği yazılım dili sıralamasında ilk sıradadır.[9][10][11][12][13]

Tasarımı

Rust, yüksek derecede güvenli eşzamanlı sistemler geliştirmeye odaklanmış bir yazılım dilidir. Temel amaç sistem korunurluluğunu ve sürdürülebilirliğini sağlarken hız ve verimden ödün vermemektir. Sistem korunurluluğu, diğer dillerde örneğine az rastlanan bir bellek kontrol sistemi ile sağlanmaktadır. Bu sistemin içindeki önemli noktalara kaynak edinme başlatmadır (Resource acquisition is initialization), afin tip sistemi (Affine type System) ve mülkiyet sistemi[14] örnek verilebilir.[15][16] Projelerin sürdürülebilirliği, güçlü tip sistemi ve soyutlamalar ile sağlanmaktadır. Tip sisteminin önemli özellikleri cebirsel veri türleri (sum types) ve "trait" adı verilen güçlü arayüzlerdir. Rust dili, Python ve Java gibi dillerin aksine sınıflar veya nesne tabanlı programalama paradigmasını doğrudan destekleyen yapılar bulundurmaz, Go dilinde olduğu gibi dahil etme (composition) yöntemini tercih eder.

Kaynakça

  1. ^ "Announcing Rust 1.82.0" (İngilizce). 17 Ekim 2024. Erişim tarihi: 17 Ekim 2024. 
  2. ^ Noel (8 Temmuz 2010). "The Rust Language". Lambda the Ultimate. 18 Kasım 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Ekim 2010. 
  3. ^ "The Rust Programming Language". 18 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ekim 2012. 
  4. ^ "Doc language FAQ". 20 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ekim 2012. 
  5. ^ "Rust Programming Language". www.rust-lang.org (İngilizce). 4 Eylül 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ocak 2021. 
  6. ^ "github". 26 Haziran 2014 tarihinde kaynağından arşivlendi. 
  7. ^ "Project FAQ". 14 Eylül 2010. 20 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Ocak 2012. 
  8. ^ "Release 1.0.0 · rust-lang/rust". github.com. 19 Haziran 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Mayıs 2015. 
  9. ^ Stack Overflow 2016 Anketi, 18 Mart 2016 tarihinde kaynağından arşivlendi, erişim tarihi: 8 Mart 2020 
  10. ^ Stack Overflow 2017 Anketi, 29 Mayıs 2019 tarihinde kaynağından arşivlendi, erişim tarihi: 8 Mart 2020 
  11. ^ Stack Overflow 2018 Anketi, 6 Mart 2020 tarihinde kaynağından arşivlendi, erişim tarihi: 8 Mart 2020 
  12. ^ Stack Overflow 2019 Anketi, 7 Mart 2020 tarihinde kaynağından arşivlendi, erişim tarihi: 8 Mart 2020 
  13. ^ "Stack Overflow Developer Survey 2020". Stack Overflow. 29 Ocak 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ocak 2021. 
  14. ^ "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org. 22 Ocak 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ocak 2021. 
  15. ^ "RAII - Rust By Example". doc.rust-lang.org. 21 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ocak 2021. 
  16. ^ "The Pain Of Real Linear Types in Rust". gankra.github.io. 10 Ekim 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ocak 2021. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Bjarne Stroustrup</span>

Bjarne Stroustrup C++ programlama dilini yaratması ve geliştirmesiyle bilinen Danimarkalı bir bilgisayar bilimcisidir. Columbia Üniversitesi'nde misafir öğretim üyesi ve Morgan Stanley'de Yönetici Direktör olarak çalışmaktadır.

<span class="mw-page-title-main">Mozilla Firefox</span> yazılım

Mozilla Firefox, Mozilla Vakfı ve onun alt kuruluşu Mozilla Corporation tarafından geliştirilen, özgür ve açık kaynak kodlu bir web tarayıcısıdır. Firefox; Windows, macOS, Linux, Android ve iOS işletim sistemlerinde kullanabilir. Yazılımın Windows, macOS, Linux, Android sürümlerinde web sayfalarının oluşturulması için Gecko motoru kullanılır. Mozilla tarafından geliştirilen Gecko, mevcut ve planlanmış web standartlarıyla uyumludur. 2015'te çıkan iOS için Firefox uygulamasında ise Apple'ın getirdiği kısıtlamalar nedeniyle iOS'in bütünleşik WebKit motoru kullanılır.

<span class="mw-page-title-main">Scala (programlama dili)</span>

Scala, hem nesne yönelimli programlamayı hem de fonksiyonel programlamayı destekleyen, statik olarak yazılmış güçlü bir genel amaçlı programlama dilidir. Kısa ve öz olacak şekilde tasarlanan Scala'nın tasarım kararlarının çoğu Java eleştirilerini ele almayı amaçlıyor.

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

Arabellek aşımı ya da arabellek taşkını, iki yazılım arasında veri iletişimi için ayrılmış olan bir arabelleğe boyutundan daha fazla veri konulması ile ortaya çıkan durumdur.

<span class="mw-page-title-main">Brian Kernighan</span>

Brian Wilson Kernighan, Kanadalı bilgisayar bilimcisidir.

<span class="mw-page-title-main">Tümleşik geliştirme ortamı</span> yazılım geliştirmek için kullanılan yazılım ortamı

Tümleşik geliştirme ortamı, bilgisayar programcılarının hızlı ve rahat bir şekilde yazılım geliştirebilmesini amaçlayan, geliştirme sürecini organize edebilen birçok araç ile birlikte geliştirme sürecinin verimli kullanılmasına katkıda bulunan araçların tamamını içerisinde barındıran bir yazılım türüdür.

Ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

Stack Overflow, bilgisayar programcılığı ile ilgili kullanıcı odaklı soru cevap sitesi. Stack Exchange siteleri içinde yer alan Stack Overflow, 2008 yılında Jeff Atwood ve Joel Spolsky tarafından kuruldu.

<span class="mw-page-title-main">Servo (yazılım)</span>

Servo bir deneysel web tarayıcı motorudur. Yazılımı Mozilla Research geliştirmektedir, Samsung Android'e ve ARM işlemcilere uyarlamaktadır. İlkörnek birçok bileşeni ayrı görevler halinde ele alarak yüksek paralel ortam oluşturmayı amaçlıyor. Tasarı Rust dilinde geliştirildiği için bu dilin gelişimiyle de ortaklık göstermektedir.

<span class="mw-page-title-main">Nim (programlama dili)</span> Programlama dili

Nim, Andreas Rumpf tarafından tasarlanan ve geliştirilen, genel amaçlı, çok paradigmalı, statik tipli, derlenen bir programlama dilidir. Derleme zamanı kod sentezi, cebirsel veri türleri, mesaj iletme gibi çeşitli özellikler ile meta programlama, işlevsel, prosedürel ve nesne yönelimli programlama stillerini desteklemenin yanı sıra C / C++ dillerine yabancı fonksiyon arayüzü katmanı sunarak ve C, C++, Objective-C ve JavaScript dillerine derlenerek "verimli, etkileyici ve zarif", olmayı hedefleyen bir tasarıma sahiptir.

<span class="mw-page-title-main">Common Voice</span> Mozillanın geliştirdiği ses veri kümesi

Common Voice, ses ve konuşma tanıma yazılımları için ücretsiz bir veritabanı oluşturmak üzere Mozilla tarafından başlatılan bir kitle kaynak projesidir. Proje, mikrofonla örnek cümleler kaydeden ve diğer kullanıcıların kayıtlarını inceleyen gönüllüler tarafından desteklenmektedir. Transkripsiyonlu cümleler, kamu malı CC0 lisansı altında bulunan bir ses veritabanında toplanır. Bu lisans, geliştiricilerin veritabanını herhangi bir kısıtlama veya maliyet olmadan sesten metne özelliğini kullanan uygulamalar için kullanabilmelerini sağlar.

Firefox Relay, Mozilla tarafından geliştirilen bir e-posta takma adı servisidir. Firefox kullanıcıların e-postalarına yönlendirme yapacak takma e-posta adresleri edinmesine olanak sağlar.

cron

cron çeşitli Unix ve Unix benzeri sistemlerde iş düzenlemeye yarayan bir komuttur.

WebAssembly, yürütülebilir programlar için taşınabilir bir ikili kod biçimine karşılık gelen bir metin biçimidir. Bunun yanı sıra bu tür programlar ve bunların ana bilgisayar ortamı arasındaki etkileşimleri kolaylaştırmak için yazılım arabirimlerini de ifade eder.