Zdravim.
Za me osobne je Vase prace s urcitymi vyhradami dobry pocin. Ovsem za predpokladu, ze vystup z programu ma jasne definou strukturu, hodnoty a moznost integrace do aplikace bez ohledu na pouzity jazyk.
Ja osobne uz dlouho krituzuji "piseckarstvi" a "cochcarnu" v Linuxovych projektech. Je to asi jeden z nejignorovanejsich a zaroven - podle meho - nejpalcivejsich problemu linuxoveho sytemu obecne. Sam se snazim uz nejakou dobu na tom pracovat a navrhnout nejake reseni, ale je to dost obtizna cesta. Vas projekt je malou vlastovkou, ktera miri presne timto smerem - umoznuje delat praci na jednom miste, jednim zpusobem a unifikuje rozhrani. Jsou bohuzel lide, kterym takovy bordel vyhovuje, u nich moc pochopeni necekejte. Za me vsak, dobra prace - jen tak dal.
Asi nejvetsi vyhradu bych mel k "natvrdo" zvolenemu jednomu vystupnimu formatu. Osobne bych spis ocenil moznost volby vystupniho formatu (JSON, XML, prosty text, ...). Uz proto, ze pri integraci s aplikaci bych musel dodavat mechanizmi pro praci s JSON. Nerikam, ze je to buh vi jak zavratne slozite, ale v pripade, kdy uz aplikace umi s pracovat jinym formatem, znamena to zbytecne mnozeni kodu a praci navic.
S tímto plně souhlasím, ten čurbes v rozhraní je pekelný. JSON není příliš vhodný formát, pokud hledáme jasně definovanou strukturu, hodnoty a možnost integrace. Osobně bych třeba preferoval XML jakožto primární formát (s definicí) a JSON a text jako podružné výstupy.
Skvělé by jednou bylo, kdyby k tomu nebyly potřeba specifické předpoklady v prostředí, na mysli mám ten python. Třeba to k tomu jednou dospěje.
[Miroslav Šilhavý]
Souhlasim.
K tem formatum, to je jeden z duvodu proc bych volil moznost volby formatu, ale ne na urovni klientskeho projektu, nybrz jeste pred nim. Bud rovnou data generovat v volitelnem formatu, nebo jednoduchou a rychlou konverzni mezivrstvou. XML je na tohle skvely nastroj, ale ma take spoustu odpurcu, a ja bych nerad zabredl do podobnych hadek a diskuzi, jake mame moznost cist vyse - v nich totiz casto v zaplave banalnich argumentu a proti-argumentu (vzhledem k moznostem dnesnich jazyku mi prijdou takove diskuze ... s prominutim hloupe) zanikne puvodni myslenka a nikam se nedohrabem.
Co se tyce integrace, podle meho nazoru by uplne nejlepsi bylo takove utility vytvaret dvoufazove, nejdrive core knihovnu, ktera bude definovat a implementovat samostatnou funkcionalitu s API na urovni C (takove API je pak mozno pouzit v podstate vsude) a az potom samostanou aplikaci. Jednak muze slouzit jako samostatny nastroj, tam kde C API by se tezko dostavalo, nebo by to bylo moc tezkopadne (treba shell) a jednak taky jako univerzalni a funkcni example jak vlastne knihovnu vyuzit.
3. 1. 2021, 12:32 editováno autorem komentáře
To zní jako use case pro Relational pipes. Program jako Sysinfo by poskytoval data v relpipe formátu (nebo XML, YAMLu, recfile atd., ale jen v jednom z nich) a pomocí Relational pipes by si to uživatel převedl do jiného formátu (takže nástroj poskytující data nemusí implementovat X formátů, ale stačí jen jeden) nebo by to mezi tím ještě filtroval, dal tam nějakou WHERE podmínku, udělal JOIN atd. - ať už v SQL, XPaht, XSLT, XQuery, Scheme, RegExpu, AWKu nebo jiném podporovaném jazyce.