Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Sheldonizátor 20. 09. 2015, 09:34:46

Název: Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 20. 09. 2015, 09:34:46
Ahoj, rád bych se zeptal místních odborníků, do jaké platformy by bylo vhodné přepsat 15+ starý projekt napsaný celý v Delphi (6,7,XE..). Jakožto mladík bych měl mít myslím že dost energie a hlavně koule na to abych to nějak zvládl  8).

Program sestává z několika modulů které se spolu baví skrze DCOM či UDP, data jsou posílána binárně a komprimovaná pomozí LZW takže to dovede jet i přes dráty a lá ISDN. Nejvíce viditelný je uživatelský modul kde probíhá většina práce odborné obsluhy zařízení a kontroly stavu. Další modul slouží k realtime načítání a ukládání provozních dat do DBF (dBase) souborů (takový lepší CSV...) a zvládne zhruba 1000 požadavků (i zápisů) za vteřinu. K tomu existuje ještě jakýsí mezimodul pro přeposílání dat z externích měřících systémů. Další modul umožňuje editaci systému včetně kreslení provozu a jeho uložení do vlastního vektorového formátu z doby DOSu (vše binárně, "serializace" Object Pascalového stromu) no a nakonec existuje ještě "manažerský" zobrazovací modul udělaný pomocí ActiveX (Delphi) který umožňuje kontrolovat stav systému bez práva změn, ActiveX je ale pouštěn pomocí EXE které se stáhne z webové stránky, protože v internet exploreru často není povolen a navíc v nových verzích za IE6 ani nefunguje.

Systém/program je funkční, byť je znát že je už hodně starý. Vyvstávají proto různé problémy:

Mojim cílem je najít vhodnou platformu (do který to budu celý po zkušebce přepisovat...) která umožní řešit výše uvedené problémy. Řešení by mělo splňovat co nejvíce následujících požadavků


Zatím mi to vychází na souboj mezi Java a C#/.NETem, možná by se dalo i C++/Qt ale tam je problém že to nemá web server. Je možné uvažovat i o Delphi 10 které nedávno vyšlo, ale to je tak drahé že je otázkou jestli to stojí za to pro tak malý tým, navíc je to stále Delphi Pascal který se dnes už netěší přílišné oblibě.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Petr Bravenec 20. 09. 2015, 09:44:36
Web server pro Qt:
http://www.hobrasoft.cz/cs/blog/bravenec/httpd
http://stefanfrings.de/qtwebapp/index-en.html
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Kit 20. 09. 2015, 09:56:13
Myslím si, že je vcelku jedno, jaký jazyk použiješ. Osobně bych to udělal jako webovou aplikaci, místo dBase nejspíš PostgreSQL (ale jistě to zvládne i MySQL). Z původních 300k řádek by se to mohlo smrsknout na 3-5k řádek v PHP. Silná typovost nemá s bezpečností mnoho společného, ale pokud ji vyžaduješ, můžeš použít třeba Python.

Určitě bych to rozdělil na více komponent. Například sběr dat má s jejich prezentací společnou pouze databázi. Mohou tedy běžet zcela nezávisle na sobě. Pro pull aktualizace můžeš využít Ajax. Pokud potřebuješ push aktualizaci, použij WebSocket.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Kouzelný dědeček 20. 09. 2015, 10:30:18
Web server pro Qt:
http://www.hobrasoft.cz/cs/blog/bravenec/httpd
http://stefanfrings.de/qtwebapp/index-en.html

Já znám ještě tydle dva:
http://www.treefrogframework.org/
http://www.webtoolkit.eu/wt/features
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 20. 09. 2015, 10:39:42
Budu dneska trošku negativistický, ale možná by bylo dobré Tě upozornit na to, aby sis ověřil, že přepsání toho projektu má skutečně *dlouhodobou* podporu ve vedení té firmy. Ono totiž právě přepisování aplikací má tu strašnou nevýhodu, že trvá docela dlouho, než se dostaneš minimálně na úroveň té původní aplikace:

1) uživatelé dlouho čekají na něco funkčního, první verze jsou jen dema a oni stejně paralelně musí pracovat s původní verzí
2) očekávají chování staré aplikace. sice někdy nadávají, na druhou stranu už jsou zvyklí na ovládání, chování atd.
3) přepis sice vypadá jako krásná příležitost zbavit se hovnokódu, ale ten výsledek může být klidně stejný :-) [ostatně už proto vzniklo toto vlákno...]
4) ten starý SW nezrezavěl, naopak, byl pořád opravován, upravován, přibývaly utilitky (o nichž mnohdy manažerstvo neví...)

Aby sis ušetřil případné zklamání, možná by bylo dobré si ověřit, jestli jen nestačí, aby se přibastlil (v čemkoli) nějaký modul pro manažery, ideálně takový, co jim pojede na smartphonech.

Jestli to zní moc negativisticky: mám s tímto dost špatné zkušenosti (například přepis appky z Foxky/DOS na webovou appku s Oracle DB), ale samozřejmě záleží na situaci v konkrétní firmě.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Daniel Kozak 20. 09. 2015, 10:41:36
Jak uz psal Kit, nejlepsi bude to udelat jako webovku, proste rozdelit to na frontend a backend. Vyhodou je ze pro frontend nebude problem najit vyvojare (HTML,CSS,JS...) dnes umi spoustu lidi. No a backend napsat vcem ti to bude vyhovvovat. Ja napriklad zrovna resil neco podobneho a jako UDP server pouzivam http://vibed.org (http://vibed.org)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Daniel Kozak 20. 09. 2015, 10:45:31
Budu dneska trošku negativistický, ale možná by bylo dobré Tě upozornit na to, aby sis ověřil, že přepsání toho projektu má skutečně *dlouhodobou* podporu ve vedení té firmy. Ono totiž právě přepisování aplikací má tu strašnou nevýhodu, že trvá docela dlouho, než se dostaneš minimálně na úroveň té původní aplikace:

