-
X-Received: by 10.157.6.102 with SMTP id 93mr3729707otn.11.1477387939922; Tue, 25 Oct
2016 02:32:19 -0700 (PDT)
X-Received: by 10.157.6.102 with SMTP id 93mr3729707otn.11.1477387939922; Tue, 25 Oct
2016 02:32:19 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!2.us.feed
er.erje.net!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!
y38no279560qta.0!news-out.google.com!w25ni32716qtc.0!nntp.google.com!y38no27955
6qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Tue, 25 Oct 2016 02:32:19 -0700 (PDT)
In-Reply-To: <numsck$92u$1@node1.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=165.225.80.105;
posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
NNTP-Posting-Host: 165.225.80.105
References: <a...@n...v.pl>
<580a2363$0$642$65785112@news.neostrada.pl>
<a...@n...v.pl>
<2...@g...com>
<nufk59$uqs$1@node2.news.atman.pl>
<6...@g...com>
<nug5rh$g13$1@node1.news.atman.pl>
<2...@g...com>
<nugb2n$lae$1@node1.news.atman.pl>
<5...@g...com>
<nuggu4$ql2$1@node2.news.atman.pl>
<5...@g...com>
<nul57d$hjs$1@node1.news.atman.pl>
<1...@g...com>
<numsck$92u$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e...@g...com>
Subject: Re: Pascal - ankieta
From: Maciej Sobczak <s...@g...com>
Injection-Date: Tue, 25 Oct 2016 09:32:19 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Lines: 187
Xref: news-archive.icm.edu.pl pl.comp.programming:210015
[ ukryj nagłówki ]
> > Tak. Mam na myśli oczekiwania odbiorców. Im nie zależy na języku.
>
> To nie jest prawda.
Nie zależy im na języku. Zobacz ich ostatnią nowinkę, ESLOV[*]. Na stronach słowo
"C++" nie pojawia się ani razu. Przypuszczam, że a) twórcy nie chcą się przywiązywać
do tego wyboru, b) odbiorcom to wisi.
[*] https://blog.arduino.cc/2016/09/28/eslov-is-the-amaz
ing-new-iot-invention-kit-from-arduino/
> Zależy im na jakości, redukjci bugów itp.
I właśnie dlatego (z powyższego linku):
"Draw the connections between the modules on the editor, and watch your project come
to life."
Proste? Właśnie w taki sposób zmniejsza się okno wejścia dla C++.
Jak już pisałem, branża przestawi się na generację kodu wcześniej, niż rozstrzygnie
wojnę o wyższość C, C++ czy Ady.
> > O branży, gdzie niektóre płytki mają Linuksa (!) udającego
> >, że jest AVRem i też mruga diodą - i też nikogo to nie dziwi.
>
> R-Pi to nie jest do końca embedded.
Nawet mi do głowy nie przyszedł. RPi jest bardziej odpowiednikiem dawniejszych
Commodere 64, na których ludzie robili "automatykę domową" i inne mrugające choinki.
Dzisiaj ich dzieci mają do tego samego celu R-Pi.
Ja miałem na myśli raczej Intel Galileo - bo pracuje się z tym tak samo, jak z
Arduino. Bierzesz swój "sketch", który przed chwilą działał na Arduino Uno, wybierasz
w menu "Target board -> Galileo", wciskasz guzik "Upload" i Twoja płytka mruga diodą.
Tego Linuksa na tej płytce nie widać, on pełni bardziej funkcję firmware'u i właśnie
o tym pisałem - postęp w HW pozwala takie rzeczy robić a odbiorców to nie dziwi.
> > Wsadź tam jakiś okrojony VM i nikomu nie zrobi to żadnej różnicy. Bo niby czemu?
>
> Zrobi różnicę kiedy zapytasz jak szybko odpowie na przerwanie.
Ta nisza to może być pojedynczy procent całego rynku embedded. Może przegapiłeś, ale
obecnie istnieje coś z miliard (albo dwa) urządzeń wbudowanych z Javą. Niektórzy
nazywają je smartfonami.
Masz w domu tony systemów embedded. Szybkość odpowiedzi na przerwanie jest istotna
tylko w... no nie wiem w ilu z nich. Ta nisza oczywiście będzie istnieć, ale to
będzie nisza a nie dominacja.
> Problem w tym że słyszałem to po raz pierwszy około roku 2000.
Właśnie od tamtego czasu wyprodukowano ten miliard (albo dwa) smartfonów z Javą.
Niedawno widziałem... lustro domowe z Androidem. Pokazuje prognozę pogody, akurat
wtedy, gdy się ubierasz. Fajne, nie?
> Powstrzymałbym się z tymi wrózbami co będzie za pare lat. Nic nie
> będzie, będzie po staremu.
Ale przecież to Ty twierdziłeś, że coś się zmieni w temacie użycia C++. Zmieniłeś
zdanie? :-)
> > Testy pisze się z wymagań i nie zależy to od tego, czy program jest w C czy w
C++.
>
> Implementacja testów zalezy od tego.
Testy pisze się z wymagań.
> Implementacja testów w C jest
> znacznie bardziej kłopotliwa niż w C++.
Nie. Jeżeli wymaganie mówi, że lampka ma zgasnąć, to z punktu widzenia testu, który
jest pisany z tego wymagania, nie ma znaczenia, czy lampka będzie zgaszona w C przez
jawne wywołanie jakiejś funkcji, czy w C++ przez destruktor jakiegoś kończącego życie
obiektu jakiegoś wrappera RAII.
To jest ten sam test. I to właśnie tam jest wysiłek w sprawdzeniu tego, że lampka
zgaśnie.
> Pewno że mozna powiedzieć że
> "implementacja to szczegół".
Z punktu widzenia testu tak właśnie jest.
> Zerknij jednak na UVM.
Nie miałem przyjemności. Z powierzchownej lektury wynika, że to jest metodologia,
którę mogę sobie zdownloadować z internetu. I chyba nie dotyczy dyskusji C vs. C++
(vs. Ada (vs. Java)).
> Branża krytyczna określa tak wiele aspektów pracy włacznie z kolorem
> skarpetek developera
Wręcz przeciwnie. Zdumiewająco mało określa. Nawet nie narzuca języka programowania.
Ale stawia cele do spełnienia, które łatwiej jest spełnić w C (!), niż w C++.
> Nie
> rozumiem jak tak hermetyczne i toksyczne środowisko ma niby być tłem dla
> dyskucji o ewolucji embedded.
Bo niektóre urządzenia embedded są krytyczne?
W szczególności te, w których chciałbyś pytać o czas odpowiedzi na przerwanie?
[znowu o testach]
> Niby dlaczego uważasz że kodu wynikowego będzie wiecej dla C++? Bedzie
> go dokładnie tyle ile trzeba w testach i tyle ile trzeba w produkcji.
Właśnie to mam na myśli. Kodu wynikowego będzie tyle ile trzeba, ale ponieważ kodu
źródłowego będzie mniej (RAII, itd.), to w rezultacie będzie więcej kodu wynikowego
*w stosunku* do źródłowego. I właśnie ten większy stosunek utrudni weryfikację. Bo w
branży krytycznej musisz wykazać ciągłość metody inżynierskiej a im większy skok
pomiędzy kolejnymi artefaktami w łańcuchu, tym trudniej tą ciągłość wykazać.
Właśnie dlatego C++ nie jest aż tak atrakcyjny dla branży krytycznej, jak w
rozrywkowej, gdzie zmniejszenie ilości kodu albo wsparcie kompilatora są oczywistą
wartością dodaną i dla której tak bardzo lubimy C++.
Problem w tym, że w branży krytycznej te argumenty nie działają.
> Tu musisz mieć zaufanie do kompilatora lub certyfikaty dupochronne.
Bingo. Doszliśmy do najciekawszego.
Otóż kompilator C jest znacznie prostszy konstrukcyjnie od C++. Dlatego istnieją
kwalifikowane kompilatory C, natomiast o takowym dla C++ nie słyszałem (przyjmijmy,
że wybór jest mniejszy). I teraz masz wybór:
1. piszesz w C i korzystasz z kwalifikowanego kompilatora C, który oszczędza kupę
wysiłku weryfikacyjnego
2. piszesz w C++ i przy braku kwalifikowanego kompilatora C++ robisz weryfikację kodu
wynikowego, co kosztuje Cię kupę czasu (i pieniędzy).
Którą opcję wybierasz?
Szach-mat.
> Rozumiem że nie ufasz że destruktor się woła, tylko wkładasz wysiłek w
> sprawdzenie?
Tak. Sorry, taka branża.
> A nie wkładasz go przypadkiem znacznie więcej kiedy musisz
> sprawdzić czy programista wywołał tą akcję w każdym miejscu?
Testy są pisane z wymagań i to od nich zależy ten wysiłek.
> Mozna nie mieć zaufania do kompilatora. Trudno, co robić,
> można tez kopać rowy albo przeglądać wynikowy kod maszynowy co na jedno
> wychodzi.
Sorry, taka branża.
Do wyboru jest też Java (i takie tam), w branży rozrywkowej.
Prognoza pogody w lustrze, fajna sprawa. :-)
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 25.10.16 12:27 Sebastian Biały
- 25.10.16 16:10 Maciej Sobczak
- 25.10.16 17:28 re
- 25.10.16 17:30 Sebastian Biały
- 25.10.16 17:39 Sebastian Biały
- 25.10.16 17:39 re
- 25.10.16 18:11 re
- 25.10.16 18:12 re
- 25.10.16 18:18 Sebastian Biały
- 25.10.16 18:21 Sebastian Biały
- 26.10.16 07:19 slawek
- 26.10.16 07:59 Tomasz Kaczanowski
- 26.10.16 09:07 Maciej Sobczak
- 26.10.16 09:53 Tomasz Kaczanowski
- 26.10.16 09:57 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-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=