Saygın ancak durgun C++'ı değiştirmek için Google araştırmacıları, Carbon adlı yepyeni bir "deneysel" açık kaynak programlama dili tanıttı.
Carbon, geliştiriciler için bellek güvenliği ve jenerikler gibi çağdaş geliştirme kavramlarını ele alan daha yeni bir dile basit bir başlangıç noktası sağlayan C++'ın halefi dili olarak hizmet edebilir.
Bu, Microsoft'un JavaScript'i güncellemek için TypeScript'i ve Java'daki zayıflıkları güçlendirmek için Kotlin'i nasıl oluşturduğuna benzer olacaktır.
Google, yıllar boyunca bazıları önemli bir ün ve önem kazanmış bir dizi programlama dili geliştirdi.
Örneğin, Golang (veya sadece Go), sunucuların ve dağıtılmış sistemlerin oluşturulmasını kolaylaştırmak için geliştirildi ve daha sonra genel halk tarafından benimsendi.
Dart Programlama diliJavaScript'in yerini alacak şekilde oluşturulan , Flutter'ın piyasaya sürülmesine kadar pek tanınmamıştı.
Bir Google çalışanı olan Chandler Carruth, 19 Temmuz 2022'de Toronto'daki Cpp North kongresinde Carbon adlı yeni bir programlama dili fikrini sundu. Conor Hoekstra'ya göre, kim katıldı ve slaytları kaydetti.
Senaryoyu oluşturmak için Carruth, günümüzün en sevilen programlama dillerinden birkaçının, geliştiricilerin hızla üretken olmalarını ve aynı zamanda çağdaş dil tasarımından yararlanmalarını sağlayan torunları olduğunu gösterdi.
Karbon programlama dilinin özellikleri, Google'ın onu icat etme amacı ve daha fazlasını içeren genel bir tanıtımıyla başlayalım.
Karbon Programlama diline giriş
19 Temmuz 2022'de Google, Carbon'u yarattığı en yeni programlama dili olarak açıkladı. Deneysel olarak C++'ın yerini alması amaçlandı.
Bir sayesinde jenerik sistemHer örnekleme için kodu iki kez kontrol etme ihtiyacını ortadan kaldıran Carbon, modern programlama kavramlarının bir temeli üzerine inşa edilecek.
Yıl sonuna kadar tasarım, temel bir operasyonel sürüm (versiyon 0.1) sağlamayı planlıyor.
Bellek bütünlüğü, C++'ın eksik olduğu çok önemli bir unsurdur. Güvenlik kusurlarının birincil kaynaklarından biri bellek erişim sorunlarıdır.
Dinamik sınır denetimlerinin geliştirilmesi, başlatılmamış durumların daha iyi izlenmesi ve kapsamlı bir varsayılan hata ayıklama oluşturma modu, Carbon ekibinin tüm hedefleridir. İçerik oluşturucular, zaman içinde güvenli bir Karbon alt kümesi oluşturmayı amaçlıyor.
Bununla birlikte, aşağıdakiler yeni programlama dilinin bazı önemli özellikleridir:
- Türleri adlandırmak için ifadeleri kullanın.
- Tanım kontrolleri ile güçlü jenerikler
- Türler özel olarak arayüzler gerçekleştirir
- giriş cümleleri ve temel gramer
- İşaretçiler sınırsız erişim ve mutasyona izin verir.
- İşlev giriş parametrelerinin değerleri salt okunurdur.
- Kök ad alanı pakettir.
- API'ler, paket adları kullanılarak içe aktarılabilir.
- Bir yöntem, açık bir nesne parametresi aracılığıyla bildirilir.
- Sınıflar varsayılan olarak kesindir; sadece bir miras var
Karbonun Özellikleri
Modern ve gelişen
- Carbon sürümleri arasındaki yükseltmeler basit ve araç tabanlıdır.
- Güçlü dil temelleri, özellikle C++ kullandıysanız ve öğrenmesi kolaysa
- Daha güvenli temeller ve bellek açısından güvenli bir alt kümeye adım adım yaklaşım
Açık kaynak topluluğuna hoş geldiniz
- Sıcak, kabul edici ve davetkar olmaya çalışan bir topluluk
- Amaçları ve öncelikleri farklı ve güçlü yönetişimdir.
- Derleyici, kitaplıklar, belgeler, araçlar, paket yönetimi ve daha fazlasını içeren hepsi bir arada strateji
Hızlı ve C++ ile uyumlu
- ile birlikte çalışın C ++ kodu kalıtım ve şablonlar dahil olmak üzere zaten sahip olduğunuz
- LLVM ile C++ ile karşılaştırılabilir performans ve bit ve adreslere düşük seviye erişim
- Hızlı, ölçeklenebilir ve mevcut C++ yapı sistemlerinizle uyumlu yapılar
Google neden Carbon programlama dilini oluşturdu?
Performans açısından kritik yazılımlar çoğunlukla muazzam ve genişleyen kod tabanları ve yatırımları olan C++ ile yazılmaya devam ediyor.
Ancak, büyük ölçüde birikmiş yılların teknolojik borcundan dolayı, yukarıda belirtildiği gibi geliştiricilerin taleplerini ilerletme ve karşılama konusunda sorun yaşıyor.
Biriktiği teknik borç ve evrim sürecindeki zorluklar nedeniyle C++'ı aşamalı olarak geliştirmek son derece zordur.
Bu sorunları çözmek için ideal yaklaşım, doğrudan C veya C++ geleneğini devralmak yerine, çağdaş bir jenerik sistem, modüler kod yapısı ve tutarlı, basit sözdizimi gibi güçlü bir dil temeli ile başlamaktır.
Go, Swift, Kotlin, Rust ve daha birçok çağdaş dil şimdiden olağanüstü bir geliştirme deneyimi sunuyor. Bu güncel dillerden birini kullanabilen geliştiriciler yapmalıdır.
Ne yazık ki, C++'ın benimsenmesi ve taşınması bu dillerin tasarımları tarafından ciddi şekilde engellenmektedir. Bu engeller, performans yükünü ve yazılımın deyimsel tasarımındaki değişiklikleri içerir.
Carbon, C++'ı kademeli olarak iyileştirme girişimi değildir; daha ziyade, bir ardıl dil stratejisidir. Odak noktası, C++ birlikte çalışabilirliğinin yanı sıra şu anda C++ kullanan geliştiriciler ve kod tabanları için yaygın kabul ve geçiştir.
Bir C++ değiştirme dili şunları içermelidir:
- C++ ile karşılaştırılabilir performans, geliştiriciler için çok önemli bir özelliktir.
- C++ programcıları için yönetilebilir bir öğrenme eğrisi ve aşinalık düzeyi
- Ölçeklenebilir ve kaynaktan kaynağa bazı deyimsel C++ kod çevirisi içeren geçiş.
- Mevcut yazılımın mimarisi ve tasarımı için benzer ifade ve destek.
- Kesintisiz ve çift yönlü C++ ile birlikte çalışabilirlik, yığının geri kalanını taşımak zorunda kalmadan herhangi bir kitaplığın Carbon'u benimsemesine olanak tanır.
Bu strateji ile Google, C++ için zaten mevcut olan ekosisteme katkıda bulunur ve mevcut yatırımları, kod tabanlarını ve geliştirme topluluklarını içerir.
Birkaç dil, çeşitli ekosistemler için bu yaklaşımı benimsemiştir ve Carbon, aşağıdaki durumlarda C++'a benzer bir işlev oynamaya çalışır:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Karbon
C++ VS Karbon Kodu
Zaten bir C++ geliştiricisiyseniz, Carbon'un öğrenme eğrisi düşük olmalıdır. Kulağa doğal gelmesi ve okunması ve anlaşılması basit olması gereken sabit bir gramer yapılarından oluşur.
Bir C++ kodu örneği:
Bu Karbon kodu şuna karşılık gelir:
Karbona Karşı Pas
Açıkça bellek açısından güvenli performans uygulamalarının gereksinimlerini karşılamak üzere tasarlanmış bir başka çağdaş dil, Rust olarak adlandırılır.
Öyleyse neden sadece Rust'u kullanmıyorsunuz?
Bazıları bir Mozilla projesi olarak başlayan ve daha sonra büyük bir halk desteğine sahip olan Rust'ın C++'ın halefi olduğunu iddia etse de, Carruth paralelin hala geçerli olup olmadığından şüphe ediyor.
Rust, şüphesiz yeni bir projeye başlamak için harika bir dildir, ancak Java ve Kotlin gibi dillerin “çift yönlü birlikte çalışabilirliği”nden yoksun olduğundan, yavaş yavaş buna geçiş yapmak zordur.
Carruth, CPP North'da bir konferans verdi ve halihazırda Rust'ı kullanan insanları bunu yapmaya devam etmeye teşvik etti. Halihazırda büyük C++ kod tabanlarına sahip olan ve Rust'a dönüştürülmesi zor olan geliştiriciler Carbon kullanmalıdır.
Özellikle Carbon, Carruth'un mevcut bir ekosistemin, bu örnekte C++ üzerine inşa edilmiş bir “halef dili” olarak adlandırdığı şeydir.
Bu amaçla, Carbon'un, programcılara "performans açısından kritik uygulamalar" oluşturmada yardımcı olmak gibi birçok amacı olsa bile, mevcut C++ koduyla tamamen uyumlu olması amaçlanmıştır.
Ek olarak, C++'dan Carbon'a geçişi mümkün olduğunca basit hale getirmeyi amaçlamaktadır.
Sonuç
Son olarak, Carbon dili yaratıcıları, oluşturma sürecine dikkat etmek için çaba sarf ettiler. Projenin kodu istek için mevcuttur ve açık olarak şu adreste depolanır: Github, ve kültürü kapsayıcı ve hem özel vatandaşlara hem de BT sektörüne açık olarak tanımlanmaktadır.
Carbon ekibi, Carbon'un gelecekte gelişmek için yalnızca Google tarafından desteklenen bir proje değil, topluluk tarafından yönlendirilen özerk bir proje olması gerektiğini düşündü.
Caruth, bir dizi BT işletmesinin ilgisine rağmen, bu konseptin hala deneysel aşamada olduğunu da sözlerine ekledi.
Yorum bırak