Doporučte programovací jazyk pro Windows

qelurg

  • ****
  • 322
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #150 kdy: 10. 03. 2020, 05:03:31 »
Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.

Ne panove, to je zkratka moje prohlednuti, ze vy tu vubec nemate tuseni o cem to melete.
Pisu tady, ze signatura java metody je vcetne parametru metody a vrati se mi dotaz, jak bych asi tu python zpatlaninu udelal v Jave.

Neblábol Stando, už i ty jsi pochopil v čem a proč je Java špatná. Nenašel jsi odvahu sem dát implementaci něčeho, co je Javě vlastní (přetěžování) a pro Python je to škrábání se na krku přes hlavu. I tak to má Python stručnější a přehlednější. Pokud nesouhlasíš, hoď sem ukázku.


qelurg

  • ****
  • 322
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #151 kdy: 10. 03. 2020, 05:49:04 »
A) Ano, Java je dost ukecany jazyk a taky hodne, hodne tezkopadny. A me to taky dost vadi, protoze je to strasna drina. Jenze na velkych projektech presne tohle potrebujete. Tam se to vam to vrati mnohonasobne vic diky vzniknuvsimu poradku.
...
B) Je to strasne otravne, ale taky strasne dulezite pro Javovske projekty, presne takovato striktnost dela Javu Javou a proto se tak hodne pouziva v enterprise.
...
C) Takova striknost umoznuje dosahnout to, cemu se rika, ze by mel existovat jediny zpusob, jak neco udelat. Na vyse uvedene omezeni sice bude Pepik programator nadavat, ale prinuti ho to strcit takove veci na jedine misto. A pro ostatni programatory je to prehlednejsi.

A) Těžkopádný nepřehledný jazyk člověk nepotrebuie ani na malych ani na velkych projektech. Ten hloupý jazyk je dnes největší nevýhoda Javy. Potřebujete jednotnost a přehlednost. Jednotnosti se dá dosahovat i jinak, existuje na to celá řada nástrojů, přehledná Java není.

B) V enterprise se java používá z jiných důvodů. Dnes hlavně ze setrvačnosti, je to zavedený jazyk, který pro toto prostředí vzniknul, měl pro toto prostředí řadu unikátních (dnes běžných) vlastností a byl do tohoto prostředí marketingově tlačen. Jako náhrada C a C++ měl řadu výhod a stály za ním velké peníze. Oproti tomu je Python příklad výborného jazyka, za kterým nikdo velký nestojí a který vyrostl zdola. Nevýhodou jak Javy tak Pythonu pro enterprise je, že nejsou standardizované.

C) A proto jsou v Javě tři druhy komentářů. Proč? Protože pro různé použití je jednou výhodnější ten a podruhé onenen. Tedy nemáte pravdu. Standardizované konstrukce pro specifické použití kód naopak zjednodušují, jsou přehlednější a snadněji pochopitelnější, než když si to každý programátor implementuje po svém. Třeba pythoní list comprehension, že. Nic co by nešlo udělat základními programovacími primitivy.


qelurg

  • ****
  • 322
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #152 kdy: 10. 03. 2020, 06:18:52 »
Takže Python naopak umožňuje jednu a tu samou věc udělat různými způsoby,  je multiparadigmatický a podporuje různé způsoby programování:

Kód: [Vybrat]
letters = []

for letter in 'human':
    letters.append(letter)

print(letters)
Kód: [Vybrat]
letters = [ letter for letter in 'human' ]
print(letters)
Kód: [Vybrat]
letters = list(map(lambda letter: letter, 'human'))
print(letters)

Přičemž mě je nejbližší ten prostřední.

Ale i do Javy se už dostaly nějaké funkcionální prvky a lambda. I v ní jde dělat některé věci různě. Ale pořád je celkově příliš těžkopádná, ukecaná a nepřehledná. Na Javě je dobré JRE, a je pravda, že toto prostředí lze používat naštěstí i s jinými jazyky.

qelurg

  • ****
  • 322
    • Zobrazit profil
    • E-mail
Re:Datove tridy v Pythonu
« Odpověď #153 kdy: 10. 03. 2020, 06:53:18 »
Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal
To je trochu demagogické tvrzení, že. Jython je kompilátor Python kódu produkující bajtkód pro JVM. Umožňuje v prostředí JVM používat jazyk Python, což je výhodné. Python nabízí mnohem vyšší produktivitu, Python kód je 2 až 10 × kratší než Java kód. Ano, proto neexistuje kompilátor Java jazyka do byte code Pythonu. Ne že by to nešlo, ale nikdo o tento těžkopádný jazyk na Python platformě nestojí, nemá žádný přínos. Na Javě je zajímavé jen to JVM. Proto pro JVM vzniká tolik jazyků, je tu ohromující snaha se jazyku Java vyhnout. https://en.m.wikipedia.org/wiki/List_of_JVM_languages

Re:Doporučte programovací jazyk pro Windows
« Odpověď #154 kdy: 10. 03. 2020, 06:56:55 »
Po par letech zkusenosti s Javou a C# a rocni zkusenosti s GO doporucuji GO.
Ja osobne to vidim takto GO > C# > Java.
Ve vsech trech udelam to stejne, ale...
GO je nejmene ukecane
GO mi dela nejmensi binarky
GO ma psane pravidla formatovani kodu, zjednodusuje to prehlednost ve zdrojacich, co vidite poprve (proste jakobyste to psali sami)
GO mi pripadne nejprehlednejsi, kdyz se podivam na kod. Taky je toto kodu nejmin
GO ma perfektne zvladnute rutiny (thready, procesy, ...)

Ale je fakt ze s Pythonem mam zkusenosti nula

Java programator, co je unesen z gofmt a nepoznal taje ctrl+F v eclipse.
Ktery je unesen z GO, co neumi ani takovou trivialitu, jako je LinkedHashMap a neumi ani generika, aby si to koder dodelal.

A je unesen z prehlednosti kodu, kde jsou po kazdem volani funkce nasazeny if(err!=nil) dohromady zmatlany business kod a error handling do jedne hromady hnoje, protoze to neumi ani vyjimky, natoz aby byly dedicne hierarchicke.

Vystup tohoto java kodera musel byt neco velice zajimaveho

Och je, chtel jsem na to odpovedet, ale ...
Pan si misto normalnich odpovedi na svou puvodni otazku precte hromadu nadavek, urazek a obvinovani mezi zkusenymi uzivateli rootu. Ze vam neni hanba. Takze misto doporuceni je toto vlakno z 80% hadani a urazeni se mezi sebou. Jeste jednou: ze vam neni hanba, zkuseni uzivatele rootu, co maji PORADIT ostatnim.
« Poslední změna: 10. 03. 2020, 07:02:33 od Petr Jahoda »


Ink

  • ****
  • 402
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #155 kdy: 10. 03. 2020, 07:14:02 »
Och je, chtel jsem na to odpovedet, ale ...
Pan si misto normalnich odpovedi na svou puvodni otazku precte hromadu nadavek, urazek a obvinovani mezi zkusenymi uzivateli rootu. Ze vam neni hanba. Takze misto doporuceni je toto vlakno z 80% hadani a urazeni se mezi sebou. Jeste jednou: ze vam neni hanba, zkuseni uzivatele rootu, co maji PORADIT ostatnim.

Puvodne jsi napsal "nekrmte trolla" a ted ho po editaci krmis. Puvodni otazka byla, slusne receno, naivni. Vetsina odpovedi, vcetne te tve, vubec neresi podstatu problemu - pokud neni puvodni tazatel sam troll, mel by si napred ujasnit, co pro nej znamena "naucit se programovat" - chce byt programator, lepic kodu, nebo si jen tak sem tam neco zbastlit? Ze se z takto rozplizle otazky stane nakonec flamewar, je zakonite.

qelurg

  • ****
  • 322
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #156 kdy: 10. 03. 2020, 07:53:47 »
Tak po přečtení tohodle: Java 8 JDK: můžu oficiálně používat dva roky starou aplikaci? to je s Javou ještě horší, než jsem si myslel. https://forum.root.cz/index.php?topic=21928.0

podrobnosti: https://www.itnetwork.cz/java/pokrocile/zmena-licence-java11-sdk-a-openjdk
« Poslední změna: 10. 03. 2020, 07:58:29 od qelurg »

Re:Doporučte programovací jazyk pro Windows
« Odpověď #157 kdy: 10. 03. 2020, 08:57:07 »
Tak po přečtení tohodle: Java 8 JDK: můžu oficiálně používat dva roky starou aplikaci? to je s Javou ještě horší, než jsem si myslel. https://forum.root.cz/index.php?topic=21928.0

podrobnosti: https://www.itnetwork.cz/java/pokrocile/zmena-licence-java11-sdk-a-openjdk

Přečti si to celé.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #158 kdy: 10. 03. 2020, 09:23:50 »
Tak po přečtení tohodle: Java 8 JDK: můžu oficiálně používat dva roky starou aplikaci? to je s Javou ještě horší, než jsem si myslel.
Bývá dobré nejprve si zjistit informace a teprve pak si něco myslet. Podporovaných distribucí OpenJDK 8 je docela dost.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #159 kdy: 10. 03. 2020, 10:09:38 »
Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.

Ne panove, to je zkratka moje prohlednuti, ze vy tu vubec nemate tuseni o cem to melete.
Pisu tady, ze signatura java metody je vcetne parametru metody a vrati se mi dotaz, jak bych asi tu python zpatlaninu udelal v Jave.

Neblábol Stando, už i ty jsi pochopil v čem a proč je Java špatná. Nenašel jsi odvahu sem dát implementaci něčeho, co je Javě vlastní (přetěžování) a pro Python je to škrábání se na krku přes hlavu. I tak to má Python stručnější a přehlednější. Pokud nesouhlasíš, hoď sem ukázku.

Budiz, mejme dva typy: A a inherited B
Kód: [Vybrat]
public class A {
public String myName() {
return "I am A";
}
}

public class B extends A  {
@Override
public String myName() {
return "I am B";
}
}

Implementace dvou pretizenych nezavizlych metod, ktere se rozdisi typem parametru (coz je soucast signatury metody jak pisu potreti a mozna nekdo casem vyznam tohoto terminu pochopi):
Kód: [Vybrat]
public void method(A a) {
System.out.println("specific method 1 for \"" + a.myName() + "\"");
}

public void method(B b) {
System.out.println("specific method 2 for \"" + b.myName() + "\"");
}
Povsimneme si, ze se za tim to ucelem neimportuje zadna knihovna ani se to nemusi nikam registrovat a oznackovavat dekoratorama.

Pokud pokud si vystacim s prostredky materskeho typu pripadne interface spolecneho pro vechny typy (nejobvyklejsi varianta) - tak to zapisu jednou generickou metodou:
Kód: [Vybrat]
public <T extends A> void genericMethod(T t) {
System.out.println("generic method for \"" + t.myName() + "\"");
}

Opet, zadne dekoratory, knihovny, registrace. Pouze jedna metoda.

A ted to spustime:
Kód: [Vybrat]
method(new A());
method (new B());
genericMethod(new A());
genericMethod(new B());

Vysledek:

specific method 1 for "I am A"
specific method 2 for "I am B"
generic method for "I am A"
generic method for "I am B"


Toto jsou naproste zaklady javy, uplne mi nebere hlava, proc maj potrebu se hadat o kvalite jazyka lidi, co o nem vi kulantne receno mene nez optimum.

Ja pouzivam Javu i Python protoze je povazuju za nejlepsi jazyky v dane oblasti zajmu coz je Java pro plnotucne aplikace s dlouhou dobou podpory a Python pro jednoucelove skripty.

ByCzech

  • *****
  • 1 816
    • Zobrazit profil
    • E-mail
Re:Doporučte programovací jazyk pro Windows
« Odpověď #160 kdy: 10. 03. 2020, 10:47:36 »
Opet, zadne dekoratory, knihovny, registrace. Pouze jedna metoda.

No a co? Způsob jak se technologicky řeší to a ono v daném jazyce je podružné. Z toho, že Java nepotřebuje dekorátory či knihovny (protože si to tahá přímo "v základu" = v přibalené knihovně) na určité věci, narozdíl od Pythonu je jen ukázka dvou různých řešení téhož a nevypovídá to nic o tom, že automaticky řešení v Javě je lepší, jak to tady nastavujete v téhle diskuzi manipulativně vy.

Toto jsou naproste zaklady javy, uplne mi nebere hlava, proc maj potrebu se hadat o kvalite jazyka lidi, co o nem vi kulantne receno mene nez optimum.

Říká někdo, kdo si plete co to je silné a slabé typování s dynamickým a statickým (a další věci).

Python je dynamicky typovaný jazyk, což neznamená, že není typovaný silně, narozdíl např. od JavaScriptu nebo PHP, které jsou slabě typované (sečtete hrušky a jablka a dá vám to nějaký výsledek).

Javascript:
Kód: [Vybrat]
> '1' + 3
< "13"

Kód: [Vybrat]
$ php -a
Interactive mode enabled

php > echo '3' + 1;
4

Kód: [Vybrat]
$ python3
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> '3' + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Už tuhle diskusi chvíli čtu a to haterství směrem na Python z vás úplně čiší a když nemáte argumenty, tak používáte ty ad hominem. Prostě přiznejte, že neumíte uvažovat v dynamicky typovaném jazyce a využít výhody, které z toho vyplývají a potřebujete mít typy dané staticky předem a jste smířen s nevýhodami, které to sebou nese a je to. Každému vyhovuje něco jiného, některým i více věcí. Oba jazyky mají své místo a použití a nutit způsoby z Javy do Pythonu je kravina. Stejně jako je kravina nutit pravidla angličtiny do češtiny.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #161 kdy: 10. 03. 2020, 11:30:43 »
Už tuhle diskusi chvíli čtu a to haterství směrem na Python z vás úplně čiší a když nemáte argumenty, tak používáte ty ad hominem.

No tak to este doporucuju zapracovat na pochopeni textu.
Jojo, ja tady hatuju Python z toho duvodu, ze ho povazuju za nejlepsi skriptovaci jazyk a pozivam ho denne.
Mmj z duvodu, ktere ukazuji vyse uvedene PHP a Javascript snippety.

