Seriozní porovnání .NETu a Javy

anonym

Re:Seriozní porovnání .NETu a Javy
« Odpověď #45 kdy: 29. 01. 2018, 19:42:23 »
V Céčku žádné null není, pouze 0, a maximálně NULL jako makro. V C++ také není, od verze C+11 je tam ale typ nullptr_t, který lze použít při přetížení (OOP) metod. Tam bych řekl, že se lze porovnávání vyhnout též.

V Céčku můžeš mít přece null pointer, což je to samé v Javě a .NETu, jako null, vzhledem k tomu, že v těchto jazycích vše, kromě primitivních typů, pracuje přes reference.


Honza

Re:Seriozní porovnání .NETu a Javy
« Odpověď #46 kdy: 29. 01. 2018, 20:01:13 »
V Céčku žádné null není, pouze 0, a maximálně NULL jako makro. V C++ také není, od verze C+11 je tam ale typ nullptr_t, který lze použít při přetížení (OOP) metod. Tam bych řekl, že se lze porovnávání vyhnout též.

V Céčku můžeš mít přece null pointer, což je to samé v Javě a .NETu, jako null, vzhledem k tomu, že v těchto jazycích vše, kromě primitivních typů, pracuje přes reference.
Jistě že můžu mít null pointer, ale není to definovaný typ v C, ale pouze adresa = 0. Tedy to je číslo. Zatímco v Javě i .Netu to je typ, a není to totéž jako 0. Každopádně to vynechání kontrol na null se týkalo OOP, což C není.

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #47 kdy: 29. 01. 2018, 20:35:30 »
V Céčku žádné null není, pouze 0, a maximálně NULL jako makro. V C++ také není, od verze C+11 je tam ale typ nullptr_t, který lze použít při přetížení (OOP) metod. Tam bych řekl, že se lze porovnávání vyhnout též.

V Céčku můžeš mít přece null pointer, což je to samé v Javě a .NETu, jako null, vzhledem k tomu, že v těchto jazycích vše, kromě primitivních typů, pracuje přes reference.
Jistě že můžu mít null pointer, ale není to definovaný typ v C, ale pouze adresa = 0. Tedy to je číslo. Zatímco v Javě i .Netu to je typ, a není to totéž jako 0. Každopádně to vynechání kontrol na null se týkalo OOP, což C není.

Přesně. Zatímco v C není možné použít nic jiného, než adresa == 0, v OOP je to naopak nežádoucí. Bohužel zvyk je železnou košilí a programátoři zvyklí na C/C++ si to tahají s sebou do OOP.

Příklady uvedené výše zakaznik?.DodaciUdaje?.Adresa?.PSC(); či zakaznik.DodaciUdaje.Adresa.PSC(); tak či onak odporují zásadám OOP. Porušují totiž Démeteřin zákon.

jpu

Re:Seriozní porovnání .NETu a Javy
« Odpověď #48 kdy: 29. 01. 2018, 20:59:53 »
oosobne na porovnani ci je objekt null, alebo nie, nevidim nic zleho. Implementuju to tak aj ini, firmy, ktorych frameworky sa bezne pouzivaju. Urcite lepsie, ako to nechat zajst az do hodeni exception. S Kitom musi byt sranda robit.

v

Re:Seriozní porovnání .NETu a Javy
« Odpověď #49 kdy: 29. 01. 2018, 21:07:42 »
V Céčku žádné null není, pouze 0, a maximálně NULL jako makro. V C++ také není, od verze C+11 je tam ale typ nullptr_t, který lze použít při přetížení (OOP) metod. Tam bych řekl, že se lze porovnávání vyhnout též.

V Céčku můžeš mít přece null pointer, což je to samé v Javě a .NETu, jako null, vzhledem k tomu, že v těchto jazycích vše, kromě primitivních typů, pracuje přes reference.
Jistě že můžu mít null pointer, ale není to definovaný typ v C, ale pouze adresa = 0. Tedy to je číslo. Zatímco v Javě i .Netu to je typ, a není to totéž jako 0. Každopádně to vynechání kontrol na null se týkalo OOP, což C není.

Přesně. Zatímco v C není možné použít nic jiného, než adresa == 0, v OOP je to naopak nežádoucí. Bohužel zvyk je železnou košilí a programátoři zvyklí na C/C++ si to tahají s sebou do OOP.

Příklady uvedené výše zakaznik?.DodaciUdaje?.Adresa?.PSC(); či zakaznik.DodaciUdaje.Adresa.PSC(); tak či onak odporují zásadám OOP. Porušují totiž Démeteřin zákon.
programátoři v C++ mají na výběr mezi ukazateli a referencemi a možná často místo nějakých pouček používají rozum


Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #50 kdy: 29. 01. 2018, 22:24:33 »
oosobne na porovnani ci je objekt null, alebo nie, nevidim nic zleho. Implementuju to tak aj ini, firmy, ktorych frameworky sa bezne pouzivaju. Urcite lepsie, ako to nechat zajst az do hodeni exception. S Kitom musi byt sranda robit.

Pořád lepší pracovat s výjimkami, než je polykat nebo je měnit za nějaké podivné stavové kódy, jak někdy v poválečných dobách.

