-
1. Data: 2019-04-17 19:41:49
Temat: Ada Tutorial - w Instytucie Lotnictwa
Od: Maciej Sobczak <s...@g...com>
Cześć,
W drugim tygodniu czerwca w Instytucie Lotnictwa w Warszawie będzie miała miejsce
konferencja Ada-Europe 2019:
http://ae2019.edc.pl/
Było już kilka komunikatów w tej sprawie na grupie, ale chciałem zwrócić uwagę
grupowiczów na jeden szczegół:
W pierwszym dniu konferencji (11 czerwca, wtorek) odbędą się dwa równoległe tutoriale
(http://ae2019.edc.pl/tutorials.html):
- T1: Controlling I/O Devices with Ada, oraz
- T2: An introduction to Ada.
Obydwa (i zwłaszcza ten drugi) mogą zainteresować osoby, które są ciekawe języka a
nie znalazły do tej pory impulsu, żeby spróbować.
Całodniowe tutoriale poprowadzą bardzo doświadczeni fachowcy, po angielsku.
Koszt to 40 EUR. Słownie: cztery eurodychy.
Rejestracja tutaj: https://registration.ada-europe.org/
W razie pytań zapraszam.
--
Maciej Sobczak
-
2. Data: 2019-04-17 20:43:19
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Szyk Cech <s...@s...pl>
> W pierwszym dniu konferencji (11 czerwca, wtorek) odbędą się dwa równoległe
tutoriale (http://ae2019.edc.pl/tutorials.html):
>
> - T1: Controlling I/O Devices with Ada, oraz
>
> - T2: An introduction to Ada.
>
> Obydwa (i zwłaszcza ten drugi) mogą zainteresować osoby, które są ciekawe języka a
nie znalazły do tej pory impulsu, żeby spróbować.
Miałem na studiach prawie 20 lat temu. Wnioski: szkoda sobie zawracać
głowę - atrakcyjność Ady jest mniej więcej taka jak syrenki-kabrio w
dzisiejszych czasach... - nie ten klimat i nie te czasy...
Nawet w Szap (ang. Usa) w najnowszym swym wynalazku F-35 wszystko
zakodowali w C++ ... Najwyraźniej uznali że Ada to dziadostwo i ogólnie
do nauki tego nie ma chętnych...
Inna sprawa, że F-35-coding-rules.pdf wprowadza takie ograniczenia, że z
tego C++ zostaje może 25% przez co programowanie zgodnie z tymi
zaleceniami jest bardziej prymitywne niż w latach 90 XXw (czyli z przed
standaryzacji C++). Widać, że ktoś bardzo lubił Ada-ę i pomyślał, że w
zasadzie można by tak samo programować w C++.
-
3. Data: 2019-04-18 15:01:59
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Maciej Sobczak <s...@g...com>
> Miałem na studiach prawie 20 lat temu.
No właśnie - jedną z głównych prezentacji (http://ae2019.edc.pl/keynotes.html) będzie
"A 2020 View of Ada". Być może będzie to inna perspektywa, niż Twoje wspomnienia ze
studiów.
> nie ten klimat i nie te czasy...
A konkretnie jaki klimat i jakie czasy? Przykładowo, Python zaczął swoją historię 29
lat temu. To nawet wcześniej, niż Twoje studia.
Po czym poznać, że klimat i czasy są właściwe?
> Nawet w Szap (ang. Usa) w najnowszym swym wynalazku F-35
"F-35 development started in 1992" (z Wikipedii).
Czyli wcześniej, niż Twoje studia. Dużo wcześniej. To zdecydowanie nie jest najnowszy
wynalazek.
> wszystko
> zakodowali w C++ ... Najwyraźniej uznali że Ada to dziadostwo
F-35 jest chyba najbardziej krytykowanym współczesnym samolotem.
"critics argued that the plane was "plagued with design flaws""
"The program received considerable criticism for cost overruns during development"
Czyli to chyba nie był najlepszy przykład. :-)
> Inna sprawa, że F-35-coding-rules.pdf wprowadza takie ograniczenia, że z
> tego C++ zostaje może 25%
I to tylko dlatego, że to nie jest projekt cywilny. Bo gdyby był cywilny, to by
zostało 5%.
> Widać, że ktoś bardzo lubił Ada-ę i pomyślał, że w
> zasadzie można by tak samo programować w C++.
To nie wina Ady, tylko standardów lotniczych. Bo Ady też używa się tylko kilka
procent. Pełna Ada to zupełnie inne zjawisko - ale o tym najlepiej dowiedzieć się na
tutorialu (albo na całej konferencji).
--
Maciej Sobczak * http://www.inspirel.com
-
4. Data: 2019-04-19 19:24:10
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Sebastian Biały <h...@p...onet.pl>
On 18/04/2019 15:01, Maciej Sobczak wrote:
> F-35 jest chyba najbardziej krytykowanym współczesnym samolotem.
> "critics argued that the plane was "plagued with design flaws""
> "The program received considerable criticism for cost overruns during development"
> Czyli to chyba nie był najlepszy przykład. :-)
Kontrprzykład to Ariane-5 do której jako programistów zatrudnili
hackerów dłubiących na poziomie bitów i całe to bezpieczeństwo Ady
poszło w pizdu. Jak w większości "bezpiecznych" języków nic nie
ogranicza przed hackerami emulującymi sobie w środku asembler.
Z chęcią bym zobaczył jakiś przykąłd porządnie zrobionego projektu w
Adzie, ale będzie on zapewne albo akademicki i interesujacy, albo
przemysłowy i zrobiony za pomocą jakiegoś odpowiednika MISRA czyli flaki
z olejem.
-
5. Data: 2019-04-20 13:43:13
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Szyk Cech <s...@s...pl>
>> nie ten klimat i nie te czasy...
>
> Po czym poznać, że klimat i czasy są właściwe?
Tu poruszamy 2 sprawy:
1. Klimat - wspomniana "Syrenka kabrio" nie sprawdzi się u nas - nie ten
klimat (często pada i mamy tu zimy).
2. Właściwe czasy - to szerszy temat:
- Model obiektowy Ady:
Ze strony:
https://learn.adacore.com/courses/intro-to-ada/chapt
ers/object_oriented_programming.html
Rzuciłem na to okiem i tak jak prawie 20 lat temu było i teraz jest to
straszne...
- Czy mamy dla Ady:
- środowiska programowania z dynamicznym sprawdzaniem poprawności kodu
(jak w Qt Creator)
- środowiska programowania z możliwością uruchamiania programu ze
śledzeniem (debuger)
- profiler (liczba wywołań funkcji i wykrywanie wycieków pamięci)
- bibliotekę Gui (co np. z OpenGl - da się używać?)
- wsparcie dla internacjonalizacji Gui
- czy można w Ada pisać jednocześnie na wiele systemów operacyjnych
(przenośnie)
- czy Ada oferuje wyjątki (do zgłaszania błędów)
- czy można dokumentować kod w komentarzach (Doxygen lub podobne)
Moim zdaniem to wszystko musi być jeśli chcemy zająć się programowaniem
na poważnie i bez przyjmowania jakichś sztucznych ograniczeń. Przejście
na inny język to nie tylko kwestia składni - wiele zależy od wsparcia w
obszarach jakie wymieniłem. I tak się składa, że C++ ma to wszystko (i
więcej). To dla tego język D nie może "zaistnieć" bo po prostu jest
słabo wspierany, a nie to że jest zły (choć największe zło w nim polega
na tym, że nie ma wielodziedziczenia).
Ja przy tym wszystkim zupełnie nie wiem gdzie można by pracować w
Trójmieście (w którym mieszkam) profesjonalnie programując w Ada. Już
będąc programistą C++ mam problem ze znalezieniem pracy... Jednak się
tym nie zrażam, bo w C++ widzę rozsądek (wydajność, możliwości,
składania i wsparcie) i potencjał. Wszystkie inne języki konkurencyjne
nie mają któregoś z tych 4 zdroworozsądkowych parametrów lub nie mają
potencjału.
Nie zrozum mnie źle: to dobrze, że jest wiele języków programowania.
Jednak trzeba wiedzieć co one mogą i do czego ew. je stosować.
Obecnie jest tak, że do krytycznych zadań przy zaczynaniu nowego
projektu i przy NORMALNYM podejmowaniu decyzji (opartym na doświadczeniu
a nie na polityce czy tradycjach) nadaje się tylko C++. I faktycznie
najważniejsze aplikacje jakich na co dzień się używa są pisane w C++ -
to nie przypadek. A pozostałe języki w 90% też są kodowane w C++.
Ada stosowana jest w branży zbrojeniowej i może można na tym zarobić.
Jednak ja zupełnie nie widzę jej przewagi nad C++, a wręcz przeciwnie
widzę brak kompatybilności jeśli chodzi o popularne narzędzia i dostępne
biblioteki (C i C++).
-
6. Data: 2019-04-20 13:46:10
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Szyk Cech <s...@s...pl>
> Jak w większości "bezpiecznych" języków nic nie
> ogranicza przed hackerami emulującymi sobie w środku asembler.
Mógłbyś rozwinąć tą myśl?!?
-
7. Data: 2019-04-20 15:02:03
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Sebastian Biały <h...@p...onet.pl>
On 20/04/2019 13:46, Szyk Cech wrote:
>> Jak w większości "bezpiecznych" języków nic nie ogranicza przed
>> hackerami emulującymi sobie w środku asembler.
> Mógłbyś rozwinąć tą myśl?!?
Ależ bardzo prosto. Ariane dupneła z powodu tego że ktoś w "bezpiecznym"
języku zrobił założenie że coś zmieci się w 16 bitach. Typowe myślenie
asemblerowca który wszędzie widzi bajty do oszczędzenia.
Tu masz fragmenty kodu:
https://hownot2code.com/2016/09/02/a-space-error-370
-million-for-an-integer-overflow/
Wygląda jak asembler wydziobany ręcznie. I tak oto bezpieczny język
posłużył jako platforma do napisania nispoziomowego kodu do manipulacji
liczbami w sposób błędny. Dzień jak codzień. No i jeszcze księgowi
dorzucili swoje:
"The protection of all 7 (including BH) variables wasn't provided
because the maximum workload for the IRS computer was declared as 80%."
-
8. Data: 2019-04-20 16:20:38
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Szyk Cech <s...@s...pl>
> Tu masz fragmenty kodu:
>
> https://hownot2code.com/2016/09/02/a-space-error-370
-million-for-an-integer-overflow/
"The erroneous module was never properly tested in the new environment -
neither the hardware, nor the level of system integration. Therefore,
the flaws in the development and implementation were not detected."
Czyli poleciało nieprzetestowane. To zamyka temat: błąd programisty to
jedno, ale brak przetestowania to strategiczne partactwo firmy która to
robiła.
Żaden kod nie powinien być udostępniany bez przejścia specjalnie
zdefiniowanej procedury testowej (choćby wykonywanej "ręcznie"). A kod
krytyczny zawsze powinien być obłożony testami automatycznymi.
Niestety w polskich firmach dedykowani testerzy to wciąż egzotyka. Moim
zdaniem te firmy są skazane na wymarcie - właśnie ze względu na
partackie podejście do procesu wytwórczego.
-
9. Data: 2019-04-22 20:51:20
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: Maciej Sobczak <s...@g...com>
> 2. Właściwe czasy - to szerszy temat:
> - Model obiektowy Ady:
> Ze strony:
> https://learn.adacore.com/courses/intro-to-ada/chapt
ers/object_oriented_programming.html
>
> Rzuciłem na to okiem i tak jak prawie 20 lat temu było i teraz jest to
> straszne...
Niezupełnie, bo akurat w ciągu tych 20 lat wprowadzono składnię, której 20 lat temu
nie było.
Niemniej, faktem jest, że obiektowość w Adzie wygląda trochę inaczej, niż np. w
Javie. Czy to gorzej czy lepiej, zdania są podzielone.
> - Czy mamy dla Ady:
> - środowiska programowania z dynamicznym sprawdzaniem poprawności kodu
Z dynamicznym? A po co z dynamicznym?
Do statycznego jest np. to:
https://www.adacore.com/codepeer
albo to:
http://www.adalog.fr/en/adacontrol.html
albo choćby kompilator w trybie sprawdzania poprawności (w odróżnieniu od trybu
translacji).
> - środowiska programowania z możliwością uruchamiania programu ze
> śledzeniem (debuger)
Kilka. Współcześnie rozwijany to GNAT Programming Studio:
https://www.adacore.com/gnatpro/toolsuite/gps
> - profiler (liczba wywołań funkcji i wykrywanie wycieków pamięci)
Ogólnie, GNAT oparty jest o GCC, więc wykorzystuje ten sam debugger, profiler i całą
resztę dostępną w GCC.
> - bibliotekę Gui
Wszystkie poważne:
https://en.wikibooks.org/wiki/Ada_Programming/Librar
ies/GUI
> (co np. z OpenGl - da się używać?)
http://flyx.github.io/OpenGLAda/
> - wsparcie dla internacjonalizacji Gui
Przypuszczam, że razem z tymi bibliotekami powyżej.
> - czy można w Ada pisać jednocześnie na wiele systemów operacyjnych
> (przenośnie)
Tak. Patrz wyżej, GNAT oparty jest o GCC.
> - czy Ada oferuje wyjątki (do zgłaszania błędów)
Tak, chociaż wyglądają one inaczej, niż w C++ (nie są obiektami ani wartościami).
> - czy można dokumentować kod w komentarzach (Doxygen lub podobne)
Czyli czy można generować dokumentację HTML z kodu na podstawie komentarzy? Pewnie
można, sam kiedyś napisałem skrypt, który to robi.
> Moim zdaniem to wszystko musi być jeśli chcemy zająć się programowaniem
> na poważnie
Nie. Na poważnie powinno być dużo więcej, zależnie od tworzonych systemów.
> Ja przy tym wszystkim zupełnie nie wiem gdzie można by pracować w
> Trójmieście (w którym mieszkam) profesjonalnie programując w Ada.
Ja też nie wiem. Ale to nie zmienia faktu, że i tak zapraszam na tutorial. :-)
> Ada stosowana jest w branży zbrojeniowej
https://www.adacore.com/industries
> Jednak ja zupełnie nie widzę jej przewagi nad C++
Znajomość Ady będzie Twoją przewagą gdy będziesz pisał, nawet w C++.
--
Maciej Sobczak
-
10. Data: 2019-04-24 09:11:48
Temat: Re: Ada Tutorial - w Instytucie Lotnictwa
Od: g...@g...com
W dniu wtorek, 23 kwietnia 2019 21:27:13 UTC+2 użytkownik slawek napisał:
> Problem jest znacznie bardziej. Testowanie to proteza. Czasem
> pomaga. Raczej nie szkodzi.
?
Testowanie to proteza?!
"Zbudowaliśmy dla państwa samolot. Nie, nie przetestowaliśmy, ale w teorii wszystko
powinno działać."
"Jutro oddajemy most do użytku. Nie testowaliśmy, ale mamy na miejscu inżyniera. Jak
by się działo coś złego, to naprawi"
Testowanie jest integralną częścią budowy każdego systemu.
> Ale rozwiązaniem jest inne spojrzenie
> na to czym jest bug, czym jest program itd. Myśleliśmy że
> komputery będą wolne od ludzkich słabości. Ale tak nie jest.
?!
"Mój komputer pierdzi jak się obeżre grochu"
"Zrezygnowaliśmy z instalacji kolejnej aplikacji, bo komputer powiedział, że jest już
zmęczony i chce iść spać"
"Tegoroczne wybory zostają odwołane z powodu strajku maszyn obliczeniowych"
"Komputer powiedział, że nie będzie uruchamiał aplikacji finansowych w piątek 13tego,
bo to przynosi pecha"
> Musimy nauczyć się akceptować i określić co chcemy akceptować.
Kolega opowiadał historię, jak koleżanki jego mamy z pracy korzystające z Windowsa 95
wezwały go kiedyś, bo miały problem z wyskakującym niebieskim ekranem.
Miały na ten temat różne hipotezy - że na przykład jak się przejdzie przez drzwi, to
się robi niebieski ekran, albo że jak się będzie podlewało kwiat, itd.
Ludzie są aż za dobrzy w wymyślaniu nierzeczywistych przyczyn dla zjawisk.
(Dowodem na to jest istnienie wielu religii i kultów).
Rzeczywistą przyczyną problemu był WinNuke. Kolega powiedział, żeby odłączyły
komputery od sieci, i wtedy problem rzeczywiście zniknął.
Tym, czego musimy się nauczyć, nie jest akceptowanie, tylko rozumienie.
Idealnie byłoby, gdyby użytkownik systemu mógł łatwo rozumieć zasady działania
systemu, którego używa, i samemu móc go zmieniać.
W świecie komputerów to nie jest jakiś "utopijny ideał".
> Przykładowo: czy jeżeli automatyczne lądowanie F35 może zakończyć
> się śmiercią pilota to jest to ok?
Nie, to nie jest ok.
> Dodatkowe dane:
> prawdopodobieństwo jest znacznie mniejsze niż gdy pilotuje
> człowiek - ale większe niż zero i - gdyby napisać lepiej program
> byłoby mniejsze.
I gdyby go dobrze wytestować, żeby przynajmniej znać ryzyko.