Kitap 14 · Özet sayfa
Programlama Dilleri
Geliştiricilerin yazdığı diller, her birinin neyle bilindiği ve en çok nerede karşınıza çıktığı.
Software Dictionary · softwaredictionary.org/tr/kutuphane/languages/ozet
- 01Assembly Dili
- Assembly dili, komutları bir işlemcinin makine koduna neredeyse bire bir karşılık gelen ve mov, add gibi kısa anımsatıcılarla yazılan düşük seviyeli bir dildir.
- Her assembly komutu genellikle tek bir makine komutuna karşılık gelir.
- x86-64, ARM64 veya RISC-V gibi her CPU mimarisinin kendi assembly dili vardır.
- Assembler, assembly metnini ikili makine koduna dönüştürür.
- 02BashBourne Again Shell
- Bash, çoğu Linux sisteminde varsayılan Unix kabuğu ve betik dilidir; komutları etkileşimli yazmak ve görevleri betiklerle otomatikleştirmek için kullanılır.
- Bash, 1989'da yayımlanan bir Unix kabuğu ve betik dilidir.
- Çoğu Linux sisteminde varsayılan komut satırıdır.
- Pipe'lar, değişkenler, döngüler ve fonksiyonlar programları birbirine yapıştırır.
- 03C
- C, belleğe doğrudan erişim sağlayan, derlenen ve düşük seviyeli bir programlama dilidir; işletim sistemlerinde, sürücülerde ve gömülü yazılımlarda kullanılır.
- C doğrudan makine koduna derlenir; bu da onu hızlı ve öngörülebilir kılar.
- Bellek, malloc ve free gibi fonksiyonlarla elle yönetilir.
- Sınıfları, istisnaları ve çöp toplayıcısı yoktur.
- 04C#
- C#, çöp toplamalı .NET çalışma ortamında çalışan, statik tipli, nesne yönelimli bir dildir; web arka uçları, masaüstü uygulamalar ve oyunlar için kullanılır.
- C# statik tiplidir ve nesne yönelimlidir; birçok fonksiyonel özelliğe de sahiptir.
- Kod, .NET çalışma ortamının makine koduna çevirdiği Ara Dile (IL) derlenir.
- Bellek bir çöp toplayıcı tarafından yönetilir.
- 05C++
- C++, C'yi sınıflar ve şablonlarla genişleten; bellek ve performans üzerinde düşük seviyeli kontrolü koruyan, derlenen ve statik tipli bir dildir.
- C++ yerel makine koduna derlenir ve performans üzerinde ince ayarlı kontrol sunar.
- Yordamsal, nesne yönelimli ve genel programlama stillerini destekler.
- Bellek, çöp toplayıcı yerine kapsam tabanlı RAII ve akıllı işaretçilerle yönetilir.
- 06Clojure
- Clojure, JVM'de çalışan modern ve dinamik bir Lisp lehçesidir; değiştirilemez veriyi, fonksiyonel programlamayı ve REPL tabanlı geliştirmeyi öne çıkarır.
- Clojure, JVM üzerinde çalışan ve Java kütüphanelerini kullanabilen bir Lisp lehçesidir.
- Çekirdek veri yapıları değiştirilemez ve kalıcıdır.
- Kod veri olarak yazıldığı için makrolar dili genişletebilir.
- 07COBOLOrtak İşletme Odaklı Dil
- COBOL (Common Business-Oriented Language), iş verisi işlemek için 1959'da tasarlanmış bir dildir; hâlâ kritik bankacılık ve kamu sistemlerini çalıştırır.
- COBOL, 1959'dan kalma bir iş programlama dilidir.
- İngilizceye benzeyen sözdizimi, programcı olmayanların okuyabilmesi için tasarlandı.
- Programların identification, environment, data ve procedure bölümleri vardır.
- 08Dart
- Dart, Google'ın yerel koda ve JavaScript'e derlenen, statik tipli ve çöp toplamalı dilidir; en çok Flutter uygulamalarının dili olarak bilinir.
- Dart, sağlam null güvenliğine sahip, nesne yönelimli ve statik tipli bir dildir.
- Yerel koda önceden derlenir; web için JavaScript veya WebAssembly'ye derlenir.
- Geliştirme sırasındaki JIT derleme, hızlı hot reload sağlar.
- 09Elixir
- Elixir, Erlang sanal makinesinde çalışan, hataya dayanıklı ve yüksek eşzamanlılıklı sistemler kurmasıyla bilinen, dinamik ve fonksiyonel bir dildir.
- Elixir, Erlang sanal makinesi BEAM üzerinde çalışır ve Erlang koduyla birlikte çalışabilir.
- Hafif süreçler ve mesajlaşma, devasa eşzamanlılığı pratik hale getirir.
- Denetçiler başarısız olan süreçleri yeniden başlatır; bu da sistemlerin kendiliğinden toparlanmasına yardımcı olur.
- 10Erlang
- Erlang, Ericsson'da telekom santralleri için geliştirilen fonksiyonel bir dildir; devasa eşzamanlılık, hata toleransı ve kesintisiz çalışma için tasarlandı.
- Erlang, kesintisiz çalışması gereken telekom sistemleri için Ericsson'da geliştirildi.
- Hafif süreçler mesajlaşarak haberleşir ve bellek paylaşmaz.
- OTP denetçileri, "çökmesine izin ver" felsefesini izleyerek başarısız süreçleri yeniden başlatır.
- 11F#
- F#, .NET için fonksiyonel öncelikli, statik tipli bir dildir; tip çıkarımlı özlü kodu, .NET ekosistemine ve C# kütüphanelerine tam erişimle birleştirir.
- F#, .NET üzerinde çalışan, fonksiyonel öncelikli ve statik tipli bir dildir.
- Güçlü tip çıkarımı sayesinde kodun çoğu tip açıklaması gerektirmez.
- Ayırt edici birleşimler ve örüntü eşleme, veriyi net ve güvenli biçimde modeller.
- 12FortranFormula Translation
- Fortran, 1957'de IBM'de bilim ve mühendislik hesapları için geliştirilen ilk yaygın yüksek seviyeli dildir; yüksek performanslı hesaplamada hâlâ kullanılır.
- Fortran, bilimsel hesaplama için 1957'de IBM'de geliştirildi.
- İlk yaygın yüksek seviyeli dildi.
- Modern standartlar modüller, dizi işlemleri, OOP ve paralellik ekler.
- 13Go
- Go, sadelik ve hızlı derleme için tasarlanmış; çöp toplama ve goroutine'lerle yerleşik eşzamanlılık sunan, derlenen ve statik tipli bir dildir.
- Go, kurulması gereken ayrı bir çalışma ortamı olmadan tek bir yerel çalıştırılabilir dosyaya derlenir.
- Statik tiplidir ve çöp toplamalıdır; özellik kümesi bilinçli olarak küçüktür.
- Goroutine'ler ve kanallar eşzamanlı programları yazmayı kolaylaştırır.
- 14Haskell
- Haskell, tembel değerlendirme kullanan, saf fonksiyonel ve statik tipli bir dildir; anlatımı güçlü tip sistemi ve matematiksel kesinlikteki koduyla bilinir.
- Haskell saf fonksiyoneldir: yan etkiler, IO gibi tipler aracılığıyla tip sisteminde izlenir.
- Tembel değerlendirme kullanır; değerleri yalnızca gerektiğinde hesaplar.
- Statik tip sistemi çoğu tipi çıkarır ve paylaşılan davranış için tip sınıfları kullanır.
- 15Java
- Java, Java Sanal Makinesi için bayt koda derlenen, statik tipli ve nesne yönelimli bir programlama dilidir; programlar birçok platformda çalışabilir.
- Java, JavaScript ile ilişkili değildir; benzer ad tarihsel bir pazarlama kararıdır.
- Kod, Java Sanal Makinesi (JVM) üzerinde çalışan bayt koda derlenir.
- Statik tiplidir ve güçlü biçimde nesne yönelimlidir.
- 16Julia
- Julia, bilimsel ve sayısal hesaplama için yüksek seviyeli, dinamik tipli bir dildir; Python kadar kolay yazılıp C kadar hızlı çalışmayı hedefler.
- Julia, bilimsel ve sayısal hesaplama için hızlı ve dinamik bir dildir.
- 2012'de duyuruldu ve 2018'de 1.0 sürümüne ulaştı.
- LLVM üzerinden JIT derleme, C'ye yakın hız sağlar.
- 17JVMJava Virtual Machine
- JVM, Java bytecode'unu çalıştırır; böylece derlenmiş bir program her işletim sisteminde çalışır. Kotlin, Scala ve Clojure da bu bytecode'a derlenir.
- JVM, Java bytecode'unu çalıştırır; derlenmiş bir program her işletim sisteminde çalışır.
- Belleği bir garbage collector ile yönetir ve sık çalışan kodu bir JIT derleyiciyle hızlandırır.
- Kotlin, Scala, Clojure ve Groovy de JVM bytecode'una derlenir.
- 18Kotlin
- Kotlin, JVM üzerinde çalışan, Java ile sorunsuz uyum sağlayan, özlü ve statik tipli bir dildir; Android ve sunucu tarafı geliştirmede yaygın kullanılır.
- Kotlin JVM bayt koduna derlenir ve Java ile tam uyumlu çalışır.
- Tipler varsayılan olarak null olamaz; bu da null işaretçi hatalarını önlemeye yardımcı olur.
- Güçlü tip çıkarımı ve özlü sözdizimiyle statik tiplidir.
- 19Lua
- Lua, başka uygulamalara gömülmek üzere tasarlanmış küçük ve hızlı bir betik dilidir; oyun betikleri, eklentiler ve yapılandırma için popülerdir.
- Lua, başka uygulamaların içine gömülmek üzere tasarlanmış minik bir betik dilidir.
- Tablolar; diziler, eşlemeler ve nesneler için tek, esnek veri yapısıdır.
- Lua'da diziler geleneksel olarak 1 numaralı dizinden başlar.
- 20MATLABMatrix Laboratory
- MATLAB, MathWorks'ün matris tabanlı sayısal hesaplama dili ve ortamıdır; mühendisler ve bilim insanları tarafından veri analizi ve simülasyon için kullanılır.
- MATLAB, sayısal ve matris tabanlı hesaplama için bir dil ve ortamdır.
- 1970'lerin sonunda başladı; MathWorks onu 1984'ten beri satıyor.
- Toolbox'lar ve Simulink, kontrol ve sinyal işleme gibi mühendislik alanlarına hizmet eder.
- 21Objective-C
- Objective-C, Smalltalk tarzı mesajlaşma ekleyen nesne yönelimli bir C üst kümesidir ve Swift gelmeden önce macOS ile iOS uygulamalarının ana diliydi.
- Objective-C, Smalltalk tarzı nesneler ve mesajlaşma ekleyen, C'nin katı bir üst kümesidir.
- Metot çağrıları, köşeli parantezlerle yazılan ve çalışma zamanında yönlendirilen mesajlardır.
- Swift'ten önce macOS ve iOS geliştirmenin ana diliydi.
- 22Perl
- Perl, metin işleme ve yerleşik düzenli ifadeleriyle ünlü, olgun ve dinamik bir betik dilidir; uzun süre sistem yönetiminde ve web betiklerinde kullanıldı.
- Perl, metin işleme için geliştirilmiş dinamik bir betik dilidir.
- Düzenli ifadeler çekirdek sözdiziminin parçasıdır.
- $, @ ve % gibi sigil'ler skaler değerleri, dizileri ve hash'leri işaretler.
- 23PHPPHP: Hypertext Preprocessor
- PHP, web geliştirme için tasarlanmış, sunucuda çalışarak HTML sayfaları üreten ve tarayıcı isteklerini yanıtlayan, dinamik tipli bir betik dilidir.
- PHP sunucuda çalışır ve tarayıcıya yalnızca HTML ya da JSON gibi çıktısını gönderir.
- Dinamik tiplidir; isteğe bağlı tip bildirimleri ve katı tip modu sunar.
- Bellek otomatik yönetilir ve her isteğin sonunda serbest bırakılır.
- 24PowerShell
- PowerShell, Microsoft'un yönetimi otomatikleştirmeye yönelik komut satırı kabuğu ve betik dilidir; komutlar arasında düz metin yerine nesneler aktarır.
- PowerShell, ilk olarak 2006'da yayımlanan Microsoft'un kabuğu ve betik dilidir.
- PowerShell 7 açık kaynaktır ve Windows, macOS ve Linux'ta çalışır.
- Cmdlet'ler Get-Process gibi Fiil-İsim adları kullanır.
- 25Programlama Dili
- Programlama dili, bilgisayarın yerine getirebileceği talimatları yazmak için kesin kuralları olan biçimsel bir dildir; Python, JavaScript, Java ya da C gibi.
- Bir programlama dilinin talimat yazmak için kesin kuralları (sözdizimi) ve anlamları (anlambilim) vardır.
- Programlar derlenir, yorumlanır ya da bir sanal makine için bytecode'a derlenir.
- Diller, donanıma yakın düşük seviyeden yüksek seviyeye kadar uzanır.
- 26Python
- Python, okunaklı sözdizimiyle bilinen; veri bilimi, otomasyon ve web arka uçlarında yaygın kullanılan, genel amaçlı ve dinamik tipli bir programlama dilidir.
- Python, kod bloklarını girintiyle tanımlar; bu da kodun görsel olarak tutarlı kalmasını sağlar.
- Dinamik ama güçlü tiplidir ve isteğe bağlı tip ipuçlarını destekler.
- Bellek, referans sayımı ve çöp toplama ile otomatik yönetilir.
- 27R
- R, istatistik ve veri analizi için bir programlama dili ve ortamıdır; araştırmalarda veri görselleştirme, istatistiksel modeller ve raporlar için kullanılır.
- R, özellikle istatistik, veri analizi ve grafikler için tasarlanmıştır.
- İşlemler vektörleştirilmiştir; açık döngüler olmadan vektörlerin tamamına uygulanır.
- Veri çerçeveleri, tablo verisi için temel yapısıdır.
- 28Ruby
- Ruby, geliştirici mutluluğu için tasarlanmış, okunaklı sözdizimi ve Ruby on Rails web çatısıyla tanınan, dinamik ve nesne yönelimli bir dildir.
- Ruby, okunabilirlik ve geliştirici mutluluğuna odaklanan dinamik, nesne yönelimli bir dildir.
- Sayılar ve nil dahil Ruby'deki her şey bir nesnedir.
- Bloklar ve üst programlama, özlü ve anlatımı güçlü kod yazmayı mümkün kılar.
- 29Rust
- Rust, sahiplik kurallarını derleme zamanında denetleyerek çöp toplayıcı olmadan bellek güvenliği sağlayan, derlenen ve statik tipli bir sistem dilidir.
- Rust, C ve C++ ile kıyaslanabilir performansla yerel makine koduna derlenir.
- Sahiplik ve ödünç alma kuralları, çöp toplayıcı olmadan bellek güvenliği sağlar.
- Derleyici güvenli kodda veri yarışlarını (data race) önler; bu da eşzamanlılığı daha güvenli kılar.
- 30Scala
- Scala, nesne yönelimli ve fonksiyonel programlamayı birleştiren, statik tipli bir JVM dilidir; veri mühendisliğinde ve arka uç sistemlerinde yaygın kullanılır.
- Scala JVM üzerinde çalışır ve Java kütüphanelerini doğrudan kullanabilir.
- Nesne yönelimli ve fonksiyonel programlamayı tek dilde birleştirir.
- Case sınıfları, trait'ler, örüntü eşleme ve değiştirilemez koleksiyonlar temel özelliklerdir.
- 31Swift
- Swift, güvenlik ve hız için tasarlanmış, derlenen ve statik tipli bir dildir; çoğunlukla Apple platformları için uygulama geliştirmede kullanılır.
- Swift, Apple platformlarında uygulama geliştirmenin ana dilidir.
- Statik tiplidir ve isteğe bağlı tipleri (optional) sayesinde eksik değerler açıkça belirtilir.
- Bellek, izleyici bir çöp toplayıcıyla değil, Otomatik Referans Sayımı (ARC) ile yönetilir.
- 32Visual Basic
- Visual Basic, Microsoft'un yeni başlayanlara uygun dil ailesidir; klasik Visual Basic, VB.NET ve Office'i makrolarla otomatikleştiren VBA'yı kapsar.
- Visual Basic, Microsoft'un yeni başlayanlara uygun diller ailesidir.
- 1991'deki Visual Basic 1.0, görsel Windows uygulaması geliştirmeyi popüler yaptı.
- 2002'den gelen VB.NET destekleniyor, ama artık yeni dil özellikleri almıyor.
- 33Zig
- Zig, elle bellek yönetimi sunan ve gizli kontrol akışı içermeyen, C'nin daha basit ve güvenli bir halefi olmayı hedefleyen düşük seviyeli bir sistem dilidir.
- Zig, C'ye modern ve daha basit bir alternatif olarak konumlanan bir sistem dilidir.
- Bellek, fonksiyonlara aktarılan açık ayırıcılarla elle yönetilir.
- comptime, makrolara güvenmek yerine Zig kodunu derleme zamanında çalıştırır.