unicode в идентификаторах

yroslavasako

Сейчас языки программирования и редакторы запросто держат юникод. Стоит ли использовать его для обозначения имен переменных или функций?
В части операторов, я для себя решил, что определённо - да. А вот с переменными, никак не могу понять, что приятнее глазу программиста: phi или 𝜑?

PooH

𝜑
оно самое

zya369

сколько клавиш надо нажать, чтобы ввести "𝜑" ?

doublemother

Четыре.

doublemother

А ещё в нормальных редакторах можно не париться о поддержке языком юникода.

yroslavasako

А ещё в нормальных редакторах можно не париться о поддержке языком юникода.
ну это опасно. Я предпочитаю в точности видеть, что будет передаваться компилятору.

artimon

Я вот вижу вместо второго идентификатора квадратик.

yroslavasako

Я вот вижу вместо второго идентификатора квадратик.
ну клёво. Для редактирования на фотоаппаратах код не предназначен. У иностранцев и вовсе на айпадике вместо форума квадратики будут.

Dasar

А вот с переменными, никак не могу понять, что приятнее глазу программиста: phi или 𝜑?
возникает проблема, что куча символов имеют разные коды (и, соответственно, отличаются для компа но выглядят схожим образом (одинаковы для человека).
в динамических языках, вообще, хрен потом разберешься, что происходит, если один и тот же идентификатор будет записан похожими символами из разных раскладок.

doublemother

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

artimon

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

Maurog

Сейчас языки программирования и редакторы запросто держат юникод.
смелое утверждение. даже Хром не держит и показывает квадратик для твоего символа
Стоит ли использовать его для обозначения имен переменных или функций?
нет, как следствие из предыдущей проблемы. или ты фанат 1C подхода? :grin:
но я не думаю, что мое мнение что-то изменит, ведь
я для себя решил, что определённо - да

yroslavasako

И квадратики вместо переменных мне тут совсем не нужны.
ну так поставь шрифты. Русский тоже язык не стандартный. И квадратики тебе вместо него не нужны. Ты же его поставил. Сможешь и остальное поставить.

yroslavasako

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

stm5872449

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

margadon

как обычно, эль𝜑зм

artimon

Ну расскажи мне как поставить шрифт на айпаде? :confused:

yroslavasako

Ну расскажи мне как поставить шрифт на айпаде? :confused:
А что, там нельзя? Ну значит зачем тогда пользоваться таким говнищем? Будем считать, что фич айпада недостаточно для продвинутого пользователя, которым по определению является программист, и выкинем его из рассмотрения.
update, гугл мне помог найти требуемого в полминуты: http://www.technize.info/how-to-install-android-ice-cream-sa...

khachin

Интереса ради открыл псто
Смело пиши: "зачем тру разрабу пользоваться мобильным говнищем".

yroslavasako

а что, андроид тоже не умеет шрифты устанавливать?

khachin

Вопрос, надеюсь, риторический?

Alena_08_11

update, гугл мне помог найти требуемого в полминуты: http://www.technize.info/how-to-install-android-ice-cream-sa...
Ну ты и тролль !
А я то уж обрадовался ...

VitMix

У кого какие показываются?
1. φ
2. ϕ
3. ɸ
4. ᵠ
5. ᵩ
6. ᶲ
7. ⲫ
8. ⱷ
9. 𝛗
10. 𝛟
11. 𝜑
12. 𝜙
13. 𝝋
14. 𝝓
15. 𝞅
16. 𝞍
17. 𝞿
18. 𝟇
У меня хром под убунту показывает все, хром под андроид показывает только 1 и 3. В исходном посте был одиннадцатый вариант.

yroslavasako

firefox - gentoo, показываются все

okis

Айфон — первые три

svetaslav212

У кого какие показываются?
Win 8.1, IE 11, видно все.
UPD: Windows Phone 8, IE, видно 1-6 и 8.

VitMix

Айфон — первые три
А браузер какой? В любом случае это уже лучше, чем на андроиде :)

nata_chira

Opera Mobile под андроид— показывает первые 6

okis

Был хром
А сафари показывает первые 6 и 8й

Anton456

вин 7
хром: видно 1-6, 8
ие 9: видно всё кроме седьмого

khachin

Win 7, FF 25 (Yandex 1.1): все, кроме 7
Win 7, Opera 12.16: все, кроме 7
Win 7, IE 10: все, кроме 7
Win 7, Chrome: 1-6, 8
Android 4.x, Chrome: 1, 3

shlyumper

