Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Lajcký dotaz na znalce Javy a OpenJDK

Zdar,
chtěl bych se zeptat a zkusím nejprve nějak stručně vysvětlit situaci.

V práci používáme javovskou aplikaci pro Windows (napsaná je jako služba), která komunikuje se serverem a databází jiné nejavovské aplikace na serveru (zjišťuje v ní nějaké ID). Pomocí toho dokáže rozlišit nějaké soubory, zjistit z nich nějaká metadata a odesílat je na úložiště dat včetně těch metadat. Odesílání a synchronizaci těch dat zajišťuje přes rsync (cygwin). Na serveru je linux, ale klientské stanice jsou na Windows. Aplikaci nám vyvinula externí firma čistě pro naše pracoviště.

Máme s tím dva problémy:
1. Aplikace nám už úplně nevyhovuje a chtěli bychom tam nějaké změny na úrovni vstupu do aplikace, nějaké parametry navíc, které by aplikace na vstupu nabrala, nic dramatického.
2. Aplikace je napsaná v Java 6.

Java 6 není už dávno podporovaná a tak jsme si řekli, ze jestli do toho máme vrážet další peníze, ze si aplikaci necháme přepsat a zároveň si tam necháme udělat nějaké to drobné rozšíření funkčnosti. Firma řekla, ze to není problém, ze by to přepsali do něčeho moderního a úplně by opustili Javu. No, když nám dali nějaký cenový rozpis, kolik by to stálo, tak se nám protočili panenky, víme, že na to finance neseženeme.

Mě nejdřív napadlo, ze bych je požádal o nějaký cenový rozpis, kde by se drželi víc při zemi, jestli by nebylo levnější jen aplikaci povýšit a přepsat ty části, které jsou rozdílné mezi nepodporovanou Java 6 a podporovanou Java 8. Jenže Java 8 jsem zjistil, ze je placená a platí se za ni Oraclu nějaké pravidelné desátky, což teda nemůžeme.

Tak koukám na alternativy jako je AdoptOpenJDK 8, které má instalačky pro Windows i linux a protože tomu nerozumím, tak se vlastně chci zeptat, jak velká je ještě příbuznost mezi starou Java 6 a něčím jako je to AdoptOpenJDK 8? Abych nevypadal jako blbec a nevysmáli se mi, ze to bude stejně pracné jako to přepsat komplet.

Druha věc, jestli vůbec může komerční firma volně používat to AdoptOpenJDK?

A když už jsme u toho, narazil jsem při pokusu si to AdoptOpenJDK stáhnout do Windows na verze HotSpot a OpenJ9 VM, co z toho vlastně chtít?

Předem děkuji za rady.

Řešení:

Není důvod, proč by to nemělo jít přepsat do jakékoliv verze Javy. Java je - až na výjimky - zpětně kompatibilní. Migrovat šestkovou aplikaci do osmičky, vyžaduje stejné usilí, jako migrovat ji na jedenáctku. Už pár takových migraci za sebou mám...

Předmět Autor Datum
Prikazovať externej firme v čom to majú programovať je naozaj divný nápad. Držte sa požiadavky malýc…
Kilo.Viktor 02.07.2021 10:17
Kilo.Viktor
To jsem asi špatně popsal. Nechci se vývojářům motat do práce. Prostě jsme si zadali požadavek, oni…
openjdk 02.07.2021 17:47
openjdk
V dobe, kdy je JAVA 16 posledni verze, prepisovat neco do JAVA 8 je opravdu podivny pozadavek. Adopt…
MaSo 02.07.2021 10:52
MaSo
Děkuju. Ještě moc prosím jeden dotaz: Já jako lajk si říkám, že Java 8 je nejblíž Java 6 a tudíž b…
openjdk 02.07.2021 17:56
openjdk
Není důvod, proč by to nemělo jít přepsat do jakékoliv verze Javy. Java je - až na výjimky - zpětně…
MaSo 02.07.2021 19:42
MaSo
Děkuju. K ostatním: nejde to, nemohu to přesně rozepisovat, ale je tam nějaké exkluzivní partnerstv…
openjdk 02.07.2021 22:39
openjdk
obecne jazyky v novych verzich spis jen pridavaji dalsi moznosti, nez by se zbavovaly starsich, takz…
gilhad 03.07.2021 01:46
gilhad
Ano, chápu a děkuji též za názorné vysvětlení. poslední
openjdk 03.07.2021 07:14
openjdk
Já teda nemám s Javou nic společnýho, takže bych se neměl v duchu názvu příspěvku vůbec vyjadřovat.…
Pavel 02.07.2021 15:46
Pavel
Musí to být Java, právě oni navrhli něco jiného a to bylo moc drahé, takže alternativa je, nechat so…
openjdk 02.07.2021 17:48
openjdk
Podla popisu nemusi, ale problem je, ze nacenenie vam robila jedna firma. Z tvojho velmi vagneho pop…
fleg 02.07.2021 18:40
fleg
Často je to pravda, že úprava stávající aplikace je levnější než její kompletní přepsání. Ale neplat…
Pavel 02.07.2021 18:43
Pavel

Prikazovať externej firme v čom to majú programovať je naozaj divný nápad. Držte sa požiadavky malých zmien - nic dramatického. To môže byť za rozumnú cenu. Prepísanie celej aplikácie len aby vyzarala modernejšie je možné, ale ako ste sami zistili stojí to mnoho financ, takže nič pre vás keď ich nemáte.
Prípadne si dohodnite stretnutie za účelom vyjednania ceny výhodnej pre obidve strany.

