[Javalist] Java 8
Peter Verhas
peter at verhas.com
2014. Már. 21., P, 07:47:34 CET
Es miert nem fordul le öregesen is úgy h régi jvm-n is fusson ha a target 1.6 pl?
On Fri, Mar 21, 2014 at 6:01 AM, Tamás Viktor <viktor.tamas at gmail.com>
wrote:
> Ja. Éppen ezért kellet várni ennyit, mert invokedynamic-cal akarták
> megcsinálni. Sima névtelen osztályokkal már hamarabb is össze tudták volna
> dobni, de az nem lett volna annyira hatékony futásidőben. Tekintve, hogy
> elég sokszor használt feature lesz, rá akartak menni a hatékony
> megvalósításra. (Brian Goetz mondta a Devoxx-on) V
> 2014-03-20 21:11 GMT+01:00 Zsombor <gzsombor at gmail.com>:
>> Alaposabban megnézve, hogy mi történik a háttérben, valóban van némi VM
>> mágia, invokedynamic-sal, amivel meg tudják spórolni, hogy a VM direktben
>> csináljon egy functional interfacet egy privát függvényből - amivé a lamdba
>> kifejezés fordul. S úgy tűnik, hogy a javac nem tud 7-es bytecode-ra
>> fordítani, ha vannak lambdák is a kódban.
>> A függvény nevekkel olyan nagy probléma - ha jól értem - nincsen. Mivel
>> ez mindig már fordítás időben kiderül, olyat ugyanis nem lehet írni, hogy
>>
>> public void sum (Collection<X> xs, (X) -> int func) {
>> int result = 0;
>> for (X x : xs) {
>> result += func.*apply*(x);
>> }
>> return result;
>> }
>>
>> hanem muszáj ilyet:
>>
>> interface Summér<X> {
>> int szamol(X param);
>> }
>>
>> public void sum(Collection<X> xs, Summér<X> func) {
>> int result = 0;
>> for (X x : xs) {
>> result += func.*szamol*(x);
>> }
>> return result;
>> }
>>
>> S amikor hívjuk, akkor a fordító elég okos, hogy a megfelelő tipussá
>> konvertálja ezt:
>> sum(strings, (String s) -> s.length());
>>
>>
>> Vagy valamiről lemaradtam :)
>>
>>
>>
>> 2014-03-20 20:41 GMT+01:00 Peter Verhas <peter at verhas.com>:
>>
>> Annyi a specialitás, hogy nem lehet tudni, hogy mi a neve a metódusnak.
>>> Lambadánál ugye nincs is, az interface meg bármilyen nevet definiálhat,
>>> csak ne legyen több. Még nem mélyedtem el benne munka mellett (ahol még
>>> mindig J6) mert most még azt nézem amiről szerdára a blogot írom. De ami
>>> késik az nem a közelben gyártott óra.
>>>
>>> --
>>> Dipl. Ing. Peter Verhas
>>> peter at verhas.com
>>> +41791542095
>>> skype: verhas
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 2014.03.20., at 20:35, Zsombor <gzsombor at gmail.com> wrote:
>>>
>>> A lambda kifejezések nem új nyelvi elemekké fordulnak, hanem kutya
>>> közönséges objektumokká, amik egy funkcionális interfészt implementálnak.
>>> Önmagában emiatt még simán lehetne futtatni régebbi VM-eken is.
>>>
>>> Üdv
>>> Zs
>>>
>>>
>>> 2014-03-20 19:44 GMT+01:00 Gábor Garami <gabor.garami at hron.me>:
>>>
>>>> Ha es amennyiben nem tartalmaz a kod olyan nyelvi elemeket, amiknek
>>>> nincs korabbi JVM-beli megfelelojuk. Es a closure-t (lambda kifejezes,
>>>> hivd ahogy akarod) eleg korulmenyes portolni kodszinten korabbi VM-re
>>>> - ha lehet egyaltalan.
>>>> Garami Gábor
>>>> E-mail: gabor.garami at hron.me
>>>> Tel: +36 20 235 9621
>>>> MSN: hrgy at vipmail.hu
>>>> Skype: hron84
>>>>
>>>>
>>>> 2014-03-20 13:46 GMT+01:00 Peter Verhas <peter.verhas at gmail.com>:
>>>> > Szerintem a Java 8-ban irt library is fordithato korábbival
>>>> kompatibilis
>>>> > JVM-re. Nem így van?
>>>> >
>>>> >
>>>> > On Thu, Mar 20, 2014 at 11:48 AM, auth.gabor at javaforum.hu
>>>> > <auth.gabor at javaforum.hu> wrote:
>>>> >>
>>>> >> Hi,
>>>> >>
>>>> >> > Szerintem soha. Hiszen a google nem akar fizetni semmit az
>>>> Oraclenek a
>>>> >> > javáért...
>>>> >>
>>>> >> Válasszuk (legalább ketté) a dolgot: a JVM fejlesztés nem érinti az
>>>> >> Android-ot, mert teljesen más a VM, a nyelvi fejlesztésekből pedig azt
>>>> >> kell megnézni, hogy melyik vehető át a platform széttúrása nélkül. :)
>>>> >>
>>>> >> De előbb-utóbb át kell venni a nyelvi elemeket, mert a Lambda miatt
>>>> nagyon
>>>> >> sok library ki fog jönni Java8+ kompatibilitási igénnyel, s
>>>> Android-on az
>>>> >> eseményvezéreltség miatt nagyon sokat javítanak a kód
>>>> áttekinthetőségén és
>>>> >> minőségén a Lambda.
>>>> >>
>>>> >> Bye,
>>>> >> Auth Gábor
>>>> >>
>>>> >>
>>>> >> _______________________________________________
>>>> >> Javalist mailing list
>>>> >> Javalist at lists.javaforum.hu
>>>> >> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>> >
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > Javalist mailing list
>>>> > Javalist at lists.javaforum.hu
>>>> > http://lists.javaforum.hu/mailman/listinfo/javalist
>>>> >
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at lists.javaforum.hu
>>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>>
>>>
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>>>
>>>
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20140320/2a0387a7/attachment.html>
További információk a(z) Javalist levelezőlistáról