1) uživatelé dlouho čekají na něco funkčního, první verze jsou jen dema a oni stejně paralelně musí pracovat s původní verzí
2) očekávají chování staré aplikace. sice někdy nadávají, na druhou stranu už jsou zvyklí na ovládání, chování atd.
3) přepis sice vypadá jako krásná příležitost zbavit se hovnokódu, ale ten výsledek může být klidně stejný :-) [ostatně už proto vzniklo toto vlákno...]
4) ten starý SW nezrezavěl, naopak, byl pořád opravován, upravován, přibývaly utilitky (o nichž mnohdy manažerstvo neví...)

Aby sis ušetřil případné zklamání, možná by bylo dobré si ověřit, jestli jen nestačí, aby se přibastlil (v čemkoli) nějaký modul pro manažery, ideálně takový, co jim pojede na smartphonech.

Jestli to zní moc negativisticky: mám s tímto dost špatné zkušenosti (například přepis appky z Foxky/DOS na webovou appku s Oracle DB), ale samozřejmě záleží na situaci v konkrétní firmě.

JJ presne, na druhou stranu mi jsme pred podobnym rozhodnutim stali nekdy v roce 2009-2010. Tenkrat jsme dosli k zaveru ze to holt postupne zrefaktorujeme. Dneska po peti letech prace si obcas rikame jestli to bylo dobre rozhodnuti. Sice jsme to za tu dobu hodne vylepsili, ale stale je tam citi vune sdedeneho kodu. Otazkou je zda by pri psani projektu od zacatku clovek po peti letech nekoukal na stejny legacy kod jako dnes :D.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 20. 09. 2015, 10:49:47
Budu dneska trošku negativistický, ale možná by bylo dobré Tě upozornit na to, aby sis ověřil, že přepsání toho projektu má skutečně *dlouhodobou* podporu ve vedení té firmy. Ono totiž právě přepisování aplikací má tu strašnou nevýhodu, že trvá docela dlouho, než se dostaneš minimálně na úroveň té původní aplikace:

1) uživatelé dlouho čekají na něco funkčního, první verze jsou jen dema a oni stejně paralelně musí pracovat s původní verzí
2) očekávají chování staré aplikace. sice někdy nadávají, na druhou stranu už jsou zvyklí na ovládání, chování atd.
3) přepis sice vypadá jako krásná příležitost zbavit se hovnokódu, ale ten výsledek může být klidně stejný :-) [ostatně už proto vzniklo toto vlákno...]
4) ten starý SW nezrezavěl, naopak, byl pořád opravován, upravován, přibývaly utilitky (o nichž mnohdy manažerstvo neví...)

Aby sis ušetřil případné zklamání, možná by bylo dobré si ověřit, jestli jen nestačí, aby se přibastlil (v čemkoli) nějaký modul pro manažery, ideálně takový, co jim pojede na smartphonech.

Jestli to zní moc negativisticky: mám s tímto dost špatné zkušenosti (například přepis appky z Foxky/DOS na webovou appku s Oracle DB), ale samozřejmě záleží na situaci v konkrétní firmě.

JJ presne, na druhou stranu mi jsme pred podobnym rozhodnutim stali nekdy v roce 2009-2010. Tenkrat jsme dosli k zaveru ze to holt postupne zrefaktorujeme. Dneska po peti letech prace si obcas rikame jestli to bylo dobre rozhodnuti. Sice jsme to za tu dobu hodne vylepsili, ale stale je tam citi vune sdedeneho kodu. Otazkou je zda by pri psani projektu od zacatku clovek po peti letech nekoukal na stejny legacy kod jako dnes :D.

Ono to tak bohužel mnohdy je (což je škoda - který vývojář se chce hrabat v h...ec po předchůdcích nebo po sobě samém žejo -:) a důvodů je víc:
http://www.joelonsoftware.com/articles/fog0000000069.html

Asi nejlepší je odstavec: "The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they've been fixed. There's nothing wrong with it. It doesn't acquire bugs just by sitting around on your hard drive. Au contraire, baby! Is software supposed to be like an old Dodge Dart, that rusts just sitting in the garage? Is software like a teddy bear that's kind of gross if it's not made out of all new material?"

Jak říkám, není to nic moc pozitivního z pohledu vývojáře, ale co nadělat...
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Daniel Kozak 20. 09. 2015, 11:02:46

Ono to tak bohužel mnohdy je (což je škoda - který vývojář se chce hrabat v h...ec po předchůdcích nebo po sobě samém žejo -:)...:

Musim souhlasit, sam vim jak vypada nektery muj "starsi" kod, a nikdy jsem se nedokopal to po sobe predelat, misto toho jsem to nechal na svem bratrovi (jak ten nadaval :D), no nastesti mam jeste jednoho mladsiho bratra ten to pak prepise po tom druhem, ale kdo to prepise potom uz fakt nevim :D.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: M. 20. 09. 2015, 11:15:57
Myslím, že tento bod je hodně podstatný:

  • pokud se systém posere, někdo může umřít (podpora "clusteru" na dvou serverech s WinXP+)

nadšení je jenda věc. Druhá je, jsi připraven nést důsledky toho, pokud tvůj nový kód selže a někdo zemře? A jaké garance vůči tobě bude chtít firma po tobě a za co a jak budeš ručit?

