-
Data: 2016-10-25 12:27:15
Temat: Re: Pascal - ankieta
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 2016-10-25 11:32, Maciej Sobczak wrote:
> 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."
Był kiedys taki kawałek kodu o nazwie LabView. Kiedys siedziałem, koło
2000 roku, na jakiejś konferencji i prelegentowi aż piana leciała z ust
kiedy wymieniał wszelakie zalety takiego rysowania algorytmiki. Nie to
żeby pracował w TI, najzwyczajniejszy habilitowany bez pojecia o czym
mówi jak to zazwyczaj bywa. "I juz za rok nie bedzie trzeba nic
programować". Ta...
Swoją drogą znam kolesia który w tym pisywał gdzieś koło 2007.
Przesiadywał po kilka godzin nad projektem żeby "jakoś narysować ta
pętlę". Ewentualne refaktorowanie kosztowało uszkodzenie prawego nadgarstka.
Bez watpienia mamy do czynienia z przyszłościową technologią. Nastepna
proszę!
> Proste? Właśnie w taki sposób zmniejsza się okno wejścia dla C++.
Po LabView widac że strasznie zmniejszyło od 15 lat. O jakiś pewno
promil projektów.
> Jak już pisałem, branża przestawi się na generację kodu wcześniej, niż rozstrzygnie
wojnę o wyższość C, C++ czy Ady.
No ale jakos od 15 lat się nie daje rady przestawić. Widać nie ta
rzeczywistość.
> 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.
I ten projekt w Arduino to w czym napisano?
>> Zrobi różnicę kiedy zapytasz jak szybko odpowie na przerwanie.
> Ta nisza to może być pojedynczy procent całego rynku embedded.
IMHO wkładasz za dużo zwykłych komputerów do pojcia embedded.
> Może przegapiłeś
Tak, głupi jestem, to wiem.
>, ale obecnie istnieje coś z miliard (albo dwa) urządzeń wbudowanych z Javą.
Niektórzy nazywają je smartfonami.
Dziękuję. Ale żeby sarkazm stosować to trzeba jednak umieć.
> Masz w domu tony systemów embedded.
Nie. Mam tony pecetów z przyczepionym LCD i baterią. Nijak nie widzę
dlaczego miałbym to nazywać embedded. Czy jak do mojego peceta dokleje
monitor i klawiaturę to tez bedzie embedded?
> Szybkość odpowiedzi na przerwanie jest istotna tylko w... no nie wiem w ilu z nich.
Bo to pecety a nie embedded o którym tu mowa.
> Ta nisza oczywiście będzie istnieć, ale to będzie nisza a nie dominacja.
Ta nisza będzie może niszą, ale obawiam się że sterowanie wektorowym
falownikiem dalej jest nie za bardzo w zasięgu Javy na Galaxy.
> Niedawno widziałem... lustro domowe z Androidem. Pokazuje prognozę pogody, akurat
wtedy, gdy się ubierasz. Fajne, nie?
Jak tam wstawie płytę na iTX z Atomem to będzie embedded czy blaszak?
Zawieszenie peceta na ścianie to już embedded?
> Ale przecież to Ty twierdziłeś, że coś się zmieni w temacie użycia C++. Zmieniłeś
zdanie? :-)
Twierdze że będzie ewolucja C do C++. Nic C/C++ nie zastapi na skale
masową. Nie ma jak. Chwilowo ewolucjia jest blokowana, ale na szczęscie
natura rozwiązuje ten problem powoli i metodycznie.
>>> 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ń.
Dalej mówisz jak typowy managier. Się pisze testy. A w czym?
Doswiadczenia z Verilog/Vhdl pokazują że to jest *zasadnicze* pytanie.
Decyduje o tak szerokim spektrum przyszłych problemów że nie da się go
zbyć byle jaką odpowiedzią.
>> 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.
Dalej nie rozumiesz. Jeśli lampka ma zgasnąc z C to sprawdzenie czy kod
w C woła właściwą funkcję jest znacznie trudniejsze niż w C++. Dla
managera to żadna różnica, dla implementatora testu to różnica
*zasadnicza* która rzutuje na jakośc testowania. W skrajnym wypadku
sadza się jednostę białkową która nacicka przycisk jak się zapali bo ...
bo język nie pozwala na inne wykrycie.
Tak, ta jednostka białkowa tez jest potrzebna, ale dopiero na końcowym
etapie.
> To jest ten sam test. I to właśnie tam jest wysiłek w sprawdzeniu tego, że lampka
zgaśnie.
Ale możesz ten wysilek zautomatyzować mniej lub bardziej. Możesz nawet
wziąć książkę do teori testowania i zastanowić się jak podzielić ścieżkę
testowania na piramidę gdzie na samym dole jest tak wiele testów że
wymagane jest dostrzeżenie *jak* je implementować.
Nie rób z siebie takiego teoretyka. Implementacja unit testowania jest
na tyle złożonym problemem że nie można jej pomijąc głupim "się jakos
napisze". Ludzie od Veriloga od przynajmniej 10 lat wyprówają sobie żyły
żeby to robić właśnie w tym szczególe lepiej bo kazalo się że tam
przynosi to wymierne korzyści. Na tyle że obecnie testowanie bazujące na
tych szczegółach trzęsie rynkiem i jest wymogiem stawianym w krytycznych
aplikacjach.
>> "implementacja to szczegół".
> Z punktu widzenia testu tak właśnie jest.
No więc teoretyzujesz lub posiadasz toskyczne środowisko testowania w
którym czas implementacji testu jest już na tyle długi że nie ma
znaczenia jak jest stworzony. Coś jest popsute.
>> Zerknij jednak na UVM.
> Nie miałem przyjemności. Z powierzchownej lektury wynika, że to jest metodologia
To jest *implementacja* pewnej metodologii.
>, którę mogę sobie zdownloadować z internetu. I chyba nie dotyczy dyskusji C vs. C++
(vs. Ada (vs. Java)).
Ależ dotyczy wszystkiego, a w szczególności dotyczy "się jakoś napisze
te testy". Masz przykład (obecnie tip top światowy) że ktoś się pochylil
nad tymi szczegółami i okazalo się że można znaczaco podnieść komfort i
jakośc weryfikacji. Szczegóły miały znaczenie, kwestia dostrzeżenia ich
z wysokich stołków managerów od słupków w PowerPoincie.
>> 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.
Narzuca bardzo wiele. Być może rozmawiamy o róznych dziedzinach. Gdybyś
poszedł w kierunku latania z fpga ilość rzeczy
organizacyjno-implementacyjnych które musisz spelnić aby w ogole
rozmawiać jest zastanawiająca i dotycza może nie koloru skarpetek ale
niewiele brakuje.
> Ale stawia cele do spełnienia, które łatwiej jest spełnić w C (!), niż w C++.
To nie może być prawda z racji że C jest w uproszczeniu podzbiorem C++.
To nie jest trywializm. To tylko oznacza że możesz z C++ wziąć to co w
danej chwili wyraża lepiej rozwiązanie problemu.
> Bo niektóre urządzenia embedded są krytyczne?
> W szczególności te, w których chciałbyś pytać o czas odpowiedzi na przerwanie?
Czyli te na Javie z VM popędzane z Linuxem? Czy własnie rozmawiam z
druga osobowością?
> [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.
Podstawową zasadą przy redukcji bugow jest trzymanie się jak
najmniejszej ilości kodu źrodlowego i jak najczytelniejszego wyrażania
zamiarów. Ponieważ w ten sposób programista popełnia mniej błedów. Język
C musi być wspomagany przez makra, język C++ pozwala na wyrażanie wprost
w mniejszei ilości kodu.
> I właśnie ten większy stosunek utrudni weryfikację
Nieprawda. Weryfikację utrudnia cieżki do czytania kod, kłopotliwe
implementowanie testów i kiepski związek kodu (rysowanie z LabView) z
wynikiem (generowany C).
Pierwsze słyszę żeby 20MB kodu wynikowego więcej z powodu życia
templates mialo byc przeszkodą weryfikacyjną i traktowane jako miara
jakości. Po stronie kodu jest 10x mniej czytania i 10x czytelniej i 3x
mniej unit testów.
>. Bo w branży krytycznej musisz wykazać ciągłość metody inżynierskiej
Pomiędzy jednym a drugim masz kompilator. Możesz wygazać formalnie jego
działanie? FORMALNIE. Jesli nie to musisz za każdym razem sprawdzać kod
w C z kodem w asm. Ręcznie. No chyba że oszukujesz i te wszystkie nadęte
pojęcia o ciągłości są po prostu ponaginane że aż trzeszczy i podparte
zbutwiałymi certyfikatami?
> a im większy skok pomiędzy kolejnymi artefaktami w łańcuchu, tym trudniej tą
ciągłość wykazać.
Ale jak ją wykazujesz? Pomiędzy A i B użylismy kompilatora X? No no.
Robi wrażenie. Na managerach.
> Problem w tym, że w branży krytycznej te argumenty nie działają.
Z powodu biologi i komitetów certyfikujących a nie rozsądku.
> Bingo. Doszliśmy do najciekawszego.
> Otóż kompilator C jest znacznie prostszy konstrukcyjnie od C++.
> Dlatego istnieją kwalifikowane kompilatory C
Już Ci napisałem jak duży producent pisal w certyfikowanym kompilatorze
C z wielką dziurą. Zaznaczam przy okazji że w tym czasie kiedy oni w nim
pisali gcc osiągał lepsza jakość kodu wynikowego i nie miał bugów. I nie
oznacza to że należy wziąć gcc. Oznacza to że certyfikowany kompilator
okazał się polem minowym. "Jakoś(ć) przez certyfikację".
>, 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
Nie oszczędzę. Bugi pochodzace z kompilatorów to promil promila problemu
bugow w ogólności.
> 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?
Taką w ktorej jestem w stanie szybciej wykryć bugi w kodzie. C jest
drugi a C++ przedostatni.
> Szach-mat.
To nie jest szach mat. Piszesz o embedded tak jak Ci w danej chwili
pasuje. Raz to wypasione systemy z Linuxem i Java a po chwili
certyfikowane produkty wczesnej archeologii inzynieri programowania w
której ludzie rysują kreski od kodu w C do kodu w asm. Nie masz
certyfikowanej ciąglości wypowiedzi ...
>> Rozumiem że nie ufasz że destruktor się woła, tylko wkładasz wysiłek w
>> sprawdzenie?
> Tak. Sorry, taka branża.
Ten promil embedded czy te miliardy smartfonów?
Udowadnianie że c++ nie ma co szukać w embedded z pomocą hermetycznego
promila aplikacji embedded obwarowanymi certyfikatami i komitetami
wydaje mi się, przyznaje, zabawny, dlatego to ciągne dalej. A przy
okazji jesli chodzi o Pascala ...
Następne wpisy z tego wątku
- 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
- 26.10.16 15:26 Maciej Sobczak
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-01 "Chciałem zamówić kurs tym"
- 2024-11-30 Windykatorzy ścigają spadkobierców z mandat nieboszczyka za przekroczenie prędkości???
- 2024-11-30 Łódź => Technical Artist <=
- 2024-11-30 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-11-30 Warszawa => Microsoft Dynamics 365 Business Central Developer <=
- 2024-11-30 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-30 Zielona Góra => Senior PHP Symfony Developer <=
- 2024-11-30 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-11-30 Lublin => Spedytor międzynarodowy <=
- 2024-11-30 Warszawa => Mid IT Recruiter <=
- 2024-11-30 Warszawa => Fullstack Developer <=
- 2024-11-30 Żerniki => Dyspozytor Międzynarodowy <=
- 2024-11-30 Warszawa => System Architect (background deweloperski w Java) <=
- 2024-11-30 Katowice => Key Account Manager (ERP) <=
- 2024-11-30 Immatrykulacja...