Textový editor Atom - srovnání s Emacs

Kiwi

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #60 kdy: 29. 08. 2016, 17:15:21 »
Takze "guru" podle tebe programuje tak, ze
- napise test
- dostane ho do zelene
- commitne a udela pull request
?

Guru programuje asi podobně, jako Chuck Moore, Niklaus Wirth, Donald Knuth a jiní. My ostatní bychom měli programovat podle předem promyšleného postupu - ať dodaného někým jiným, nebo vlastního, mají-li výsledky naší práce za něco stát. Jinak to je jen prvoplánové flikování a štrikování, kdy jakýkoliv postup vpřed či modifikace představuje poměrně bezmyšlenkovité překopávání již napsaného, protože IDE motivuje místo myšlení k plození nekvalitního kódu, který v případě potřeby bude nahrazen jiným nekvalitním kódem.
Ano, je to moderní trend, který reflektuje to, že v IT je nedostatek lidí a je tedy třeba umožnit i méně inteligentním jedincům, aby se zde mohli uplatnit. Osobně si myslím, že údajné výhody tohoto přístupu jsou více než vykompenzovány problémy, jež to v důsledku přináší.

Programátor, který potřebuje intenzivně refaktorovat, je jako malíř, který potřebuje každý tah štětcem několikrát přemalovávat než se strefí, nebo truhlář, který každý druhý řez musí slepovat a spoj zase řezat, než to udělá alespoň trochu použitelně, protože má pocit, že nakreslit si to nejdřív na papír a propočítat ho neuvěřitelně zdržuje, nebo jeho abstraktní představivost na to zkrátka nestačí, a tak pracuje systémem pokus-omyl, protože chemikálie a nářadí mu to umožňují. To rozhodně není dobrá práce a ani podobně pracující programátor nezasluhuje přívlastek "dobrý". Ale je mi jasné, že spoustě potrefených hus se to nebude líbit.

Tolik z mé strany k poznámce, že IDE může mít nějaký výraznější vliv na produktivitu práce.

Pokud jde o kvalitu kódu vs rychlost jeho psaní, tak s vámi souhlasím, jenže na tu má kvalita IDE pramalý vliv - z výše uvedených důvodů bych dokonce řekl, že záporný, protože programátorovi chybí motivace psát kvalitní kód. Rychlost psaní kódu je naopak jedním z marketingových taháků řady IDE, protože manažeři na to rádi slyší - rychle, rychle, hlavně rychle, kvalita není podstatná. Ale to je syndrom celé dnešní doby ovládané psychopaty.
Pokud jde o systém práce programátora, tak nesouhlasím. Je to inženýrská práce se vším všudy, tedy i s plánováním a promýšlením budoucího postupu a vzájemných vazeb. Je možné gumovat a škrtat při plánování, to je přirozené. Ale je velmi nežádoucí to ve velkém rozsahu činit při implementaci, a to jen proto, protože to k tomu svádí, protože to lze - narozdíl od té stavby budovy. Zahodit kód části nějakého modulu - no prosím, to je normální. Ale v půlce projektu překopávat rozhraní, struktury a vazby jednotlivých objektů a vlastně ani nemít v této fázi o nich žádnou jasnou představu jen proto, protože to lze relativně snadno změnit - to je zlo. Říká-li se, že Seymour Cray naprogramoval OS svého superpočítače při jeho prvním zapnutí z ovládacího panelu, pak to neznamená, že by nepotřeboval rozmýšlet a plánovat. Jen měl tolik zkušeností a takovou abstraktní představivost, že se mu to odehrávalo jen v jeho hlavě. Naprostá většina současných kodérů má ale k těmto schopnostem opravdu velmi daleko.


Proton

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #61 kdy: 29. 08. 2016, 17:25:24 »
Ach ty ideály. Taky jsem jich měl plno. Překopání půlky zadání v průběhu implementace není nic zvláštního, spíš naopak. S měnícími se požadavky se mění i kód a můžeš ho mít vymyšlený sebelíp, s novými požadavky buď budeš dolepovat jako prase nebo se snížíš k těm "méně inteligentním" a ten chlív vzniklý změnou zadání prostě uklidíš. Mimochodem refaktoring je jen jedna z mnoha možností, které IDE nabízí. Abysme se chápali - nikomu IDE necpu, piš to třeba v notepadu, ale netvař se, že kdo to nedělá jako v osmdesátkách, je kokot.

Kit

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #62 kdy: 29. 08. 2016, 17:38:51 »
Ach ty ideály. Taky jsem jich měl plno. Překopání půlky zadání v průběhu implementace není nic zvláštního, spíš naopak. S měnícími se požadavky se mění i kód a můžeš ho mít vymyšlený sebelíp, s novými požadavky buď budeš dolepovat jako prase nebo se snížíš k těm "méně inteligentním" a ten chlív vzniklý změnou zadání prostě uklidíš. Mimochodem refaktoring je jen jedna z mnoha možností, které IDE nabízí. Abysme se chápali - nikomu IDE necpu, piš to třeba v notepadu, ale netvař se, že kdo to nedělá jako v osmdesátkách, je kokot.

Překopání zadání řeším záměnou nevyhovujících tříd za nové. Tady refaktoring není nic platný.

Proton

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #63 kdy: 29. 08. 2016, 17:44:59 »
Ano, v některých případech to může stačit. V jiných to nebude stačit ani zdaleka.

0nula0

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #64 kdy: 29. 08. 2016, 17:49:49 »
Ma ale dle mne jednu fatalni nevyhodu. Je to closedsource - oneman projekt. Kombinace tohoto je podle mne smrtici. Presto ho docela pouzivam :)

Zkoušel jsem to. Jak píšeš. Je to closed source a do flexibility Emacsu to má daleko.

Konkretne co to neumi? Jako nerikam, ze ne, ale vetsinou lidi co si stezujou, ze neco neco neumi, proste to neumi pouzivat.


0nula0

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #65 kdy: 29. 08. 2016, 17:51:19 »
Jako vsechno, chce to zvyk, ale kdo si zvykne na nake poradne IDE(dejte tomu tak mesic), tak uvidie, jak vam produktivita poleze nahoru. Zejmena tedy u rozsahlejsich projektu(a zvlaste, ktere jste od zacatku nepsali vy, a neznate je jak vlastni boty).

Na základě zkušeností ze své praxe bych spíš řekl, že u koho má na produktivitu výrazný vliv IDE, by se měl raději živit něčím jiným než programováním. Pravděpodobně tak napáchá méně škod.

Ja bych na zaklade tvych nazoru rekl, ze jsi zatim docela nezkuseny a mel bys trochu nabrat moudrosti, nez zacnes ostatni poucovat ;-)

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #66 kdy: 29. 08. 2016, 18:08:34 »
Programátor, který potřebuje intenzivně refaktorovat, je jako malíř, který potřebuje každý tah štětcem několikrát přemalovávat než se strefí, nebo truhlář, který každý druhý řez musí slepovat a spoj zase řezat, než to udělá alespoň trochu použitelně, protože má pocit, že nakreslit si to nejdřív na papír a propočítat ho neuvěřitelně zdržuje, nebo jeho abstraktní představivost na to zkrátka nestačí, a tak pracuje systémem pokus-omyl, protože chemikálie a nářadí mu to umožňují. To rozhodně není dobrá práce a ani podobně pracující programátor nezasluhuje přívlastek "dobrý".
Malíř i truhlář udělají svou práci, odevzdají výsledek a tím to pro ně končí. Pokud programátor odevzdá svůj program a nikdo po něm nikdy nebude chtít změny, znamená to, že ten program je k ničemu a nikdo ho nepoužívá. Tady se nebavíme o tom, že by programátor neustále předělával nehotový kód. Refaktoruje se většinou kód, který byl napsán dříve, nějakou dobu se používal, a později se ukáže, že neodpovídá novým požadavkům. A i pokud jde o to předělávání během vývoje – podívejte se třeba, kolikrát se předělávají patche do Linuxu. A to vidíte jenom ty veřejné předělávky, nevidíte, kolikrát to předělával autor sám, skrytě. Jsou všichni vývojáři Linuxu neschopní programátoři?

programátorovi chybí motivace psát kvalitní kód
Zřejmě si pořád představujete, že kód se upravuje převážně proto, že ho někdo napíše záměrně špatně. Tak to ale není. Kód se upravuje také pro to, že se změní požadavky, nebo proto, že je možné ten kód napsat lépe. Pokud se někdo dívá na svůj starý kód, a považuje ho za dokonalý a nic by na něm neměnil, těžko může být dobrý programátor.

Rychlost psaní kódu je naopak jedním z marketingových taháků řady IDE
Rychlost psaní kódu? Opravdu? Které IDE se tím chlubí? Já o rychlosti psaní čtu akorát od zastánců toho, že textový editor je lepší než IDE.

Je to inženýrská práce se vším všudy, tedy i s plánováním a promýšlením budoucího postupu a vzájemných vazeb.
Inženýři zkoušeli navrhovat celá města, a nikdy se jim to nepovedlo. Stejně toho jde nakonec spousta jinak, než bylo naplánováno – a dobrý inženýr se tomu musí umět přizpůsobit, nesnažit se marně ohýbat realitu do svých plánů, ale přizpůsobit své plány realitě.

Ale je velmi nežádoucí to ve velkém rozsahu činit při implementaci, a to jen proto, protože to k tomu svádí, protože to lze
Ne protože to svádí a protože to lze, ale protože se změnily okolní podmínky. Máme dnes ve městech udržovat infrastrukturu pro analogové telefonní linky, když se dnes používají digitální technologie a mobilní telefony? Byla špatně naplánovaná města, když počítala s infrastrukturou analogových linek a ne s mobilními sítěmi? Byla špatně naplánovaná města, když počítala především s pěším provozem a koňskými povozy?

Ale v půlce projektu překopávat rozhraní, struktury a vazby jednotlivých objektů a vlastně ani nemít v této fázi o nich žádnou jasnou představu jen proto, protože to lze relativně snadno změnit - to je zlo.
To, že se kód mění, neznamená, že v daném okamžiku neexistuje jasná představa, jak má vypadat. Existuje. Akorát že se v čase mění, tak, jak se mění okolní prostředí, jak se mění zadání. Proč by mělo v projektu zůstat rozhraní, struktury a vazby takové, jaké byly na začátku, k čemu je dobré, že tak zůstanou měsíce, roky, desítky let?

Mimochodem, právě ta IDE umožňujíc získat lepší představu o vyšších úrovních projektu, než je zdrojový kód, protože poskytují nástroje pro snadné procházení kódu a pro zobrazení jeho vyšších úrovní. Textový editor je zaměřený jen na tu nejspodnější část, na samotný kód. Pokud chcete něco vyššího, musíte textový editor kombinovat s dalšími nástroji (které má IDE už vestavěné).

gl

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #67 kdy: 29. 08. 2016, 18:10:06 »
Ma ale dle mne jednu fatalni nevyhodu. Je to closedsource - oneman projekt. Kombinace tohoto je podle mne smrtici. Presto ho docela pouzivam :)

Zkoušel jsem to. Jak píšeš. Je to closed source a do flexibility Emacsu to má daleko.

Konkretne co to neumi? Jako nerikam, ze ne, ale vetsinou lidi co si stezujou, ze neco neco neumi, proste to neumi pouzivat.

Nenašel jsem k tomu použitelný emacs mód. Neexistuje jedno univerzální rozhraní pro debugger, pro code check atd.

0nula0

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #68 kdy: 29. 08. 2016, 18:13:02 »
Takže nesouhlasím - často refaktorovat potřebuje průměrný, či spíše podprůměrný programátor. Ale v žádném případě ne dobrý programátor.

Aha, tak to uz pak chapu... mnonic, skoda mluvit...

gl

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #69 kdy: 29. 08. 2016, 18:16:28 »
Nechci se hádat, zda je lepší Vim či Emacs. Jen jsem chtěl naznačit, že lepší editor, než tyto dva, už nenajdeš.

On se i ten Vim dá vcelku snadno přizpůsobit, externí nástroje z něj spouštím poměrně často. Javovské stuby by se bez pluginu napsaného v Javě generovaly docela blbě, protože jak jinak chceš dělat reflexi na její knihovny?

Máš pravdu. Jsou to nejspíš stále dva nejlepší editory.

Teď jsem koukal na tutorial skriptování Vimu v různých jazycích a asi má k tomu lepší podporu. V Emacsu se k tomuhle používají externí procesy. Samotné rozhraní pluginu je ale vždy napsané v elispu.

Ve Vimu je to prostě znak "!", za kterým je externí příkaz. Označené řádky do něj vstoupí jako STDIN a jsou nahrazeny řádky, které přijdou ze STDOUT toho externího příkazu. Předpokládám, že Emacs to dělá podobně, jen s odlišnou syntaxí.

Takže když chci třeba několik řádek seřadit podle abecedy, tak je označím a napíši :!sort. Když chci seřadit selý soubor, tak jen :%!sort. Pak už záleží jen na fantazii a množství použitelných filtrů v systému.

Občas tak trochu závidím Emacsu jeho elisp, ale librep přes zmíněný příkaz ho dokáže nahradit. Samotný VimL se mi moc nelíbí, ale používat se dá a pár tisíc řádek konfigurace jsem si v něm už také napsal. Hlavně automatické korektury.

"!" znám. Většinou to stačí. V Emacsu to stejné dělá M-|. Navíc mohu mít několik trvale běžících terminálů uvnitř editoru. Občas se to hodí. Pokud vím, Neovim to také umí.

VimL na první pohled nevypadá špatně. On i Elisp má své mouchy. Knihovny jako dash.el je z velké části napravují. Za velkou výhodu považuju existenci ielm módu, což je Elisp REPL. Dost to urychluje vývoj v Elispu.


Kit

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #70 kdy: 29. 08. 2016, 19:26:21 »
VimL na první pohled nevypadá špatně. On i Elisp má své mouchy. Knihovny jako dash.el je z velké části napravují. Za velkou výhodu považuju existenci ielm módu, což je Elisp REPL. Dost to urychluje vývoj v Elispu.

VimL je objektovým jazykem s dynamickým typováním. Syntaxe mi tak trochu připomíná Visual Basic a má zvláštním způsobem vyřešeny pokračovací řádky. Zpočátku trochu nezvyk, ale udělat se v tom dá cokoli.

Ivan Nový

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #71 kdy: 29. 08. 2016, 20:33:47 »
Programátor, který potřebuje intenzivně refaktorovat, je jako malíř, který potřebuje každý tah štětcem několikrát přemalovávat než se strefí, nebo truhlář, který každý druhý řez musí slepovat a spoj zase řezat, než to udělá alespoň trochu použitelně, protože má pocit, že nakreslit si to nejdřív na papír a propočítat ho neuvěřitelně zdržuje, nebo jeho abstraktní představivost na to zkrátka nestačí, a tak pracuje systémem pokus-omyl, protože chemikálie a nářadí mu to umožňují. To rozhodně není dobrá práce a ani podobně pracující programátor nezasluhuje přívlastek "dobrý".

Spor Editor x IDE je velmi starý. Prakticky je to spor Unix x Smalltalk. Jinak na PC bylo koncem 80. let 90% programů vytvářených v IDE, IDE není žádná novinka, či záležitost posledních let. To jen původně linuxoví amatéři si zvykli vyvíjet v editorech, protože nic jiného neměli k dispozici.

gl

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #72 kdy: 29. 08. 2016, 20:41:25 »
Programátor, který potřebuje intenzivně refaktorovat, je jako malíř, který potřebuje každý tah štětcem několikrát přemalovávat než se strefí, nebo truhlář, který každý druhý řez musí slepovat a spoj zase řezat, než to udělá alespoň trochu použitelně, protože má pocit, že nakreslit si to nejdřív na papír a propočítat ho neuvěřitelně zdržuje, nebo jeho abstraktní představivost na to zkrátka nestačí, a tak pracuje systémem pokus-omyl, protože chemikálie a nářadí mu to umožňují. To rozhodně není dobrá práce a ani podobně pracující programátor nezasluhuje přívlastek "dobrý".

Spor Editor x IDE je velmi starý. Prakticky je to spor Unix x Smalltalk. Jinak na PC bylo koncem 80. let 90% programů vytvářených v IDE, IDE není žádná novinka, či záležitost posledních let. To jen původně linuxoví amatéři si zvykli vyvíjet v editorech, protože nic jiného neměli k dispozici.

Nejlepší IDE pro PC z konce 80. let byl Torbo Pascal 5.0. Neumělo to ani zvýrazňovat syntax. Programování na Unixu v té době bylo dál. Jak jazyky, tak nástroje.

gl

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #73 kdy: 29. 08. 2016, 20:42:19 »
*Turbo Pascal

Ivan Nový

Re:Textový editor Atom - srovnání s Emacs
« Odpověď #74 kdy: 29. 08. 2016, 20:59:59 »
*Turbo Pascal
Smalltalk je taky IDE a pochází ze stejné doby jako Unix, každý má ale jinou filosofii, nedá se říci, která je lepší a která je horší.

Ad zvýrazňování. Navíc v té době terminály nebývaly barevné, takže pochybuji, že to unix dělal. Na RSXu nic takového nebylo. A práce v Turbo Pascalu, Turbo C byla řádově příjemnější, než na mainframech, nebo minipočítačích (VAX,PDP). Například na maiframech se tehdy stále ladilo v dávkovém režimu.