LINUX.ORG.RU
ФорумTalks

Оказывается люди могут ущемиться от наличия лигатур

 ,


0

2

https://practicaltypography.com/ligatures-in-programming-fonts-hell-no.html

Прочитал статью и немного не понял.

Человек возмущается, что в шрифтах для программирования символы типа != могут визуально отображаться как . Аргумент: "А вот в unicode есть символ , и он не является частью языка, поэтому надо смотреть на != и не бухтеть!

P.S. Сам я уже много лет использую FiraCode с лигатурами и их наличие позволяет очень быстро понимать, что происходит в коде, не обращая внимание на синтаксические условности.

★★★★★
Ответ на: комментарий от alysnix

для такого рода возни с лигатурами, отображалка текста должна знать грамматику языка

не отображалка, а шрифт должен знать грамматику языка

это си-подобное грамматическое правило, в другом языке такое сочетание или бессмысленно или имеет не тот смысл

Да, но при этом в этом же самом шрифте сочетание *** начинает выглядеть как три звёздочки треугольником, что для си не имеет никакого смысла.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Ты задал вопрос (притом не самый очевидный) на специализированном форуме, тебе на него ответили. Чего ж ты недоволен тогда?

Я недоволен твоей детской наивностью и непониманием простых основ. А вот например alysnix в Оказывается люди могут ущемиться от наличия лигатур (комментарий) - прекрасно понимает о чем речь.

windows10 ★★★★★
()
Ответ на: комментарий от ALiEN175

особо упоротые шрифтописатели даже умудряются fl залигатуривать.

Это как раз правильно. Один из классических примеров использования лигатур. В английском языке так принято.

vbr ★★★★★
()
Ответ на: комментарий от alysnix

Нет никакой стандартной клавиатуры. К примеру на некоторых европейских клавиатурах даже такие общепринятые в программировании символы, как {}[]\~@ набираются через одно место, если не настраивать это специально. Про всякие китайские я вообще молчу. У тебя, видимо, америкоцентрическое мышление и ты другие страны себе даже не представляешь. Факт в том, что многие люди специально настраивают себе методы ввода для комфортного программирования. И это совсем не обязательно должна быть американская раскладка. Можно и другую настроить.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от windows10

непониманием простых основ

По-моему тут ты не понимаешь, что речь идёт про поддержку комбинаций ASCII-символов в виде лигатур

static_lab ★★★★★
()
Ответ на: комментарий от vbr

К примеру на некоторых

вот это выражение придает всему тексту казуальный, лишенный всякой логики и причинности, окрас.

да мало ли что там за кнопочки на арабской или тайской или грузинской клавиатуре. Никто не будет принимать их во внимание при разработке лексического набора какого-то языка программирования широкого круга пользования.

alysnix ★★★
()
Ответ на: комментарий от static_lab

По-моему тут ты не понимаешь, что речь идёт про поддержку комбинаций ASCII-символов в виде лигатур

Перечитай по приложенной ссылке о чем идет речь. Специально для тебя даже картинку приложу: https://practicaltypography.com/images/fira-code.png

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Да, это ты не понимаешь. Когда ты рендеришь шрифтом Fira Code последовательность символов !=, она начинает выглядеть как ≠, при этом ни на уровне файла, ни в отображении этого файла в памяти редактора ничего не меняется. В этом и смысл лигатур.

static_lab ★★★★★
()
Ответ на: комментарий от vbr

Факт в том, что многие люди специально настраивают себе методы ввода для комфортного программирования

Факт в том, что раскладка может быть хоть на китайском, а вот начертание функций, операторов и выражений будет на языке програмимирования, и как бы китаец не хотел, но на С он будет программировать используя английские слова.

Кроме комфортного программирования, есть еще понятие «интерфейса». Нет, это не гуй, это не командная строка. Это концепция взаимодействия с пользователем, где машина четко понимает человека, а человек четко понимает машину.

