“Umut insan göğsünde sonsuzdur” diyen Alexander Pope muydu? Pope bir şairdi, hacker değil, ama yeni bir programlama dili keşfetme konusundaki beklentiyi anlayacağına inanıyorum. Yazılım geliştiricilerin sonsuza kadar umutlu olduğunu bilirdi. bu dilUnicode karakterlerinin benzersiz birleşimi ile nihayet tüm sorunlarımızı çözecek ve sadece birkaç tıklamayla kodlamayı kolaylaştıracak.
Pope kesinlikle yeni bir sözdizimi arzusunu anlayacaktır. çok sezgisel sadece bir cevabı hayal etmemiz ve bunun harika, ayrıntılı ve her şeyden önce doğru olan mantıksal kurallara dönüştürüldüğünü görmemiz gerekiyor. Parmaklarımızdaki, üçlü bir aks, pike pozisyonunda içe doğru üç buçuk veya Olimpiyatlarda dev bir slalom koşusu kadar zahmetsiz ve zarif görünen yeni kodu döndürmek için duyduğumuz özlemi takdir edecektir.
Bununla birlikte, çoğu modern dil, hevesli olmak veya kodlama becerimizi göstermek için oluşturulmamıştır. İçerik oluşturucuların çözmeye hevesli olduğu ortak bir soruna yanıt olarak yapılmıştır. Geliştiricilerin çoğu günlük kodlamalarımızı bir veya daha fazla eski, daha yerleşik dilde yapmaya devam edecek olsa da, sonsuza kadar kodlama sorunlarımızı çözmemize yardımcı olacak yeni araçlar arıyoruz. Bu eğilimi, özellikle alana özgü dillerin veya DSL’lerin yükselişinde görebiliriz. Bu diller kompakt ve odaklıdır. Genel amaçlı kullanım için tasarlanmamışlardır. Ancak bazıları tam da bu nedenle araç kutunuzda özel bir yer kazanabilir.
İşte nişlerini bulan 11 yeni dil. Bazıları, bir şeyi yapmak ve onu iyi yapmak için tasarlanmış DSL’lerdir. Diğerleri, görünüşe göre, dünyayı kurtarmaya can atıyor. Şu anda ihtiyacınız olan şey olmasalar bile, hepsinin bilgisayarlarımıza yaptıklarını yapma konusunda öğretecek bir şeyleri var, ama daha iyi.
Reaktif Clojure
Clojure ile React ile evlendiğinizde, elde edeceğiniz şey budur: reaktif ön uçların tüm olanaklarını Clojure’un sağlam, işlevsel gücüyle birleştiren bir sistem. En iyi haliyle, Reactive Clojure, karmaşık bir ön uç bileşen koleksiyonu oluşturmanıza ve bunları işlevlerle bir araya getirmenize olanak tanır. Reactive çerçeve ayrıntıları doldurur ve uygulama verilerinin bileşenleriniz ile veritabanı arasında sorunsuz bir şekilde akmasını sağlar. Clojure, olağan dışı kullanım durumlarını bile mümkün ve hata ayıklanabilir hale getirmek için işlevsel temeli getiriyor.
Cennette yapılan bir maç mı? Zaman gösterecek. Reactive Clojure, ön uç bileşenleri bir arada tutan yapıştırıcı kodunu yazmak için iyi bir seçenektir. Çok iş parçacıklı modeli, aynı anda birden çok görev hakkında rapor veren karmaşık ve reaktif panolar için doğal bir eşleşmedir.
Nikel
Programcıların oynadığı en ironik oyunlardan biri, çalışmalarımızın çoğunu yapılandırma dosyalarına zorlamak. Genellikle JSON, YAML ve hatta XML’de kodlanan bu dosyalar, ayrıntılı bir ritüele metastaz yapan iyi bir kodlama fikridir. Bazı durumlarda, gerçek kod yazmanız bile gerekmez; ihtiyacınız olanı yapmak için çeşitli yapılandırma dosyalarını sonsuz bir şekilde çalkalayın.
O zaman, sahip olduğumuz mantıklı Nikel: konfigürasyon dosyaları oluşturmak için bir programlama dili. Nikel, statik olmayan yapılandırma dosyaları oluşturmak için kullanabileceğiniz gömülü mantığa sahip bir şablon gibidir. Bir parametre, hafta boyunca bir değer ve hafta sonları farklı bir değer olabilir. Çalıştırıldığında, Nickel aldığı tüm parametrelere uyan yeni bir yapılandırma dosyası oluşturur.
Nikel’in yapısı büyük ölçüde işlevseldir ve yardımcı olması durumunda tip kontrolü mevcuttur. Büyük bir tema “doğruluktur” çünkü iyi yazılmış bir Nikel kodu parçası, çıktının hem sözdizimsel kurallara hem de uygulamanız gereken diğer kurallara uyacağını hemen hemen garanti eder. Nickel’in derleyicisi, sözleşmeler yazmanıza izin verir, ardından çıktının bunlara uyup uymadığını kontrol eder. Elbette, daha sonra kodunuzu yöneten yapılandırma dosyaları oluşturmak için kod yazmanın komik bir yanı var. Ancak modern mimariler için çok pratik bir çözüm.
kobra
kobra‘in yaratıcıları, makine öğrenimini mühendislere, bilim insanlarına ve diğer pek de profesyonel olmayan kodlayıcılara açan bir dil istedi. Sonuç, makine öğrenimi için görsel bir dil dedikleri şeydir. Kobra’nın editörü, istatistiksel analiz ve makine öğrenimi için yaygın yerleşik rutinleri temsil eden sürükle ve bırak kutucuklarıyla kod benzeri diziler oluşturur. İşlem, tablo verilerinden oluşturulan veri çerçeveleri ve gösterge tabloları ve kağıtlar oluşturmak için bir dizi grafiksel görüntüleme işleviyle R’ye benziyor.
pazı
Bulutun en kullanışlı özelliklerinden biri, veri artışlarını işlemek için sunucuları başlatma ve parçalama yeteneğidir. Bir veri merkezi donanım ekibinin bir makineyi talep etmesi, kurması, test etmesi ve yapılandırması bir zamanlar haftalar aldı. Artık bulut, tüm bunları dakikalar, hatta saniyeler içinde yapmanıza izin veriyor.
Birçok devops ekibi, farklı bulutlar tarafından desteklenen çeşitli API’lere kod yazmaya başladı. Microsoft, kod olarak altyapı felsefesinin bir parçası olarak biraz daha ileri gitmeye ve Azure’da makineleri başlatmak için basitleştirilmiş bir dil oluşturmaya karar verdi.
denilen dil pazı, bir geliştiricinin yeni bir örnekte çevirmek isteyebileceği farklı bitlerin çoğunu hecelemek için verimli, bildirime dayalı bir biçim sunar. Bazı temel tür güvenliği, hataların önlenmesine yardımcı olabilir ve VS Kodunda sözdizimi duyarlı bir düzenleyici bulunur. Dilin kendisi, yönergeleri herhangi bir sıraya dahil etmenize ve ardından Azure’un kaynak yöneticisinin yürütmeyi optimize etmesine izin veren güçlü bildirimsel bir yapıya sahip, altyapı hakkında daha yüksek düzeyde düşünmek için tasarlanmıştır.
frink
Bir arkadaş, banka seçmenin tek şartının, bankanın muhasebe yazılımının kuruşları saymak için tam sayıları kullanmasını ve bir doların kesirleri için kayan noktalı sayıları kullanmamasını sağlamak olduğunu iddia ediyor. Kayan noktalı hataların tehlikeleri iyi bilinmektedir ve çok büyüktür. Sayıları fazla dikkatsizce savurmak kaç hataya neden oldu?
frink sadece bu problem için oluşturulmuş “birimlerin farkında” bir dildir. Frink’teki her değişken sadece bir sayı tutmaz, aynı zamanda ton, watt, fit veya metre olsun, ölçü biriminin bir göstergesini de tutar. sayesinde birim dönüştürme kolaydır Frink yapılandırma dosyası. Frink’in çekirdek mekanizması ayrıca yuvarlama ile ilgili sorunları azaltmak için rastgele kesinlik sayıları kullanır. Tip kontrolü gibi ama sayısal ölçü birimleri için.
Faust
Ses sentezi dar bir odak gibi görünebilir, ancak oyun geliştirme, sanal gerçeklik ve iyi ses kalitesine dayanan herhangi bir uygulama için çok kullanışlıdır. Giriş Faustadını bir karışımından alan alana özgü bir dildir. işlevsel ses akışı. Faust’un yapısı tamamen işlevseldir ve tüm işlevleri bir ses işleme hattı oluşturur. Arka ucu, gelen sesi sayısal bir temsile böler ve kodun kendisi, nihai bir sonuç olarak oluşturulabilen veya birleştirilebilen bir dizi fonksiyondur. Örnek olarak, kod çıktınızı bölerek ve bir gecikme ekleyerek bir yankı veya yankı oluşturabilirsiniz. Faust’un kodu C++, C, LLVM bit kodu, WebAssembly, Rust ve diğer birkaç dile aktarılır, böylece onu hemen hemen her projede kullanabilirsiniz.
Melrose ve Glikol
Kod yazan herkes, bir programcının bir grubu nasıl başlatacağını bilir: Bir davulcu bulmak için bir reklam vermek ve ardından yanıt veren herkesle görüşmek yerine, bir davul makinesinin ritimlerini hecelemek için bir kod yazmanız yeterlidir. Bu yapıldıktan sonra, diğer tüm grup üyelerini alt rutinlerle değiştirebilirsiniz. Hatta bu şekilde bütün bir senfoni orkestrası kurabilirsiniz.
Melrose ve glikol bu tarz müzik yaratmak için tasarlanmış iki müzik programlama dilidir. Her ikisi de yalnızca birkaç tuşa basarak ayrıntılı kompozisyonlar oluşturmanıza olanak tanır. Melrōse, batı müziğinde yaygın olan standart on iki tonlu oktav çevresinde yüksek bir seviyede çalışır. Notalar, diziler halinde gruplandırılmıştır ve yazılım, transpozisyon gibi scut işlerinin çoğunu halleder. Çıkış, MIDI özellikli herhangi bir enstrümana gider ve kod ayrıca MIDI bağlantı noktası üzerinden gelen sinyallere tepki verebilir, böylece Melrōse kodu bir grup üyesi olabilir.
Glicol, aynı görevlerin çoğunu daha düşük bir seviyeden gerçekleştiren Rust tabanlı bir araçtır. Kod, çok çeşitli müzik seçenekleri sunmak için dijital sinyal işleme ile bütünleşir. Araç, açık kaynaklı ses motoruyla tarayıcıya hazır sesler üretmek için tasarlanmıştır. Glicol’ün geliştiricisi, dilin tüm beceri seviyelerindeki diğer kişilerle işbirliğini teşvik etmek için “düşük giriş ücreti ve yüksek tavanlara” sahip olduğunu söylüyor.
Web Montajı ve Atık
Talimatları bilgisayara göndermenin en etkili yolu, onları ikili olarak kodlamak ve CPU’lar tarafından kullanılan temel işlemlerle sınırlamaktır. Her çipin kendi favori ikili sözdizimi vardır ve Pascal veya Java gibi bazı dillerin yerel bir sanal makinede çalışması amaçlanan nötr bir ikili biçimi vardır. WebAssembly (Wasm) bu adımları izleyerek web tarayıcılarına standart bir biçimde metinle birleştirilmiş önceden hazırlanmış ikili kod sunar. WebAssembly’nin amacı, web uygulamalarının omurgasını oluşturan küçültülmüş JavaScript kodunu, yerel hıza yakın, çalışmaya daha da hazır bir şeyle değiştirmektir.
Birçok geliştirici, WebAssembly’yi doğrudan yazmadan, daha yüksek seviyeli dilleri tarayıcılarda çalışacak WebAssembly’ye dönüştüren derleyiciler kullanarak kullanır. Ayrıca, WebAssembly’nin temel yapısının çoğunu insan tarafından okunabilir bir biçimde ortaya çıkaran düşük seviyeli diller oluşturma hareketi de var. atık güçlü yazım ile C benzeri bir sözdizimi sunan böyle bir seçenektir.
WebAssembly ayrıca Java’nın JVM’sine benzer bir yığın makinesiyle talimatları kodlamanın genel bir yolu olarak web tarayıcılarının dışında bir kullanım buluyor. Kırmızı pandaörneğin, geliştiricilere WebAssembly’de yazılmış kodla borudan aşağı inerken verileri düzeltme veya değiştirme şansı sunan bir akış veri platformudur.
Java 17
Teknik olarak Java yeni bir dil değildir. Gerçekten de Java ile ilgili en harika şeylerden biri, geliştiricilerinin eski sürümlerle uyumluluğu korumak için harika bir iş çıkarmış olmasıdır. En son JVM’ler için 10 hatta 20 yıllık kodu derlemek genellikle oldukça kolaydır. Kodun çalışması garanti edilmez, ancak derlenmesi neredeyse diğer tüm dillerden daha kolaydır. Java ekibinin milyonlarca entegrasyon testi paketi var ve bunu gösteriyor.
Java 17’yi bu listeye ekledim çünkü o kadar modernleştirildi ki 1990’lardan kalma bir zaman yolcusu tarafından neredeyse tanınmaz hale geldi. Java 17, kodlama şeklimizi değiştiren pek çok ekstra özellik ve uzantıya sahiptir.
Bazıları, gelişmiş rasgele sayı üreteci veya daha katı kayan nokta matematik semantiği gibi, çok karmaşık sayısal kod yazmanın zorluklarını ele alır. Muhasebe sistemleri yazan geliştiriciler, sent sayısını tutmak için tamsayıları kullanmaktan kurtulabilirler, ancak AI algoritmaları ve karmaşık lineer cebir ile uğraşanlar kayan noktaya ihtiyaç duyarlar.
Güçlü kapsülleme ve genişletilmiş anahtar semantiği gibi diğerleri, temel dile bir disiplin ve esneklik karışımı getirir. Toplamda, tüm bu iyileştirmeler sayesinde daha güçlü, daha güvenli ve daha güvenli kod yazmak hiç olmadığı kadar kolay. Hala özünde Java var, ancak ekstralar bir fark yaratıyor.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3658204/11-new-programming-languages-to-make-a-coders-heart-sing.html#tk.rss_all