Když se podívám na práci s výjimkami v C#, tak se ani nedivím, že je vývojáři nemají rádi. Musí to být fakt opruz.

FrantaPepa1

Re:Seriozní porovnání .NETu a Javy
« Odpověď #51 kdy: 29. 01. 2018, 22:30:29 »
Místo porovnání platforem .NET Core a Java, frameworků atd. se tu opět řeší takový nesmysly.

harrison314

Re:Seriozní porovnání .NETu a Javy
« Odpověď #52 kdy: 30. 01. 2018, 07:12:49 »
3 zo 4 stran diskusie su doslova zatrolene kitom a tymi co sa nechali chytit, je to vzdy o tom istom.

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #53 kdy: 30. 01. 2018, 09:01:14 »
3 zo 4 stran diskusie su doslova zatrolene kitom a tymi co sa nechali chytit, je to vzdy o tom istom.

Koho jsem podle tebe v diskuzi napadal? Pouze odpovídám na všetečné dotazy.

dustin

Re:Seriozní porovnání .NETu a Javy
« Odpověď #54 kdy: 30. 01. 2018, 09:13:41 »
Trolení je nadmnožina napadání...

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #55 kdy: 30. 01. 2018, 09:31:33 »
Pouze trpělivě vysvětluji, že syntaktický cukr, který má C#, ale Java ne, je zcela zbytečný. Že ho chtějí i programátoři i v Javě a nechávají si kvůli tomu generovat boilerplates, je už jejich problém. Java prostě dala přednost čistějšímu návrhu.

Je to dostatečně seriózní porovnání .NETu a Javy nebo se raději bavíte o mně?

Karásek, zvědavý invalida

Re:Seriozní porovnání .NETu a Javy
« Odpověď #56 kdy: 30. 01. 2018, 10:18:29 »
Pouze trpělivě vysvětluji, že syntaktický cukr, který má C#, ale Java ne, je zcela zbytečný. Že ho chtějí i programátoři i v Javě a nechávají si kvůli tomu generovat boilerplates, je už jejich problém. Java prostě dala přednost čistějšímu návrhu.

Je to dostatečně seriózní porovnání .NETu a Javy nebo se raději bavíte o mně?

Já programování nerozumím. Nevím, co je .NET, nevím, co je počítač.
Ale nějak tomu nerozumím. Takže máme něco co se jmenuje null. Nevím, co to je, ale v ideálním světě bych to neměl dostávat, takže bych v ideálním světě nepotřeboval testovat, jestli jsem to dostal. A výjimečná situace, kdy to dostanu se řeší výjimečným způsobem.
Ale v reálném světě to dostávám. A často. Částečně proto, že část světa se kterou interaguji, je plná chyb a částečně proto, že jiní odborníci mají jinou představu o ideálním světě a tu věc zvanou null nezavrhují.

Takže je něco, co reálně existuje a způsobuje to komplikace. A ty tvrdíš, že nástroj, který práci s tou věcí usnadňuje je zbytečný. Dokonce zcela zbytečný.
Kluci z vedlejší programátorské vesnice to nemají a někteří to chtějí a protože to nemají, tak to různě obcházejí. Ale v ideálním světě to neexistuje, takže je to zbytečné.

Připadá mi to jako velmi rozporuplná argumentace. Ale to je určitě tím, že programování nerozumím. Kdybys psal, že je to nečisté, nebo proti programátorskému pánuoopbohu, tak bych to chápal. Ale že je to ZCELA zbytečné...

Kit

Re:Seriozní porovnání .NETu a Javy
« Odpověď #57 kdy: 30. 01. 2018, 11:23:09 »
Připadá mi to jako velmi rozporuplná argumentace. Ale to je určitě tím, že programování nerozumím. Kdybys psal, že je to nečisté, nebo proti programátorskému pánuoopbohu, tak bych to chápal. Ale že je to ZCELA zbytečné...

Null je v C# i v Javě, o tom teď nebyla řeč.


Řeč byla o syntaktickém cukru, kterého má Java méně než C#. Podle mne je to správně.

ava

Re:Seriozní porovnání .NETu a Javy
« Odpověď #58 kdy: 30. 01. 2018, 11:27:06 »

Já programování nerozumím. Nevím, co je .NET, nevím, co je počítač.
Ale nějak tomu nerozumím. Takže máme něco co se jmenuje null. Nevím, co to je, ale v ideálním světě bych to neměl dostávat, takže bych v ideálním světě nepotřeboval testovat, jestli jsem to dostal.


Přesně tak, proto je nejlepší používat jazyky, které null nemají - Scala (tam sice je, ale jen kvůli interop s Javou, jinak se nepoužívá), Rust, ...

https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/

Re:Seriozní porovnání .NETu a Javy
« Odpověď #59 kdy: 30. 01. 2018, 14:50:13 »
Pokud to chcete čisté, použijte Optional. IMHO se moc netýká srovnání java vs. .NET.

Jinak už ta formulace dotazu je zavádějící - srovnávejte srovnatelné (jazyk s jazykem, runtime s runtimem,  framework s frameworkem). Takže  by  měla být srovnávána např. java vs. C#.