Díval jsem se na ten blog a vidím tam příklad kódu v C, kde je "menší nebo rovno" vyjádřeno jedním znakem. Nejdřív jsem si řekl, že to překombinovali manažeři, ale pak vidím, že nový font pro ten terminál má nabízet "programming ligatures", čili "slitky" - snad to nebude něco, co rozbije kompatibilitu...
Zrovna ligatury jsou u programátorského písma pitomost. Třeba u VHDL je kombinace znaků „<=“ určena pro přiřazení signálů, HTML komentář se taky běžně neukončuje šipkou směřující doprava. Takových nesmyslů se dá určitě najít spoustu.
Např. IntelliJ Idea umí ligatury zobrazovat a vypadá to dobře.
@finn.cz
#sarkasm
Rozhodně to pitomost není. Je potřeba to množství symbolů, jejich kombinací a různé významy rozředit dalšími. Nejlepší by bylo kdyby přišlo víc takových fontů, třeba 20 a každý to hezky řešil po svém ... ;-)
Asi se neshodneme na významu slov „docela dobře“. Uvedl jsem příklady jazyků, ve kterých to funguje „úplně blbě“.
Vůbec, i když tohle nepovažuju za relevantní argument. Co je nepochopitelného na tom, že když (občas) otevřu zdroják ve VHDL, nechci místo
pwm_switch <='1' when ((id_type = "0011") or (id_type = "0100")) else '0';
(tj. nastav signál na 1, pokud id_type je 0011b nebo 0100b) vidět
pwm_switch ≤ '1' when ((id_type = "0011") or (id_type = "0100")) else '0';?
Ty ligatury fungují v některých programovacích jazycích „docela dobře“ a v jiných „úplně blbě“.
Myslel jsem si to. Takže jste to sice nikdy neviděl, ale víte, že je to určitě špatně.
Pokud vám v některých případech ligatury nevyhovují, tak je v těch případech prostě nepoužívejte. Pokud se to týká jednoho konkrétního jazyka, tím lepší, bude jednoduché to nakonfigurovat.
Ale aspoň už jste dospěl od toho, že je to pitomost, k tomu, že to může fungovat docela dobře. Myslím, že je to úspěch.
@Filip Jirsak Myslel jsem si to. Takže jste to sice nikdy neviděl, ale víte, že je to určitě špatně.
taky sem nikdy nevidel a nezkusil auto s volantem pod sedackou nebo nejedl smazene psi lejno , presto vim ze je to vse spatne, nevhodne ci nechutne... stejne tak ja (i ostatni) muzou povazovat i bez vyzkouseni ze slouceni nekolika znaku v kodu co napisu v jeden jinej je ujetej napad... a srovnavat to s ctenim souboru filesystemem nebo interpretaci UTF-8 je jeste ujetejsi, uvedom si ze tam plati co napisu (a jakkoliv se ulozi) pri otevreni vidim totozne jako sem napsal
@k3dAR:
„Jak vzniká vynález? To všichni vědí, že je něco nemožné, a pak se objeví nějaký blázen, který neví, že je to nemožné, a udělá vynález.“ – Albert Einstein
Každopádně pokud je v diskusi několik lidí, kteří to vyzkoušeli, považují to za užitečné a dál to používají, a proti nim několik lidí, kteří to nikdy ani nevyzkoušeli ale tvrdí, že to nemůže fungovat, věřil bych těm prvním.
srovnavat to s ctenim souboru filesystemem nebo interpretaci UTF-8 je jeste ujetejsi, uvedom si ze tam plati co napisu (a jakkoliv se ulozi) pri otevreni vidim totozne jako sem napsal
Nic ujetého na tom není, protože i v případě ligatur platí, že co napíšu (a jakkoliv se uloží) při otevření vidím totožně jako jsem napsal.
s tim Albertem je to DOST trrapne, nebo snad myslis ze by povazoval za dobrej napad mit v aute volant pod sedackou?
je potreba rozlisit dobrej(i presto ze vsichni rikaji ze to vymyslel blazen) a spatnej napad(i presto ze vsichni rikaji ze to vymyslel blazen) napad... kdyz mi sem napise 5 lidi ze jim chutna smazene lejno, tak me to take nepresvedci abych zmenil nazor ze smazene lejno ktere sem neochutnal muze bejt dobrej napad.
Ten citát ale neříká to, že každý špatný nápad je ve skutečnosti dobrý nápad. Říká jenom to, že i to, co někdo považuje za špatný nápad, ve skutečnosti může být nápad dobrý.
Rozlišovat mezi dobrým a špatným nápadem se dá pomocí argumentů. Například argument proti volantu pod sedačkou je jednoduchý – řidič potřebuje ovládat volant rukama a zároveň potřebuje vidět na cestu před sebou. To není s volantem pod sedačkou splnitelné.
Proti ligaturám tu zazněl argument, že se budou ligatury špatně rozeznávat – budou se s něčím plést. Ovšem ten argument byl jenom teoretický, nebyly tu konkrétní příklady, co s čím by se mělo plést. A ozvali se minimálně dva lidé, kteří ligatury používají a s ničím se jim nepletou – já jsem dokonce napsal, že mi kód s ligaturami připadá o něco čitelnější. Tím je ten argument o špatném rozlišování podle mne vyvrácen.
Samozřejmě pro svůj názor, že ligatury v programátorských fontech jsou špatně, nemusíte mít žádné argumenty. Klidně si to myslete jenom na základě svého silného pocitu a argumenty ignorujte – mně je to jedno. Ale počítejte s tím, že váš silný pocit nikoho nepřesvědčí.
aby nedoslo k nedorozumenni, ja nerikam ze je to obecne spatnej napad, chapu ze to nekomu muze pripadat jako dobrej napad i ze to uvita a pouziva, primarne sem rozporoval to, ze pokud nekdo takovej nazor nezastava, NEmel by byt "napadan" za to ze to nevyzkousel, protoze jsou proste veci (a tato k nim patri) o kterych je mozny udelat racionalni nazor i bez vyzkouseni...
druha vec je, ze dokud dana vlastnost jde vypnout, neni se v postate o cem bavit, kazdej se podle sebe rozhodne a podle toho ji vypne/zapne...
Racionální názor si jde bez vyzkoušení udělat na všechno. Ovšem v tomto případě by dotyčným vyzkoušení pomohlo v tom, aby od „udělal se mi názor“ přešli k racionálnímu názoru. „Všechno staré je dobře a každá změna je k horšímu“ totiž není racionální názor.
vsechno stare neni dobre, stejne tak vsechno nove neni dobre, proc pouzivat neco nove co (pro konkretniho cloveka) neni dobre? 2 znaky jsou 2 znaky, proc by se mel koukat na jejich spojeni v 1 "c00l m0derni" znak kdyz mu to neprijde dobre?
Nikdo netvrdil, že všechno nové je dobré. Akorát pokud někdo to nové ani nevyzkouší ani nemá žádné racionální argumenty proti, je hloupé o tom psát, že je to pitomost. Že to někomu osobně nevyhovuje, to je jiná věc – a nepotřebuju k tomu slyšet žádné argumenty, prostě se dotyčný nějak rozhodl, že to není pro něj, a já to rozhodnutí respektuju.
Co je znak je arbitrární rozhodnutí. Je „č“ jeden znak nebo dva znaky? S Unicode si můžete vybrat. Když to „č“ napíšete jako jeden znak Unicode, v kódování UTF-8 se to zapíše jako dva bajty. Co když si vymyslím kódování, které bud používat osmibitové znaky, ale řeknu, že pro posloupnost znaků 0xC4 0x8D se bude používat ligatura „č“. A stejně nadefinuju i všechny ostatní znaky, které se v UTF-8 kódují více bajty. Zobrazení textu v tomto kódování bude ekvivalentní UTF-8, ale bude tam spousta ligatur. Podle vás to bude najednou špatně?
Všechny rozumné programovací jazyky mají nadefinované nějaké operátory, třeba operátor pro „nerovná se“, „menší nebo rovno“ atd. Zároveň definují, jak má být takový operátor zapsán pomocí nějakého kódování, aby ho kompilátor jako příslušný operátor rozpoznal. Ale nikde není definováno, jak se ten operátor má zobrazovat programátorovi. Důležité je, že je to operátor „nerovná se“, aby programátor poznal, o jaký jde operátor, a to je vše. Proč by se to mělo zobrazovat jako dva znaky? Vždyť ani nepoznáte, co je jeden znak a co dva znaky – jsou písma, kde kolem některých symbolů nejsou žádné okraje. Takže třeba když napíšete dvě „=“ vedle sebe, nebudou mezi sebou mít žádnou mezeru a bude to vypadat jako jedno dlouhé rovná se. Je to jeden znak nebo dva znaky?
Vetsina IDE, ale i neIDE SW reaguje v ramci kontextu resp. v jakem zdrojaku se pohybuje. Treba zmineny IntelliJ umi v ramci jednoho projektu rozeznavat spoustu typu souboru. Neznamena ze pokud mam projekt treba v C++, tak se mi v nem IDE nebude snazit udelat C++ highlight treba v YAML konfiguraci.
Stejne to muze byt v pripade VHDL, kdy se Vam muze ve Vasem pripade misto ≤ zobrazit treba nebo .
Navic se vsadim ze minimalne v IntelliJ pujdou ty jednotlive znaky dokonce prenastavit, takze si tam pro prirazeni/"mensi nebo rovno" muzete dat treba kosoctverec.
A nebo jako zminil Filip Jirsak ... proste to vypnout :)
"<=" moze byt este ok, ale oni tam nahradzaju aj porovnanie "==" za dlhe = ktore je lahko pomylitelne s normalnym "=".
Rozumny kompilator sice pri pouziti priradenia = na mieste logickeho vyrazu hlasi warning, ale co ked nie?
To zase bude kvalita ked takto napisane kody pojdu do produkcie!
Nevím, jaký používáte pro programování font, ale ve Fira Code je ligatura pro „==“ lehce zaměnitelná s „=“ pouze pro slepé. Při mém současném nastavení má „=“ délku 5 pixelů, „==“ má délku 12 pixelů. Mně se kód s ligaturami čte naopak o něco lépe, než bez nich, protože to mozek hned na první pohled vnímá jako jiný symbol.
Mozno som staromodny alebo divny, ale ked pracujem s kodom tak chcem vidiet co je napisane v subore, nie ako to interpretuje nejaky renderovaci mechanizmus.
Kde sa toto zastavi? Budete podporovat zobrazenie smajlika namiesto :) alebo to uz je prilis user friendly?
To byste se musel naučit číst rovnou ty magnetické stopy z disku. Jakmile si soubor zobrazíte, je to interpretace toho souboru nějakým rendererem. Pokud ten soubor máte v UTF-8, musí interpretovat, že dané dva bajty se mají zobrazit jako jeden znak (třeba „č“). I ASCII znaky je potřeba interpretovat jako ASCII.
Proč vám tolik záleží na renderovacím mechanismu nechápu, pro mne je u kódu důležité to, aby byl co nejlépe čitelný. A pro mne používané ligatury čitelnost o trochu zlepšují.
Cakal som ze sa niekto chyti multibyte kodovania a stalo sa.
Za mna to uzatvaram tym ze ak by som nahodou pouzival system ktory renderuje ligatury v zdrojaku tak sa budem snazit tuto vlastnost vypnut.
/micdrop
Treba PhpStorm (postaveny na IntelliJ) umi krasne prevadet HTML entity na ligatury. Pokud na ni najedu kurzorem, rozlozi se zpet na HTML entitu. Omlouvam se ale pokud vidim v HTML nejaky staticky napis, radeji uvidim ze je tam spravna entita, nez abych si googlil, co je to za entitu a jaky znak reprezentuje.
Uvidite radeji & #8656 ;(mezery tam jsou schvalne)? ................................................................. Nebo ⇐? Navic ligatury treba v HTML jsou v PhpStormu jeste podbarvene aby clovek poznal ze je tam neco jinak, takze i kdyz do HTML vlozim primo dany znak a hned vedle entitu, co se prekresli na dany znak, rozdil poznam.
10. 5. 2019, 06:37 editováno autorem komentáře
Problém s ligaturami vidím hlavně v tom, že jsou kontextové. Takže to bude podobné jako posílat kód přes skype, kde se polovina znaků změní ve smaijlíky.
Skoro tomu nemohu uverit... Po tech letech...
Mno, ale zase: na blogu se pochlubili uzasnym pismem a grafickym enginem, ale jestli bude defaultne zapnute automaticke doplnovani tabulatorem, to nerekli.
Doplňování není věcí terminálu, ale shellu, který v tom terminálu může běžet. Když si v tom terminálu spustíte WSL a v něm zsh, doplňování tam bude fungovat skvěle…
Přehlédl jste "defaultně".
PowerShell to zapnuté má a starému dinosaurovi CMD to na TAB musíte přepnout v registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
Default tam opravdu není TAB - a nečekám, že by se tohle změnilo (protože: Nelíbí se vám něco v CMD? Přejděte na PowerShell!)
Nepřehlédl. Ten zápisek je o nové aplikaci Windows Terminal, takže je docela marné hledat tam informace o výchozí konfiguraci CMD, Power Shellu, Edge nebo jakékoli jiné aplikace kromě právě Windows Terminalu.
Relativně použitelnou příkazovu řádku umí z cmd.exe a výchozího "terminálu" windows udělat projekt Clink (https://mridgers.github.io/clink/). Doporučuji instalovat přes chocolatey.
Funguje pak doplňování přes tab i historie příkazů, skoro jak je člověk zvyklý z linuxu. V kombinaci s cygwin či podobným je pak iluze použitelné příkazové řádky téměř reálná. :-)
Zbytečné úsilí, kdyby vzali to co je hotové - ConEmu případně zaměstnali vývojáře co na tom dělá ušetřili by si spousty práce a měli by několik let vývoje zdarma.
Doporučuji vám přečíst si odkazovaný blog, kde na to proč nevyužili existující SW odpovídají, viz:
Okay, but what about contributing to an existing open source terminal/app project instead?
We carefully explored this option during planning and determined our involvement in an existing project would require changing the project’s requirements and architecture in ways that would be too disruptive.
Instead, by creating a new open-source terminal application, and open-sourcing Windows Console, we can now invite the community to collaborate with us on improving the code and leveraging it in their respective projects.
We believe there is plenty of room in the market for new/different ideas about what a terminal can and should do and we aim to help the ecosystem of terminal (and related) applications flourish and grow through the introduction of new ideas, interesting approaches, and exciting innovations in this space.
To máš tak, když někdo tvrdí, že diverzita distribucí linuxu, DE a SW na něm je ke škodě věci, že je to tříštění sil a mrhání zdroji, že by to chtělo sjednotit, tak někteří piští, že je to tak v pořádku, že si každý ve svém volnu a za svoje peníze může dělat co chce. A když Microsoft za své peníze něco vytvoří a vydá to jako open source, tak je to špatně, protože tím tříští síly a mrhá zdroji.
jak muzes vedet ze hlasy o tom ze to bylo zbytecne nepochazi od stejne skupiny co nadava na tristeni sil?
ja treba jsem zastancem toho ze tristeni sil v GNU/Linuxu neexistuje, ze jde ve zkutecnosti o nasobeni sil, ze lide co by jim bylo "zakazano" pracovat na alternative by se k tomu "zvolenemu jedinemu spravnemu" vyvoji stejne nepridali, a naopak ze moznost udelat fork a/nebo prijit s alternativou ze zelene louky pritahne dalsi a dalsi vyvojare, kteri chteji implemetnovat svoji vizi a po svem, zaroven z toho muze vzejit kod/napady/reseni ktere zpetne implementuji ostatni...
z podobneho duvodu nevidim problem, kdyz Microsoft udelal svuj vlastni Terminal na zelene louce, pokud bych byl uzivatel Windows urcite bych ho uvital protoze na prvni pohled vypada rozumne a rozhodne 1000x lepe nez to co ve Windows bylo (nativne) do ted...