To jsem asi špatně popsal. Nechci se vývojářům motat do práce. Prostě jsme si zadali požadavek, oni to vyhodnotili na něco jiného než Javu, akorát se ukázalo, že na to nemáme. Takže si říkám, že alternativa jen to v Javě upravit a hodit to do podporované verze, by mohla být levnější.

V dobe, kdy je JAVA 16 posledni verze, prepisovat neco do JAVA 8 je opravdu podivny pozadavek. Adopt muzete bez problemu pouzivat i ve firme. OpenJ9 neres, stahni si HotSpot.

OpenJDK distribuce (Adopt, Amazon Corretto apod.) a OracleJDK jsou jen jine implementace tehoz, jsou navzajem kompatibilni, rozdily mohou byt v performance nebo vnitrni implementaci.

Děkuju.

Ještě moc prosím jeden dotaz:

Já jako lajk si říkám, že Java 8 je nejblíž Java 6 a tudíž by to mohlo být hodně podobné. Například by mohlo být 90% příkazů stejných a pro vývojáře by to mohlo být jednodušší a pro nás potom levnější. Za to Java 16 to už bude daleko od sebe a třeba bude mít společného s Java 6 jen 50%, takže potom úprava zastaralé aplikace postavené na Java 6 bude dražší. Uvažuju správně nebo špatně?

A ještě teda, i to OpenJDK má verze 8 a 11 s dlouhodobou podporou LTS, raději bychom šli do jednoho z toho. Takže, když naše aplikace je postavená na Java 6, dá se předpokládat, že udělat úpravu na OpenJDK 8 bude jednodušší než udělat úpravu na OpenJDK 11? Jak to tedy je?

Předem moc díky.

obecne jazyky v novych verzich spis jen pridavaji dalsi moznosti, nez by se zbavovaly starsich, takze prepsani na novou verzi muze byt celkem jednoduche, ze to prozenes kompilatorem a tech par chyb opravis. Vysledkem bude program prakticky skoro stejny jako ten stary.
Ovsem kdybys to psal ted, tak ten jazyk ma tech moznosti mnohem vic a stejny program by vypadal uz uplne jinak, prostoze spoustu veci uz jde napsat i elegantneji a snaz.
Ale pokud uz to chces udelat za co nejnizsi cenu, muze byt upgrade na co nejnovejsi verzi vyrazne levnejsi, nez upgrade na verzi prastarou, lisici se jen nepatrne, protoze ten kdo to bude delat nebude muset pracne ziskavat prekladace a dalsi nastroje pro prehistorickou verzi, ale jednoduse pouzije co ma a stejne tak nebude muset shanet/skolit odborniky na prehistorickou verzi, ale pouzi uz zaskolene programatory pro verzi, kterou uz ma a pouziva. I kdyby tam mel lidi, co kdysi na te stare verzi delali, tak dnes uz budou preuceni na novou a bude pro ne slozitejsi se vyrovnat s tim vsim, co najednou nemuzpu pouzivat, ackoli si na to uz davno zvykli, protoze to ta prehistoricka verze jeste nema, zatimco ta, kde pracujou dnes a denne uz to ma.

Takze pokud by slo jen o pridani par drobnosti a umozneni prekladu na "nejake jakekoliv novejsi" platforme, tak klidne muze byt mnohonasobne jednodussi ty upravy udelat pro "vzdalenejsi" plne aktualni verzi, nez pro "blizsi" prehistorickou verzi, kterou uz nikdo aktivne nepouziva. Pravda, vysledek bude takovy kockopes, porotoze ty stare konstrukce, co jeste chodi by se daly zapsat elegantneji, ale to je celkem fuk, kdyz to prekladac prelozi a bude to pouzitelne rychle.

Ale nechat to prepsat CELE do nejnovejsi verze, nebo jineho jazyka, ktery je pro to ted vhodnejsi (nebo s nim ma firma lepsi zkusenosti) muze byt naopak dost drahe, protoze zaplatis nejen za cele napsani te aplikace znovu a jinak, ale jeste navic za zpetnou analyzu toho, co vlastne ta stara presne delala a co by z toho delat mela a co naopak ne.

---

Vem si text z roku 1846 z https://cs.wikipedia.org/wiki/%C4%8Ce%C5%A1tina ( https://commons.wikimedia.org/wiki/File:Presl_brambor.JPG ) - s trochou štestí ho přečteš a pochopíš i dnes (nebo aspoň lidé v mém okolí určitě) - pokud bys tam chtel jen par drobnych uprav (napriklad dopsat na konec "naše firma také pěstuje brambory a exportuje je do 40 dalších zemí po celém světě" ), tak nejlevnější a nejjednodušší je tam tu větu v moderní češtině narvat jak je a případně upravit pár slov, která se zdají už hodně nečitelná na slova moderní (použít aktuální verzi). O dost dražší, ale stále ještě rozumné by bylo celý ten článek nechat přepsat do moderní češtiny. Naprosto nejdražší by však bylo hledat někoho, kdo by to upravil tak, aby to znělo věrohodně jako text z roku třeba 1880 (který je roku 1846 podstatně blíže - tedy do te javy 8).

Já teda nemám s Javou nic společnýho, takže bych se neměl v duchu názvu příspěvku vůbec vyjadřovat. Ale: musí to být Java? Jak si tak čtu popis aplikace, šla by přece napsat i v jiným jazyku, ne?

Pokud to pořádně popíšeš, poptej se třeba lidí na webtrh.cz, kde můžeš kromě dotazu založit rovnou poptávku.

Zpět do poradny Odpovědět na původní otázku Nahoru