Сейчас языки программирования и редакторы запросто держат юникод. Стоит ли использовать его для обозначения имен переменных или функций?
Интересно было бы посмотреть на case-insensitive язык программирования с юникодными идентификаторами в турецкой локали :grin:
Ну и еще, конечно, в твоем любимом языке программирования, в его реализации юникода, numérateur и numérateur это одна и та же перемменная? (в первом é это \u00e9 а во втором é это \u0065\u0301)
Также рекомендуется к прочтению http://stackoverflow.com/questions/6162484/.

istran

Mac OS X, в Chrome, Safari, Firefox и Opera все кроме 7-го, в Lynx 1-3, 9-18.

Anturag

У кого какие показываются?
Только 1-й и 2-й, Mozilla/4.0 (compatible; MSIE 6.0; Linux; A1200eam; 781) Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera 8.00

unrilomax2009

Хром (30.0.1599.101 m) + WIN XP = первые 3 показываются

elenangel

fedora 19, firefox 25 - все показываются
fedora 19, chromium 27 - все показываются
fedora 19, midori-0.5.5 - все показываются
fedora 19, opera 12.14 - все показываются

elenangel

Nokia N9, Firefox - 1, 2, 3, 4, 5, 6, 8 - показываются, остальные - квадратики
Nokia N9, стандартный браузер - 1,2,3,4,5,6,8, то же самое короче
Android 4.3, Nexus 7, firefox 25 - то же самое, отображаются 1,2,3,4,5,6,8
тот же андроид, chrome - 1,3 - отображаются, вместо остальных ничего нет, даже квадратика

shlyumper

Сейчас языки программирования и редакторы запросто держат юникод. Стоит ли использовать его для обозначения имен переменных или функций?
Свежачек от френда из фейсбучека:
var instanceObj. Безобидный кусочек кода, из-за которого два дня котикам под хвост. Под виндой отлично собирается, под маком - неведомая ошибка, реально неведомая, да еще с неправильным указанием на место ошибки. Танцы с бубном оказались бессильны. А знаете что было в var instanceObj ? Русская 'c'.

uncle17

Свежачек
польская фамилия такая?

kill-still

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

yroslavasako

