Gość Leniwy Napisano Styczeń 11, 2015 Zgłoszenie Share Napisano Styczeń 11, 2015 Witajcie staję przed wyborem języka programowania do migracji aplikacji która aktualnie niestety jest pod mikroszitem w dotnecie Wykorzystuje głównie porty szeregowe oraz graficzny interfejs (dla "Pani Krysi') jakie środowisko i język polecacie do migracji Aplikacja ma działać pod linuxem - fedora Dosyć elastyczny aby migracja pod np. debiana nie była problemem Myślałem nad migracją albo do C++ albo do JAVY ew. python Które z języków są najbardziej stabilne? jakie środowiska polecacie? Jakieś doświadczenia z aplikacjami przemysłowymi ? 1 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Styczeń 11, 2015 Zgłoszenie Share Napisano Styczeń 11, 2015 W jakim języku jest napisana aplikacja?"jest pod mikroszitem w dotnecie" oznacza mniej wiecej tyle, że korzysta z bibliotek .NET i CLR, ale napisana może być w C# (domyślam się, że tak) jak również w VB czy C++. W skrajnym przypadku jest to połączenie C++ (np.obsługa portów) oraz C# (GUI). Ogólnie nie licz, że będzie lekko Ta "migracja" może okazać się de facto koniecznością napisania od nowa. Zresztą jeśli gdzieś zostały spisane jakieś konkretne wymagania, to może to być najprostsze i najmniej kosztowne rozwiązanie. Co do wyboru języka, to wybierz ten, w którym czujesz się najmocniejszy. Dyskusji nt. podobieństw i różnic między Javą, C++ i C# masz zatrzęsienie. Poczytaj i sprawdź co wybrać. Może Java? W sumie oferuje "przenoszalność" kodu, co może być zaletą na wypadek, gdyby ktoś kiedyś chciał z powrotem pójść w stronę Windows. Albo przeczekaj... Jakoś tak pod koniec ubiegłego roku MS odgrażał się, że udostępni .NET dla Open Source. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
tele Napisano Styczeń 11, 2015 Zgłoszenie Share Napisano Styczeń 11, 2015 Ja nie bardzo sie sie znam na programowaniu, ale mam wrazenie ze bedziesz musial przepisac swoja aplikacje na nowo. Na Linuxa moge Ci polecic: C lub C++ (C polecam bo znalazlem wiecej tutoriali , ale C++ moze okielznasz) - IDE Code::Blocks , do tego wbudowany plugin wxSmith do budowania GUI z wxGlade http://www.codeblocks.org/ Przyklad: Python tez jest ciekawa alternatywa, jak ktos poleci IDE + GUI to tez przetestuje Jesli to maja byc najprostrze komunikaty to polecam: - bash + zenity (najprostrze okienka) https://pl.wikipedia.org/wiki/Zenity - bash + gtkdialog Gtkdialog pozwala na ladne GUI , ale brakuje zaawansowanych mozliwosci gtk i qt, brak narzedzia typu RAD do budowania GUI, a pisze sie to troche jak strone w html. Link do gtkdialog: https://code.google.com/p/gtkdialog/ Przyklady: http://xpt.sourceforge.net/techdocs/language/gtkdialog/gtkde02-GtkdialogExamples/ O ile C /C++ , python , java , wxGlade , gtk , qt raczej przeniesiesz na inne platformy systemowe, to zenity , gtkdialog chyba raczej nie. Albo przeczekaj... Jakoś tak pod koniec ubiegłego roku MS odgrażał się, że udostępni .NET dla Open Source. To narazie przyszlosc, mozna poczytac artykul: http://antyweb.pl/pieklo-zamarzlo-net-w-pelni-opensourceowym-projektem/# Propo dotnet, ostatnio probowalem Genie , to byloby nawe duzo lepsze niz .NET ale sie to dopiero rozwija , poradnikow prawie 0 , i chyba korzysta z kompilatora vala, dodatkowo kod mozna przekonwertowac do C. Jezeli mialbym pisac historie jezyka C dla Linuxa to zrobilbym w ten sposob: C --> C++ --> Vala (C#) --> Genie http://sprae.jogger.pl/2009/07/14/genie-python-vala/ ( jesli kopiujesz przyklady Genie to zwracaj ugwage na wciecia, w nawiasach kwadratowych musisz podac poprawna wartosc Spacji lub Tabulacji , nie pamietam, jest to wazne bo gosc mogl dawac przyklady z Tab, natomiast tobie moglo sie wkleic ze Spacjami ) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Miszcz Napisano Styczeń 11, 2015 Zgłoszenie Share Napisano Styczeń 11, 2015 Ze swojego doświadczenia polecam Qt. Posiada bogatą bazę bibliotek do "wszystkiego" oraz dobrą dokumentację, no i kod napisany raz w samym Qt możesz przenieść na większość popularnych systemów bez zmian. Poza tym C++ to ciągle Ferrari języków programowania Możliwość Qt można zobaczyć instalując pakiet qt-demos. Java z drugiej strony to też jest dla Ciebie opcja bo ma łatwiejszą składnię niż C++, zbliżoną do C#(a raczej na odwrót ) i zdecydowanie łatwiej będzie ci się do niej przesiąść. Co do środowiska to do Qt-> QtCreator, a do Javy-> Eclipse lub IntelliJ. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Leniwy Napisano Styczeń 11, 2015 Zgłoszenie Share Napisano Styczeń 11, 2015 Witajcie najbardziej jestem przychylony do Code::Blocks oraz GNU GCC przepisałem (niestety po 20 godzinach) jeden komponent programu i działa, i dobrze zależy mi na: -stabilności -niezawodności -braku "dziwnych" reakcji jak "brak odpowiedzi" Jak się ma do czynienia z programowaniem to nauka kolejnego języka nie jest trudna, wymaga czasu. Jaki jest najbardziej niezawodny? Musi być w nim GUI (guziki, wskaźniki, input area). Czy wybór C++ oraz GNU GCC z Code::Blocks w 64 bitach to dobre rozwiązanie? Zależy mi aby język nie stał się martwy jak PASCAL, był rozwijany i pojawiały się aktualizacje. Wybór platformy to najważniejsza decyzja, gdyż w trakcie możliwość cofnięcia będzie prawdopodobnie nieodwracalna Choć linux daje możliwość migracji embeded systems do np. raspberry pi i postawieniu fedory dla arm np. zastąpienie kamerek systeme kamera + rasberry pi Nie chodzi nawet o cenę lecz o wielkość urządzeń Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
tele Napisano Styczeń 12, 2015 Zgłoszenie Share Napisano Styczeń 12, 2015 - GCC to tylko kompilator dla C , C++ i czegos tam jeszcze. z kompilatora GCC chyba korzystasz tak samo w Code::Blocks i QtCreator roznica polega we wbudowanym w IDE "GUI designer" do tworzenia GUI. ( kolega wyzej ma racje, QtCreator wyglada lepiej i ma GUI designer niz KDevelop ) Jakby to powiedziec ... do tworzenia programu mozesz uzyc nawet edytora tekstowego np. Geany czy Kate, a do utworzenia GUI mozesz uzyc dowolnej bibioteki kompatybilnej z jezykiem w ktorym piszesz. ( dla C/C++: wxGlade, GTK, QT , lub jeszcze innej ) Poradnik do C++ w Code::Blocks https://www.youtube.com/user/MiroslawZelent/playlists?view=50&sort=dd&shelf_id=18 - mnie sie wydawalo ze C jest stabilne, ale aplikacje ktore maja 10 lat, wymagaja lekkich poprawek przed kompilacja, takze z malymi zmianami musisz sie liczyc. Pomoc do bibliotek mozesz uzyskac np. w ten sposob wpisujac w terminalu: man ftw Pokaze on manual do #include <ftw.h> - Co do Pascala to moze i martwy jezyk, nie polecam ale jako ciekawostke powiem, ze jest rozwijany Free Pascal, polecane do niego IDE to Lazarus . http://www.freepascal.org/ - Moim zdaniem dobrze ze wybrales C++ , jezeli chodzi o GUI to QT nie uwazam za stabilne, jest czesto aktualizowane np. teraz jest z QT4 do QT5, kod nalezy lekko poprawic by aplikacja sie prawidlowo skompilowala, ale duzo ludzi sobie chwali jednak QT, w przeciwienstwie do GTK czy pisania w javie. Mysle ze duza zasluga tkwi w dosc fajnym, prostym qt designer. Co do wxGlade nie mam zadnego doswiadczenia by skomentowac. Jesli jednak chcialbys sprobowac stworzyc GUI w gtk to w Glade to taki designer ( RAD ) dla gtk. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jusko Napisano Styczeń 12, 2015 Zgłoszenie Share Napisano Styczeń 12, 2015 Skłaniałbym się ku Javie. Tym bardziej, iż natywnie posiada Swing do GUI, a niektórzy korzystają już z JavaFX. Mimo, że Swing raczej poległ na rzecz JFX, to nadal jest stosowany w oprogramowaniu (również tym dla przedsiębiorstw), bo jest sprawdzony i okrzepnięty. Mógłbyś zatem bez grzebania się z dodatkowymi bibliotekami szybko napisać, albo narysować GUI i podczepić akcje. Pisanie w Swingu jest o tyle fajne, że cała magia generowania okien jest pod maską, a do samego pisania GUI operuje się zazwyczaj prostą składnią (na tyle, że choćby proste Hello World w Qt albo nie daj Gtk, wygląda na wyższą sztukę jazdy). Może składnia jest czasem nieco rozwleczona i nie powiem, aby w każdym miejscu Java była super logiczna, jednak przenośność kodu jest naprawdę świetna. Napiszesz na Linuksie - ok, ten sam kod uruchomisz pod Windows, OS X, BSD czy wszędzie, gdzie jest Java (chyba, że kod dotyka jakichś stricte indywidualnych rzeczy dla danego systemu to wiadomo, że trzeba dać korektę). Język jest znany, ma aktualizacje. Do Javy może jednak zniechęcać rozwlekłość kodu - zwykłe pobranie danych z klawiatury i wyświetlenie na ekranie to już mała litania kodu, kiedy np. w Pythonie to nie wiem, chyba 2-3 linie kodu? Na pewno Java nie jest językiem skompresowanego kodu, jak np. Python Z drugiej strony pewna manualność pozwala mieć lepszy wgląd w to, co dzieje się w kodzie. Co kto lubi - momentami może to kogoś jednak męczyć. Javę jednak można wziąć pod uwagę w mojej opinii. Co prawda nie jestem zawodowym koderem, ale od czasu do czasu coś tam sobie małego w Javie klepnę (głównie nakładki na rzeczy konsolowe). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Leniwy Napisano Styczeń 12, 2015 Zgłoszenie Share Napisano Styczeń 12, 2015 1) soft nie będzie pod windowsa - z racji chociażby słynnego "brak odpowiedzi" w programie Nie mogę sobie pozwolić że soft się wysypie podczas pracy to dla mnie jakby... katastrofa Java? czemu nie, ma działać na wszystkim i ma być przenośna, nie do tego co potrzebuję. Tutaj ma być wszystko konkretne. Dlaczego platforma windows odpada? ten sam program, system oraz to co ma robić na linuxie x64 wymaga 256mb ram (1gb zainstalowane) i działa bez zarzutu - testowane wiele razy (sam musiałem wygenerować możliwe sytuacji, błędy oraz konflikty) To samo na windows 8 64 bit wymaga około 3-4gb ram i to szybkiego, a aplikacja ma parę guzików oraz połączenie z siecią. co ciekawe użycie procesora - 16-20% przy linuxie na 64 amd chyba jeden rdzeń 1.7 wynosi 3-5% Dlaczego mam przenosić to na np. win 7 64 bit który wymaga około 2gb ram skoro mogę zrobić to na linuxe i na upartego będzie to 1/4 z tego stabilność i efekt ten sam Sorki nie wziąłem pod uwagę OSX ale wybacz, nie kupię ani maca PRO ani macbooka gdyż posiada za bardzo zamkniętą platformę sprzętową rozbudowa czegokolwiek, dodatnie kart rozszerzeń kończy się na kupowaniu przejściówek USB -> LPT lub USB -> 4x RS-232 Gdzie sens i logika? A przenoszenie na unixa mija się z celem. Po moich doświadczeniach coraz mniej jestem przekonany do platform RISC, SPARC, POWER - poza supportem i gwarancją działania nie dają właściwie nic. A i tak jak napiszesz swój soft, nie dają gwarancji. Jak chciałbyś certyfikować to koszta są ogromne. Niestety ale pod każdym względem Linux + x64 + C wygrywa Dlaczego? bo jak coś nie działa to mam źródła Wszystko inne zamknięto źródłowe i niestety ale w tym przypadku to odgrywa bardzo dużą rolę. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się