Kezdőoldal » Számítástechnika » Programozás » Te miért szereted a Javát?

Te miért szereted a Javát?

Figyelt kérdés
30 éve tudok programozni, sok nyelvet használtam már, és most ismerkedem a Javával, de szörnyen terjengősnek és modorosnak találom. Elég csak egymás mellé tenni egy helloworldöt Pythonban meg Javában... (Tudom, hogy nem ugyanarra valók!) Belenéztem valaki másnak a programjába, egymillió forrásfile, mindegyiknek a fele import. Mi ebben a jó? Az egyszer OK, hogy a JVM révén nagyon hordozható, de mitől lesz ez a nyelv szerethető?

2014. márc. 15. 19:46
1 2 3
 21/29 A kérdező kommentje:

Mondok egy példát. Tegyük fel, hogy van a konyhában 30 lábosod különféle méretben és színben. Jellemzően mindegyikhez 2 fül és 1 fedő tartozik, ezért csak akkor akarod megadni, ha ettől eltérés van.

Más nyelven ezt úgy oldanád meg, hogy az objektumpéldányt egy lábos(float térfogat, int szín, int fülek=2, int fedők=1) konstruktorral hozod létre, például

lábos(2, 4) (maradva a DOS 4 bites színkódolásánál, ez egy 2 literes piros lábos, ha jól emlékszem).


Egy 3 literes piros lábos fedél nélkül lábos(3, 4, fedők=0)

Na ez nem megy.

Ugye lehet, hogy csak a fedők vagy csak a fülek számát adnád meg, mert a másik default.

2014. márc. 16. 13:29
 22/29 anonim ***** válasza:

Pl.: Az eltérésnél megadod a többi paramétert ilyen esetekben és kész. :)

(De az ilyen esetek baromi ritkák, amikor ilyen előjön ott 90%, hogy tervezési hiba van korábbról már.)


class Labas{


public Labas(float térfogat, int szín, int fülek, int fedők){

[paraméter eltárolás]

}


public Labas(float térfogat, int szín){

Labas(térfogat, szín, 2, 1);

}

}

2014. márc. 16. 13:36
Hasznos számodra ez a válasz?
 23/29 A kérdező kommentje:

Azért ahogy elnézem, másoknak is szokott ilyen problémájuk lenni.

[link]

2014. márc. 16. 15:24
 24/29 anonim ***** válasza:
0%

Én személy szerint utálom a Java-t. Olyan apró dolgokat nem hajlandóak benne megcsinálni, hogy egy string-et felsorolhatóvá tegyenek. Nem, ehelyett neked először karaktertömbbé kell alakítanod, hogy képes legyen utána a foreach bejárni.


C#-pban egy ilyet simán meg lehet csinálni:

string s = "Ez egy teszt szöveg";

foreach (char Current in s) {...}


Java-ban viszont csak erre voltak képesek:

String s = "Ez egy teszt szöveg;

char[] Chars = s.toCharArray();

for (char Current : Chars) {...}

//vagy rövidebben:

for (char Current : s.toCharArray()) {...}


Vagy például property-ket is lusták voltak Java-ban megcsinálni.

2014. márc. 16. 16:30
Hasznos számodra ez a válasz?
 25/29 anonim ***** válasza:
#24: Valóban, nagyon időigényes, megterhelő és fájdalmas munka odaírni, hogy ".toCharArray()". Viszont nem kell kiírni, hogy "foreach", elég csak simán "for", nem úgy mint C#-ban. :P :D
2014. márc. 16. 16:41
Hasznos számodra ez a válasz?
 26/29 anonim ***** válasza:
Még egy ok, hogy utáljam a Java-t :D
2014. márc. 16. 17:26
Hasznos számodra ez a válasz?
 27/29 A kérdező kommentje:
De engem tényleg az érdekel, hogy miért szeretik emberek a Javát, nem az, hogy miért utálják. Akkor azt kérdeztem volna. :-)
2014. márc. 16. 19:29
 28/29 Goofre ***** válasza:
Az előttem levő kommenteket nem olvastam el, mivel már az első kommentelő hülyesége kiakasztott... Röviden tömören: Mi ez a sok import? A java teljesen máshogy épül fel mint egy c++ program. Itt minden a különböző osztályokra épül, arról már ne is beszéljünk, hogy rengeteg minden előre meg van írva a javaba, így egyszerűbb azokat használni, mintsem fölöslegesen dolgozni ugyanazt a dolgot újra megírni. Az a sok forrásfálj is ebből adódik. Szerintem sokkal átláthatóbb ha több fájlból áll egy program mintsem letekergetni a negyvenezredik sorra, majd vissza az ötezredikre. Mitől lesz a nyelv szerethető? Hát ha én 2 éve használom, és most 16 éves vagyok, szerintem nem olyan hardcore dolog. Más nyelvekkel ellentétben ez sokkal logikusabb egyszerűbb.
2014. márc. 17. 14:38
Hasznos számodra ez a válasz?
 29/29 Srapnel ***** válasza:

Egyszerűbb nyelv -> bonyolultabb kód

Bonyolultabb nyelv -> egyszerűbb kód


Scalaban pl. pár sor megcsinálni sokmindent, amit Java-ban 3x-4x annyi sor, cserébe a Java-t rövidebb idő alatt lehet megtanulni, mint a Scala-t.


Azért szeretik amúgy, mert ami nincs benne nyelvi szinten (pl. operator overloading) az sokszor segít abban, hogy ha ránézel a kódra, akkor legalább az alapelemekről tudod mindig, hogy mit csinálnak. Ezért könnyebb átvennie másnak a munkát.


Másik nagy előnye, bár az nem a nyelvé, hogy nincs még egy olyan nyelv/platform, amihez annyi 3rd party library lenne, mint a Java-hoz.


Terjengős? Nézzük:


Java: List<ValamihosszuNevuOsztaly> lista = new ArrayList<>();

c#: IList<ValamihosszuNevuOsztaly> lista = new List<ValamihosszuNevuOsztaly>();


Azokat a nyelveket meg ne is hasonlítsuk ehhez, ahol pl. a lista típusa beépített, nem választhatsz implementációt.


Az importok meg mindig is voltak és mindig is lesznek. C-ben meg sok #include volt.

2014. márc. 18. 00:12
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!