Jinak máme zkušenost s přenosem starého projektu hodně špatnou. Kód byl původně Turbo Pascal a grafická aplikace v DOSu, pak Turbo Pascal for Windows, následně byl přenos na Delphi 1.0 (16 bit Windows 3.x program) a tam to skončilo. Bylo několik pokusů o přenost do 32-bit prostředí a nepovedlo se. Původní kód a ty tři první konverze dělal jeden člověk v průběhu cca 10 let, dva další k tomu pak dělali k tomu matematiku.
Apliakce přitom "nic složitého nedělá", načte soubor dat, zobrazuje, dělá nad tím specifickou matematiku. Nadšení všech, že to předělají, a bude jednoduché, použijí se nové vlastnosti, bla bla bla... A výsledek 4 pokusů je, že pokud se to dostalo po letech do použitelného stavu, tak to bylo pomalejší, počítalo nepřesně (matematika v původním kódu je tvrdě optimalizovaný assembler počítajíc vše v pevné plovoucí čárce s korekcemi výsledků na žádanou přesnost po každé operaci, který je přesně napsán na daný problém) a umělo jen část toho, co původní kód. Pokusy skončily po tom, co poslední snažinec vývoj ukončil infarktem. Utopilo se v tom hodně let a MKč. :-(

Tak pozor na pdobný vývoj kariéry.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 20. 09. 2015, 11:27:48
Tak mojím úkolem je ve zkušebce vytvořit několik prototypů v několika moderních platformách které navrhnu na základě samostudia, jen nějaký výpis nějakých záznamů z "běžícího" systému, to pak bude předloženo vedení k posouzení a následně bude celý tým hlasovat o tom, kterou technologii použít a jestli se to bude vůbec přepisovat. V ideálním případě by mělo být nějak možné postupně nahrazovat staré moduly za nové při zachování části funkčního systému, ne celý přepis najednou. Oddělená webová appka pro "manažery" je taky možnost, ale jenom pokud bude dostatečně jednoduchá. Přepis celého systému najednou by byl větší oříšek, protože tam je asi tak 30 různých oken/obrazovek a s nimi související logika 8).
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: perceptron 20. 09. 2015, 11:37:44
z psychologickeho hladiska je tento projekt samovrazda resp cesta do xanaxu. ste sam (!) na 15 rocny projekt, mate tam samy legacy kod, predpokladam ze casto ani mrtvy Jobs netusi, co sa tam deje.

ako dlho to planujete rewritovat? tresnem po stole, ze rok.

popri tom budete paralelne asi udrziavat staru verziu a na konci mate vec, ktora robi presne to co stara a mozno horsie (vid ten joel on software)

----

