Jak se vyhnout frustraci s Java eventy?

perceptron

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #60 kdy: 03. 02. 2016, 10:43:59 »
Kód: [Vybrat]
package cz.root;

public class Counter {
    public interface ValueChangedListener {
        void valueChanged(int newValue);
    }

    private ValueChangedListener valueChangedListener = (value -> {});

    private int value;

    public int getValue() {
        return value;
    }

    public void setValue(int newValue) {
        if(this.value != newValue) {
            this.value = newValue;
            fireValueChanged(this.value);
        }
    }

    private void fireValueChanged(int newValue) {
        valueChangedListener.valueChanged(newValue);
    }

    public void setValueChangedListener(ValueChangedListener valueChangedListener) {
        this.valueChangedListener = valueChangedListener;
    }

    public static void main(String[] args) {
        Counter a = new Counter();
        Counter b = new Counter();

        a.setValueChangedListener(b::setValue);

        a.setValue(12);
        System.out.printf("a = %d, b = %d\n", a.getValue(), b.getValue());

        b.setValue(48);
        System.out.printf("a = %d, b = %d\n", a.getValue(), b.getValue());
    }

}


Citace
Jinak dost blbý argument vzhledem k tomu, jak Android furt laguje, ale to je momentálně off topic.
a uz ste skusil na tom istom procesore iOS alebo windows phone?

Citace
Čím dál víc firem láme nad Javou hůl.
a to su ktore?


Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #61 kdy: 03. 02. 2016, 11:14:20 »
To si děláte vážně legraci, nutí programátory psát slušné programy? Kolik vám je let, dělal jste někdy něco v .NET? To byste totiž zažil, co to je, když platforma nutí, nebo spíše vede, k tomu psát slušné programy a dělat slušné knihovny, které uživatel může okamžitě začít používat.

Cim mensi znalosti, tim silnejsi nazory. O Jave ocividne vis houbeles (to je OK, kazdy nejak zacinal), ale uz v tom mas jasno.

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #62 kdy: 03. 02. 2016, 12:45:44 »
perceptronovi děkuju za kód.

Ono ten root zase enzklamal. Člověk se tu na něco zeptá (jak implemenovat eventy), trochu přidrzle ale ono by to dopadlo stejně tak či tak, a všichni tu pindají různě, místo toho aby někdo napsal, že interface mám implementovat jen s jednou metodou, čímž z něj udělám functional interface, a pak si naň můžu přímočaře připojit metody z trida::metoda, a že tato světoborná funkcionalita, existující v jiných jazycích už řadu let, byla přidána do javy 1.8. Opravdu pozoruhodné, ale na rootu klasika. Kdyby to zde ti světoborní javisti napsali hned v prvním příspěvku, nemusel tady zase vzniknout takový flame.


Dobře, takže Observable a Observer je zastaralá věc, zřejmě se drží v knihovně z důvodu zpětné kompatibility, ale nemá žádnou náhradu. To není žádná frajeřina, ani svoboda, že si programovou architekturu bude psát kdo chce jak chce a že ani v knihovně Javy není žádný standard pro eventy - tomu se říká bordel. Jeden si implementuje do knihovny eventy tak, druhý onak. Rozšiřuje to množinu "pro jednu a tutéž věc, několik různých řešení", která je podmnožinou množiny "už se nevyznám v tom bordelu", což jde dobře zažít, když někdo používá java  knihovny z githubu. Ty jsou tak na úrovni starších knihoven do C++, v kterých se používají ústvičně jiné notace, dle chuti a nálady každého programátora.

Možná že to není taková nevýhoda pro korporace, které si vyvíjí vlastní softy a mají vlastní firemní standardy pro implementaci např. právě event. POČKAT.... ŘEKL JSEM PRO KORPORACE? Ono se někde jinde Java používá než v korporacích? AHA, NE, NEPOUŽÍVÁ, tak to jsem trefil do černého.

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #63 kdy: 03. 02. 2016, 12:55:16 »
To si děláte vážně legraci, nutí programátory psát slušné programy? Kolik vám je let, dělal jste někdy něco v .NET? To byste totiž zažil, co to je, když platforma nutí, nebo spíše vede, k tomu psát slušné programy a dělat slušné knihovny, které uživatel může okamžitě začít používat.

Cim mensi znalosti, tim silnejsi nazory. O Jave ocividne vis houbeles (to je OK, kazdy nejak zacinal), ale uz v tom mas jasno.

