Programista 59: Język C

0

Makra w języku C – do czego są użyteczne i jakie triki można zastosować, aby pisać czystszy kod? W najnowszym numerze „Programisty” pisze na ten temat Mariusz Zaborski. Artykuł wyjaśnia między innymi podstawowe „pułapki”, na które możemy wpaść, używając makr, tworzenie template function bez faktycznego mechanizmu szablonów oraz debugowanie funkcji inline.

Drugim tematem godnym polecenia są podstawy języka C2. Język ten jest próbą stworzenia następcy poczciwego C poprzez zerwanie kompatybilności wstecznej i dodanie wielu atrybutów nowoczesności, takich jak moduły (importy) i bardziej intuicyjny system typów. Ciekawą właściwością C2 jest możliwość jego automatycznej transpilacji do pierwowzoru (czyli C). To wszystko w swoim opracowaniu opisał Marek Sawerwain.

Poza tym na łamach nowego wydania prezentujemy wywiad z Johnem Romero, jednym z twórców pionierskich gier firmy id Software takich jak Wolfenstein 3D, Doom czy Quake. Opowiada on o tym, jak wyglądało tworzenie gier w latach ‘90, a w szczególności – jak udało się stworzyć pierwsze silniki 3D w czasach, kiedy nikt nie wyobrażał sobie tego w kontekście komputerów PC.

Ponadto, jak zawsze, spektrum tematów alternatywnych:

  • Tworzenie rozszerzeń do Umbraco CMS na przykładzie pakietu Find and Replace,
  • Projekt Algochecker – skalowalna platforma na bazie Dockera do automatycznego testowania programów („sędzia internetowy”),
  • Logowanie w złożonych systemach czasu rzeczywistego na przykładzie Delphi Tracing System.

Naturalnie to nie wszystko, zachęcamy więc do osobistego zapoznania się z zawartością najnowszego wydania w salonach Empik oraz do bezpośredniej prenumeraty papierowej/elektronicznej.

59.jpg

0

Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim.

0

Nie polecam. Kupiłem na szybko głównie z powodu artykułu o ML w pythonie. Sam tekst to dno, zawiera same banalne przykłady z pierwszych stron jakie można znaleźć w google. Na miejscu autora wstydziłbym się puszczać coś tak żałosnego do tego czasopisma. No, ale cóż teraz mamy modę na AI..

0

"Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim."
A mógłbyś uzasadnić czemu wykonanie C2 miałoby się komuś nie spodobać? Albo chociaż podać główne różnicę C2 vs Nim?

0

Poza tym czy go-lang i rust nie mały być także następcami C? Z tego co widzę następców C jest sporo, ale żaden tak naprawdę nie zastępuje C. Czy może się mylę?

0
Sweetiehead napisał(a):

"Jeśli komuś się spodobała koncepcja C2 ale nie wykonanie to polecam Nim."
A mógłbyś uzasadnić czemu wykonanie C2 miałoby się komuś nie spodobać? Albo chociaż podać główne różnicę C2 vs Nim?

O ile dobrze rozumiem, to koncepcja która stoi za C2 to "lepsze C".
C2 wg tego co mają na stronie to rzeczywiście, ostrożne ulepszenie C, które powinno powstać w latach 80-tych.

Nim z drugiej strony to nowy język który ma tyle nowości, że spokojnie może zastąpić C, Pascala, Go i Rust (wiem że brzmię trochę jak fanboy).
Nim to C na miarę XXI wieku (czyli 40 lat później): https://nim-lang.org/docs/tut1.html i https://nim-by-example.github.io/getting_started/

Co mi się podoba w Nim?

  • obsługa łańcuchów (takich normalnych i tych z C)
  • niemutowalne zmienne (let)
  • kontrola efektów ubocznych
  • opcjonalny GC
  • parametry nazwane
  • własne operatory
  • iteratory
  • podzakresy
  • zbiory (sets)
  • tablice z rozmiarem
  • tablice otwarte (bez stałego rozmiaru)
  • wycinki (slices)
  • tuples
  • moduły
  • wyjątki
  • generyki
    itd...

Może obiektowość jest w tym języku słaba, ale dlatego nie wspominam o C++ ani o tym że to jest jakiś nowy najlepszy język do wszystkiego.
Jest po prostu lepszym C.

0

C2 ma wsparcie innych kolimatorów? Wygląda, że zbudowali go na clangu i llvm. Nawet składnia języka przypomina składnię IR llvm. Więc w zasadzie wystarczyło podmienić driver (sterowanie fazami kompilacji i linkowania) i frontend kompilatora (parsowienie, AST, codegen do formy pośredniej), a optymalizacje i codegen binarek zostawić standardowy.

1
py123 napisał(a):

Nie polecam. Kupiłem na szybko głównie z powodu artykułu o ML w pythonie. Sam tekst to dno, zawiera same banalne przykłady z pierwszych stron jakie można znaleźć w google. Na miejscu autora wstydziłbym się puszczać coś tak żałosnego do tego czasopisma. No, ale cóż teraz mamy modę na AI..

Drogi czytelniku,

istnieje możliwość przejrzenia interesujących artykułów w salonach Empik przed kupieniem. Na łamach Programisty publikujemy artykuły o różnym poziomie zagłębienia w temat, niewykluczone że w przyszłości pojawi się bardziej zaawansowany artykuł na temat machine learningu. Stanie się to tak szybko, jak szybko uda nam się znaleźć autora, który wyrazi ochotę na napisanie bardziej złożonego artykułu :) (nie mówię tutaj ironicznie, niekiedy w odpowiedzi na słabe artykuły pojawiają się osoby z tytułem doktora i wyżej z danej dziedziny i publikują lepsze treści).

Pozdrawiamy,
Redakcja Programisty

1 użytkowników online, w tym zalogowanych: 0, gości: 1