eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPascal - ankietaRe: Pascal - ankieta
  • X-Received: by 10.157.63.248 with SMTP id i53mr3897941ote.14.1477404640158; Tue, 25
    Oct 2016 07:10:40 -0700 (PDT)
    X-Received: by 10.157.63.248 with SMTP id i53mr3897941ote.14.1477404640158; Tue, 25
    Oct 2016 07:10:40 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!news.glorb.com!g49no203802qtc.1!news-out.google.com!f59ni408qtb.1!nntp.go
    ogle.com!y38no389497qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.co
    m!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Tue, 25 Oct 2016 07:10:39 -0700 (PDT)
    In-Reply-To: <nunc36$f62$1@node2.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>
    <e...@g...com>
    <nunc36$f62$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Re: Pascal - ankieta
    From: Maciej Sobczak <s...@g...com>
    Injection-Date: Tue, 25 Oct 2016 14:10:40 +0000
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:210017
    [ ukryj nagłówki ]

    On Tuesday, October 25, 2016 at 12:27:51 PM UTC+2, Sebastian Biały 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.

    Sam napisałeś, że obecni amatorzy od Arduino to przyszli inżynierowie w firmach
    embedded. Pokazuję Ci, co ci amatorzy teraz robią. Zgadnij, co będą robić za parę
    lat. Pisać szablony w C++?

    > > Proste? Właśnie w taki sposób zmniejsza się okno wejścia dla C++.
    >
    > Po LabView widac

    Po ESLOV widać, że tak rośnie nowe pokolenie inżynierów.

    > No ale jakos od 15 lat się nie daje rady przestawić.

    Kolega obok twierdził, że "większość" softu w samochodach się robi w Simulinku.
    Trochę przesadził z tą większością, ale i tak to są rysy na Twoich argumentach. To
    się dzieje, niezależnie od tego, czy Ci się to podoba.

    > >> 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.

    Niedawno powstało takie pojęcie jak "deeply embedded", bo niektórzy nie mogą się
    pogodzić z postępem w hardwarze.
    Podsumujmy: piekarnik/pralka/zmywarka sterowana mikrokontrolerem 8051 to jest system
    embedded. Jeśli w następnej wersji piekarnika/pralki/zmywarki tego samego producenta
    będzie mały komputerek z Linuksem, to to już nie jest embedded. Dlaczego? Bo
    specjaliści od embedded mają naruszone ego? No to sorry.

    > Nie. Mam tony pecetów z przyczepionym LCD i baterią. Nijak nie widzę
    > dlaczego miałbym to nazywać embedded.

    https://en.wikipedia.org/wiki/Embedded_system

    > Czy jak do mojego peceta dokleje
    > monitor i klawiaturę to tez bedzie embedded?

    To zależy, czy będzie częścią większego produktu. Jeśli ten monitor i klawiatura są
    akurat na frontowym panelu w samochodzie, to tak, ten pecet jest systemem embedded.
    Sorry. Nie ja wymyśliłem definicję.

    > 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.

    Cieszę się, że znalazłeś sobie ciekawą i niezagrożoną niszę zawodową.

    > > Testy pisze się z wymagań.
    >
    > Dalej mówisz jak typowy managier.

    Nie, jestem inżynierem.

    > Się pisze testy. A w czym?

    Skup się: w Excelu.

    (oczywiście nie jest to jedyna opcja, ale o tyle ciekawa, że kompletnie oderwana od
    dyskusji nt. wyższości C++ nad C)

    > 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++.

    Dalej nie rozumiesz. Jeśli lampka ma zgasnąć, to w jakiejś chwili na jakimś outpucie
    ma być LOW (powiedzmy). Albo jakaś zmienna lub wartość w jakieś tablicy albo
    strukturze ma być LOW. Itp. Zrobienie testu na takie coś nie zależy od tego, czy
    ustawianie tej wartości jest w C czy w C++.

    W szczególności, uwaga, test można zrobić *zanim* powstanie ten kod i tym bardziej
    wtedy widać, że robienie testu nie zależy od tego, czy gaszenie lampki jest w C, czy
    w C++.

    (Proszę nie mylić z TDD (Test-Driven Development), bo to nie to.)

    [branża krytyczna]
    > Narzuca bardzo wiele.

    Na przykład?

    > > 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++.

    Błąd logiczny. Właśnie dlatego jest łatwiej w C, że C jest (w uproszczeniu)
    podzbiorem C++.
    Dzięki temu ilość różnych rzeczy do sprawdzenia w kodzie jest mniejsza (sic!).

    > > 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ą?

    Uzupełniam:
    Jeżeli w danym systemie embedded nie interesujesz się czasem odpowiedzi na
    przerwanie, to prawdopodobnie jest to system rozrywkowy, np. lustro z Andoridem z
    prognozą pogody. Natomiast jeżeli jesteś zainteresowany tym czasem, to prawdopodobnie
    jest to system krytyczny a wtedy chcesz mieć jak najłatwiejsze narzędzia weryfikacji.

    > > I właśnie ten większy stosunek utrudni weryfikację
    >
    > Nieprawda. Weryfikację utrudnia cieżki do czytania kod,

    Więc pisz kod łatwy do czytania. Standardy kodowania po to są.

    > kłopotliwe
    > implementowanie testów

    Testy pisze się z wymagań. N-ty raz to powtarzam.

    > i kiepski związek kodu (rysowanie z LabView) z
    > wynikiem (generowany C).

    Bingo. Dlatego C++ jest trudniejszy w weryfikacji, niż C, bo w C++ jest większy
    przeskok między kodem (źródłowym) a wynikiem (obiektowym).

    > Pierwsze słyszę żeby 20MB kodu wynikowego więcej z powodu życia
    > templates mialo byc przeszkodą weryfikacyjną

    To jest tzw. total showstopper a nie przeszkoda.

    > Po stronie kodu jest 10x mniej

    Zaraz, zaraz. Powyżej napisałeś, że kodu jest 20MB więcej, teraz piszesz, że kodu
    jest 10x mniej. Gubisz się?

    Jeżeli w Twoim projekcie zrobiło się 10x mniej kodu źródłowego a jednocześnie
    przybyło 20MB kodu wynikowego, to leżysz na weryfikacji.
    Hasło: traceability.

    > >. Bo w branży krytycznej musisz wykazać ciągłość metody inżynierskiej
    >
    > Pomiędzy jednym a drugim masz kompilator.

    To jest nieciągłość.

    > Możesz wygazać formalnie jego
    > działanie?

    Jeżeli to jest kompilator C++, to nie da się tego zrobić jeszcze bardziej, niż nie da
    się gdy to jest kompilator w C.

    Właśnie dlatego lepiej, żeby był C.

    > Jesli nie to musisz za każdym razem sprawdzać kod
    > w C z kodem w asm. Ręcznie.

    Tak. Sorry, taka branża.

    Dlatego łatwiej się to robi gdy kod źródłowy jest w C.
    Naprawdę.

    > Już Ci napisałem jak duży producent pisal w certyfikowanym kompilatorze
    > C z wielką dziurą.

    Nie ma problemu - certyfikował tą resztę wokół dziury.

    > Zaznaczam przy okazji że w tym czasie kiedy oni w nim
    > pisali gcc osiągał lepsza jakość kodu wynikowego i nie miał bugów.

    Bzdura. Bugzilla pokazuje, że w historii gcc nigdy nie było takiego przedziału czasu,
    żeby nie było bugów. Różnica jest taka, że w przypadku tego certyfikowanego wiedza o
    tym gdzie są bugi (i jak trzeba pisać, żeby je ominąć) była większa.
    Dlatego ten certyfikowany był bardziej odpowiedni w projekcie krytycznym.

    > Bugi pochodzace z kompilatorów to promil promila problemu
    > bugow w ogólności.

    W branży rozrywkowej? Oczywiście.

    Ale pisaliśmy o krytycznej.

    > Piszesz o embedded tak jak Ci w danej chwili
    > pasuje. Raz to wypasione systemy z Linuxem i Java a po chwili
    > certyfikowane produkty

    Ty sam ten temat szeroko traktujesz. Raz o Arduino, drugi raz o falownikach...
    Próbuję odpisywać wg bieżącego, zmiennego kontekstu.

    > 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.

    Ale ja nie pisałem tylko o promilu certyfikowanych. Również o tej gigantycznej masie
    rozrywkowych, z Javą w środku.
    Pytanie teraz, czy pomiędzy tymi dwoma kategoriami jest wystarczająco dużo miejsca.
    Pewnie jest, ale nie na tyle, żeby można było pisać o niezastąpionym C++, którego nic
    nie wyprze. Właśnie wypiera (albo nie dopuszcza), z obu tych stron.

    W branży embedded C++ jest w podobnym ścisku i pod podobną presją konkurencji, jak na
    desktopie, z podobnych powodów.

    > A przy
    > okazji jesli chodzi o Pascala ...

    Nie widziałem w embedded.

    --
    Maciej Sobczak * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: