nevite nekdo, jestli se do javy nekdy dostanou i pretizene operatory? vim ze jdou celkem jednoduse nahradit funkcemi, ale z c++ jsem na ne zvykly a myslim, ze hodne zrychluji praci a zvysuji citelnost kodu. a nevite nekdo jestli se tam nekdy dostanou implicitni konstruktory, aby se funkce nemuseli psat se vsemi moznymi kombinacemi parametru.
jeste by me zajimalo jestli v dalsi verzi bude mozne dedit ze 2 a vice ruznych trid.
v c++ uz delam celkem dlouho a v jave jen chvili, takze pokud tam tyhle veci nekde jsou, tak mi, prosim, napiste.
Me se libi jazyky kde si muzu sam nadefinovat zakladni veci jako jsou cisla, stringy, pole, listy atp. a definovani operatoru nad podobnymi (a samozrejme i ruznymi jinymi) objekty je naprosto logicky pozadavek.
Treba scitani, scitat muzu pole, komplexni cisla, cisla s neomezenou presnosti, matice, zretezene seznamy atp.
Nebo operator [], pro hash tabulky a jine kontejnery, recordsety.
Nechapu co s tim ma spousta lidi za problem, blbe pouzivani operatoru je blbost programatora, stejne tak jako blbe jmeno funkce je jeho vlastni blbost. Operatory jsou jen funkce se specialnim jmenem. Kde je nejaky problem ?
Ano, hezky receno :). Osobne si myslim, ze rozlisovani mezi operatory a funkcemi je spis v hlave, ale to se dostavame k funkcionalnimu programovani, na ktere ani Java ani C++ navrhovane nebyly. Pretezovani operatoru v C++ ale tento problem neresi, zato vytvari dalsi.
Ostatne idea kvuli kazde kravine rozsirovat jazyk je primo zhoubna. Mnohem pochopitelnejsi se miz daji snahy resit problem v ramci jednoduchych a jasnych pravidel.
Pretizitelnost operatoru je dobra vec jen, pokud programujete vedecke vypocty. V dalsich pripadech kod vetsinou znecitelnuji.
Implicitnimi konstuktory myslite ass implicitni paramametry. Tak toho se take asi nedockate, prave kvuli citelnosti kodu. (neni problem udelat funkci ktera ma vsechny parametry, a ostatni ji volaji s defaultnimy hodnotami parametru).
Dedeni ze dvou a vice trid bylo nahrazeno pomoci interfacu (C++ muselo zavest dalsi modifikatory por dedeni, aby se tak vyhnulo problemum). Nekdy to je otrava, jindy to ocenuju.
Jasne ze to vsechno nepotrebujes, je to jen kvuli pohodli, rozhodne mi pripada lepsi pouzit treba pro pocitani s vektory zapis a = b + c; nez a = b.plus(c); a to ze nekdo nevhodne pretizi nejaky operator, jeste neznamena, ze je to zbytecne nebo nezadouci. navic si myslim, ze pretizeni operatoru by neznamenal velky zasah do kompilatoru javy a jvm. verim, ze implicitni konstruktory uz mohou javu hodne zmenit a mozna i k horsimu, ale kdyby treba implicitne byly vsechny konstruktory explicitni a uzivatel by si vybral jen ty, ktere chce pouzit pro automatickou konverzi klicovym slovem implicit, nemuselo by to dokonce zmenit ani manualy, ale jenom je rozsirit. ale jak rikam mozna by to bylo velkym zasahem do javy samotne. dedeni z vice trid neni sice potreba, ale nevidim duvod proc by tam nemohlo byt. jinak jsem rad, ze tam dali sablony.
Já taky nevidím důvody, proč by to tam nemělo být. Slušné použití operátorů velmi zpřehledňuje kód. Koneckonců asi není náhoda, že v Javě je operátor+ pro sčítání řetězců. Asi i Sun pochopil, že jsou výhodné.
Není potřeba zabředávat do teorie, protože rozumně použité operátory jsou užitečnou věcí.
Můj názor prostě je, že skutečný vývoj Javy skutečně akcelerovala až konkurence .NET a taky neustálé snahy IBM.
<noflame>Jinak jsem si zvykl, že lidé kolem Javy jsou velmi nekritičtí vůči svému miláčkovi.</noflame>