Pakliže ty jsi nikdy nedělal v .NETtech, tak v tom máš až přespříliš jasno ty, ne já. Je jedno jak dobře umíš Javu, když nejsi schopen srovnání. Tak nemachruj.

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #64 kdy: 03. 02. 2016, 13:00:07 »
V mém ročníku na vš bylo takových 100 lidí, ale na jedné ruce bych spočítal ty, kteřížto jsou Javisti, vč. mě. Javu nikdo nechce dělat. Jo, z vedlejší univerzity, tam je javistů dost. Víš proč? Protože tam C# ani nemají, nikdy ho nezažili. U nás, kdo zažil C#, je pro něj Java shit. Naštěstí já jsem hrdý člověk a rád si dělám věci těžší, tak je ze mě Javista  :D a to ti řeknu rovnou, že C#je tak o dvě třídy dál než Java, ale já bych nerad pracoval pro Microsoft, obzvlášť ne po tom, kam došly W10.


perceptron

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #65 kdy: 03. 02. 2016, 13:04:47 »
Citace
nemusel tady zase vzniknout takový flame.
keby ste napady neignorovali (signals 4 j) a vyjadrili sa k nim namiesto frajerovania, mali by ste vysledok skor

Citace
AHA, NE, NEPOUŽÍVÁ, tak to jsem trefil do černého.
ste si isty ze sa riadite svojimi vlastnymi pravidlami diskusie? a co capslock, zasekava, zasekava?

Java veci z hlavy: elasticsearch, hbase, akka (to viac scala), spark, android

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #66 kdy: 03. 02. 2016, 13:15:12 »
Jenže. Na Sig4j jsem se díval a nezdálo se mi to úpříliš poplární, navíc to vyžaduje verzi 1.8. Ne že bych chtěl populární věci, ale sig4j nikdy nebude pořádný standard. Kdybych chtěl svou knihovnu někomu poskytnout, musel bych ho navíc nutit používat rovněž sig4j, tedy mu nařizovat, jak má zpracovávat eventy. Já chtěl nějaké standardní řešení. CAPS LOCK

Sten

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #67 kdy: 03. 02. 2016, 13:39:09 »
Jenže. Na Sig4j jsem se díval a nezdálo se mi to úpříliš poplární, navíc to vyžaduje verzi 1.8. Ne že bych chtěl populární věci, ale sig4j nikdy nebude pořádný standard. Kdybych chtěl svou knihovnu někomu poskytnout, musel bych ho navíc nutit používat rovněž sig4j, tedy mu nařizovat, jak má zpracovávat eventy. Já chtěl nějaké standardní řešení. CAPS LOCK

A Qt je standardní knihovna v ISO C++ odkdy?

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #68 kdy: 03. 02. 2016, 13:39:27 »
V mém ročníku na vš bylo takových 100 lidí, ale na jedné ruce bych spočítal ty, kteřížto jsou Javisti, vč. mě. Javu nikdo nechce dělat. Jo, z vedlejší univerzity, tam je javistů dost. Víš proč? Protože tam C# ani nemají, nikdy ho nezažili. U nás, kdo zažil C#, je pro něj Java shit. Naštěstí já jsem hrdý člověk a rád si dělám věci těžší, tak je ze mě Javista  :D a to ti řeknu rovnou, že C#je tak o dvě třídy dál než Java, ale já bych nerad pracoval pro Microsoft, obzvlášť ne po tom, kam došly W10.

Sice o tom vim houby ale je to shit.

none_

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #69 kdy: 03. 02. 2016, 13:46:30 »
V mém ročníku na vš bylo takových 100 lidí, ale na jedné ruce bych spočítal ty, kteřížto jsou Javisti, vč. mě. Javu nikdo nechce dělat. Jo, z vedlejší univerzity, tam je javistů dost. Víš proč? Protože tam C# ani nemají, nikdy ho nezažili. U nás, kdo zažil C#, je pro něj Java shit. Naštěstí já jsem hrdý člověk a rád si dělám věci těžší, tak je ze mě Javista  :D a to ti řeknu rovnou, že C#je tak o dvě třídy dál než Java, ale já bych nerad pracoval pro Microsoft, obzvlášť ne po tom, kam došly W10.

To je dobre, aspon zbyde na ostatni vic penez...:D

Sten

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #70 kdy: 03. 02. 2016, 14:03:25 »
Jenže. Na Sig4j jsem se díval a nezdálo se mi to úpříliš poplární, navíc to vyžaduje verzi 1.8. Ne že bych chtěl populární věci, ale sig4j nikdy nebude pořádný standard. Kdybych chtěl svou knihovnu někomu poskytnout, musel bych ho navíc nutit používat rovněž sig4j, tedy mu nařizovat, jak má zpracovávat eventy. Já chtěl nějaké standardní řešení. CAPS LOCK

Standardní řešení je Message Service, jen je to poměrně heavy-weight.

Existuje i knihovna pro starší Javu, která místo lambd a FunctionalInterface používá anotačními procesor.

Qt má MOC, takže ani nejde zkompilovat standardním kompilátorem. Velmi, velmi standardní…

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #71 kdy: 03. 02. 2016, 14:18:17 »
Jenže. Na Sig4j jsem se díval a nezdálo se mi to úpříliš poplární, navíc to vyžaduje verzi 1.8. Ne že bych chtěl populární věci, ale sig4j nikdy nebude pořádný standard. Kdybych chtěl svou knihovnu někomu poskytnout, musel bych ho navíc nutit používat rovněž sig4j, tedy mu nařizovat, jak má zpracovávat eventy. Já chtěl nějaké standardní řešení. CAPS LOCK