ak by to mala byt desktop aplikacia, tak jedine .NET (C#). koncepcia je identicka s Delphi. akurat na druhej strane musite instalovat nove verzie aj aplikacie, aj .NET frameworku (nieco z toho vyriesi sam windows).

java na windows desktope nema zmysel, hlavne instalujete a aktualizujete java virtual machine, a celkovo ten vyvoj v segmente je mrtvy.

alternativne to urobit ako intranet (mozete komunikovat cez http na 80), ale musite mat webserver, to je uz potom jedno, v com to spravite.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: JardaP . 20. 09. 2015, 12:14:27
Tak jo, takze by se na to jako mel radsi vykaslat. Ale co za par let, az bude treba vyhazet stary HW a OS a na novem to nebude chrochat?
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 20. 09. 2015, 12:28:08
Ono už někdy mohou nastávat problémy nyní, komponenty které jsou napsány a kompilovány ještě v Delphi 6 mají třeba ve Windows 8 (+odpovídající Server) výkonostní potíže protože instrukce generované tím kompilátorem jsou z hlediska Windows 8 nestandartní a tak ty exáče automaticky pouští v režimu kompatibility, stejně tak samotné vývojové prostředí Delphi 6. Funguje to, ale do budoucna hrozí že na Windows nastanou problémy a bude nutná nějaká portace na lepší delphi a rekompilace (+ problémy s .dcu komponentami které pro danou verzi Delphi nemusí být dostupné, všechny komponenty třetích stran se musí kompilovat pro každou verzi Delphi samostatně dodavatelem a nebo pokud jsou dodány i se zdrojákem tak ručně).
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 20. 09. 2015, 12:30:33
Tak to není, jen bych se být na místě autora té otázky ujistil, jestli je vedení smířeno s tím, že třeba po roce práce bude mít první verzi, která pravděpodobně ještě nebude umět to, co ta stará verze a bude (logicky) daleko míň odladěná. Taky jestli jsou nějaké akceptační testy, nebo je to jen hubní zadání ve stylu "no tak ať to pracuje tak nějak stejně jako ten starej SW, ale ať je to barevnější a můžu vidět grafy na smartphonu".

Na druhou stranu - běhat to může napořád díky virtualizaci a popř. emulaci starého HW.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: JardaP . 20. 09. 2015, 12:42:42
Na druhou stranu - běhat to může napořád díky virtualizaci a popř. emulaci starého HW.

Coz je obser navic. Na serveru by se to asi skouslo, ale co, az jednou bude kazdy managor muset mit virtualizovane Widle XP, aby mu bezel klient nebo jak to tam maji? To uz by byla trochu pakarna. Uz treba kvuli licencim, ktere MS urcite hned tak zadara neda, i kdyz se jedna o stary kram.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 20. 09. 2015, 12:47:25
Na druhou stranu - běhat to může napořád díky virtualizaci a popř. emulaci starého HW.

Coz je obser navic. Na serveru by se to asi skouslo, ale co, az jednou bude kazdy managor muset mit virtualizovane Widle XP, aby mu bezel klient nebo jak to tam maji? To uz by byla trochu pakarna. Uz treba kvuli licencim, ktere MS urcite hned tak zadara neda, i kdyz se jedna o stary kram.

jo souhlas. O to víc by se měl rozmýšlet při výběru technologie pro nové řešení, protože hlavně "nové a cool frameworky" mají dost krátkou životnost, aspoň z pohledu "velkého IT", kde se mnohdy hraje na desítky let.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: ttt 20. 09. 2015, 13:06:28
Mám související otázku, hádám, že by se to mohlo hodit i tu - nevíte někdo o kompilátoru pascalu do nějakého jiného jazyka? Ideálně python, ruby, perl nebo i třeba C. Kdysi jsem něco hledal a nenašel.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: brk 20. 09. 2015, 13:22:39
A chceš nebo musíš to dělat ty? Tohle bude hodně nevděčná práce a zároveň i velmi náročná na sebekázeň.

Kámoš kdysi nastoupil do firmy, kde měli člověka, který přesně tohle dělal, tedy přepisoval starou aplikaci do něčeho současného. Na poradách pravidelně presentoval výsledky, jak postupuje a jak to celé mělo pomalu finišovat, tak člověk dal výpověď a někde se vypařil. Jak začali zkoumat kód, tak zjistili, že ze začátku psal slušně, ale pak už čím dál víc sklouzával do toho, že před presentací na poradě něco uplácal, aby to nějak udělalo to, co potřeboval ukázat, ale jinak to stálo totálně za hov... . Firmu stál hodně peněz, ztratil se na tom čas a v podstatě byli na začátku, což jim značně zkomplikovalo vztahy se zákazníky.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Daniel Kozak 20. 09. 2015, 13:32:10
A chceš nebo musíš to dělat ty? Tohle bude hodně nevděčná práce a zároveň i velmi náročná na sebekázeň.

Kámoš kdysi nastoupil do firmy, kde měli člověka, který přesně tohle dělal, tedy přepisoval starou aplikaci do něčeho současného. Na poradách pravidelně presentoval výsledky, jak postupuje a jak to celé mělo pomalu finišovat, tak člověk dal výpověď a někde se vypařil. Jak začali zkoumat kód, tak zjistili, že ze začátku psal slušně, ale pak už čím dál víc sklouzával do toho, že před presentací na poradě něco uplácal, aby to nějak udělalo to, co potřeboval ukázat, ale jinak to stálo totálně za hov... . Firmu stál hodně peněz, ztratil se na tom čas a v podstatě byli na začátku, což jim značně zkomplikovalo vztahy se zákazníky.

Tak hlavni selhani je ze na tom delal sam, a nebyl nikdo kdo by se na tom nadale podilel, at uz jako revize nebo autor. Obecne se nam ukazalo ze pokud clovek na necem dela sam, tak to ma tendenci sklouznout k tomu ze je kod na konci citelny jen autorovi a nekdy ani to ne. Naopak pokud na projektu dela tym vice lidi, tak se navzajem ukaznuji a vysledek byva casto mnohem lepsi.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: lopan 20. 09. 2015, 13:33:35
Pokud firma svěří přepis kritické aplikace ("někdo může umřít") člověku ve zkušebce (bez urážky) a pak bude přepis oneman show, tak buď ve vedení sedí blázni nebo diletanti, případně obojí.
Výběr platformy by se měl řídit podle nějakých kritérií, které stanoví někdo, kdo vidí do problematiky u zákazniků. Jakou mají infrastrukturu, win servery/unix/linux, kolik ten přechod bude zákazníky stát, je aplikace poskytovaná jako služba nebo formou licence atd atd.
Napadá mě spousta otázek a zrovna java vs. .net je někde na chvostu. Tady je vidět, že to dělá technolog, ne člověk s komplexní znalostí problematiky (opět bez urážky).

Za mě buď ruce od toho nebo si udělat pořádnou analýzu a vůbec si určit, co vlastně potřebuji analyzovat a jakou to má váhu v rozhodovaní.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 20. 09. 2015, 13:43:03
No on ten přepis budou dělat spíš tak 2 lidi, nanejvýš 3 když se zadaří, určitě to nebude "one man show", i když ze začátku asi ano.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: brk 20. 09. 2015, 13:44:49
Tak hlavni selhani je ze na tom delal sam, a nebyl nikdo kdo by se na tom nadale podilel, at uz jako revize nebo autor. Obecne se nam ukazalo ze pokud clovek na necem dela sam, tak to ma tendenci sklouznout k tomu ze je kod na konci citelny jen autorovi a nekdy ani to ne. Naopak pokud na projektu dela tym vice lidi, tak se navzajem ukaznuji a vysledek byva casto mnohem lepsi.
Samozřejmě, ale tady to podle dotazu směřuje k podobné situaci. Má to dělat jeden člověk.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: zboj 20. 09. 2015, 14:01:10
Tak tohle nikomu nezávidím... Asi bych doporučil .NET nebo Javu, ale takový projekt bude mít tolik detailů, že stručné doporučení napsat nejde.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: perceptron 20. 09. 2015, 14:20:52
Citace
No on ten přepis budou dělat spíš tak 2 lidi
ak to chapem spravne, vy ste v skusobnej a budete to viest

ake mate technologicke skusenosti? lebo ked este budete zacinat s %s od nuly, bude to este tazsie
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: lopan 20. 09. 2015, 14:30:02
Citace
No on ten přepis budou dělat spíš tak 2 lidi
ak to chapem spravne, vy ste v skusobnej a budete to viest

ake mate technologicke skusenosti? lebo ked este budete zacinat s %s od nuly, bude to este tazsie

Shodou okolnosti delam na prepisu dvou aplikaci. Relativne jednoduche aplikace, bez kritickeho dopadu na fungovani spolecnosti. Mam cca 12 let zkusenosti s komercnim vyvojem. Nekolik prepisu jsem uz take delal. Jedna se o apky s jednotkama tisic radku kodu. Stejne se u toho pokazde potim a vari se me mozkove bunky, aby nove aplikace dokazaly navazat na puvodni.
Toto je vec, kterou bych rozhodne sveril zkusene SW firme a nesnazil se to resit internim vyvojem.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Kit 20. 09. 2015, 14:56:07
Mám související otázku, hádám, že by se to mohlo hodit i tu - nevíte někdo o kompilátoru pascalu do nějakého jiného jazyka? Ideálně python, ruby, perl nebo i třeba C. Kdysi jsem něco hledal a nenašel.

Když se nad tím zamyslíš, tak automaticky to dost dobře nejde. Automat by ten kód typicky nafoukl a znepřehlednil. Různé jazyky se také liší filozofií použití, takže to, co je v Pascalu třeba na 10K řádek, může se v Pythonu vejít třeba do 500 řádek nebo i méně. Refaktorovat po automatické konverzi by bylo jistě náročnější, než to napsat přímo.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Kit 20. 09. 2015, 15:04:04
Shodou okolnosti delam na prepisu dvou aplikaci. Relativne jednoduche aplikace, bez kritickeho dopadu na fungovani spolecnosti. Mam cca 12 let zkusenosti s komercnim vyvojem. Nekolik prepisu jsem uz take delal. Jedna se o apky s jednotkama tisic radku kodu. Stejne se u toho pokazde potim a vari se me mozkove bunky, aby nove aplikace dokazaly navazat na puvodni.
Toto je vec, kterou bych rozhodne sveril zkusene SW firme a nesnazil se to resit internim vyvojem.

Na přepisu aplikace se 4k řádek jsem také strávil týden. A také jsem přitom narazil na hromady shnilého kódu, které si zasloužily pouze likvidaci. Takové programy obvykle refaktoruji už při prvním čtení. Nečtu je však dřív, než je proženu přes nějaký beautifier - jinak by to byla jen ztráta času.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 20. 09. 2015, 15:06:22
Aplikace není pro firmu vyloženě ztěžejní, jedná se jen o menší vedlejší zdroj příjmu, hlavní je ale "železo" a to dělá úplně jiný typ lidí než já. Renovace aplikace se ale mimo jiné hodí i pro udržení certifikace podle standardu ISO 9001, který vyžaduje neustálé zlepšování, což je také jedna z motivací tohoto projektu.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: mo 20. 09. 2015, 15:48:35
ono stoji za otazku, ci ten koncept je stale dobry, alebo sa to po rokoch zmenilo a existujuca aplikacia sa len prisposobovala. Niekedy je lepsie urobit vsetko nanovo ako sa patlat so starym kodom plnym hackov zneuzivanim kodu na co nebol povodne mysleny.
Kazda taka prerabka je o najma o analyze. Ci je tam vsetko co potrebujeme a co to vlastne naozaj robi a potom sa rozhodnut ci to prepisat nanovo, alebo len technologicky transformovat (tu napr aj take veci ci sa to ma cele vymenit alebo postupne po moduloch) alebo radsej to vobec nechytat, treba sa zaoberat kazdou variantou. od vyberu technologie je to velmi daleko. v kazdej rozumnej komercnej firme sa to riadi podla vizie a ROI ale najprv treba tu analyzu spravit.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Ovrscout 20. 09. 2015, 16:12:29
Snažil bych se vyhnout tomu aby jste nepřepisovali aplikaci jen a jen proto že pascal není dostatečně moderní a in :). I když i toto má svou váhu, ale neměl by to být jediný argument - zas tak strašný ten jazyk není. Spíše je třeba si sepsat a správně pojmenovat všechny důvody, pokusit se je vyvrátit případně se podívat zda se nedají obejít.
Zkusit se k tomu postavit nejen jako k "refaktorizaci" ale částečně také jako k návrhu nového programu(což tak jako tak bude pokud to budete přepisovat, předpokládám že platformy a knihovny jednotlivých jazyků nebudou 1:1).
Kouknout co je kde rozdělené a nebo by šlo rozdělit, jaké technologie(zmínil jste ActiveX, DCOM, dBAse) se používají, zda je třeba jejich upgrade nebo je třeba úplně nahradit(nebo to bude třeba v budoucnu), případně čím. Jaké jsou na jednotlivé části požadavky, zda je stávající kód splňuje a bude splňovat do budoucna atd atd.

