Na papire (a na monitoru :) ) to vypada velice pekne, ale obavam se, ze v praxi je to (na vetsi projekty) temer stejne nepouzitelne jako C. Imho to skolabuje na nutnosti mit zdrojovy kod od vetsiny modulu - pri potrebe neco zmenit, pridat, priohnout nastane celkem velky problem, pokud nebudou po ruce. Zatimco dynamicky typovane jazyky (nechci je tu prosazovat, jenom pozanmenavam) nebo system postaveny and nejakym middlewarem umozni navazat pomerne nesouvisejici komponenty, jak se v takovem pripade projevi ada?
Jak to bude vypadat, pokud chci navazat na jiz existujici aplikaci, kterou jsem nepsal, nemam k ni zdrojaky a jedine binarky jsou zkompilovane versi prekaldace, kterou nepouzivam?
Tim se nechci do Ady navazet, v dobe vzniku predstavila (mozna az prilis) dokonaly souhrn znamych postupu a technik.
Podle mě je to přesně naopak. Ada se moc nehodí na malé projekty. Tam je právě užitečná ta dynamika a přiohýbání. Ada je pro malé věci kanon na vrabce.
Ada se na opravdu velké projekty používá docela často. O nutnosti mít zdrojové kódy bych taky docela pochyboval. Ada totiž díky skrývání implementace umožňuje psaní velice čistých a neprůstřelných rozhranní modulů.
Je to prostě poněkud jiný přístup než v C#/Javě a tyto jazyky jsou na ledasco řádově lepší. Ale s tím, že Ada na velkém projektu vybouchne jako C, s tím nesouhlasím.
Ty myslíš nějaké linkování obj souborů které máš "od někud", bez zdrojáků? Přiznám se, že jsem to v životě nědělal, v žádném jazyku. Uznávám, že se tomu v praxi možná nedá vyhnout, ale já takovou situaci považuji za nefér. Buď mám zdrojáky, nebo binárku, ale v nějakém rozumném formátu. Lib, so, dll, class, dll assembly. Obj soubor, který je v každém prostředí jiný za rozumný nepovažuji.
Ná druhou stranu můj oblíbený GNAT je postaven na backendu s gcc a myslím (doufám, že si to nepletu), že se mi kdysi podařilo k adovskému projektu přilinkovat obj vypadnuvši z gcc (C). GNAT si ke každému modulu generuje docela hezké informační soubory, ale jestli ve verzi 3.15 schroustá soubory z verze 2.0, to netuším.
V obecnosti to samozrejme nejde, spis jsem chtel ukazat na to, ze dnes uz je problem jinde. Jde o propojovani ruznych nesouvisejicich komponent pomocni middleware a podobnych veci. Vyznam programovaciho jazyka se pomalu ztraci - v kazde komponente se pouzije ten nejvhodnejsi.
Az se konecne objevi rozumny system distribuovanych objektu pro vice jazyku nastane raj na Zemi :)
Naprosto souhlasím. Moc by se mi líbilo psát něco v Adě, něco v C#, něco v Pythonu a pak to nějak čistě zbastlit dohromady. Zatím je s tím problém. Řekl bych, že ze současných technologií je v tomhle nejlepší .NET. Chce to jen naroubovat jazyky na tuhle platformu. Třeba u Ady, kde se počítá s GC by to neměl být problém.
Řekl bych, že Ada není vymyšlená na nějaké bastlení projektů. Pokud vím, používala se (a snad ještě používá) na projekty, které jsou RT a dost kritické. Tam jsou trochu jiné požadavky na programy potažmo na jazyky. V USA rozhodně od doby, kdy záměna čárky za tečku ve fotranském programu způsobila ztrátu rakety za milióny dolarů a prestiže americké techniky. Rusům se stalo cosi podobného s Fobosem...
Takže bastlit si můžete dovolit při tvorbě WWW stránek, ale těžko při programování Minutemanna, letadla nebo třeba i obyčejného vlaku. Tam může modrá obrazovka znamenat měco podstatně horšího než ostudu, která se dá stejně svést na Billa.
Jinak, v C se dají psát i dost velké projekty, jen je nutné 1) určit pravidla a 2) dodržovat je. Bohužel, spoustu z toho, co Ada zkontroluje sama ať už v době kompilace nebo za běhu, si musím v C zkontrolovat (a tedy napsat do kódu) sám. A testovat a testovat a testovat.
Znám. Psal jsem (psali jsme) v Cčku dost rozsáhlou aplikaci, spíš systém, s časově kritickými věcmi a hlavně s požadavky na spolehlivost.
Mít možnost jít na Adu, oblíz bych všech deset.
> Ada se na opravdu velké projekty používá docela často.
Muzu znat par takovych (treba ceskych), kde nejde o rakety nebo vesmirne lety?
> O nutnosti mít zdrojové kódy bych taky docela pochyboval.
> Ada totiž díky skrývání implementace umožňuje psaní velice
> čistých a neprůstřelných rozhranní modulů.
>
> Je to prostě poněkud jiný přístup než v C#/Javě a tyto jazyky
> jsou na ledasco řádově lepší. Ale s tím, že Ada na velkém
> projektu vybouchne jako C, s tím nesouhlasím.
Takze treba Java neumoznuje skryvani implementace? Mluvime oba o Jave z http://java.sun.com?