Нет никакой стандартной клавиатуры.

Это ты так пошутил? Стандарты клавиатур - ANSI \ ISO \ JIS \ KS, и это стандарт про конфигурацию клавиш, а не их назначение.

По поводу лигатур и особенно автозамен - настоятельно рекомендую тебе завести счет в банке, чей клиент-банк балуется такими вот лигатурами и особенно автозаменами: чтобы ты несколько раз ввел пароль с автозамененными символами и поехал на другой конец города его восстанавливать. Может тогда поймешь, почему лагитура это зло.

windows10 ★★★★★
()
Ответ на: комментарий от static_lab

Да, это ты не понимаешь. Когда ты рендеришь шрифтом Fira Code последовательность символов !=, она начинает выглядеть как ≠, при этом ни на уровне файла, ни в отображении этого файла в памяти редактора ничего не меняется. В этом и смысл лигатур.

Окей, а когда я вызываю меню ПОИСКА (ctrl+f обычно) и ищу "!=" - мне что подсвечивается?))

windows10 ★★★★★
()
Ответ на: комментарий от alysnix

К примеру на некоторых

вот это выражение придает всему тексту казуальный, лишенный всякой логики и причинности, окрас.

Потому, что в Европе стран много, языков много и алфавитов много. Наверное это не всем известно, но вот такой вот факт.

да мало ли что там за кнопочки на арабской или тайской или грузинской клавиатуре.

Или на немецкой, испанской, ага. На самом деле как раз грузинам, арабам и русским попроще. Как правило, они просто пользуются отдельной американской раскладкой, т.к. от латинницы уйти сложно. А вот европейцам в этом плане менее удобно - на их раскладке вся латинница есть и вторую добавлять они не привыкли.

Никто не будет принимать их во внимание при разработке лексического набора какого-то языка программирования широкого круга пользования.

Ну да, я и говорю - америкоцентричное восприятие. Но сейчас не 1960-й, сейчас мир изменился. Не удивлюсь, если лет через 10 будем иероглифами программировать. Читать мандаринский уже давно приходится.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от vbr

Не удивлюсь, если лет через 10 будем иероглифами программировать. Читать мандаринский уже давно приходится.

не будем. китайцы вообще против глобализации, потому что не хотят превращать китай в проходной двор. это такой способ культурной и прочей защиты.

распространенность языка твоего народа имеет столько же минусов, сколько и плюсов.

alysnix ★★★
()
Ответ на: комментарий от DumLemming

А то у одного придурка рюшечки а другим подстраивайся

Хотелось бы знать как именно тебе надо подстраиваться под шрифт и настройки какого-там редактора на другой половине планеты.

her_s_gory
()
Ответ на: комментарий от DumLemming

Тебе нужно в лог вывести ‘x ≠ y’. Что делать будешь?

так и напишу x != y. Редактор с поддержкой лигатур при нужном шрифте нарисует лигатуру, у остальных будет как в оригинале.

her_s_gory
()
Ответ на: комментарий от watchcat382

