-
X-Received: by 2002:a37:77c5:: with SMTP id s188mr64699qkc.0.1542784598263; Tue, 20
Nov 2018 23:16:38 -0800 (PST)
X-Received: by 2002:a37:77c5:: with SMTP id s188mr64699qkc.0.1542784598263; Tue, 20
Nov 2018 23:16:38 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!v55no66
7604qtk.0!news-out.google.com!h3ni4648qtk.1!nntp.google.com!v55no667598qtk.0!po
stnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 20 Nov 2018 23:16:38 -0800 (PST)
In-Reply-To: <pt1e79$1alf$1@gioia.aioe.org>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=165.225.84.75;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 165.225.84.75
References: <8...@g...com>
<7...@g...com>
<d...@g...com>
<psp6q7$97o$1@node2.news.atman.pl>
<6...@g...com>
<pss4d0$14n$1@node2.news.atman.pl>
<3...@g...com>
<8...@g...com>
<a...@g...com>
<a...@g...com>
<0...@g...com>
<pt1e79$1alf$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5...@g...com>
Subject: Re: Niezmienniki pętli
From: Maciej Sobczak <s...@g...com>
Injection-Date: Wed, 21 Nov 2018 07:16:38 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 57
Xref: news-archive.icm.edu.pl pl.comp.programming:212958
[ ukryj nagłówki ]> > Dlatego paradoksem naszej branży jest to, że najwięcej systemów
> > krytycznych pisze się w... C.
>
> Tak. To jest paradoks.
> Dodam tylko, że jeszcze wiekszym paradoksem jest to, iż nie wynika to
> _w najmniejszym stopniu_ z jakosci jezyka C jako języka programowania.
> Wprost przeciwnie.
Tak.
> Ten prymitywizm przeklada sie na bardzo duze ulatwienia w stworzeniu
> kompilatora, ktory "pojdzie" bez problemu rowniez na prymitywnym
> sprzecie (embedded itp).
Nie.
Tzn. łatwość w tworzeniu kompilatora była argumentem, który miał znaczenie dawno
temu, jak nie było kompilatorów i trzeba było je tworzyć. Wtedy fakt, że napisanie
kompilatora C było proste, ułatwił ekspansję C na każdą nową platformę.
Teraz ten argument nie ma znaczenia, bo kompilatory już są i nie trzeba ich pisać.
Nowe platformy sprzętowe nie powstają, wszystko się z grubsza zunifikowało a np. nowe
mikrokontrolery powstają w ramach istniejących już rodzin. A nawet jak się jakiś
producent wychyli z czymś istotnie nowym, to wystarczy dopisać backend do gcc, czyli
skorzystać z istniejącego już front-endu. Dlatego walory języka C w tym zakresie
przestały mieć znaczenie.
Dodatkowo, nie jest istotne, żeby kompilator "poszedł" na prymitywnym sprzęcie, bo
nikt poważny nie kompiluje na targecie. Kompiluje się na dowolnym biurkowym hoście a
na target wrzuca gotowy obraz - to pozwala użyć dowolnie skomplikowanego toolsetu
nawet w odniesieniu do mikrokontrolera z 512 bajtów RAMu. Właśnie dlatego typowe
dzisiejsze środowisko do programowania takich mikrokontrolerów jest oparte na
Eclipsie i zajmuje ileś GB na dysku i wymaga procesora i7, żeby się dało z niego
korzystać.
Prymitywizm języka C jest natomiast przydatny (również dzisiaj) do tego, że w takim
języku związek między kodem źródłowym a obiektowym (tzn. tym skompilowanym) jest
niemal 1:1 i każdy średnio rozgarnięty inżynier jest w stanie wskazać linię ciągłą, w
obie strony, pomiędzy tym co napisał a tym co uruchomił. To jest absolutnie kluczowe
w projektach krytycznych - tzn. jeśli tej jednoznaczności nie ma, to projekt nie ma
szans na sukces, przynajmniej nie przy dzisiejszych standardach procesowych.
Innym językiem, który pozwala na takie jednoznaczne przełożenie, jest Ada (tzn. jakiś
rygorystycznie dobrany podzbiór). Z C++ też się da, przy starannie wybranym
podzbiorze języka. Z tych trzech wygrywają... przyzwyczajenia.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 21.11.18 11:12 Queequeg
- 21.11.18 11:36 fir
- 21.11.18 15:54 AK
- 21.11.18 16:07 AK
- 21.11.18 20:32 g...@g...com
- 21.11.18 20:35 g...@g...com
- 21.11.18 22:10 Queequeg
- 21.11.18 22:28 Maciej Sobczak
- 21.11.18 22:48 Maciej Sobczak
- 21.11.18 23:04 g...@g...com
- 22.11.18 11:31 Maciej Sobczak
- 22.11.18 15:22 fir
- 22.11.18 16:08 AK
- 22.11.18 18:50 Sebastian Biały
- 22.11.18 18:53 Sebastian Biały
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-17 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 2024-11-18 Gdynia => Spedytor Międzynarodowy <=
- 2024-11-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-18 Białystok => Programista Full Stack (.Net Core) <=
- 2024-11-18 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-11-18 Kraków => Business Development Manager - Network and Network Security
- 2024-11-18 Kraków => Network Systems Administrator (IT Expert) <=
- 2024-11-18 Kraków => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-18 Zdunowo => Senior PHP Symfony Developer <=
- 2024-11-18 Łódź => QA Inżynier <=
- 2024-11-18 Lublin => Senior PHP Developer <=
- 2024-11-18 Gliwice => Specjalista ds. public relations <=
- 2024-11-18 Gdynia => Front-End Developer (React/Three.js) <=
- 2024-11-18 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-18 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=