Google'ın yeni projesi: Carbon

Merhabalar. Bu gün size Google 'ın yeni projesi olan Carbon'u anlatacağım. Kendisi henüz yeni bir proje. Açıklanalı 1 ay bile olmadı (19 Temmuz).

Carbon'un yaratılmasında ama etken C++ varisi bir dil olması ve kendisini böyle tanıtması.

  • Neden Carbon?
Carbon'un ana hedefi de genel programlamada ve performans odaklı görevlerde vazgeçilmez olan C++'ın yerini daha yeni teknoloji, teknikle almak. Ve diğer hedef ise okunaklı kod. Carbon C++'a nazaran aynı işlevsellik ile daha iyi anlaşılan kod ortamı yaratmayı hedefliyor.

Carbon 'da Hello World:
Kod:
package sample api;
fn Main() - > i32 {
    Print("Hello, world!");
    return 0;
}

  • Carbon programlama dilinin hedefleri.
1. Performans açısından kritik yazılım desteği sunması.
2. Hızlı ve ölçeklenebilir geliştirme.
3. Okunması ve anlaması kolay bir syntax.
4. Pratik ve güvenli test mekanizmaları.
5. Mevcut C++ ekosistemiyle uyumlu ve entegre çalışabilirlik.
6. Modern teknolojinin avantajlarını kullanma. Modern işletim sistemi platformları ve donanım mimarileri.

Carbon, C++'ı aşamalı olarak geliştirme girişiminden ziyade , temelde ardıl bir dil yaklaşımıdır . C++ ile birlikte çalışabilirliğin yanı sıra mevcut C++ kod tabanları ve geliştiricileri için büyük ölçekli benimseme ve geçiş etrafında tasarlanmıştır. Ardıl bir dil olarak Carbon bunları benimser:

1. C++ ile sorunsuz, çift yönlü birlikte çalışabilirlik , öyle ki mevcut bir C++ yığınındaki herhangi bir yerdeki bir kitaplık, geri kalanını taşımadan Carbon'u kullanabilir.( Örneği aşağıda )
C++:
struct Circle {
  float r;
};

// Carbon exposing a function for C++:
package Geometry api;
import Cpp library "circle.h";
import Math;

fn PrintTotalArea(circles: Slice(Cpp.Circle)) {
  var area: f32 = 0;
  for (c: Cpp.Circle in circles) {
    area += Math.Pi * c.r * c.r;
  }
  Print("Total area: {0}", area);
}

// C++ calling Carbon:
#include <vector>
#include "circle.h"
#include "geometry.carbon.h"

auto main(int argc, char** argv) -> int {
  std::vector<Circle> circles = {{1.0}, {2.0}};
  // Carbon's `Slice` supports implicit construction from `std::vector`,
  // similar to `std::span`.
  Geometry::PrintTotalArea(circles);
  return 0;
}

2 .C++ geliştiricileri için makul düzeyde aşinalık sağlayan yumuşak bir öğrenme eğrisi .
3. Mevcut yazılımın tasarımı ve mimarisi için karşılaştırılabilir ifade ve destek.
4. C++ kodu için bir düzeyde kaynaktan kaynağa çeviri ile ölçeklenebilir geçiş

Bu yaklaşımla, C++'ın mevcut ekosisteminin üzerine inşa edebilir ve mevcut yatırımları, kod tabanlarını ve geliştirici ortamlarını bir araya getirebilir. Diğer ekosistemler için bu modeli takip eden birkaç dil var ve Carbon, C++ için benzer bir rolü doldurmayı hedefliyor:
JavaScript → TypeScript
Java → Kotlin
C++ → Carbon.

Kurulum ve diğer bilgiler için GitHub sayfası:

Proje açık kaynaklı ve Apache 2.0 lisanslı özgür yazılım. Bazılarını rahatsız etse de öyle

Telefonda yazarken çok zorlandım ama başardım. Dil ve proje hakkında yorumlarınızı bekliyorum.
Yazıyı yazarken kullandığım kaynaklara teşekkürler. Hatalar olabilir, onun için de önceden özür dilerim.
Hoşça kalın, yazılım öğrenin
 
C++ halihazırda geliştirilmeye devam eden bir dil, modern gereksinimler mevcut dil bağlamında ekleniyor, her ne kadar derme çatma bir yama gibi olsalar da kullanıyoruz. Bu nedenle gereksiz bir girişim olarak görüyorum, bir şey C++ ile yazılması gerekiyorsa yine C++ kullanılacaktır, bazı dillerin alışkanlığı kolay kolay bırakılamıyor.
 
Kolaylaştırılan bir kütüphane gibi olmuş, Python vari eklentileri dikkat çekiyor, kullanılabilir.
 

Bu konuyu görüntüleyen kullanıcılar

Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…