Для этой цели в языках предусмотрены способы закавычивания идентификаторов. В скале это символ `, например. Так что ничего технически сложного нет, только не понятно, зачем?

kill-still


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

спасибо, кэп! :)
только не понятно, зачем?

там всякие штуки которые должны автоматически всё делать (через рефлекшн скажем, или ETL причём валидно работать, какую херь бы пользователь не ввёл. :)

serega1604

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

doublemother

какбэ вменяемые системы сборки
, как и языки программирования, давно требуют строго UTF-8, а не заставляют прописывать в каждом файле emacs-style комментарии.

serega1604

, как и языки программирования, давно требуют строго UTF-8
это какие же, например?

doublemother

go, rust, например, или там haskell.
Даже простигосподимайкрософт уже о чём-то догадывается — их редакторы и языки, хотя и позволяют писать код в других кодировках, но по умолчанию сохраняет всё в UTF-8. А вот магазин приложений их требует строго UTF-8 (правда майкрософт в своём маразме ещё и требует BOM в начале файла).

serega1604

go, rust, например, или там haskell.
из этих только к haskell вообще можно употребить слово "давно", а про utf-8 в качестве требования на кодировку исходников - даже к нему нельзя.

doublemother

Ну я не знаю, может в вашем слоупокориуме «давно» — это только то, что было описано Кнутом где-нибудь году в 68-м, но в наших интернетах хотя бы 2 года — это уже дофига.
Что касается хаскелла, читаем release notes к версии 6.6 от 2006-го года:
GHC now treats source files as UTF-8 (ASCII is a strict subset of UTF-8, so ASCII source files will continue to work as before). However, invalid UTF-8 sequences are ignored in comments, so ASCII code with comments in, for example, Latin-1 will also work.
A way to have Latin-1 source files pre-processed by GHC is described in Section 4.10.4, “Options affecting a Haskell pre-processor”.
Соответствующий proposal тоже где-то есть, но я его вам не дам, потому что у вас документов нет хаскелл.орг лежит.

serega1604

Что касается хаскелла, читаем release notes к версии 6.6 от 2006-го года:
это я и без тебя знаю, но это не значит, что если я напишу свой компилятор, который будет вести себя не так, то я нарушил стандарт.
Соответствующий proposal тоже где-то есть
и это я тоже знаю, спасибо, мог не утруждать себя работой капитана. Насколько я знаю proposal и стандарт все-таки разные вещи, поэтому если тот proposal не принят, то про хаскель даже сейчас нельзя сказать, что в нем так, не то что "давно"

doublemother

Кажется, Anil Madhavapeddy, писал про какой-то момент в OCaml: «согласно стандарту поведение в данной ситуации является UB, но поскольку на практике у нас существует всего один реально используемый компилятор OCaml, нам надо принять его поведение в данной ситуации за стандарт».
И да, человек, который напишет свой компилятор, не требующий UTF-8, в то время как основной компилятор языка его требует, абсолютно и однозначно не нужен.

tokuchu

И да, человек, который напишет свой компилятор, не требующий UTF-8, в то время как основной компилятор языка его требует, абсолютно и однозначно не нужен.
Кто не нужен? Человек? :grin:

serega1604

Привет, я тут решил написать текстовый редактор и к нему заодно свой формат файлов. Как ты считаешь, стоит мне описывать мой формат или просто считать, что поведение редактора - единственно правильное?

doublemother

Кто не нужен? Человек? :grin:
Да, именно так.

doublemother

Привет, я тут решил написать текстовый редактор и к нему заодно свой формат файлов. Как ты считаешь, стоит мне описывать мой формат или просто считать, что поведение редактора - единственно правильное?
Если тебя зовут, например, Adobe или Autodesk, или какой-нибудь Microsoft, то конечно же тебе нельзя описывать формат, а то вдруг кто-нибудь реализует аналог, да ещё и лучше тебя будет с ним работать, деньги зарабатывать. Если же ты какой-нибудь комитет по стандартизации (например C++ то конечно ты должен всё тщательно задокументировать и описать. А если ты просто хрен с горы, который пишет что-то — ни с чем не совместимый редактор заметок для ipad, или ЯП для двух сотен бородатых математиков, или просто какие-нибудь кеды — то это абсолютно неважно. Хочешь — описываешь, не хочешь — говоришь: «поддержка другими людьми моего формата мне неинтересна», или «у меня простой и понятный формат, тупо посмотрите в исходниках», или «у нашего проекта нет тех, кто бы эту документацию написал, это же опенсорс, никто не хочет. О, кстати, идите к нам писать документацию!».

zorin29

Если тебя зовут, например, Adobe или Autodesk, или какой-нибудь Microsoft, то конечно же тебе нельзя описывать формат, а то вдруг кто-нибудь реализует аналог, да ещё и лучше тебя будет с ним работать, деньги зарабатывать.
Было справедливо этак лет 10 назад. Security through obscurity не сработало, ИМХО.

doublemother

Было справедливо этак лет 10 назад. Security through obscurity не сработало, ИМХО.
Они всё ещё стараются же. Некрософт ещё пытается свои docx и т.п. пропихнуть в качестве стандартов, а вот Autodesk спеки на dwg до сих пор вроде как скрывает.

zorin29

Ты противоречишь сам себе. В предыдущем посте ты пишешь, что "нельзя описывать свой формат", а сейчас: "пытаются пропихнуть свои docx в качестве стандартов". Или это пример улучшения ситуации? Тогда кто такие эти "они", которые "все еще стараются"?

doublemother

Ты противоречишь сам себе. В предыдущем посте ты пишешь, что "нельзя описывать свой формат", а сейчас: "пытаются пропихнуть свои docx в качестве стандартов". Или это пример улучшения ситуации? Тогда кто такие эти "они", которые "все еще стараются"?
То есть сложноподчинённые предложения ты уже не воспринимаешь? На все твои вопросы отвечает текст после запятой в моём предыдущем посте.

zorin29

То есть сложноподчинённые предложения ты уже не воспринимаешь?
Еще воспринимаю, спасибо за заботу :)
Так кто такие "они"? Ты привел три примера, Adobe (pdf Microsoft (doc) и Autodesk (dwg).
Из них два сейчас уже не верны: и pdf, и docx - вполне себе опубликованные форматы.
Я согласен с твоим утверждением "они все еще стараются же" в формулировке "некоторый процент засранцев, этак 33%, продолжает стараться".

yroslavasako

docx - вполне себе опубликованные форматы.
А референсная реализация docs от microsoft отвечает формату? А формат описан однозначно, без двойных толкований?

zorin29

Не знаю.

doublemother

Adobe (pdf)
psd, ai и другие.

doublemother

А референсная реализация docs от microsoft отвечает формату? А формат описан однозначно, без двойных толкований?
Насколько я помню, сразу после пропихивания docx в ISO, они его расширили, сделав, таким образом, опять несовместимым. Ну и собственно почему docx, сгенерённый либреофисом, мсофис может показать верно (я так понимаю, потому что он подмножество формата а наоборот — нет (получается надмножество того, что умеет либреофис).

elenangel

Насколько я помню, сразу после пропихивания docx в ISO, они его расширили, сделав, таким образом, опять несовместимым

1. Embrace ☑
2. Extend ☑
3. Extinguish ☐
Оставить комментарий
Имя или ник:
Комментарий: