reklama

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 - qelurg

Stran: 1 [2] 3 4 ... 16
16
Multicursor je ve všech moderních editorech.
Ale ne az takto vymakany. Treba nekolik kurzoru v ramci jednoho radku uz tak bezne neni.

17
Kód: [Vybrat]
typedef int INT;
typedef LONG HRESULT;

Jestli tohle někomu přináší větší srozumitelnost tak asi bere nějaké drogy. Já bych tohle nevymyslel ani se 4 pivama.


Ten INT takto vytrhnutý z kontextu nemá zmysel, ani ho dnes nik nepoužíva okrem starých API. Tie názvy majú svoj význam, len si treba pozrieť aj aké iné typy sú takto definované a uvedomiť si kedy vznikli (možno 40 rokov dozadu). Napr. LPWORD sa predsa len lepšie píše ako (unsigned short * far). Nie len že ešte neexistovali IDE ako dnes, ale bolo to v časoch 16 bit architektúry keď pointre mohli byť far (segment+adresa) a near (adresa 16 bit). Tiež sa už myslelo na prechod na 32 bit a napr. typy ako WPARAM a pod. boli závislé od toho, či sa kompilovala 16 alebo 32 bit aplikácia. Navyše každý kompiler mohol mať rôzne veľkosti typov int, short, atď (ešte neexistovali typy ako int32_t).

HRESULT je zas typ pre štandardné chybové kódy, náhodou o veľkosti LONG. Keď vidím, že funkcia vracia HRESULT, tak hneď viem ktoré bity čo znamenajú a ktorými makrami môžem ten výsledok spracovať. Keby funkcia vracala int, tak to nenesie žiadnu informáciu ako s výsledkom pracovať a treba hľadať v dokumentácii či to je nejaký kód chyby, alebo počet, alebo niečo iné.

Presne, typedef se v C pouziva kvuli snadnym zmenam architektury a kvuli semantickemu rozliseni datovych typu.

18
A ještě jedna věc. Ta moje připomínka vlastně není primárně o typech. Proto jsem tam psal o těch různých intech. Proměnná není primárně ukazatel. To už je implementační detail. Primární je lidsky čitelné jméno. A díky té recyklaci už ze jména není vidět rozdíl mezi stavy před a po. A ten rozdíl důležitý je, jinak bys tu transformaci nedělal.

V pythonu je promenna vzdycky ukazatel. Je to pojmenovany odkaz do pameti na prislusny datovy objekt. Ne, neni pro me dulezity a davam to najevo tim pojmenovanim. Je to jako pouzivani pomocne promenne tmp ve statickem jazyku, kde nemas potrebu ji nejak specificky pojmenovat, akorat tam musis respektovat datovy typ, v dynamickem jazyku to je jednodussi. Duvody ktere uvadis jsou formalni, byrokraticke, pragmaticky vzato ale v uvedenem pripade zcela zbytecne.

19
Neni to zadny napor na hlavu, promenna je ukazatel na data a jedna se o stejna data, jen v jine forme. Jake optimalizace si dela prekladac me prakticky nezajima. Zkus to vnimat jako prechod na vyssi formu abstrakce nesvazanou s datovym typem. A je to abstrakce pro programatora, nikoliv pro prekladac. Vyvoj v it jde smerem, ze se stroje stale vic prizpusobuji lidskemu mysleni. Viz jak to zacalo, programovani ve strojovem kodu.
Ale ona to úplně stejná data nejsou. V podobě intu to má výrazně menší stavový prostor než ve formě stringu.

Pokud je to string na vstupu, pak je ten stavový prostor větší o nejrůznější chybný nebo útočný binec. Pokud ten rozdíl odignoruju, mám bezpečnostní díru.
Pokud je to string na výstupu, pak je ten stavový prostor větší o to, jak ten int chci vypsat. U intu těch možností moc není, ale u jiných typů ten stavový prostor bobtná dost zásadně.

Kdyby opravdu nezáleželo na datovém typu, tak to může zůstat jako int (nebo string). Ale ono je to z nějakého důvodu nutné převést. A ten důvod z té abstrakce prosakuje ven (leaky abstraction). Typ (ve formě množiny hodnot, které můžu čekat) tam stále je.

Technicky, z pohledu ulozeni v pameti, stejné nejsou. Vyznamove, po zanedbani zpusobu ulozeni v pameti, ale jsou. Proto jsem psal, at se to pokusis vnimat jako vyssi abstrakci. Jak jsem psal, v uvedenem pripade to, jako programator, nepotrebuji rozlisovat, proto to nerozlisuji. Kdybych to potreboval rozlisit, tak prave a jen z duvodu jinych typu a pak pouziju zminenou madarskou notaci.

V jazycích jako PHP to prevadet nepotrebujes, tam se to prevadi implicitne podle potreby. V pythonu to prevest potrebujes, ale ne vzdy to potrebujes rozlisovat na urovni promenych a mit pro kazdy typ jinou.

20
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 19:58:25 »
To co popisuješ je scénář, který se běžně dělá dynamickými jazyky, o tom žádná. Ale staticky typované jazyky s tím nemají žádný principielní problém.
Staticky typované jazyky nejsou od toho, že chceš mít všechno "pevné, neměnné", ale o tom, že chceš mít všechno "předem zkontrolované". To je zásadní rozdíl. Jen a pouze čas kontroly. Opravdu. Všechny ty kouzla, která jsi tu popisoval, tak se bez problému ve statických jazycích dělají. To je možná důvod, proč stále mám problém vidět v tom to kouzlo. Nikoli má neochota, nebo neschopnost (jak mi rád podsouváš), ale to, že jsi furt netrefil ten správnej demonstrativní příklad. Je pravda, že zde může hrát roli i to, že já znám staticky typované jazyky relativně dobře.

Ne že by to lidé nezkoušeli, kdo si pamatuje java applety?
Java applety chcíply z jiného důvodu, než že byly napsaný ve staticky typovaném jazyce

To je oxymoron, kdyz chces mit vsechno zkontrolovane v dobe kompilace, nemuzes to pak vytvaret za chodu, a naopak. Pro statickou analyzu nepotrebujes staticke typy, na to ti staci typove anotace, ktere ma python nebo truescript. Vyhoda statickych typu je jina a imho jedina, umoznuje podstatne lepsi optimalizaci na urovni strojoveho kodu. Kdyz se ty kouzla ve statickych jazycich delaji, proc nemaji plnohodnotnou funkci eval (ci jeji ekvivalent, treba pythoni compile) nebo repl? Coz je dalsi z vyuziti schopnosti prace s dynamicky vytvarenym kodem.

Imho budoucnost je v jazycich, ktere tohle vsechno volitelne pojmou a nic si nebudou vynucovat. Zaklad takoveho jazyku bude nutne dynamicky s tim, ze si programator bude moci dobrovolne rict, tady chci statickou kontrolu, tohle chci mit dynamicky, tohle chci mit objektove, tady mi staci procedury a tyhle data zpracuju funkcionalne. Python se tomu blizi i kdy ma jeste co zlepsovat. Ale treba python 4 prinese dalsi pokrok.

21
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 19:41:51 »
1) Programovani je inzenyrska cinnost, pozadovanym vysledkem je funkcni program za definovanou dobu za pomoci beznych standardu, aby mohl spoluporacovat ci praci prevzit jiny pracovnik.

2) Libovolne praktiky zmeny chovani programu za chodu je desiva prasecina, ktera ma realny vyznam jenom pri psani pocitacovych viru. Kdyz se divam  do mnou bezne pouzivanych knihoven z pypi.org, nikde jsem takovy hnuj nevidel.

3) Realita v teto oblasti je jina, je to prosta znouzectnost.
Python je skriptovaci jazyk z roku 1991, o dost starsi nez treba Java. Vznikl defacto jako lepsi bash ci perl a ostatne se takto pouziva dodnes. Kdyz pozdeji tvurci uznali za vhodne, ze do pythonu pridaji prvky OOP, sli na to jednoduchou cestou. Objekt v pythonu je zjednodusene receno shlukem pointeru na funkce, pricemz funkce s magickym nazvem _init_() se spusti pri instanciaci, kde se muze do seznamu pridavat dalsi pointery na atributy (proto se atributy objektu definuji v initu) pricemz tento atribut muze byt i jina nova funkce.
Takze je mozne v pythonu udelat objekt, ketry se za pouziti spravneho ifu v _init_() v utery instanciuje neco uplne jineho, nez ve stredu. Naprosta lahoda udrzovat takovy kod. Ostatne takto v pythonu nikdo nepise.
Tam se v realu pridavaji typehinty a dekoratory jako je @Property, aby tyhle historicke znouzectnosti pouzivat nemuseli.

4) Nahradit javascript pomerne uspesne umoznije Typescript s transpilaci. Angular2 na nem stoji.
Java applety nezdechly kvuli statickemu typovani, ale z prosteho duvodu, ze byly navrzene debilne, AWT grafika byla otres a byly mimo DOM.

5) "Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data"
No to ani omylem, JS over http je prosty deployment kanall.
Standardni JS aplikace pri pageonload nahraje komplet JS zdrojak, (obvykle optimalizovany pouze pro potreby dane aplikace) a browser to zkompiluje do bytecode. Pri page load event se casto spusti init framweorku. Pak uz se jenom volaji JS funkce a to staticky. A i ty v pripade Angular2 vznikly traspilaci Typescriptu.

1) Kez by, ale je to blabol, v IT se na standardy moc nehraje, ale zrovna Javascript standardizovany je. O kterem z tech 'univerzalnich' statickych jazyku muzes rict to same?

2) Metaprogramovani z pohledu statickeho ptrogramatora je nepochybne prasecina :-). A to je ukazkovy stret realit, na kterem selhava tve 'racionalni argumenty uznavam'. Byt se ti to neustale deje pred ocima v tvem webovem prohlizeci.

3) Vznik jazyka Python je zcela bezpredmetny, stejne jako vznik Javascriptu nebo Rustu. Python je od te doby uz uplne jiny a tim ze si dovolil nezachovat zpetnou kompatibilitu a projit dvakrat redesignem se zbavil hnusne kole zateze, kterou si za sebou tahne treba Java i Javascript. Coz je sice riskantni krok, ale Pythonu vysel a vystreli ho do nebe.

5) Typescript Javascript nenahrazuje, je na nem totalne zavisly, typovy system ma navic volitelny. Je to na urovni typovych anotaci v pythonu. A vzniklo to pro potreby programatoru se statickym myslenim, kteri ke svemu zivotu potrebuji staticke typy. Javascript bezici v prohlizeci zcela bezne za behu modifikuje program, je to bezna technika, dela se to pres prototypovou dedicnost, kdy se modifikuji tridy DOMu nebo pridava dalsi funkcionalita objektum array, string atd. A cim vic jsou weby ajaxove, tim casteji se to dela za behu, reload stranky je uz webovych aplikaci zastarala technika.

22
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 18:22:28 »
Jo, to by me taky zajimalo.
Zvlast kdyz se podivam na nove univerzalni jazyky s potencialem budouciho rozvoje, napr. go, switft, rust, kotlin. Staticky typovane sakumprask vsecko.
Ktery z techto 'univerzalnich' jazyku ma dle tebe potencial nahradit Javascript?

23
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 18:08:18 »
Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.
Já jsem jeden z těch, co vnímají statické typy jako pomoc a občas mi zatraceně chybí. Takže bych to využil a zeptal se na nějaké bližší info. Máš nějaké materiály nebo příklady toho, jak má vypadat to přemýšlení, které využívá výhody dynamických jazyků? Něco co by mi ten jiný styl uvažování trochu osvětlilo?

Zatím veškerá omezení, která jsem kdy cítil vycházela spíš z nedokonalé implementace než ze statických typů jako takových. V jazycích s rozumnými generiky a typovou inferencí nemám pocit, že by mě typy nějak omezovaly v rozletu.

Nemám. Imho to nejde staticky myslícímu člověku racionálně vysvětlit. Můžeš to zkoušet používat a buď přijde aha efekt a nebo nepřijde. Kdysi na to téma měl přednášku na techtalku Niclas Nilsson https://www.se-radio.net/2007/03/episode-49-dynamic-languages-for-static-minds/ ale imho ti to nepomůže, protože to není otázkou nedostatku informací, ale změny myšlení, a to může přijít jen s vlastní zkušeností. Můžeš si zkusít přečíst pár knih na téma javascript design patterns, kde jsou kodifikovány některé způsoby využití, které by tě asi jinak nenapadly, ale jsem pesimista. Tak jako polovina čechů nepochopí, že demokracie je dobrá, imho nepochopí ani polovina programátorů, že dynamické jazyky jsou dobré. Starý struktury musí vymřít a to špatný nerozujný mládí s tím už takové problém nemá.

Statické typy nejsou jenom o jejich deklaraci, ale o tom, že ti determinují, co můžeš za běhu s programem ještě dělat a co už ne. Zjednodušeně řečeno, statické jazyky rozlišují kód a data, dynamické nikoliv (byť míra implementace je různá).  V dynamickém jazyku můžeš kód používat stejně jako data. Což by ti mělo úplně měnit pohled na program a programování, má to řadu důsledků a možností, třeba javascriptové aplikaci můžeš nový kód posílat jako data a za běhu měnit její funkčnost. A ne jako nějakou nouzovou záležitost, kdy servr opravuje za běhu lokální na js založenou aplikaci, ale jako běžné chování. Staticky myslícím programátorům se z toho zvedá kufr, pro ně je to prasárna, všechno chtějí mít pevné, neměnné, prostě statické předem zkontrolované, dynamicky 'mutujíci se' program je pro ně představa z pekla. Přitom přesně takto webové aplikace fungují, nalinkovaný js do stránky není nic jiného než program poslaný jako data, s každou stránkou se mohou načíst jiné, z pohledu uživatele se to mění za běhu aplikace, dělat změny i za běhu interpretu (zjednodušuji, vím) je už jen drobné rozšíření tohoto konceptu. Nebo třeba autonomně za běhu programu se vytvářející stovky nových tříd/datových typů na základě obsahu příchozích dat, která jsou hodně variabilní (na to aby je programátor předem otypoval všechny ručně), ale mají své časté opakující se vzory, aby stálo za to jim přiřadit vlastní datové typy.

To jenom pro představu možností. To že ty osobně nenarážíš na možnosti statických typů je proto, že myslíš staticky a nechceš proto po nich víc, než ti umožňují. Zkus ale nahradit javascript v prohlížeči nějakým statickým jazykem. Ne že by to nešlo, ale narazíš na řadu omezení a problémů, která to přinese. Ne že by to lidé nezkoušeli, kdo si pamatuje java applety? Jestli tohle ti neumožní alespoň vidět nové možnosti, které přináší dynamické jazyky, tak ti asi nic nepomůže. A pokud ano, tak chápeš nesmyslnost tvrzení, že dynamické jazyky jsou stejné jako statické, ale horší.

24
Kód: [Vybrat]
cislo = '1'
cislo = int(cislo)
No tak tahle recyklace mi přijde jako zbytečný dodatečný nápor na hlavu. A to nejenom int+string ale třeba i recyklovat jednu proměnnou pro několik logicky různých intů. Už mi pro přemýšlení o obsahu nestačí jméno, ale musím tam zahrnout i místo.

Nevím jak v pythonu, ale moderní optimalizující překladače zlikvidují jakoukoliv takovouhle recyklaci jako jednu z prvních věcí, protože v SSA formě dostane každé přiřazení svou unikátní proměnnou.
[/quote]

Neni to zadny napor na hlavu, promenna je ukazatel na data a jedna se o stejna data, jen v jine forme. Jake optimalizace si dela prekladac me prakticky nezajima. Zkus to vnimat jako prechod na vyssi formu abstrakce nesvazanou s datovym typem. A je to abstrakce pro programatora, nikoliv pro prekladac. Vyvoj v it jde smerem, ze se stroje stale vic prizpusobuji lidskemu mysleni. Viz jak to zacalo, programovani ve strojovem kodu.

25
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 16:12:52 »
Něco takového rozsekávat je z principu nesmysl. Já to vidím tak, že preference programovacího jazyka je dána způsobem myšlení člověka. Je to jako preference politické strany. Z nějakého prostředí vzejdeš a to tě (zde)formuje tak, že už jinak myslet nedokážeš. Změna myšlení je těžká věc, mnozí to nedokážou ani když za to zaplatí životem. Takže tu máme spoustu staticky myslících programátorů, kteří čelí čím dál větší konkurenci ze strany dynamických jazyků, se kterými si nerozumí a rozumět nemohou. Jejich nika aplikačního programování se jim třeba přesouvá na web, kde vládne Javascript. I do dalších oblastí dynamické jazyky pronikají, jim se zmenšuje jejich teritorium, začínají být přežití a je na ně vyvíjen tlak, aby začaly používat ty krásné nové mladé a v ledasčem i blbé dynamické jazyky. To je podobné jako s mnohými frustrovanými důchodci, které nikdo nepotřebuje, protože svět se mění příliš rychle a jejich zkušenosti jsou zbytečné, nikdo o ně nestojí a tomu novému zase nerozumí oni. Takže chápu, že si vylévají svou zlost a nadávají všem okolo, i když se u toho zesměšňují pro vlastní neschopnost.
V branzi se pohybuju dlouha leta.

No jo, uz jsi holt starej, a to te vede k despektu vuci mladym, ne z pozice pravdy, ale arogance stari. A diky tomu se ti povedlo paradni fopa. Protoze ja nejsem zadny MJB, liznul jsem si z lehka jeste eru derovacich stitku a ucil se programovat v ASM na ZX spectru. Ale na rozdil od tebe jsem neuviznul v minulosti.
1) Heh, v mym textu neni ani stopy despektu vuci mladym, tam je despekt vuci hloupym.

2) Kdyz mi nekdo realne zduvodni, proc je muj nazor mylny, nemam problem to uznat. Realny duvod ale neni jasani blba, ze dana vec je "nova krasna mlada"

3) Ale narozdil od tebe jsem neuvizl v minulosti proceduralniho programovani z dob dernych stitku, python/perl skriptovani neni nic jineho, objekty byly dobastleny pozdeji a pomerne pres ruku.
1) co znamená zkratka MJB?
2) to funguje jen pro lidi z tveho okruhu mysleni, tzv. realita je v beznem lidskem poznani subjektivní a take zalezi na tom, co vubec povazujes za argument a ktere argumenty odfiltrujes ze sveho vnimani - ale obavam se, ze to je na tebe prilis filosoficke, nevzdelanec by rekl etericke
3) perl neni python, python uz ma treti predelanou verzi, objektovy system ma take predelany (viz new objects, k tomu dokonce doslo za chodu behem druhe verze) a ma je implementovane zdarile. Python vyrostl zdola a zaslouzene, je to dobry multiparadigmaticky jazyk, ktery, ano, umoznuje i proceduralne imperativni programovani. I to je jeho vyhoda, ze si muzes vybrat a mixovat ruzna paradigma podle toho, co se kde vice hodi nebo co je ti kde blizsi.

V minulosti jsem skutecne castecne uvizl, protoze jeste porad programuji v C, ale s chapanim a prijimanim toho dobreho z novych veci mam myslim mene problemu nez ty.

K tomu vyvoji IT ti chybi dve veci. Presun aplikaci z desktopu na na web a presun lidi z pc na mobilni platformu. Tedy zmena z pozadavku na vykon smerem na mobilitu a efektivitu. To by mimochodem pro staticke jazyky melo byt vyhodne, protoze efektivita (mereno spotrebou ci dobou vybiti baterie) je na jejich strane. Jenze presun aplikaci na web tomu podrazi nohy. I tak ale zatim pro mobilni platformu vznika spousta aplikaci napsanych ve statickem jazyku. Tam se otvira novy prostor.

26
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 15:41:52 »

V branzi se pohybuju dlouha leta.
..............
A tak je to se vsim. Pojdme znovu vynalezat kolo, bude "krásné nové mladé".

Tolik keců o ničem. Stačilo napsat "jsem starý a zapšklý".
Ale kdeže, má v mnohém pravdu.
Fakticky se tu navzájem nechápou dvě skupiny lidí, které pracují na projektech s naprosto rozdílným životním cyklem. Tak nějak by si měl každý zkusit ujít pár mil v botách toho druhého.
Na rozdíl od gelurga si nemyslím, že javascript mne jako člověka delajiciho na backendech banky nějak ohrožuje. Ostatně, ta představa že statické vs dynamický jazyk je nějaká změna paradigmatu mi příjde lichá. Změna paradigmatu je přechod na funkcionální programování a tam by se měl cítit pythonista ohrožen stejně jako javista. Nebo taky ne, koneckonců jde jen o změnu myšlení, s tím se zrovna v IT musí člověk vypořádávat každou pětiletku :)

Teď jsi to nevědomky přesně vystihl. Funkcionální jazyk tě donutí ke změně myšlení, buď to a nebo v něm nic neuděláš. Dynamický jazyk tě k tomu nedonutí, můžeš se ho totiž používat (hloupě) jako statický a nějak to půjde, jen nevyužiješ výhody dynamického jazyka a naopak ti chybí vlastnosti toho statického. A přesně tohle nepochopení vede k závěru:

Citace
Souhlas, duymamicky proceduralni jazyk se pouziva stejne jako staticky, akoras s hromadou opruzu a dalsich zdroju chyb navic.

Viz výše. Prostě nepoužívá a nedává ani žádný smysl, aby tomu tak bylo, že? A tohle tvrdí jinak určitě inteligentní člověk. Takhle ho používají jen ti, kdo s ním neumí, ti kdo ho nechápou, ti kdo ho vnímají jako zmrzačený statický jazyk (být rybou je nahouby, vždyť každý ví, že nemá nohy a proto se nemůže hýbat), kterému něco zásadního chybí. A používají ho většinou z donucení vnějších okolností. Dokud statické typy chápeš jako něco, co ti pomáhá a chybí, místo jako věc, která tě omezuje a která ti překáží, tak nechápeš dynamický jazyk. Jeden z důvodů nepocgopení je, že se statickým typům přisuzují vlastnosti, které jim nepřísluší, viz můj odkaz na staticky typovaný jazyk C. Místo k zamyšlení vedl k nadávkám, protože lidé se svého myšlení vzdávají neradi, je to dost nákladné.

A znovu se odvolávám na politiku a myšlení lidí (zde)formované systémem ve kterém vyrostli a žijí. Jsou tu lidé, kteří chtějí  tuhý režim, stát, který se o vše postará a všechno zařídí, pro které je svoboda imaginární pojem a jsou tu lidé, pro které je svoboda důležitou hodnotou a chtějí volnost a zodpovědnost za sebe sama. A podle svého způsobu myšlení si volí jak strany, tak i jazyky. Čímž netvrdím, že staticky myslící programátor dává přednost totalitním režimům, tyhle preference jsou na sobě nezávislé. Jde jen o tu podobnost naučeného způsobu myšlení, které determinuje volbu s výsledkem lidí, kteří nadávají buď na totalitu nebo na demokracii.

27
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 03. 04. 2020, 13:33:36 »
Něco takového rozsekávat je z principu nesmysl. Já to vidím tak, že preference programovacího jazyka je dána způsobem myšlení člověka. Je to jako preference politické strany. Z nějakého prostředí vzejdeš a to tě (zde)formuje tak, že už jinak myslet nedokážeš. Změna myšlení je těžká věc, mnozí to nedokážou ani když za to zaplatí životem. Takže tu máme spoustu staticky myslících programátorů, kteří čelí čím dál větší konkurenci ze strany dynamických jazyků, se kterými si nerozumí a rozumět nemohou. Jejich nika aplikačního programování se jim třeba přesouvá na web, kde vládne Javascript. I do dalších oblastí dynamické jazyky pronikají, jim se zmenšuje jejich teritorium, začínají být přežití a je na ně vyvíjen tlak, aby začaly používat ty krásné nové mladé a v ledasčem i blbé dynamické jazyky. To je podobné jako s mnohými frustrovanými důchodci, které nikdo nepotřebuje, protože svět se mění příliš rychle a jejich zkušenosti jsou zbytečné, nikdo o ně nestojí a tomu novému zase nerozumí oni. Takže chápu, že si vylévají svou zlost a nadávají všem okolo, i když se u toho zesměšňují pro vlastní neschopnost.
V branzi se pohybuju dlouha leta.

No jo, uz jsi holt starej, a to te vede k despektu vuci mladym, ne z pozice pravdy, ale arogance stari. A diky tomu se ti povedlo paradni fopa. Protoze ja nejsem zadny MJB, liznul jsem si z lehka jeste eru derovacich stitku a ucil se programovat v ASM na ZX spectru. Ale na rozdil od tebe jsem neuviznul v minulosti.

28
Naprosto nic nemam proti vystiznym identifikatorum, naopak! Ale identifikator ma popisovat obsah a ne datovy typ. Ten by mel jazyk nebo tooling resit extra. Jestli si pises el namisto element, nemam s tim problem, ale jakmile si nekdo pise predponu i jako integer nebo s jako string, je za tim zrejme neco podivneho.

