Język Google Carbon może zastąpić C++

Dyrektor ds. technologii
Zweryfikowany ekspert
Każdy artykuł na stronie Innowise jest tworzony przez autorów posiadających praktyczne doświadczenie. Rozumieją oni dany temat nie tylko z teoretycznego punktu widzenia, ale także dzielą się spostrzeżeniami wynikającymi z rzeczywistych projektów.
12+ lat doświadczenia
Zweryfikowany ekspert
12+ lat doświadczenia
Jako wizjonerski architekt, Dmitry wypełnia lukę między surową innowacją a komercyjną rentownością. Nadzoruje plan rozwoju technologicznego firmy, zapewniając, że każde rozwiązanie jest zbudowane na stosie, który rozwiązuje bezpośredni ból biznesowy.
Wiedza
Full-stack development Architektura Technologie
Poznajmy się
Podsumuj artykuł za pomocą AI

Na konferencji CPP North, Chandler Carruth, główny inżynier oprogramowania w Google, ogłosił wydanie języka programowania Carbon. Carbon od Google to eksperymentalny, otwarty język, który ma być następcą C++, ale nie jego zamiennikiem. W artykule przyjrzymy się bliżej językowi Carbon, jego celom, potencjałowi oraz powodom, dla których C++ potrzebuje następcy.

Google's Carbon language.

Co jest nie tak z C++?

Według indeksu TIOBE z sierpnia 2022, C++ zajmuje 4. miejsce, po Python, C oraz Java. Od 2001 roku C++ nigdy nie spadł poniżej 5. miejsca, co świadczy o dużej popularności tego języka pomimo jego wieku (pierwsze pojawienie się w 1985 roku). C++ ma wiele zalet kluczowych dla rozwoju oprogramowania wymagającego wysokiej wydajności. Dlaczego więc potrzebuje następcy?

Jak wyjaśnił Chandler Carruth, język C++ nie spełnia głównych celów, jakie przed nim postawiono. Obejmują one między innymi obsługę oprogramowania, w którym wydajność ma kluczowe znaczenie, prostą składnię, ewolucję języka, nowoczesne systemy oraz solidne zabezpieczenia. Konkretne cechy języka oraz kwestie biurokratyczne uniemożliwiają stopniowe ulepszanie języka C++.

Jeśli chodzi o specyfikę języka, C++ w trakcie swojej ewolucji zgromadził znaczny dług techniczny. Co więcej, odziedziczył wiele przestarzałych funkcji z języka C. Ponadto użytkownicy C++ priorytetowo traktują kompatybilność wsteczną, aby zapewnić wsparcie dla istniejących ekosystemów C/C++. Jednocześnie kompatybilność wsteczna nie pozwala na likwidację długu technicznego, w związku z czym proces ewolucji języka C++ jeszcze bardziej utrudnia wdrażanie ulepszeń.

Skoro mowa o kwestiach biurokratycznych, proces ulepszania języka C++ jest znacznie spowalniany przez komisję (WG21), która zajmuje się standaryzacją, a nie projektowaniem. WG21 stosuje powolne procesy typu „waterfall”, co prowadzi do opóźnień w podejmowaniu kluczowych decyzji. Co więcej, komisja ta ograniczyła dostęp do większości ekspertów w dziedzinie C++ i reprezentuje jedynie wybrane firmy oraz kraje, ignorując liczną społeczność programistów C++.

Cele języka programowania Carbon

Jako następca języka, Carbon odziedziczył oryginalne cele C++ i otrzymał dodatkowy cel.
Carbon language.
Opierając się na podejściu języka następcy, Carbon koncentruje się na 3 głównych kwestiach, które odpowiadają na istniejące wyzwania C++ i pozwalają nam uznać Carbon za obiecujący projekt: interoperacyjność, migracja i ewolucja języka. Opierając się na tych punktach, twórcy Carbon dążą do pozbycia się długu technicznego C++, utrzymania dostępu do istniejących ekosystemów, zapewnienia szybkich ulepszeń i uniknięcia wstecznej kompatybilności przy użyciu aktualizacji opartych na narzędziach.

