Přepis programu z Delphi/PASCAL na jinou platofrmu

Ovrscout

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #30 kdy: 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 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.


ttt

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #31 kdy: 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.

Ovrscout

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #32 kdy: 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.

Kit

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #33 kdy: 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.

mikrom

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #34 kdy: 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#)


Pavel Tisnovsky

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #35 kdy: 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).

Daniel Kozak

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #36 kdy: 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

neruda

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #37 kdy: 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 ....

k

Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
« Odpověď #38 kdy: 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.

    JardaP .

    • *****
    • 11 064
      • Zobrazit profil
      • E-mail
    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #39 kdy: 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.

    Okoloprogramujici

    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #40 kdy: 21. 09. 2015, 10:30:08 »
    sry ale - Nerikaji prosim te Delphi aplikaci "CMS"  ?

    k

    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #41 kdy: 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.

    lopan

    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #42 kdy: 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.

    lopan

    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #43 kdy: 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 :)

    nula

    Re:Přepis programu z Delphi/PASCAL na jinou platofrmu
    « Odpověď #44 kdy: 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 :)