Tak protoze ja v Pythonu  cpu do jedne promenne ruzne typy, tak to nerozlisuju
Kód: [Vybrat]
cislo = '1'
cislo = int(cislo)

Ale kdybych potreboval z nejakeho duvodu pracovat s obema formami soucasne, tak si je pravdepodobne rozlisim na iCislo a na sCislo.

29
Také záleží na dalších okolnostech. Ve funkci, která má pár řádků a krátkou životnost je to jiné, než u proměnných, které mají dlouhou životnost a objevují se na různých místech programu. Rozlišování datových typů se hodí hlavně tam, kde pracuji se stejným obsahem, ale s různými datovými typy. Jr to potřeba brát s rozumem, používat to tam, kde to má přínos. Ale chápu potřebu molocha, jako je microsoft, že se snaží mít jednotné api napříč projektem, na kterém pracují stovky lidí. Tam je třeba disciplinovanost, byť je občas ne zcela smyslná. Kdo si vzpomíná na rané verze php, ten ví, tam to byl pěkný kočkopes, jak v názvech, tak třeba v pořadí parametrů. A výsledkem byla zbytečně vyšší chybovost.

Ano, jelikož, jak jsi sám přiznal, všechno prasíš do jednoho dlouhého souboru, proměnné mají dlouhou životnost a (objevují se?) na různých místech programu, potřebuješ tyhle obezličky. Asi by stálo za to se zamyslet a namísto maďarské notace přestat prasit. Kromě jiného by mohlo pomoci i v tom Vimu používat pluginy, které drží kontext - co třeba na Rootu nedávno recenzované Kite, Kite?

Tohle prasení dělám jen u svých soukromých projektů a životnost proměnné přece nesouvisí s tím, jestli mám 50 tříd napsaný v jednom nebo v 50 souborech. Jestli si myslíš, že jsem nějaký Kit, tak jsi vedle. Dobře nazvaná proměnná není obezlička, to je základ dobrého programování. Dobrý název je samopopisný a nahradí ti půlku dokumentace. Někdy je těžké na něj přijít. Lidem kterým opravuji kódy se mnohdy rozsvítí jen tím, že jim ty proměnné přejmenuji.

30
Ne každý používá ide a také je rozdíl mít možnost se dotázat jednotlivě na typ v ide a druhá vidět u všech proměnných ten typ v algoritmu současně. Ve složitějších algoritmech se spoustou proměnných to je stále dobrá pomůcka pro lepší srozumitelnost kódu.

Kvalitní název proměnné je k nezaplacení. Lze to používat i více abstraktně, než jen na datové typy. Třeba já jsem si zvykl v JS dávat předponu el u všech proměnných, které odkazují na nějaký html element a els u proměnných, které odkazují na jejich kolekci.

Kvalitní název proměnné je důležitý, ale datový typ na každém řádku C/C++ opravdu nepotřebujete. Ta prefixová (maďarská notace) idea vznikla v týmu pro Word a používala se pro kontextové rozlišení proměnných. Typicky totiž pracovali se souřadnicemi v několika soustavách (okno, dokument, obrazovka).

A "System hungarian" notace to nejenže začala používat pro jednoduché typy, ale navíc zmizel i ten kontext! Takže to bylo zhoršení po všech stránkách.

V Javascriptu to může pořád být užitečné, protože je to hodně dynamický jazyk. Ale univerzálně to neplatí. A tazatel se ptá právě na použití v kontextu Windows, kde tu ideu někdo velice špatně pochopil.

Také záleží na dalších okolnostech. Ve funkci, která má pár řádků a krátkou životnost je to jiné, než u proměnných, které mají dlouhou životnost a objevují se na různých místech programu. Rozlišování datových typů se hodí hlavně tam, kde pracuji se stejným obsahem, ale s různými datovými typy. Jr to potřeba brát s rozumem, používat to tam, kde to má přínos. Ale chápu potřebu molocha, jako je microsoft, že se snaží mít jednotné api napříč projektem, na kterém pracují stovky lidí. Tam je třeba disciplinovanost, byť je občas ne zcela smyslná. Kdo si vzpomíná na rané verze php, ten ví, tam to byl pěkný kočkopes, jak v názvech, tak třeba v pořadí parametrů. A výsledkem byla zbytečně vyšší chybovost.

Stran: 1 [2] 3 4 ... 16

reklama