Sziasztok.
Arra gondoltam, utánajárok, a Qt környezet/keretrendszer/fejlesztői környezet(stb.) valójában honnan ered, ki fejleszti, mi a múltja, hány platformon használható, milyen licenc alapján lehet használni...
Kicsit meglepődtem az eredményen, hirtelen elkezdett más is érdekelni.
Ma már nem lehet arról beszélni, hogy ha valaki fejleszt valamit, az kizárólag csak egyetlen operációs rendszeren fog futni, mert pl. java esetében kapásból mindenen képes lesz működni -- ha úgy van megírva.
(ffmpeg, quicktime, vlc, gpsprune, master pdf editor, gimp, libreoffice, tex stb.)
Igazából az érdekelne, a fejlesztői környezetek, programozási nyelvek (C++, java, Qt stb.) milyen tulajdonban vannak, mik a megkötöttségei, hogyan képzelhető el az, hogy bár egy programnyelv (mondjuk) C alatt lett fejlesztve, mégis csak két operációs rendszeren fut, a vele írt programok szintén...
A téma csak most merült fel előttem, nem látok tisztán. Foglalkozott a kérdéssel már valaki (pl. egy fejlesztőmérnök), vagy csupán engem nyomaszt?
- 753 megtekintés
Hozzászólások
Bár nem vagyok/voltam fejlesztő, azért néhány gondolat:
1. Fontos, hogy egy fejlesztő környezet milyen platformon fut, de az is, hogy milyen licence feltételekkel (ez akár platformonként is változhat...)
2. Az is fontos, hogy az általa fejlesztett alkalmazások milyen platformon futtathatók és milyen licence feltételekkel
3. Meg az is, hogy a futtatáshoz szükséges libraryk milyen platformon érhetők el, milyen licence feltételekkel.
A 3 kombinációja már kellően el tudja bonyolítani az életet, erről akár a Qt, a Java,vagy Android fejlesztők biztos sok érdekes részletet tudnak mesélni...
- A hozzászóláshoz be kell jelentkezni
* Qt: elég jó c++ környezet, de licensz méregdrága, tipikus "mienk a kódbázis, tejelned kell, ha komolyan használni akarod" szemléletű.
- Jó része LGPL alatt is használható, de nem minden, pl ha IoT eszközre fejlesztesz, akkor keményen fizetned kell.
- Szerintem ez elavult személet, nagy cégeknek talán megéri belevágni, de kisebb fejlesztőknek nem jó irány a sok megkötés, drága és lassú fejlődést hoz ez a modell.
* raw c++: szerencsére feléledt tetszhalott állapotából (c++ 11..20), és mindenre alkalmas max CPU és I/O teljesítménnyel amit a vasból ki lehet hozni, kivéve GUI-t.
- (Majdnem teljesen) ingyenes minden: free fordítók, free IDE-k, free debuggerek, licensszel nem kell bajlódni. Ennek azonban ára van:
- neked kell sokmindent kézzel összehegesztened, ami nincs bent a szabványban (és sokminden nincs benne)
- nincs natív GUI támogatás, valamelyik kiforrottabb 3rd party GUI környezetből kell választanod
- fájdalmasan és szükségtelenül bonyolult, pilótavizsga kell a mesteri használatához, nagyon drága hozzá embert találni
* C# / .NET: korábban a "gonosz Microsoft" idején egy nagyon jó minőségű zárt technológia volt, ingyenesen használható licensszel.
- Mára szuper magas minőségű, modern technológia lett, full nyílt forrással és ingyenesen használhatóan.
- a szokásos programozói eszköztárat magába olvasztja: szinte minden alap feladatra van saját, standard, letesztelt, jó minőségű library-je.
- fejlesztés benne kb 2-3x egyszerűbb, mint raw c++-ban, könnyebb is rá kiképezni valakit, vagy felvenni embert hozzá
- cserébe a végső program teljesítménye 60% .. 110%-a egy tipikus raw c++ megoldásnak.
- Már most nagyon jól multiplatform, jó GUI-kkal. Jövő év végére várható a .Net 6, ami teljesen új multiplatform GUI-ra váltanak.
- Mivel full opensource, ezért nagyon szép jövő áll előtte.
* Java... nem tudok sokat mondani róla, amilyen körökben én forgok, ott nem szeretik nagyon :)
- A hozzászóláshoz be kell jelentkezni
- Már most nagyon jól multiplatform, jó GUI-kkal. Jövő év végére várható a .Net 6, ami teljesen új multiplatform GUI-ra váltanak.
- Mivel full opensource, ezért nagyon szép jövő áll előtte.
Nem követtem igazán a C# körüli dolgokat, de kollégám dolgozott valamennyit benne, és nem is olyan rég gondoltam egyet, hogy, ha már multiplatform, akkor megnézem én is... letöltöttem, amit találtam Linux alá, megnyitottam volna a projektet, aztán rá kellett jönnöm, hogy ez csak valamiféle IDE-féleség, de nem komplett fejlesztőrendszer, kb, ami akkor volt elérhető Linuxra az kuka.
Ez most a .NET 6-nál változna?
...vagy én kerestem rossz helyen?
...esetleg nem is céljuk Linux alá megcsinálni a komplett fejlesztőkörnyezetet?
- A hozzászóláshoz be kell jelentkezni
Ez a nem is olyan rég mikor volt? 15 éve?
Bár már akkor is volt Monodevelop...
- A hozzászóláshoz be kell jelentkezni
Akkor volt, most kb nincs. VS nélkül a mono nem sokat ér.
- A hozzászóláshoz be kell jelentkezni
Bevallom, vagy 10 éve nem volt szükségem arra, hogy Mono/Linux-specifikus kódot írjak, már Linux desktopom sincs, csak VM, de azt sem túl gyakran veszem elő, a WSL nekem nagyon ritkán nem elég.
Viszont az a kérdés, hogy a fejlesztőeszköz legyen multiplatform, vagy a kód fusson multiplatform?
Tavaly egy Pi-alapú cuccot csináltunk, simán fejlesztettem és debuggoltam Windowson VS-ben a Pi-n futó kódot. (Nem is hiszem, hogy vágytam volna a Pire komplett fejlesztőkörnyezetet telepíteni.)
- A hozzászóláshoz be kell jelentkezni
Néhány hónapja...
Amikor próbáltunk Mono-t, igaz, az néhány éve volt, de nem volt olyan egyszerű működőképessé tenni az adott, meglévő kódot vele, így elvetettük.
Nyilván más a helyzet akkor, ha eleve úgy áll hozzá az ember, hogy Mono alatt fusson...
Szerk.: Tehát a kiindulás valahol az volt, hogy maga a fejlesztőrendszer is multiplatform, ami, úgy tűnt, nem igazán fedi a valóságot.
Az egy másik kérdés, hogy, amit fejlesztesz vele, az mennyire multiplatform.
- A hozzászóláshoz be kell jelentkezni
A Monot én komoly projektre nem használnám. A MonoDevelop mindigis egy hulladék volt.
Amúgy ott a .NET Core, ASP.NET Core, ami multiplatform.
IDE-nek pedig a Visual Studio Code.
- A hozzászóláshoz be kell jelentkezni
de licensz méregdrága, tipikus "mienk a kódbázis, tejelned kell, ha komolyan használni akarod" szemléletű.
FYI évi 250K USD bevétel 500 USD/developer/év. Ennyit katásként is ki lehet köhögni...
- A hozzászóláshoz be kell jelentkezni
- az árbevétel + támogatás a limit
- max 4 fő fejlesztő a cégnél
- automatikusan hosszabbodik minden évben
- IoT-re ez nem áll, ott plusz eszköz licenszet is kell fizetned
- ha átléped ezeket a limiteket, automatikusan full licenszre vált, az kb 2000 / 3000 EUR/fő/év
- 5 fővel az induló vállalkozásod ott találja magát kb 2.5M HUF garantált költséggel minden évben. Más alternatíváknál ez kb nulla forint (Visual Studio Community-vel eladhatsz szoftvert).
- A hozzászóláshoz be kell jelentkezni
Java:
* Fejlesztőkörnyezetből többféle ingyenes is van, minőségi kódnavigációval, refaktorral, keresésekkel, debuggerrel, stb. A fejlesztőkörnyezet is multiplatform.
* Profiler is van ingyen. Pénzér pedig nagyon minőségi termékek is vannak.
* JVM továbbra is fejlődik, gyorsul.
* Az Oracle JVM+JRE buildek valahogy furcsán működnek újabban (például régi verziókat nem lehet letölteni, meg ilyenek - gondolom be akarnak terelni hogy vegyél supportot).
* De minden open source, és van Linux és Windows build is 3rd party forrásból. (BSD, stb-t nem tudom)
* A JIT miatt nem triviális feladat különböző architekturákra hatékonyan portolni. Pár éve még lassú volt ARM-en, de mára már nagyon jól meg van csinálva (nem mértem, cikkeket olvastam róla), X86-hoz hasonló hatékonyságú a JVM ott is. Legalábbis Linux+ARM port tuti hogy van és jó.
* A nyelv és a libek fejlettsége egy kis lemaradásban vannak a .NET-hez képest a megítélésem szerint, de ez nem feltétlenül nagy hátrány, mert IMHO Java 5 óta nagyon produktívan lehet dolgozni vele.
* Mindenhez _is_ lehet találni libet, és maven-nel könnyen be lehet emelni.
* Statikus típusosság és a menedzselt VM miatt nagyon gyorsan lehet fejleszteni benne, ha jól használod az IDE-t. (.NET ugyanez)
* Ha valamit nagyon optimalizálni kell, akkor végső fegyverként natív betétet is csinálhatunk (JNI), így még hajbazer is boldog lehet, ASM-ben optimalizálhatjuk a programunk problémás ciklusmagjait :-P (.NET-ben is van hasonló, meg igazából minden JIT/interpretált nyelven is, szóval ez nem extra, csak jó tudni)
* Real time program esetén a Garbage Collector probléma lehet. Ha ilyet programozol, akkor nem jó döntés a Java. (.NET ugyanez)
* GUI library többféle is van hozzá, ami részben átok, részben áldás:
** AWT/Swing: "régi", de megbízható, minden JVM-nek része, ezzel a legkönnyebb elindulni.
** SWT: (Eclipse alatt ez van), natív widget illesztés van benne, ezért nagyjából natív külseje van, viszont a stílusozása nehézkez, és korlátos.
** JavaFX: Újabb, de sajnos a vitorlájából kifogták hamar a szelet, mielőtt elterjedt volna. De használható, és CSS-sel stílusozni is lehet.
** Egyéb megoldások is lehetségesek, egy rakás GUI toolkithez vannak bindingok, ha valami exotikus célod van esetleg.
* Webes framework is van egy rakás. Ezek is többnyire ingyen használható licenszek.
* Mivel óriási ipari háttere van, ezért biztosnak tűnik a jövője, a befektetett tanulás és a felhalmozott kódvagyon nem fog elértéktlenedni. Mivel a technológia hasonló, a tudás egy része átjárható a .NET világgal (persze a megvalósítások részletei nagyon mások, szóval részletekbe menően nem lesz az). Sőt, IKVM-mel kódbázis is átmenthető lehet, sőt régen egyszer csináltam egy játszós projektet, ami kódszinten fordította a Javát C#-ra, de ez már inkább poén volt, mint komoly.
Én ésszerű döntésnek tartom 2020-ban is a Javát, érdemes ránézned! Javát telepítesz csomagból, letöltesz egy Eclipse-t, elindítod és örülsz! :-)
- A hozzászóláshoz be kell jelentkezni
Ha már profi vagy benne, akkor igen. Most már viszont biztos nem ebbe fektetnék több év tanulást, pont az Oracle hozzáállása és az emiatt menekülő core fejlesztők miatt.
- A hozzászóláshoz be kell jelentkezni
Annyival egészíteném ki, hogy anno nézegettünk C#-hoz könyvtárakat, és amint egy kicsit speciálisabb kellett, jött az hogy vagy nincs, vagy végtelen csillió pénzért volt csak. Java-nak ez egy baromi nagy előnye: nagyon jó minőségű, hosszú évek/évtized óta karbantartott, nyílt forráskódú könyvtárai illetve keretrendszerei vannak.
Java fejlesztőt folyamatosan keresnek elég jó fizetésekért. Azt gondolom, hogy a következő 10 évben ez nem nagyon fog változni.
- A hozzászóláshoz be kell jelentkezni
Cobol programozókat is igen jó pénzért keresnek. 5 év tapasztalat, mire megütöd azt a szintet, amikor már jól fizet. Majd tarthatsz karban legacy kódot, mert pont azért fog jól fizetni, mert sok enterprise 20 év alatt sem tud megszabadulni az egyedivé duzzasztott kritikus core rendszereitől. Kétségtelen, hogy egyre többet fog fizetni, de egyre szűkülő piacon.
Van akit a karbantartás vonz, és ez így van jól, nyugdíjas állás. Aki viszont alkotni szeretne, annak most beletanulni egy durva tanulási görbéjű, közben nagy eséllyel középtávon zsákutca irányba, kockázatos döntés.
- A hozzászóláshoz be kell jelentkezni