Zvážil bych, zda nenapsat různé části v různých jazycích. Mohlo by to být jednodušší než lámat něco co k tomu není uzpůsobeno. např místo activeX udělat web aplikaci, i když na to bych si asi přizval někoho kdo web applikace dělá(pokud to nemáte v malíku). Mít všechno v jednom jazyku na jedné platformně má své výhody, nadruhou stranu více jazyků/platforem existuje protože jsou vhodné na různé věci.
Tak jako tak upgrade po částech,pokud to bude možné, umožní dříve vidět nějaký kloudný výsledek, i když je pravda že celková doba převodu na novou verzi se může prodloužit. Jsou to prostě další věci ke zvážení.

Pokud ale jde hlavně o to že máte starý překladač a bojíte se o kompatibilitu s novými OS. Zkusil bych se poohlédnout po novém překladači. Pascal nepoužívám ale párkrát jsem narazil na komerční http://www.embarcadero.com/products/delphi (http://www.embarcadero.com/products/delphi) a zdá se že na tom pořád pracují, třeba by stálo za to to alespoň vyzkoušet. Nebo možná najdete i jiné. (myšleno komerční, předpokládám že pro vás asi LGPL FreePascal/lazarus nepřipadá v úvahu, když máte kritickou aplikaci).

No a pokud do toho chcete šlápnout opravdu hodně co nějakou kombinaci aplikačního serveru a HMI/SCADA?
Letmo jsem se setkal s "Wonderware Application Server" kde by mělo jít psát sběr dat a logiku řízení v C#  a k tomu "InTouch SCADA HMI"  pro zobrazování (což je "klikací" grafika  plus trocha skriptů)
Netvrdím že je to pro vás ideální a cena není nízká, alespoň pokud vím. Případně použít jen HMI/SCADA a zbytek udělat ve vlastní režii. Jen pozor že v HMI/SCADA je občas složitější nebo nemožné dělat věci které neumí nativně, mám na mysli komplikované či dynamické formuláře a tabulky.Prostě co umí umí dobře ale přesvšdčit je k tomu co chcete vy může být problém :) . Také pozor na to že do HMI/SCADA lze obvykle implementovat i nějakou tu logiku řízení či automatizaci. Ale to nutně neznamená že je to vhodné, složitější věci doporučuju dělat jinde.
Každopádně si nechte poradit od někoho kdo danné technologii rozumí, čili školení či nějaký technik/progamátor od dodavatele.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: ttt 20. 09. 2015, 16:21:34
Když se nad tím zamyslíš, tak automaticky to dost dobře nejde. Automat by ten kód typicky nafoukl a znepřehlednil. Různé jazyky se také liší filozofií použití, takže to, co je v Pascalu třeba na 10K řádek, může se v Pythonu vejít třeba do 500 řádek nebo i méně. Refaktorovat po automatické konverzi by bylo jistě náročnější, než to napsat přímo.

