Ahojte,
potrebujem poradiť pri výbere programovacieho jazyka pre aplikáciu, ktorá pobeží na GMU/Linuxe a aj Windowse. Bude sa jednať o aplikáciu, ktorábude čítať dáta (po LANe) z hardvérového zariadenia a tie bude archivovať a zobrazovať. V minulosti (= 10 rokov dozadu) som niečo podobné riešil pre Windowsy ešte v Delphi. A teraz chcem, aby to bolo spustiteľné pod GNU/Linuxom i Windowsom. Pred dvomi rokmi som nejakú vec (tiež išlo o chrústanie dát, ale zo starého zariadenia po RS485) naprogramoval (bez GUI) v C, ale pri prenose na Windows som sa pekne zapotil (MinGW atď., kdejaké chybové hlásenia, ...).
Preto by som teraz chcel použiť niečo, čo je cross-kompilovateľné bez obtiaží. Nechcem, aby zbytočne sa používal vo Windowse nejaký virtuálny počítač, veď ten OS má dosť čo robiť so samým sebou ;)
Uvažoval som, či nepoužiť Lazarus, alebo Javu. V Lazaruse som nikdy nerobil, ale pred 10 rokmi v tom Delphi, takže to by nemusel byť žiadny problém. V Jave som kde-čo robil, ale iba pre Linux, a behalo to v termináli. Takže ak aj niekto používate Javu, prosím o návrh na nejaké IDE, v ktorom sa GUI dá jednoducho vytvoriť, a ktoré po kompilácii pre OS Windows bude fungovať. Ja osobne som dlhoročný používateľ EMACSu, takže IDE, ktoré umožňuje použitie externého editora, by bolo super. Ale nie je to podmienka, samozrejme.
Vďaka vopred za tipy.
Ja by som vyskúšal Python.
Python by som asi pouzil aj ja, ale nezatracoval by som ani Lazarus, taktiez sa mozes pozriet na Gambas
Na toto neexistuje jednoznačná odpoveď, ale to si asi čakal. Lazarus a Java určite nieje zlá voľba. No dá sa súhlasiť s Jurajom a Pythonom, k tomu použiť QT Designer na naklikanie dizajnu aplikácie.
Java je komplikovanejšia, hlavne čo sa týka tých serepetičiek okolo, tak mi nikdy neprirástla k srdcu. Pre Python neexistuje funkčné (slobodné) RAD/IDE, takže si budeš musieť naklikať výzor v QT Designeri a potom použiť nejaké IDE, kde si doprogramuješ funkčnosť. Lazarus som nezapol roky, ale je to slušné multiplatformné RAD. Teda ešte k Pythonu, Monkey Studio sa približovalo ideálu, ale ten projekt bohužiaľ umiera, no pre QT4 v ňom asi najľahšie naklikáš a spojazdníš aplikáciu. """Otázka do publika, prečo vlastne Monkey Studio umrelo?""" V distribúciach je stále podporované.
Potom je tu ešte Gambas, ale ten mal problém s behom Windows, na čom sa robí, ale netestoval som to.
Mono Develop je dnes najlepšie RAD pod Linuxom aj Windows, ale zas je to celé pod taktovkou Microsoftu, čo veľa ľuďom vadí. Naozaj to majú vymakané, tak záleží ako ti nejaké tá mantra bude vadiť. Je to plne open source.
Hlasujem za Qt. Navyše Qt už dávno nie je len o oknách. Python alebo C++ to je viac o tom, v čom sa cítiš doma. Ak na rovnako, tak python.
http://doc.qt.io/qt-5/qtnetwork-programming.html
Ďakujem pekne za odpovede. Teraz som ešte viac zmätený, pan veľkomožný. Zrejme skúsim najpr ten lazarus, potom uvidím, aké to bude robiť obštrukcie prí čítaní z portov.
Každopádne, jak skvelé, jednoduché a efektívne je spraviť niečo v linuxovej konzole, a ako sa to komplikuje, ak to má mať GUI niekde vo Win. :(
Tak - spravil som prvý nástrel v Lazaruse (alebo Lazarovi?) - ale trochu fušersky, pretože čítanie zo siete (nakoniec nebude čítať z USB, ale z LAN) som spravil v bashi a lazarus to na pozadí volá. Funguje to, takže sa to môže doladiť, resp. nejaká knižnica v Lazaruse to môže zvládnuť, aby som nemusel na Win inštalovať cygwin (s ktorým to ide pekne)....
mozes nam prezradit, ktoru "funkciu" bash-u pouzivas na "citanie zo siete"...?
ej možno som to nazval moc vznešene, jedná sa o tento skript:
teraz neviem, ci sa smiat, ci plakat.
btw, a kde je ta platformova nezavislost...?
Nepredpokladal som že poznáš produkty ako cygwin a lebo aj napríklad Ubuntu pre Windows 10. A nesklamal som sa.
:D :D :D ano, to je typicky priklad multiplatformosti. tak to potom aj photoshop je multiplatformovy, lebo ho spustim v linuxe pod wine... :D :D :D
daj este jeden :D
Ale nieže tak. Tento skript volá program v Lazaruse, ktorý zistí správy od pripojeného zariadenia, ktoré loguje hmotnosť - či teda nastala zmena za n hodín a potom ďalší skript stiahne dáta a program v Lazaruse ich zobrazí a eviduje a plní databázu a ešte ich kdejako porovnáva atď. Takže ten program v Lazaruse je multiplatformový. A keďže som nemal zatiaľ čas čítať tie dáta nejakou knižnicou, tak som to len dal takto cez bash, resp. bash v cygwine. Poneváč je stále len počiatočná kdejaká skúšobná verzia.
Ty máš váhu čo ti zasiela hmotnosť objektu pomocou emailu? Tsss, veď unity na pop3 by mali byť bežne dostupné. Ale ak to funguje, tak nie je o čom.
Cez mail ide len notifikácia, samotný prenos dát je v rámci siete (váha ma pevnú IP samozrejme) cez http port. Zrejme unity na pop3 sú, len som chcel čo najskôr rozbehať hardvér, zabezpečiť principiálnu funkčnosť, a následne je čas na dolaďovanie. Hlavne som nevedel, či je ozaj ten cross-compiling taký bezbolestný. Zatiaľ je.
Cross compiling môže byť pre začiatočníka pôrod. Ale ak vezmeš zdrojáky, prenesieš ich ako projekt do identického vývojárskeho prostredia pod iným OS, tak je to bezproblémové. Ak ovšem nepoužívaš OS špecifické funkcie, čo ty určite nepoužívaš. Konštanty typu predvolený názov sériového portu sa dajú poriešiť cez napríklad makrá preprocesoru, ak to stojí za to.
Ja ti mozem silne odporucit Javu. Prakticky na vsetko co by si mohol potrebovat ma minimalne kniznicu. Ak vsak planujes pracovat s nejakym HW tak narovinu hovorim, ze z multiplatformovostou sa rozluc a to nehovorim o jave ale vseobecne.