Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
Java gui dev vs c++?
24-06-2014, 11:45
#1
Java gui dev vs c++?
Står i den situation, at jeg er blevet lokket med til et projekt, hvor brugerfladen på klienten er en essentiel del af projektet. Klienten skal bl.a. være cross-platform og anvende noget kryptering/RSA.

Problemet er, at mine c++ kompetencer er langt bedre end mine java kompetencer. Skal jeg være helt ærlig, så tror jeg det bliver en stor mundfuld, at implementere RSA og andre relativt svære (for en java noob), funktioner. Men java er bare så oplagt fordi det skal være cross-platform.

Hvad vil i vælge? Som jeg ser det lige nu:

Java
  • Cross platform JVM
  • Nemmere (kortere)
  • Nemme frameworks (swing, AWT, QT jambi)

C++
  • God erfaring
  • BinariesLove (no jvm/hullet ost dependencies)
  • QT
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-06-2014, 13:49
#2
RE: Java gui dev vs c++?
Jeg tror at jeg selv i forbindelse med RSA via Java enten ville finde et library til formålet, eller i hvert fald bruge en ASM blok. Det afhænger lidt af hvor meget den skal kryptere. Lige på det punkt tror jeg ikke det gør nogen kæmpe forskel om du gør det i C++ eller Java, idet du i mange tilfælde enten skal bruge det så lidt så det ikke gør noget at det er ineffektivt, eller skal bruge det så meget så det skal kodes i ASM fordi det giver et enormt boost.
Personligt har jeg ingen erfaring af betydning med C++, det ene program jeg har lavet kan helt sikkert overflowes samtlige steder og der var ikke noget GUI, så det vil jeg helst ikke udtale mig så meget om.

Mht. Java så har jeg to syn på den sag. Det er nemt at kode, jeg er helt enig, men hvor tungt må det være? Jeg synes tit det er en gene som forbruger at få kastet Java programmel i hovedet fordi der ligesom mangler noget integration i styresystemet. Det værste synes jeg selv, er de malplacerede dotfiles man får i Windows fordi udvikleren har glemt at det ikke gør dem usynlige... og så hører de i det hele taget ikke til der, selvom de gør under Linux. Jeg kunne rante afsted om det, men for at være lidt mere objektiv ville jeg kigge på hvem og hvor mange der kommer til at bruge det.
Er det til intern brug i en virksomhed, eller noget der skal være alment tilgængeligt? Hvis det er noget ikke-specielt-vigtigt intern software kunne man godt lave det i Java. Hvis det menes som et større offentligt projekt tror jeg det fra forbrugerens vinkel var rarest hvis det var C++.
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-06-2014, 20:53 (Denne besked var sidst ændret: 24-06-2014, 20:53 af BlimBlamBlar.)
#3
RE: Java gui dev vs c++?
Java har indbyggede libraries til krypto, inklusiv RSA, og det er supernemt at bruge, hvis man har styr på, hvad kryptografi kræver. Og under motorhjelmen er det native kode, som implementerer algoritmerne, så det er heller ikke uoptimeret.

Og der er selvfølgelig også GUI libraries, som giver ret meget mening.

Med de informationer, du har givet, ville jeg helt klart lave det i Java.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-06-2014, 22:19
#4
RE: Java gui dev vs c++?
Tak for svarene!

Det er rigtigt at jeg slipper for evt. overflows osv. med java blue, men tror ikke det bliver så aktuelt, da softwaren udelukkende er til intern brug i firmaer. Selvfølgelig er c++ hurtigere. Det køres direkte af processeren, men java med JIT er nu heller ikke ringe :)

Selve krypteringsdelen bliver ikke tungt, og med projektets foreløbelige omfang, er ressourcer ikke det helt store problem. Vil dog give dig ret i, at det uden tvivl kan gøres bedre i c++, men det er 2x arbejdet. En anden fordel ved java er, at alle efterhånden har det installeret pga. nemid.

Syntes det peger lidt mod java. Så kan jeg også få læst et par bøger om asymmetriske krypteringsalgoritmer + java :).
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-06-2014, 23:58
#5
RE: Java gui dev vs c++?
(24-06-2014, 22:19)havregrød Skrev: Tak for svarene!

Det er rigtigt at jeg slipper for evt. overflows osv. med java blue, men tror ikke det bliver så aktuelt, da softwaren udelukkende er til intern brug i firmaer. Selvfølgelig er c++ hurtigere. Det køres direkte af processeren, men java med JIT er nu heller ikke ringe :)

Selve krypteringsdelen bliver ikke tungt, og med projektets foreløbelige omfang, er ressourcer ikke det helt store problem. Vil dog give dig ret i, at det uden tvivl kan gøres bedre i c++, men det er 2x arbejdet. En anden fordel ved java er, at alle efterhånden har det installeret pga. nemid.

Syntes det peger lidt mod java. Så kan jeg også få læst et par bøger om asymmetriske krypteringsalgoritmer + java :).

Jeg tror så også at jeg i den sammenhæng ville vælge Java. Hvis performance ikke er en kritisk del af det og man sagtens kan forvente at folk har det installeret, så go for it ^^
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
25-06-2014, 07:20
#6
RE: Java gui dev vs c++?
Det er altså også en myte at C/C++ er hurtigere end Java.
JVMen optimerer koden til den processor, som er i maskinen, hvor du med C/C++ compiler til noget, som kan køre overalt. Hvis du slår specifikke optimeringer til, så vil det ikke køre, hvor de pågældende instruktioner ikke findes.

Men der er et compileringsskridt i Java, hvor JVM koden oversættes til native, og dét er ikke superhurtigt, men al efterfølgende eksekvering af samme kode er potentielt en del hurtigere end tilsvarende C/C++ kode.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
25-06-2014, 13:33
#7
RE: Java gui dev vs c++?
Afhænger af så mange ting, at man ikke rigtig kan komme til nogen konklusion mht. hastighed.
This software skal dog ikke kværne en masse igennem, så opstart o.l. er relativt vigtigt for brugeroplevelsen. Men igen, det afhænger af så meget. Træls kode, f.eks. SQUID, der skubber mange ting ud af hukommelsen, og ender med at lave en pokkers masse langsomme I/O operations, log filer der skrives til hvergang i stedet for bare at holde det i shared memory eller system calls, har nok større betydning en "java vs cpp".
Find alle beskeder fra denne bruger
Citer denne besked i et svar
25-06-2014, 14:59
#8
RE: Java gui dev vs c++?
(25-06-2014, 13:33)havregrød Skrev: Afhænger af så mange ting, at man ikke rigtig kan komme til nogen konklusion mht. hastighed.
This software skal dog ikke kværne en masse igennem, så opstart o.l. er relativt vigtigt for brugeroplevelsen. Men igen, det afhænger af så meget. Træls kode, f.eks. SQUID, der skubber mange ting ud af hukommelsen, og ender med at lave en pokkers masse langsomme I/O operations, log filer der skrives til hvergang i stedet for bare at holde det i shared memory eller system calls, har nok større betydning en "java vs cpp".

hehe...der er vist nogen, der har set Poul-Henning Kamps talk om programmering på moderne operativsystemer Smile
Find alle beskeder fra denne bruger
Citer denne besked i et svar
25-06-2014, 15:45
#9
RE: Java gui dev vs c++?
Var det fordi jeg nævnte squid?
Har en fætter, der lige er blevet færdig på cambridge Wink
Find alle beskeder fra denne bruger
Citer denne besked i et svar
25-06-2014, 17:17
#10
RE: Java gui dev vs c++?
(25-06-2014, 15:45)havregrød Skrev: Var det fordi jeg nævnte squid?
Har en fætter, der lige er blevet færdig på cambridge Wink

Snarere fordi du nævnte både squid, log filer vs. shared memory og syscalls...tror bare du manglede mmap for at være igennem det hele Smile
Den her er meget seværdig: https://www.youtube.com/watch?v=37JNC-TKAis
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)