Coz nic nemeni na tom, ze kdyz tu zacnou "znalci" blabolit nesmysly na stranu Javy, o ktere vi lautr xxxx, ze ani netusi co to znamena signatura metody, ze se neozvu.
A python mam rad prave proto, ze se nepokousej vynalezat kolo a zavadej featury javy.
Jde to az na uroven dekoratoru, co Java annotations z oka vypadly, klicovych slov (ted ve verzi 3.8 pridan "final") a mechanismus PEP (Python Enhancement Proposal) zase pajcuje JSR (Java Specification Request) vcetne trojciferneho cislovani. Coz je dobre.
Stavajici Python nema na Javu (C#, C++) v oblasti komplexnich dlouhodobe udrzovanych aplikaci vyvijenych v tymu ruzne kvalitnich koderu.

Ono se stalo modou sezony, ze kazdy, kdo ma do zadnice diru tady hatuje Javu, to aby vypadal jako king. A v realu vi prd.
Java ma hodne chyb a ja si o nich rad popovidam. NullPointerException peklo je jedna z nich, nebo problemy s finalize(). To neznamena, ze tu budu cist blaboly.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #162 kdy: 10. 03. 2020, 15:53:50 »
No a co? Způsob jak se technologicky řeší to a ono v daném jazyce je podružné. Z toho, že Java nepotřebuje dekorátory či knihovny (protože si to tahá přímo "v základu" = v přibalené knihovně) na určité věci, narozdíl od Pythonu je jen ukázka dvou různých řešení téhož a nevypovídá to nic o tom, že automaticky řešení v Javě je lepší, jak to tady nastavujete v téhle diskuzi manipulativně vy.

No ona si to java netahá v přibalené knihovně, je to vlastnost jazyka jako takového.

Samozřejmě o charakteru jazyka hodně vypovídá, co je zahrnuto do jazyka, co do standardní knihovny a co je ponecháno na externích nástrojích. Nutně to ale neznamená, že je něco lepší než druhé.

Re:Datove tridy v Pythonu
« Odpověď #163 kdy: 10. 03. 2020, 15:58:16 »
Na Javě je zajímavé jen to JVM. Proto pro JVM vzniká tolik jazyků, je tu ohromující snaha se jazyku Java vyhnout. https://en.m.wikipedia.org/wiki/List_of_JVM_languages

Alternativní jvm jazyky hlavně svědčí o kvalitách celého ekosystému a flexibilitě javové platformy. Dále o kvalitách samotné vm. Komu přestane vyhovovat java, ten přesedlá na příbuzný ale progresivnější jazyk a může pokračovat ve stejném projektu prakticky bez překážek. Tím pádem i to haterství tím anebo druhým směrem přestává celkově dávat smysl, protože vzniká synergie.

Re:Doporučte programovací jazyk pro Windows
« Odpověď #164 kdy: 10. 03. 2020, 16:32:26 »
No a co? Způsob jak se technologicky řeší to a ono v daném jazyce je podružné. Z toho, že Java nepotřebuje dekorátory či knihovny (protože si to tahá přímo "v základu" = v přibalené knihovně) na určité věci, narozdíl od Pythonu je jen ukázka dvou různých řešení téhož a nevypovídá to nic o tom, že automaticky řešení v Javě je lepší, jak to tady nastavujete v téhle diskuzi manipulativně vy.

No ona si to java netahá v přibalené knihovně, je to vlastnost jazyka jako takového.

Samozřejmě o charakteru jazyka hodně vypovídá, co je zahrnuto do jazyka, co do standardní knihovny a co je ponecháno na externích nástrojích. Nutně to ale neznamená, že je něco lepší než druhé.

Ano, plny souhlas.
Ze je neco zadratovane v jazyce nebo stdlib este neznamena, ze je to dobre.
Treba legacy Java logging, nebo stary zadratovany JAX-WS ve spoupraci s pribalenym wsimport, co podporuje nahodne vybrane featury WS-SOAP standardu - je na streleni se do hlavy. A tak kazdy mavenem bunluje SJLF a Apache CXF.

Kdzy se vratime k puvodnimu examplu, tady je vide rozdil filosofie Python vs. Java asi nejlip.
Kód: [Vybrat]
@singledispatch
def render(s, **kwargs):
  print('Rendering an unknown type')

@render.register(S_Block)
def _(s, **kwargs):
  print('Rendering an S_Block')

@render.register(S_Empty)
def _(s, **kwargs):
  print('Rendering an S_Empty')

Potom indicky spoluprqcovnik vezme nas kod jako knihovnu, prida si novy typ S_Vindaloo, a tak nejak zapomene maimplementovat vsechny potrebne metody ktere ja v ramci ducktypingu ocekavam, proste uplne chybi a tento se zavola vzdy v utery a dubnu

Holy python bez typehintingu: program rok bezi a pak cely zbuchne v utery v dubnu

Python s @singledispatch" program rok bezi a pak v utery v dubnu vypise hlasku 'Rendering an unknown type' pricemz neprovede ocekavane. Indicky kolega musi hrabat do meho kodu, aby zacal podporovat S_Vindaloo.

Java (C#, C++): vubec to nejde zkompilovat, coz indickeho kolegu donuti, aby S_Vindaloo splnovalo potrebne interface, pak vsecko funguje.

Slozitejsi program, kde kooperuje vic lidi + dynamicke typovani => pain.