Můj zájem není refaktorovat, ale provozovat, případně použít jako knihovnu. Jasně, dostal bych lepší výsledek, kdybych si to v daném jazyce napsal znovu, ale nechci to dělat, to už raději budu dál používat Pascal. I když se zamyslím, nevidím důvod, proč by to automat musel znepřehlednit a nafouknout. Třeba konverze z Pascalu do C mi přijde téměř 1:1 - ke všem konstrukcím v Pascalu si vybavím ekvivalent v C. Snad jen vnořené procedury v C nejdou, tak bych je vytáhl do globálního namespacu a použil do jména dal prefix.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Ovrscout 20. 09. 2015, 16:22:10
meh, teď jsem si znova projel první článek a koukám če o embarcadero zřejmně víš. Asi si půjdu dát kávu abych se řádně probudil.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Kit 20. 09. 2015, 16:40:56
Můj zájem není refaktorovat, ale provozovat, případně použít jako knihovnu. Jasně, dostal bych lepší výsledek, kdybych si to v daném jazyce napsal znovu, ale nechci to dělat, to už raději budu dál používat Pascal. I když se zamyslím, nevidím důvod, proč by to automat musel znepřehlednit a nafouknout. Třeba konverze z Pascalu do C mi přijde téměř 1:1 - ke všem konstrukcím v Pascalu si vybavím ekvivalent v C. Snad jen vnořené procedury v C nejdou, tak bych je vytáhl do globálního namespacu a použil do jména dal prefix.

Konverze z Pascalu do C je IMHO z bláta do louže mj. i proto, že se při konverzi 1:1 nezkrátí. Taková konverze, která mi program nezkrátí alespoň na třetinu, je plýtváním času. To už raději zůstanu u toho Pascalu.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: mikrom 20. 09. 2015, 17:38:39
Ono už někdy mohou nastávat problémy nyní, komponenty které jsou napsány a kompilovány ještě v Delphi 6 mají třeba ve Windows 8 (+odpovídající Server) výkonostní potíže protože instrukce generované tím kompilátorem jsou z hlediska Windows 8 nestandartní a tak ty exáče automaticky pouští v režimu kompatibility, stejně tak samotné vývojové prostředí Delphi 6. Funguje to, ale do budoucna hrozí že na Windows nastanou problémy a bude nutná nějaká portace na lepší delphi a rekompilace (+ problémy s .dcu komponentami které pro danou verzi Delphi nemusí být dostupné, všechny komponenty třetích stran se musí kompilovat pro každou verzi Delphi samostatně dodavatelem a nebo pokud jsou dodány i se zdrojákem tak ručně).

Ja si myslim, ze tento Reengineering by bolo dobre rozlozit na 2 faze:

1. Odputanie sa od Delphi, t.j. pokus to skonvertovat na Free Pascal / Lazarus.
Mozno by to nebolo take tazke a ak by sa to podarilo zbavili by ste sa zavislosti od Delphi.

