Vlákno názorů k článku Bezpečné programování ala Ada od David - >>> Právě důmyslný silný typový systém a zakázání...

  • Článek je starý, nové názory již nelze přidávat.
  • 2. 10. 2003 7:35

    David (neregistrovaný)

    >>> Právě důmyslný silný typový systém a zakázání automatických konverzí je cestou k rychlejšímu, levnějšímu vývoji bezpečnějších a spolehlivějších aplikací.
    Hrozne by me zajimalo, jestli krome Vaseho FTP serveru existuje nejaka dalsi success story z posledni doby a na "bezny" problem (ne raketoplan), ktera by podporila tohle tvrzeni. Proc se tedy jazyky tohoto typu (ADA, Eiffel aj.) nepouzivaji vic? Neni lepsi proste vic testovat?

  • 2. 10. 2003 7:52

    Tom Hubalek (neregistrovaný)

    Osobne souhlasim s autorem ze silna typova kontrola uz pri prekladu usetri obrovske mnozstvi problemu za behu. Jsem programator v Jave a mame to tam taky ;-)

    Testovat hotovou aplikaci je prilis pozde... Pokud jste mel ale na mysli ke kazde tride udelat jeji testovaci tridu, pak je to jiste jeste o neco lepsi... ;-)

  • 2. 10. 2003 7:59

    David (neregistrovaný)

    >>>silna typova kontrola uz pri prekladu usetri obrovske mnozstvi problemu za behu
    To by me zajimalo, co by na to rekli programatori ve smalltalku ;-)

    >>>Testovat hotovou aplikaci je prilis pozde
    Ja jsem prave myslel takovy ten klasicky doporucovany postup Unit testing - Integration testing - System testing.

    My zase vyvijime v C#, takze to bude velice podobne jako ta vase Java, ze, ja jsem se nad tim ted zamyslel asi trochu moc obecne, spis ve vztahu k tomu Eiffelu a tem jejich constraints, co muzou definovat v metodach a zajistovat tim integritu parametru a buh vi ceho.
    Ja s tim (=kontroly) osobne mam totiz spis takovou negativni zkusenost, ze ty kontroly jsou stejne jen tak kvalitni, jak kvalitni je kod, ktery maji testovat. A casto to pak muze dopadnout tak, ze se stravi 2* tolik casu a ty constraints jsou pak stejne k nicemu, protoze neodchyti vsechno :-(

  • 2. 10. 2003 9:07

    venca trotl (neregistrovaný)

    Eiffel nema constraints :-) eiffel ma design by contract :-) Je to fantasticka vec zejmena pokud uz nekdo ty klasy napsal pred vama a vy je musite pouzivat coz jsou typycky standartni klasy dodavany s kompilatorem. Usetri to spoustu casu s ladenim. Sam to taky pouzivam, protoze je to super a hlavne protoze muzu klidne zahodit debuger, kterej podle me jen zdrzuje, protoze clovek pak pise metodou pokus omyl a vetsinou tech omylu je pozehnane nez prijde spravny reseni.
    Pokud je nekdo linej proste nemusi vsechny ty require a ensure kousky psat. Jeho rozhodnuti :-)

    Ale hlavne Eiffel je objektove orientovanej jazyk narozdil od javy c# c++ a podobnejch bazmeku... tj zadny primitivni typy, multinasobna dedicnost, zadny pointry, zadny zkurv... interfejsy, ktery vyvoj ztezujou nez by ho zlehcili, garbage colector a milion dalsich krasnejch veci.
    S eiffel vs java/C#/c++ apod je to jako s francouzkska kuchyne vs mcdonnald. To prvni je super a spousta lidi nevi jak dobry to je, to druhy je sracka ktera ma nejakou garantovanou mizernou kvalitu ale dostacuje to vetsine

  • 2. 10. 2003 9:29

    David (neregistrovaný)

    >>> eiffel ma design by contract :-)
    Ja vim, me se jen po ranu nechtelo premyslet, jak se to doopravdy jmenuje ;-)

    Je to pravda, porad je to vlastne dokola (i v jinych prispevcich): kdyz to bude psat nekdo dobre, tak to bude dobre, kdyz ne tak ne. Ted jde vlastne jen o to, jak vsechny kolem co nejvic donutit, aby to dobre psali. A v tom mi ty testy prijdou jednodussi, protoze si je aspon muzu poustet porad dokola a divat se, jak dopadly.

    >>>clovek pak pise metodou pokus omyl
    Tak to je uplna pravda, programovani typu "Aha, tak ono i je 0 a melo byt jedna, tak to tam asi ma byt i++;" je asi to nejhorsi co znam. Ale v tomhle zadny jazyk, ani Eiffel, nepomuze, ne?
    A bude teda aspon nejaky naznak te success strory v Eiffelu? ;-)

  • 2. 10. 2003 15:54

    venca trotl (neregistrovaný)

    no taky bych nakou poradnou uvital :-) neco se da najit na www.ise.com snad za zminku z toho ale stoji ten firmware do HP tiskaren (alespon nekterejch) kterej ma bejt v ejflu psanej

  • 2. 10. 2003 9:36

    Jerry (neregistrovaný)

    Jenom pro informaci - v C# žádné primitivní typy nejsou, všechno je buď object, nebo struct.

  • 2. 10. 2003 10:44

    Marek Paška (neregistrovaný)

    Proč se tolik dělá v C/++ jsem nikdy pořádně nepochopil. Plain C je výborný prostředek na low-level programováni (jádra OS), proč se v tom dělají kancelářské balíky nechápu. Ada je IMHO na servery jako dělaná. Vemte si například kolik se dělá patchů kvůli různým buffer overflow. U jazyke, který pořádně kontroluje meze polí takový útok nepřichází v úvahu. Maximálně jedno vlákno serveru sletí na nějaké výjimce, ale ostatní uživatelé frčí dál.

    Jinak Ada má zase své problémy. Nepříjemná práce s řetězci a neuveřitelně toporné OOP (bez rozhranní, jednoduchá dědičnost, nepřehledná syntaxe).

  • 5. 10. 2003 2:06

    Bohuslav Roztočil (neregistrovaný)

    > Neni lepsi proste vic testovat?
    Ale to je právě ono! Překladač silně typového jazyka vlastně provádí část testů sám, takže je není nutné implementovat znovu a znovu a znovu...

    > Proc se tedy jazyky tohoto typu ... nepouzivaji vic?

    Ada je moloch. Sám jazyk obsahuje konstrukce pro "úplně všechno", např. nízkoúrovňové I/O či synchronizaci paralelních procesů. IMHO v době jejího vzniku nebylo snadné udělat překladač, navíc takový aby se vešel na tehdejší HW, takže existovaly jen implementace přísně kontrolované US vládou. A mezitím se objevily "lepší" jazykym např. <flame>Java</flame>. ;-)