Не хотел бы я пользоваться редактором который по собственному желанию подменяет символы:(

просто не используй шрифты с лигатурами. Оне же не дефолтные. Нужно напрячься, чтобы это включить.

her_s_gory
()
Ответ на: комментарий от static_lab

Тем временем тут уже третья страница обсуждений пошла того, как и кто настраивает у себя этот визуал, ни на что не влияющий.

Всё равно, что обсуждать, стоит ли заниматься разработкой с темой Monokai.

Friearch
()
Ответ на: комментарий от her_s_gory

«!=» - это си специфичный синтаксис. в другом языке оно может значить все что угодно. и твоя лигатура будет сбивать человека с толку.

alysnix ★★★
()
Ответ на: комментарий от alysnix

Как лигатура, которую он установит для редактирования своей сишечки, тебя-то зааффектит? А если он тёмную тему поставит, у тебя свет выключат?

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Когда ты рендеришь шрифтом Fira Code последовательность символов !=, она начинает выглядеть как ≠

Это настолько невероятно тупо, что даже не верится. Про грамматику конкретных языков шрифт Fira Code в курсе? Что будет, если эта последовательность символов находится внутри строкового литерала? Хотя, даже на лоре давно заменяют кавычки ёлочками, так что этот мир уже не спасти.

bread
()
Ответ на: комментарий от vbr

К примеру на некоторых европейских клавиатурах даже такие общепринятые в программировании символы, как {}[]\~@ набираются через одно место

Понятно теперь почему в Европе программистов не густо в сравнении с США. Так вы хотите, чтобы все остальные тоже страдали из-за юникодных козявок?

bread
()
Ответ на: комментарий от bread

Если это кажется тебе тупым, так просто не пользуйся этим шрифтом. Или тебя красный коммисар под дулом нагана заставляет его поставить?

static_lab ★★★★★
()
Ответ на: комментарий от bread

Что будет, если эта последовательность символов находится внутри строкового литерала?

Ничего не будет, на код лигатуры не влияют. Это просто отображение. Кто-то любит такую визуализацию операторов, для другого она выглядит неестественной, как что-то инородное.

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Ну значит будет отображаться нерелевантный мусор. Лигатура в моноширинном шрифте это уже само по себе прикол. Она два знакоместа занимает или как?

bread
()
Ответ на: комментарий от bread

Лигатура в моноширинном шрифте… два знакоместа занимает или как?

Займёт столько же знакомест, сколько занимает последовательность тех же символов в обычном шрифте.

static_lab ★★★★★
()
Ответ на: комментарий от bread

Те, кто привык ими пользоваться даже не задумываются, это на уровне восприятия, вот нравится им не >=, a

dmitry237 ★★★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)
Ответ на: комментарий от dmitry237

В гугл-фонтс поиск подсвечивает лигатуру.

Он подсвечивает не лигатуру, а замену - это раз.

Два - это тупо, когда я ищу один символ, а в поиске всплывает другой.

Три - если бы начертание заменялось например на картинку - было бы просто и без претензий. Но оно заменяется на другой символ юникода, и это вносит путаницу. И это даже не синтаксическая путаница, это путаница строковая. Как ты собрался в редакторе отличать != от ≠, а ≠ от ≠, ммм? Давай ка я тебе процитирую википедию на лигатурный манер...

Оригинал:

«≠» — не равно (в программировании обычно используется «!=», «<>» или «#»).

С лигатурой:

«≠» — не равно (в программировании обычно используется «≠», «≠» или «#»).

Ну базару нет, если у кого-то настолько развиты телепатические навыки, или любовь к мастурбации что он будет включать\выключать настройки редактора для текста - пусть делает. Только не надо выдавать это за истину в последней инстанции, и называть «ущемленными» тех, кто хочет видеть ровно то, что вводит.

Кстати про вводит. Man WYSIWYG - концепцию, являющуюся чуть ли не основной человеко-ориентированных интерфейсов.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Как ты собрался в редакторе отличать

Я не пользуюсь лигатурами, у меня нет такого редактора и такого эмулятора терминала.

Он подсвечивает не лигатуру, а замену

Называйте «лигатуру» «заменой», что от этого изменится для остальных?

Давай ка я тебе процитирую википедию

Вы сами для себя выбираете пользоваться лигатурами или нет. Никто не заставляет, включите эту опцию в редакторе и будут у вас лигатуры, тоже самое с терминалом. Включили, значит вы готовы к такому отображению символов. Если вам это не подходит, то и не пользуйтесь. Я один раз посмотрел, вроде в VSCode, и мне не понравилось.

Вот и все, а не эти ваши претензии на пустом месте. Вы спросили, что будет при поиске, я вам привел конкретный пример.

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Называйте «лигатуру» «заменой», что от этого изменится для остальных?

Ну вот смотри.

У меня есть программа с оригинальным текстом, из википедии:

void main() {
 int a = 7;
 if (a ≠ 0) {
  printf ("«≠» — не равно (в программировании обычно используется «!=», «<>» или «#»).\n");
 }
}
Захожу я такой в поиск, ввожу !=, и мне высвечивается ТРИ найденных результата. Два из которых мне не нужны.

Если вам это нравится - то в принципе понятно откуда в СПО берутся эти винегреты и кодо-лапши.

Вы сами для себя выбираете пользоваться лигатурами или нет.

При чем здесь выбор лигатур? Вы топик вообще прочитали? В топике не про лигатуры, в топике про оскорбления ущемленными тех кто не выбирает этот бардак.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

я такой в поиск, ввожу !=, и мне высвечивается ТРИ найденных результата. Два из которых мне не нужны.

Я в вашем примере вижу только два вхождения !=. А вот это не будет найдено, т.к. это отдельный символ:

$ '0x{0:x}' -f [int][char]"≠"
0x2260

Лигатуры не перезаписывают исходный текст, а лишь отображают его другими глифами. Их нельзя скопировать или сохранить, только увидеть. При копировании и сохранении у вас будут исходные !=

dmitry237 ★★★★★
()
Ответ на: комментарий от windows10

в топике про оскорбления ущемленными тех кто не выбирает этот бардак.

Ну пусть оскорбляются, это «ущемление» возможно только при обмене скриншотами страниц редактора.

dmitry237 ★★★★★
()
Ответ на: комментарий от her_s_gory

просто не используй шрифты с лигатурами. Оне же не дефолтные. Нужно напрячься, чтобы это включить.

Вроде в Jetbrains уже дефолтные.

vbr ★★★★★
()
Ответ на: комментарий от windows10

Три - если бы начертание заменялось например на картинку - было бы просто и без претензий. Но оно заменяется на другой символ юникода, и это вносит путаницу.

Ничего никуда не заменяется. Лигатура это когда в шрифте для сочетания ! + = рисуется специальный глиф. В программистских шрифтах этот глиф, как правило, занимает два знакоместа и отличается от глифа, соответствующего символу . Тут скриншот, как это выглядит, сверху лигатура, снизу юникодный символ. Тут ещё наглядней, глифы отличаются не только размером, но и начертанием.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от vbr

Вроде в Jetbrains уже дефолтные.

Но лигатуры нужно отдельно включить

static_lab ★★★★★
()

в шрифтах для программирования символы типа != могут визуально отображаться как ≠

Ересь!

Suigintou ★★★★★
()
Ответ на: комментарий от mord0d

кде на вяленом, компоуз работает

в гипрланде вроде бы тоже

ad0c
()
Ответ на: комментарий от unDEFER

А не компилируемый код с синтаксическими ошибками в репозитории - это какой-то исключительный случай.

Гм…

– Фроу Кэтч! Знаешь, что такое наивность?
– Ну.. это когда мать думает, что её дочь девственница?, - кокетливо предположил Фроу Кэтч, предпочитавший ухаживать за девушками проверенными методами.
– Не угадал. Это когда программист думает, что код, который он взял из базы, собирается. А знаешь ли ты, что такое сверхнаивность?
– Это когда дочь.. думает…
– Нет! это когда программист! думает! что код, которые он кладёт в базу! собирается!
Фроу Кэтч сник: он положил код в базу полчаса назад.

По теме – не знаю, ущемление ли это, но мне вот тоже эта идея «в коде одно, видим другое» не очень нравится.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Он может и не собираться из-за изменений в компиляторе или библиотеках, но как правило всё это не синтаксические ошибки.

unDEFER ★★★★★
()

Это вопрос эстетического восприятия. != и => представляют из себя очевидное уродство. Вообще в коде много уродливого, лигатуры хоть как-то пытаются эту срамоту загладить.

geometer
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)