pátek, listopadu 19, 2004

Zlé jazyky

Přišla mi reakce na příspěvek o designu software:

. . .
V dobe, kdy jsem byl na skole jsme se zacali ucit zajimavy nove se tvorici plne graficky jazyk. Jmenuje se National Instruments Labview. Sklada se az neceho, co se podoba komponentam (napr v Builderu) az na to, ze je to vlastne funkce. Pro programatora se jevi jako ctverecek, ktery se spojuje s dalsimi ctverecky natahanim dratku = promennych. Po kratke (=opravdu kratke) dobe jsem v tomto programovacim jazyku delal ucinene divy. Po jistem case vsak firma nechala vsechny graficke symboly patentovat a cele jadro programovaciho jazyka naroubovali na prakticke pouziti testovani plosnych desek na vyrobnich linkach.
. . .
Petr Frank
Hmmm. LabView jsem krátce používal, a popravdě řečeno mi moc nevyhovuje. Stejně jako třeba HP-VEE a další podobné produkty, je to vývojový prostředek zaměřený na příliš úzkou skupinu problémů (v tomto případě řízení měřicích přístojů po GPIB skrze karty National Instruments, nebo obsluhu měřicích karet National Instruments), který spoléhá na to, že uživatel bude víceméně lineárně skládat jednotlivé předpřipravené funkční bloky, a nebude se snažit implementovat nějaké složitější algoritmy.

Já se nedomnívám, že je potřeba vzdát se textového programování -- v drtivé většině případů je to stále nejrychlejší a nejefektivnější (a taky nejvíc cool) způsob jak programovat, jen mi schází nějaký nástroj, který by mi umožnil na začátku rozvrhnout vzájemné vazby mezi komponentami, a během vývoje by tenhle návrh automaticky synchronizoval s kódem, který napíšu -- čili libovolná změna v kódu se projeví v diagramu, změna v diagramu, se projeví v kódu.

A ještě k tomu LabView: V jedné firmě, kde jsem se během studia potloukal, používali LabView jako primární prostředek pro vývoj obslužných aplikací k hardwaru, který vymýšleli. Dokud se tvořily jsem řídící konzole pro funkční generátory, bylo všechno v pořádku. Jakmile ovšem bylo potřeba napsat program pro obsluhu poměrně složitého real-time měřícího systému, který měl asynchonně pumpovat data do PC, viděl jsem na paní, která tu aplikaci tvořila, jak trpí.

To je ukázkový příklad toho, jak majitel/ředitel té firmičky nedokázal pochopit, že tak, jako se šrouby obvykle nezatloukají kladivem, není možné použít jeden programovací prostředek (byť stál pár desítek tisíc) na psaní všech programů.

Připomíná mi to ty neustálé hádky mezi vyznavači jednotlivých jazyků, kdy všechny znesvářené strany tvrdí, že jedině jejich jazyk je nejlepší, a všechno ostatní je šunt.

Osobně se domnívám, že volba jazyka závisí na řešeném problému. Asi těžko budu programovat ovladače pro Windows v Perlu, na druhou stranu nevidím důvod, proč nepoužít Visual Basic na tvorbu jednoduché, jednoúčelové grafické aplikace.

Ovšem já jsem sváteční programátor samouk, který nemá PhD z počítačové vědy, ani nepracuji pro velkou softwarovou společnost, kde bych byl zásoben novinkami z předplacené MSDN. Takže se třeba pletu, a nástroje, které mi chybí už existují, jen o nich nevím, a opravdu je potřeba naučit se jen jeden programovací jazyk a ten pak všem trpělivě vnucovat až do soudného dne.