Standardní řešení je Message Service, jen je to poměrně heavy-weight.

Existuje i knihovna pro starší Javu, která místo lambd a FunctionalInterface používá anotačními procesor.

Qt má MOC, takže ani nejde zkompilovat standardním kompilátorem. Velmi, velmi standardní…

Podívej... díky za tyto informace, ale já na eventy nechci externí knihovnu. Jsem divnej, že na takovou základní věc, jako jsou eventy, nechci knihovnu? To má být přece nějak slušně obsažené v nativní knihovně Javy. je tam Observer a Observable. Fajn. Chtělo by to ale něco pořádnějšího. Bohatě by mi stačilo, kdyby tam byl interface IObservable, který by předepisoval metody z Observable. Opravdu by mi to stačilo ke štěstí. Kdybych byl jó rozmazlený, chtěl bych ještě Observable<T>. Chci opravdu tak moc, že chci pořádné standarní zázemí pro eventy přímo v nativní knihovně? Asi jo.

Celý počítač je plný event. Je to stroj, reaguje celý ve stylu Akce-Reakce, je to mechanismus. Slušný programovací jazyk, který říká že je  OOP, by měl mít dobrou podporu pro eventy. Eventy jsou naprostý základ, tohle je principiální záležitost. V Javě nejsou implementovány přímo, a není pro ně ani pořádné zázemí v nativní knihovně. Jsem z toho opravdu nešťasten.

perceptron

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #72 kdy: 03. 02. 2016, 14:25:39 »
Citace
Jsem divnej, že na takovou základní věc, jako jsou eventy, nechci knihovnu?
ano, ste divny.

tldr; java nie je c# a z toho sa vam zasekava capslock

1) vymysleli ste si ze prave java musi byt ten jazyk, co to musi mat v stdlib.
2) vobec vam nevadi ze C ktorym tu machate nesplna vase kriteria (Qt neni stdlib, kompilacia nie je straightforward)
3) odmietate pouzit riesenie ktore ma rovnaky pocet riadkov ako to vase, ziadne zavislosti (ani na stdlib). ano, moje riesenie
4) odmietate pouzit ine napady lebo plati 1)
5) mate nejaku paranoju k cudzim knizniciam,k starsim verziam javy a ku korporatu, ale c# v korporate vam paradoxne nevadi

Zelenac

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #73 kdy: 03. 02. 2016, 14:42:32 »
Citace
Jsem divnej, že na takovou základní věc, jako jsou eventy, nechci knihovnu?
ano, ste divny.

tldr; java nie je c# a z toho sa vam zasekava capslock

1) vymysleli ste si ze prave java musi byt ten jazyk, co to musi mat v stdlib.
2) vobec vam nevadi ze C ktorym tu machate nesplna vase kriteria (Qt neni stdlib, kompilacia nie je straightforward)
3) odmietate pouzit riesenie ktore ma rovnaky pocet riadkov ako to vase, ziadne zavislosti (ani na stdlib). ano, moje riesenie
4) odmietate pouzit ine napady lebo plati 1)
5) mate nejaku paranoju k cudzim knizniciam,k starsim verziam javy a ku korporatu, ale c# v korporate vam paradoxne nevadi

Vy jste mi tu dal řešení? To je řešení, které bude fungovat jen od v 1.8, co když si budu chtít třeba na RPi, nebo někam kde musí běžet starší verze Javy, portovat svoje knihovny? To je jedna věc. Druhá věc: vaše řešení neobsahuje elegantní způsob vyhnutí se ústavičné implementaci AddListerů, RemoveListenerů a dalších, protože to máte implementováno jen pro jednoho listenera. Vaše řešení ani není tak dobré jako to, co používá Swing u registrace listenera. Swing to má sice ukecanější, ale je to standardní, je to elegantní a kód vygeneruje eclipse. Potřebuji ještě vyřešit elegantně implementaci Observable třídy, abych se neupsal k smrti a aby to bylo vyřešeno standardně, ne tak, že si vymyslím nějakou svou třídu Observable. Nemám to rád u externích knihoven, když si to každý dělá jak se mu zlíbí, tak to nebudu dělat ani u sebe. Na zbytek nereaguju protože jsou to připomínky k něčemu, co já v principu buďto netvrdím, nebo to považuju za holý nesmysl (jako třeba že chci, aby Java měla v stdlib podporu pro události - ANO TO OPRAVDU CHCI, vždyť je naprosto elementární věc).

andy

Re:Jak se vyhnout frustraci s Java eventy?
« Odpověď #74 kdy: 03. 02. 2016, 14:51:41 »
 :-X