Jaký zvolit jazyk ...

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod xsimp 27. 4. 2018 08:15

Ahoj,
chápu, že toto je asi nejčastější dotaz ve většině diskuzních skupinách věnujícím se programování. Ale i tak mi to nedá a zeptám se :-)

Klasická situace:
Jsem ajťák, který si občas něco pro sebe naprogramuje, ale rozhodně nejsem zkušený programátor. Nicméně v zaměstnání na mě spadl úkol typu "je potřeba abys naprogramoval aplikaci, která bude umět věci, jako komerční řešení, ale na to nejsou peníze".

Co to má umět:
Klasická třívrstvá aplikace, která má UX, vlastní jádro, které šahá na disk a zpracovává obsah souborů a nějakou DB, kam ukládá výsledky. Fungovat to má lokálně na jakémkoliv PC, ntb, ideálně aby to byla portable aplikace a fungovala nezávisle na síťovém okolí. Také to má ideálně fungovat na Lin/Win/Mac, takže jsem to nakonec zredukoval jen na Win.

Jak jsem to řešil:
Zvážil jsem možná řešení v čem to programovat a vybral to co bylo podle mého názoru nejlepší: Qt/C++. A to se ukázalo jako začátečnická chyba. Protože nejsem profi programátor a toto dělám jen když vyšetřím někde jinde trochu času, tak se v tom docela topím. Ukázalo se, že C++ je pro mě docela neschůdné díky své složitosti, chtělo by to mnohem víc času se tomu věnovat, který nemám.

A nyní ta otázka:
Jak by jste takovou aplikaci vyvíjeli vy? Jaké jazyky by jste použili a proč (výhody/nevýhody).
xsimp
Kolemjdoucí

Odeslat příspěvekod JirkaVejrazka 27. 4. 2018 12:38

Ja bych to resil v Pythonu, protoze ho umim, jsou tam rychle videt vysledky. Navic je pro nej takove mnozstvi kinhoven, ze v podstate nic neni problem. Jednoduchou (coz neznamena spatnou) databazi mas primo v zakladni instalaci (SQLite3).

Navic ma celkem srozumitelnou a nezaludnou syntaxi a nenuti mne psat hromady kodu, ktery vlastne funkcne nic nedela (typicky ruzne gettery a settery u Javy).

Funkcnost na Windows, Linuxu ani Macu neni problem. V CZ existuje komunita lidi, kteri poradi s problemy (viz python.cz a pyvo.cz)

To je asi tak vse, predavam slovo zastancum C, Go, C++, C#, Ruby, Javy a JavaScriptu ;-)
JirkaVejrazka
Mírně pokročilý

Odeslat příspěvekod satikcz 27. 4. 2018 13:10

C/C++ urcite ne, C# umi pro tvoje potreby to same a mnohem jednoduseji a pohodlneji a i na Linuxu to bezi v pohode (kdyz jsem svoji C# aplikaci napsanou na Win zkousel v Linuxu, jediny co jsem musel opravit byly velky/maly pismena v nazvech souboru pri pristupu na disk, protoze Linux je case sensitive narozdil od Win).

Takze za me asi C#, vyhoda je i ze ti z toho vypadne exac, kterej spustis vsude.

Java je takovy mene user-friendly C#, obcas je trochu ukecanejsi, jak uz tu padlo + bys musel s jarem tahat portable javu nebo ji na pc instalovat.

Python by taky mohl byt dobra volba, kod v nem je jeste kratsi nez c#, ale taky musis resit runtime.
3x AOC AG271QG (2560x1440, IPS, 165Hz, GSync), ASUS Strix RTX3090 OC, Intel Core i7 8700K@5GHz+EKWB L360, ASUS Maximus X, 32GB G.SKILL TridentZ@3466 MHz, ADATA SX8200 2TB + 1TB + Crucial BX 500 GB + Kingston UV400 1TB, Seasonic P-860 Platinum, FD Define S
satikcz
Junior
Uživatelský avatar

Odeslat příspěvekod xsimp 3. 5. 2018 06:53

Na začátku jsem měl čtyři horké kandidáty a volil jsem mezi C++ / C# / Python / Java.
Postupně jsem zavrhnu Javu kvůli její "záludnosti". C# jsem zavrhl, kvůli nejistotě, že to bude dobře fungovat i jinde než pod Win. Python zase nepatří mezi nejrychlejší a okenní aplikace nejlépe pod Qt. A tak mi jako nej vyšlo C++/Qt.
V tuto chvíli u mě vedou C# a Python. Výhoda C# je jeho mohutnost a dobrá podpora a u Pythonu zas jednoduchost a dobrá komunita. Pokusím se v nich něco drobného napsat pro srovnání a uvidíme, co mi lépe bude sedět.

A nyní doplňující otázka:
Jaká je v tomto směru použitelnost JavaScriptu? Ten jsem jako možnost nezvažoval. JavaScript mám spojený s web aplikacemi a pro tento účel jsem ho automaticky zamítl.
Takže dotaz na příznivce JavaScriptu. Jaké máte zkušenosti s JavaScriptem a jeho použitelnosti při programování aplikací pro "lokální" použití?
xsimp
Kolemjdoucí

Odeslat příspěvekod JirkaVejrazka 3. 5. 2018 08:06

Muzes si vybrat neco horsiho nez JavaScript pro psani GUI aplikace. Ale da to praci ;-)
JirkaVejrazka
Mírně pokročilý

Odeslat příspěvekod PiranhaGreg 13. 5. 2018 09:41

Pokud to chceš mít multiplatformní, tak je dnes celkem zajímavá volba i Electron. Píše se nad tím v JavaScriptu (doporučil bych alternativu TypeScript), kde máš k dispozici nepřeberné množství knihoven. Elektron sám o sobě ale neřeší GUIčko. Tam je pak potřeba zvolit mezi Angularem, Reactem nebo Vue.js.

Osobně mám pozitivní zkušenosti s kombinací Electron + TypeScript + React. Jsou v tom psaný aplikace typu Visual Studio Code, Atom, Discort, Skype...
PiranhaGreg
Mírně pokročilý
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků