Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Standa Blábol

Stran: 1 ... 10 11 [12] 13 14 ... 16
166
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 13. 03. 2020, 09:23:27 »
Posledni 2 prispevky predstavuji shrnuti Java vs Python. Javista ukazuje, ze toho napsal vic, ale kuwa nemusi cumet do dokumentace na webu, protoze knihovna Java obsahuje veskera informace a datove typy, a Pythonista na to reaguje, ze ma delsi kod. Jsi hloupa cvicena copy-paste pyjthonisticka vopice.

Jako spravnemu clenu sekty Ti ani neprijde zbytecne porad dokola psat MyjTyp promenna = new MujTyp(). K dokonalosti uz chybi to jeste zduraznit v komentari (ano, fakt je to MujTyp) a udelat pro to podporu v IDE, aby to tam doplnovalo samo.

Ale jinak mas pravdu - staticke typovani ma svoje vyhody, jenze jsou jazyky, ktere to udelaly dobre a poradne (treba muj oblibeny Rust) a jsou jazyky, ktere z toho udelaly frasku (zde nebudu jmenovat, schvalne, ktery jazyk Te napadne jako prvni)...

Heh, kdybys v jave v rozumnem IDE opravdu neco delal, tak te zapis MujTyp promenna = new MujTyp() ale ani trochu nerozhazi.
Definujme ~ jako CTRL+SPACE ENTER - tedy vyber z naseptavace

Potom je zapis na pocet uhozu klavesnice:

Mu~=ne~ -  pricemz stejny typ je v naseptavaci prvni, pripadne inherited dale v poradi.

To je cele, tedy jeste kratsi, nez zapsat zkraceny krypticky zapis perlu nebo pythonu. Po par dnech kodovani je "~" ve svalove pameti a koder to meta rychlosti stovek milisekund.
A zrovna tato jednoducha zalezitost funguje i v pythonu pri pouziti PyCharm.

Cteni kodu dtto, IDE zvyraznuje text barevne, tucne, kurzivou, podtrzene, podtrzene vlnovkou a vykricnikama na okraji.
Staci par dni s IDE a pri cteni kodu oko samo hleda puze slova danem kontextu zvyraznena.
Kdzy se mu neco nelibi, rovnou nabidne nekolik variant, jak to opravit.

IDE neustale po kazdem uderu klavesy kompiluje kod specialnim rychlym kompilatorem, co jenom hlida syntaxi a linkuje. Takze kdyz metode pridam dalsi parametr. IDE mi na stovkach mist pouziti oznaci v ve stromu zdrojaku postizene zdrojaky. A rovnou nabidne refaktoring.
Muj drivejsi priklad z chybou pythonu, co zpusobi, ze program zbuchne v utery a v dubnu je zde roznou oznacen cerveny krizkem a IDE to odmitne zbuildovat.

Pri vytvoreni metody IDE rovnou vyrovi kosrtu JAVADOC komentaru (PyCharm dtto), obsahuje generatory na typicke konstrukty. Napr na public static void main(String[] args) je tam rovnou checkbox pri vyrabeni nove class.

Koder vubec neresi odsazovani ci formatovani (v pythonu nutnost kvuli blokum), obcas zmackne CTRL+ALT+F a vsecko se to krasne zformatuje podle definovanych pravidel.

Vysledkem je krasne citelny samopopisny kod, jehoz business logice rozumi defacto kazdy, kdo umi anglicky, kde koder REALNE NAPISE MENE ZNAKU, nez v pripade pythonu, kde nemusi lezt do dokumentace atributu funkci, protoze ide mu rovnou vyjede skeleton volani a hover mouse rovnou zobrazi typ kazdeho parametru a popis z javadocu.

A to vsechno proto jen, protoze staticke typovani umoznuje IDE vsechny tyto veci provadet.


167
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 22:31:06 »
Kolikpakze ze stovek projektu na PyPi tohle podporuje, abych se na to mohl plne spolehnout a zacit to pouzivat jako standardni Python featuru? Ze stovek projektu na Maven Central umi staticky typovane signatury uplne vsechny.

asi vsechny, obe jmenovane featury byly zavedeny castecne i kvuli signaturam funkci v standardni knihovne, Literal types jsou pouzity treba v signature funkce `open`, ktera vraci ruzne typy file objektu v zavislosti na modu otevreni.

mypy je soucasti standardnich linteru, jestli pouzivate treba vscode, mypy pouzivate.

Pouzivam PyCharm

A namatkou jsem se podival na Mako templater, protoze jsem ho stahoval pipem predevcirem. Import typing jsem tam nenasel.

168
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 20:58:58 »
Proto má třeba Smalltalk dynamic dispatch a současně protokoly. Což řeší oba požadavky.

protokoly resi jiny problem nez pretezovani funkci.

Python ma mnohem mocnejsi nastroje pro staticky typovane signatury nez java. Namatkou treba Literal types. Muzete napsat funkci, kde navratovy typ zavisi na hodnote vstupnich parametru. https://mypy.readthedocs.io/en/stable/literal_types.html

Protokoly python take ma, jak staticky tak dynamicky vynucovane, https://mypy.readthedocs.io/en/stable/protocols.html

Ja chapu, ze prilezitostni uzivatele Pythonu jako Standa Blabol novinky moc nesleduji. Uvadim jen pro informaci, nechci zacinat dalsi spor.

Pekne, nekdo si dal praci a na urovni dekoratoru pridal velice peknou funkcionalitu.

Obdoba treba java projektu Lombok, ktery pres anotace usnadnuje praci s datovymi beany.

Kolikpakze ze stovek projektu na PyPi tohle podporuje, abych se na to mohl plne spolehnout a zacit to pouzivat jako standardni Python featuru? Ze stovek projektu na Maven Central umi staticky typovane signatury uplne vsechny.
 
Dostane se obdoba MyPy do standardu Python4, as se cely Pyhon zase znova zahodi a zacnem odznova, nebo ho ceka osud jako HipHop for PHP, kterym Facebuk resil obdobny problem spatne zvoleneho stacku a cele to pak zahodil?

Postavim na vire, ze to dropbox nezahodi, svuj business?

Otazky, same otazky :)

169
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 18:27:54 »
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

...

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.

Dobry Stando, něco jsi se možná naučil. Teď dodej v Jave implementaci toho Python programu, co jsi ho sem pastnul jako důkaz  nepřehlednosti. Neboj, smát se budem jenom trochu.

Mno, co se tyce method overloadu, priklad jsem tak trochu poslal, pokud te zmatlo, ze jsem jinak pojmenoval typy, zkus to zvladnout.
Pak uz je tam jenom foreach cyklus nad polem netypovanych objektu, tak tady mam 2 varianty:

- bud jak tatar to udelam stejne prasecky jako pole Objectu a ve vlastni metode budu pomoci instanceof a getClass() jak u blbejch zjistovat o jaky typ se realne jedna a podle toho budu renderovat. A az budu chtit pridat podporu dalsiho typu objektu k renderovani, pridam do dipatch metody dalsi if - prevelika krasa.

- nebo, jak bych to udelal ja, definuju si Interface, ktere pro vsechny objekty vynutim metodu getRenderData(), ktera mi pripravi data pro jednu obecnou metodu render(). Mimochodem koncept GDI z windows 3.1, mozna este driv.
- pak do foreach cyklu naleju objekty handlovane pres interface. Kdyz budu chtit pridat dalsi typ objektu k renderovani, proste ho necham implementovat interface a voila! - Umime renderovat dalsi objekt. A nikdo nemusi sahat do myho kodu, berou to jako knihovnu a ani k tomu zdrojaky nemaji. A nikdo mi tam nepodrstrci neco, co skonci zpravou "Unknown render type"

Psat ti to tady jako exampl s dummy daty fakt nebudu, pokud tomu nerozumis, zeptej se nekoho chytrejsiho.

170
Vývoj / Re:Datove tridy v Pythonu
« kdy: 10. 03. 2020, 17:53:25 »
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.

Osobne se mi libil Ceylon. https://ceylon-lang.org/
Takove zmeny si Java z duvodu kompatibility dovolit nemuze.
Ale zdechlo to, Redat se na to vykvak v roce 2017 a od te doby nic.

171
Vývoj / Re:Doporučte programovací jazyk pro Windows
« 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.


172
Vývoj / Re:Doporučte programovací jazyk pro Windows
« 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.

173
Vývoj / Re:Doporučte programovací jazyk pro Windows
« 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.

174
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 21:03:23 »
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

175
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 20:45:56 »
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.

No jako tri metody render, ktere se lisi typem atributu s, kluci usati, na telefonu vam to tu rozepisovat nebudu.
A to jeste predpokladam kompletne odlisnou vnitrni implementaci, pokud by vsechny typy objektu s byly z jednoho predka a ja si vystacil s metodami predka, udelam to jednou generickou metodou.

Dalsich debat na toto tema se ucastnit s prominutim nebudu, to je marnost

176
Vývoj / Re:Datove tridy v Pythonu
« kdy: 09. 03. 2020, 16:59:11 »
Variabilni pocet atributu metody java umi taky, se silnymi typy v parametrech, ktere mimochoden jsou soucasti signatury metody a netreba provadet zhuverilosti jako je toto.
https://stackoverflow.com/questions/25343981/method-overloading-for-different-argument-type-in-python

Tohle nená žádná zhůvěřilost, máš tam v odpovědi krásný příklad využití dekorátoru @singledispatch na přetěžování. Alternativou je použití dekorátoru @overload.

Tak to mame dost odlisne nazory na krasu:

Kód: [Vybrat]
class S_Unknown: pass
class S_Block: pass
class S_Empty: pass
class S_Function: pass
class S_SpecialBlock(S_Block): pass

@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')

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

if __name__ == '__main__':
  for t in [S_Unknown, S_Block, S_Empty, S_Function, S_SpecialBlock]:
    print(f'Passing an {t.__name__}')
    render(t())

OMG, mejme externi knihovnu co se stara o rozhazovani podle _PRVNIHO_ argumentu funkce a sam si to zaregistruj jak u blbejch na dvorku. https://docs.python.org/3/library/functools.html#functools.singledispatch

To jako chceme srovnavat s java method signature, kde se  do signatury pocita vse krome navratove hodnoty?

Heh, tady se vycita jave ukecanost a pak se tu argumentuje selmostrojem ktery za pomoci nevykonneho sena anotaci, manuani registrace dovede pretezovate podel _PRVNIHO_ atributu?

Pricemz podpora IDE (autocomplete, refactoring) pro takovy selmostroj je zakonite nulova?

Zajimave,


177
Vývoj / Re:Datove tridy v Pythonu
« kdy: 09. 03. 2020, 16:43:58 »
Python neumi nic, co by neumela java(akorat vylozene nebezpecne veci se tam delaji ukecane, typicky reflection api, to je zalesitost pro tvurce frameworku, bezny jouda do toho nema co hrabat), naopak to zdaleka neplati. Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal

Opravdu? Umi java duck typing? Umí java modifikovat tridy realtime za behu programu? Umi java neco jako:

def fce1(arg1, /, arg2, *, arg3):

Ne neumi.
Protoze to jsou znouzectnosti, Java vsechny tyto veci resi jinak a robustneji.
Ducktyping je znouzectnost, protoze python neumi silne typy. Ducktyping neni nic jineho, ze nemam ZADNOU kontrolu typu, proste zavolam stejnojmennou metodu bez rozliseni typu atributu a dej se vule bozi.
IDE s tim maglajzem neudela nic, v Jave ti eclipse pri znalosti signatur metod pise podstatny kus kodu za tebe, staci mackat CTRL+SPACE

Modifikovat tridu za behu je prasecina, v Jave se zkratka pouziva misto hrabani do trid dynamicka kompozice typu Spring IoC.
Variabilni pocet atributu metody java umi taky, se silnymi typy v parametrech, ktere mimochoden jsou soucasti signatury metody a netreba provadet zhuverilosti jako je toto.

https://stackoverflow.com/questions/25343981/method-overloading-for-different-argument-type-in-python

O generickych metodach ani nemluvim.

Výborně, máme vyvráceno nesmyslné tvrzení, že Java umí všechno, co Pythoh.

Duck typing není z nouze ctnost, je to chtěný a žádaný stav. Není pravda, že to znamená žádnou kontrolu typů. Python je vyšší jazyk, kde typ je vlastnost hodnoty nikoliv proměnné. Python má silné typy, ale vyhodnocuje je dynamicky. Pomocí MyPy je umí vyhodnocovat i staticky, ale z toho pramení mnohí nechtěných omezení, žakže já třeba jazyky se statickýmá typy odmítám, nejsou pro mě dostatečně flexibilní.

Já spoléhám na sebe, nikoliv na ide a je mi fajn. Ty prostě neumíš dobře programovat, ovládáš možná statické programování, ale plaveš v tom dynamickém, neumíš myslet v dynamickém jazyku. To je celé. Omezuješ sám sebe. Já zase neumím myslet ve funkcionálních jazycích, ale beru to jako svůj nedostatek, nikoliv jako nedostatek (těch blbých) funkcionálních jazyků.

Můj dotaz nezněl na variabilní počet argumentů.

Jojo, dynamic typing je takovej zazrak, az se to Pythonu 3.5 dostal modul typing a v 3.8 to rozsirili napr o final, podobnost s klicovymi slovy javy je ciste nahodna.
A Typescript vsnikl nad Javascriptem taky z cisleho masochismu lidi, co si neumi uzivat blaho dynamickeho bordelu.

Kdyz se divam na vyvoj Pythonu3, je to prakticky souvisla snaha nejak napasovat Java (C#, C++) featury do standardni knihovny.

Ehm, ja pouzivam aktivne python i javu. Python je skvely na jednoduche skriptiky, napr. ansible na tom jede sakumprask.
Pro opravdove SW projekty na kterych dela vice lidi obecne ruzne kvality, se to s Javou merit neda.
A poznamka o programovani bez IDE me rozesmala, to musi byt produktivita jak noha a hlavu mit jak patraci balon, abych si v chainu Viewer - Model - Service - Repository pamatovat atributy a nazvy metod. V IDE ctrl+space a doplni se to samo.
Ale proti gustovi zadny disputat.

178
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 16:04:17 »
Vetsinou lidi, kteri nevidi prinos pythonu, pisi nasobne vic kodu nez je nutne. Pripravuji se tim o hlavni vyhodu pythonu oproti Jave, mensi ukecanost.

Ano, osobne pisu mnohem vice kodu nez je nutne a hromadu komentaru k tomu.
A to za ucelem citelnosti kodu, az se na to za 3 roky podivam, nepotrebuju dekodovat fancy hacky, co zpusobily, ze jsem usetril  4 radky kodu.
Asi "nejlepsi" je v tomto ohledu Perl, ktery je obecne znam jako "write only language", casto to po sobe neprecte ani autor.

Osobne se snazim o takovy kod, ktery precte i clovek, co v zivote v Jave nedelal.

Psát čitelně je ideál. Ale příliš mnoho (zbytečného) kódu přehlednost snižuje. Java je proto nepřehledný jazyk, imho jeden z hlavních důvodů neíblíbenosti. Vždy když slyším obhajobu, že ide mi ten kód vygeneruje, tak mám dost nepříiemný pocit, že je něcohodně špatně.

Mno, staci mit zajimave metody nahore, seno dole. Kazdy vi co je getter, setter, toString().
IntelliJ to umi dokonce konfigurovatelne foldovat.
A kdo toto nezkousne, je tu Lombok, osobne nepouzivam.

Java neni rozhosdne ukecana vic, nez je potreba.
Prakticky jedina vec, kterou v tomoto ohledu Jave zazlivam, je nemoznost NonNull Objectu, kde proste neni mozno mit null object daneho typu s null hodnotou.

179
Vývoj / Re:Datove tridy v Pythonu
« kdy: 09. 03. 2020, 15:52:11 »
Python neumi nic, co by neumela java(akorat vylozene nebezpecne veci se tam delaji ukecane, typicky reflection api, to je zalesitost pro tvurce frameworku, bezny jouda do toho nema co hrabat), naopak to zdaleka neplati. Ostatne jython je imementace pythonu v jave, javu v pythonu nikdo nenapsal

Opravdu? Umi java duck typing? Umí java modifikovat tridy realtime za behu programu? Umi java neco jako:

def fce1(arg1, /, arg2, *, arg3):

Ne neumi.
Protoze to jsou znouzectnosti, Java vsechny tyto veci resi jinak a robustneji.
Ducktyping je znouzectnost, protoze python neumi silne typy. Ducktyping neni nic jineho, ze nemam ZADNOU kontrolu typu, proste zavolam stejnojmennou metodu bez rozliseni typu atributu a dej se vule bozi.
IDE s tim maglajzem neudela nic, v Jave ti eclipse pri znalosti signatur metod pise podstatny kus kodu za tebe, staci mackat CTRL+SPACE

Modifikovat tridu za behu je prasecina, v Jave se zkratka pouziva misto hrabani do trid dynamicka kompozice typu Spring IoC.
Variabilni pocet atributu metody java umi taky, se silnymi typy v parametrech, ktere mimochoden jsou soucasti signatury metody a netreba provadet zhuverilosti jako je toto.

https://stackoverflow.com/questions/25343981/method-overloading-for-different-argument-type-in-python

O generickych metodach ani nemluvim.

180
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 15:42:32 »
Vetsinou lidi, kteri nevidi prinos pythonu, pisi nasobne vic kodu nez je nutne. Pripravuji se tim o hlavni vyhodu pythonu oproti Jave, mensi ukecanost.

Ano, osobne pisu mnohem vice kodu nez je nutne a hromadu komentaru k tomu.
A to za ucelem citelnosti kodu, az se na to za 3 roky podivam, nepotrebuju dekodovat fancy hacky, co zpusobily, ze jsem usetril  4 radky kodu.
Asi "nejlepsi" je v tomto ohledu Perl, ktery je obecne znam jako "write only language", casto to po sobe neprecte ani autor.

Osobne se snazim o takovy kod, ktery precte i clovek, co v zivote v Jave nedelal.

Stran: 1 ... 10 11 [12] 13 14 ... 16