Jakie są obietnice Carbon?

Dostępne obecnie informacje pozwalają uznać Carbon za bardzo obiecujący projekt. Jeśli chodzi o praktyczną stronę nowego języka programowania, Chandler Carruth twierdzi, że możemy spodziewać się po Carbon prostszej gramatyki, słów kluczowych wprowadzających (tj. fn i var), systemu generycznego sprawdzanego pod kątem definicji oraz stromej krzywej uczenia się. Carbon odziedziczy wysoką wydajność języka C i uniknie jego głównych wad.

Na dodatek, twórcy Carbon zapewniają, że będzie to otwarty język programowania, w pełni interoperacyjny z C++. Kod Carbon jest bardzo podobny do kodu C++, a w wielu przypadkach są one niemal identyczne. Co więcej, kod Carbon może być zintegrowany z kodem C++. Tak więc, deweloperzy C++, którzy chcą całkowicie przejść na Carbon, będą mieli zestaw narzędzi do automatycznego transliterowania bibliotek C++ na kod w nowym języku. Możliwa jest również migracja odwrotna. W przyszłości te biblioteki mogą być używane w istniejącym projekcie C++. Wszystkie narzędzia Carbon są hostowane na GitHubie i dystrybuowane na licencji Apache 2.0. Jak dotąd dostępny jest interpreter demonstracyjny Carbon.  

Ważną częścią eksperymentalnego projektu Carbon jest struktura zarządzania. Zespół Carbon kieruje się zasadami inkluzywności i otwartości. Struktura zarządzania Carbon została zaprojektowana z myślą o szybkim podejmowaniu decyzji, elastyczności i szybkim rozwoju projektu. Wszystkie kluczowe decyzje są podejmowane przez liderów Carbon, reprezentowanych obecnie przez Chandlera Carrutha, Kate Gregory i Richarda Smitha. Ponieważ projekt Carbon opiera się na modelu rozwoju open-source, każdy użytkownik może wysyłać żądania GitHub, aby zasugerować zmiany w projekcie i napędzać ewolucję języka Carbon.

Obecnie pracownicy Google pracują nad językiem programowania Carbon jako projektem wewnętrznym. Planowane jest jednak zmniejszenie poziomu zaangażowania firmy w projekt, ponieważ programiści rozumieją, że dla przyszłego sukcesu Carbon musi być projektem niezależnym i kierowanym przez społeczność.

Podsumowanie

Ważne jest, aby zrozumieć, że Carbon jest projektem eksperymentalnym i jest zbyt wcześnie, aby jednoznacznie stwierdzić, że Carbon jest pełnoprawnym następcą C++. Zgodnie z mapą drogową Carbon, rozwój głównych konstrukcji językowych powinien zostać zakończony do końca 2022 roku i jest to dokładnie czas, w którym Carbon 0.1 powinien zostać wydany. Potrzeba czasu, aby ocenić sukces projektu, ale już teraz możemy mówić o dużych perspektywach języka programowania Carbon jako następcy C++ w oparciu o zapowiedziane funkcje i zasady rozwoju.

Spis treści

Oceń ten artykuł:

★★★★★ 4/5

4.8/5 (45 opinii)

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia.

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając "Wyślij", wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z naszą Polityką prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przeanalizowaniu Twojego zapytania skontaktujemy się z Tobą, aby omówić szczegółowe wymagania dotyczące projektu i podpisać umowę o zachowaniu poufności (NDA).

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami nasz zespół przygotuje propozycję realizacji projektu, uwzględniającą zakres prac, liczebność zespołu, przewidywany czas realizacji i szacunkowe koszty.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    Interesują Cię inne usługi?

    arrow