2. Nahrada webovou aplikaciou v Java (pripadne C#)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 20. 09. 2015, 18:52:03
Když se nad tím zamyslíš, tak automaticky to dost dobře nejde. Automat by ten kód typicky nafoukl a znepřehlednil. Různé jazyky se také liší filozofií použití, takže to, co je v Pascalu třeba na 10K řádek, může se v Pythonu vejít třeba do 500 řádek nebo i méně. Refaktorovat po automatické konverzi by bylo jistě náročnější, než to napsat přímo.

Můj zájem není refaktorovat, ale provozovat, případně použít jako knihovnu. Jasně, dostal bych lepší výsledek, kdybych si to v daném jazyce napsal znovu, ale nechci to dělat, to už raději budu dál používat Pascal. I když se zamyslím, nevidím důvod, proč by to automat musel znepřehlednit a nafouknout. Třeba konverze z Pascalu do C mi přijde téměř 1:1 - ke všem konstrukcím v Pascalu si vybavím ekvivalent v C. Snad jen vnořené procedury v C nejdou, tak bych je vytáhl do globálního namespacu a použil do jména dal prefix.

Napadají mě množiny, přesně zadané rozsahy ordinálních typů (tuším tomu říkají subrange types), nějakou volbou řízení zkrácené či plné vyhodnocování (to ovlivní logiku, jednou jsem na to při "pouhém přepisu" nepěkně narazil), odlišná práce s řetězci, volitelný rozsah indexů pole. Ono je toho docela dost, neříkám ovšem, že strojová transformace není možná.

Nicméně tazatel má na mysli Delphi, tedy Object Pascal, takže to spíš spadá do C++ (a tady je to horší, Object Pascal v Delphi třeba - pokud si to po těch letech pamatuji - dokáže sjednodit přístup k metodám/atributům přes ukazatel či přímo).
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Daniel Kozak 20. 09. 2015, 20:23:23
Můj zájem není refaktorovat, ale provozovat, případně použít jako knihovnu. Jasně, dostal bych lepší výsledek, kdybych si to v daném jazyce napsal znovu, ale nechci to dělat, to už raději budu dál používat Pascal. I když se zamyslím, nevidím důvod, proč by to automat musel znepřehlednit a nafouknout. Třeba konverze z Pascalu do C mi přijde téměř 1:1 - ke všem konstrukcím v Pascalu si vybavím ekvivalent v C. Snad jen vnořené procedury v C nejdou, tak bych je vytáhl do globálního namespacu a použil do jména dal prefix.

Konverze z Pascalu do C je IMHO z bláta do louže mj. i proto, že se při konverzi 1:1 nezkrátí. Taková konverze, která mi program nezkrátí alespoň na třetinu, je plýtváním času. To už raději zůstanu u toho Pascalu.

Konverze 1:1 je kolikrat imho nejlepsi reseni. Pokud se jedna o vetsi projekt a je treba udrzovat stavajici verzi. Viz napriklad prevod kompilatoru pro jazyk D z C++ na D. Docela zajimava vec. https://www.youtube.com/watch?v=5daHGXSetXk
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: neruda 20. 09. 2015, 23:58:29
Je to vopruz. At vyberes cokoliv, uzivatele to budou srovnavat a krafat proc to nedala to ci ono, kdyz predtim to tak bylo, proc je to pomalejsi, chybovy ... hlavne tech odladenych chyb a ruznych vyjimek a specialnich pripadu tam pravdepodobne bude zahardcodovano za ty leta uz hodne...

nicmene - ja bych te od toho nezrazoval. jestli jsi mlady, je to nejak slusne placeny, muzes se plno naucit a zkusit udelat v par lidech neco, co po tobe zbude. Prinejhorsim to nedopadne (pokud pominu tu zminku, ze kdyz to nebude fungovat, muze nekdo zemrit).

Ale fakt bych zkusil pripravit managery na to, ze to neni sranda, ze to je na dlouho, ze to bude neco stat, ze mozna zjistis, ze rozsah je obrovsky a bude muset byt vic lidi, ze to bude trochu jiny, ale ze to pak treba pujde lip rozsirovat a vydrzi to dalsich 15 let ....
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: k 21. 09. 2015, 08:38:14
Ahoj, rád bych se zeptal místních odborníků, do jaké platformy by bylo vhodné přepsat 15+ starý projekt napsaný celý v Delphi (6,7,XE..)
  • zhruba 300 tisíc řádků kódu včetně různých pomocných knihoven a utilit co za těch 15 let vznikly

Pokud by se to přepisovalo, tak C#. Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách. Podobné problémy se starými aplikacemi se řeší často, tak už je známo že to není jen tak, naopak to bývá dost pracné. Máš na tohle podporu vedení firmy ?

Co se týká prohlížečů, tak dnes už v prohlížečích moc nefunguje ani ActiveX, ani Java, ani Flash, pouze Javascript a není jasné zda Javascript pokryje tvoje potřeby, tedy je možné nějaké EXE u klienta zůstane.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: JardaP . 21. 09. 2015, 10:10:06
Co se týká prohlížečů, tak dnes už v prohlížečích moc nefunguje ani ActiveX, ani Java, ani Flash, pouze Javascript a není jasné zda Javascript pokryje tvoje potřeby, tedy je možné nějaké EXE u klienta zůstane.

Tak ty stranky by snad mohl kompletne generovat server a browser to uz jen hodi na monitor.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Okoloprogramujici 21. 09. 2015, 10:30:08
sry ale - Nerikaji prosim te Delphi aplikaci "CMS"  ?
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: k 21. 09. 2015, 11:22:08
Tak ty stranky by snad mohl kompletne generovat server a browser to uz jen hodi na monitor.

Možná šlo, možná nešlo, nevíme.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: lopan 21. 09. 2015, 11:40:12
Tak ty stranky by snad mohl kompletne generovat server a browser to uz jen hodi na monitor.

Možná šlo, možná nešlo, nevíme.

S takovym frameworkem jsem roky delal a stale delam. Ruce pryc, uzivatele dostanou UI z doby krale klacka.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: lopan 21. 09. 2015, 11:41:23
Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách.

3 lide co me budou za 2 roky stat na mzdach jen 2 mio. SEM S NIMA :)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: nula 21. 09. 2015, 12:37:18
Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách.

3 lide co me budou za 2 roky stat na mzdach jen 2 mio. SEM S NIMA :)

3 juniori, kteri zrovna vysli ze skoly, bez praxe a naberes je na Ostravsku, nebo v Usti, .. tak ti to vyjde :)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: nula 21. 09. 2015, 12:51:41
Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách.

3 lide co me budou za 2 roky stat na mzdach jen 2 mio. SEM S NIMA :)

3 juniori, kteri zrovna vysli ze skoly, bez praxe a naberes je na Ostravsku, nebo v Usti, .. tak ti to vyjde :)

Tak kecam, to je 55k na mesic na jednoho - z toho jsou odvody statu zhruba 24k, za tohle naberes juniora bez praxe asi kdekoli v CR a dal na vychod.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 21. 09. 2015, 19:36:15
Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách.

3 lide co me budou za 2 roky stat na mzdach jen 2 mio. SEM S NIMA :)

3 juniori, kteri zrovna vysli ze skoly, bez praxe a naberes je na Ostravsku, nebo v Usti, .. tak ti to vyjde :)

Tak kecam, to je 55k na mesic na jednoho - z toho jsou odvody statu zhruba 24k, za tohle naberes juniora bez praxe asi kdekoli v CR a dal na vychod.

snad 55/2=22,7k ne? A to uz bude problem :)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 21. 09. 2015, 20:02:42
Takže nakonec žádný přepis hned tak nebude, ale:


Takže asi tak  8)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: lopan 21. 09. 2015, 20:30:42
Celý proces to přepsat a nasadit do reálného provozu budou dělat 2-3 lidé nejméně 2 roky a bude to stát nejméně 2 miliony Kč na mzdách.

3 lide co me budou za 2 roky stat na mzdach jen 2 mio. SEM S NIMA :)

3 juniori, kteri zrovna vysli ze skoly, bez praxe a naberes je na Ostravsku, nebo v Usti, .. tak ti to vyjde :)

Tak zase nenecham prepisovat tak velkou apku apku 3 juniory. To uz je efektivnejsi ty dva mice proparit s klientama a v kokainovem rausi podepsat smlouvu na dalsich 5 let :D
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Pavel Tisnovsky 21. 09. 2015, 20:38:00
Takže nakonec žádný přepis hned tak nebude, ale:

  • externí proces napojený na události systému, duplikace dat do MongoDB, potom Meteor framework zajistí refresh manažerského zobrazovače (jestli Meteor bude stačit se bude ještě zkoumat...), vyřeší se tak web i tablet najednou
  • postupné zbavení se závislosti na Delphi 6 a některých dnes už zbytečných balíčků komponent
  • časem možná prohnání kódu beautifierem a promazání komentovaných částí kódu vzniklých přesunem kódu jinam (+ zavedení formálnějšího code review)
  • jednoho dne to někdo ale přepisovat bude, ve vzdálené budoucnosti, možná v neznámé galaxii...

Hele to zní jako docela dobré řešení. Vy si vyhrajete s GUI pro manažery a současně si i ošaháte datovou vrstvu, takže win-win situace :-)

Takže asi tak  8)
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: k 21. 09. 2015, 20:49:03
duplikace dat do MongoDB

Když už to částečně přepisujete tak určitě ne do výběhových technologií, doporučuji lepší průzkum aktuální situace.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 21. 09. 2015, 20:52:53
Meteor se zdá mít budoucnost, a to že je postavenej nad MongoDB snad není problém. Mám vyzkoušené že stačí zapsat změnu do databáze a hned se to oběví ve více prohlížečích.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: nula 21. 09. 2015, 21:40:08
...

Tak kecam, to je 55k na mesic na jednoho - z toho jsou odvody statu zhruba 24k, za tohle naberes juniora bez praxe asi kdekoli v CR a dal na vychod.

snad 55/2=22,7k ne? A to uz bude problem :)
a sakra.. ja zapomnel, ze je to 2 roky.. tak to je zly... v takovem pripade v Karvine(ve Slezsku), juniora, bez vysoke skoly :-)

....

Tak zase nenecham prepisovat tak velkou apku apku 3 juniory. To uz je efektivnejsi ty dva mice proparit s klientama a v kokainovem rausi podepsat smlouvu na dalsich 5 let :D

Sakra, to mne nenapadlo, toto je mnohem lepsi reseni :-D
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: nula 21. 09. 2015, 21:45:10
duplikace dat do MongoDB

Když už to částečně přepisujete tak určitě ne do výběhových technologií, doporučuji lepší průzkum aktuální situace.

Nevim jake budou na DB pozadavky, ale rozhodne bych MongoDB nezatracoval. Pro dokumentove databaze vyborna vec.
Název: Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
Přispěvatel: Sheldonizátor 21. 09. 2015, 22:13:47
Ještě je třeba dodat že ta databáze by takhle použitá neměla být "zdrojem" dat ale jenom jak "view", prostě zneužít toho že Meteor (http://www.meteor.com/) takhle funguje a udělá push do klienta "automaticky", minimálně pro zobrazovač by to fungovat mohlo, v opačném směru už by to byla větší sranda. No a Meteor zatím podporuje jenom MongoDB...