Примечание переводчика: в перерывах между холиварами про JS предлагаю обсудить несерьёзную, пятничную тему:


Кто не любит эмодзи? Активно используя их в мессенджерах и почтовых приложениях, я решил проэкспериментировать с тем, как можно применить их с умом в повседневной разработке приложений. Хотя поначалу это была просто шутка, эмодзи действительно оказались полезными в ряде случаев. Как так?


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


Эмодзи в комментариях


Например, вам нужно добавить предупреждение в код, наподобие такого:




Я регулярно пишу в коде подобные заметки, но годы опыта показывают, что никто их не читает — в том числе и я сам. Что могло бы сделать комментарий более заметным и привлекающим внимание? Например, эмодзи:




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




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


// Почему в этом месте программа падает?
// Сложность O(n?)


А поскольку это всего лишь комментарии, шанс что-то сломать очень мал.


Эмодзи в описаниях коммитов


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



Примечание переводчика: в одном месте автор всё-таки нарушил свое правило


Хотя это несерьёзный пример, я хочу повториться — эмодзи улучшают читаемость. Если вы смотрите на огромный список коммитов, что в больших проектах не редкость, найти конкретный коммит в списке становится куда проще. В редакторе Atom от Github даже есть гайд по использованию эмодзи в коммитах.


Эмодзи в коде


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




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




Как набирать эмодзи


Продуктивность в использовании эмодзи зависит от того, насколько удобно вам будет их набирать. Я пользуюсь глобальным клавиатурным сочетанием Ctrl + Cmd + Пробел в OS X, которое вызывает меню с эмодзи в большинстве приложений. Оно выглядит вот так (можете судить меня по списку часто используемых символов):



Кстати говоря, в Windows 10 есть встроенная поддержка эмодзи в экранной клавиатуре, которая также показалась мне довольно удобной.


Эмодзи и редакторы


Пользоваться эмодзи весело, но если ваш редактор их не поддерживает — увы. К счастью, большинство современных сред разработки присоединяются к эмодзи-революции. Я пишу эту статью в Sublime Text и там поддержка есть, хотя некоторые символы всё-таки искажаются.




Еще я пользуюсь Visual Studio Code, и это редактор справляется с задачей на ура:




Мой любимый терминал iTerm2 также поддерживает эмодзи. Вот так я отправляю новый коммит:




К сожалению, пока далеко не все программы поддерживают эмодзи. Многие из нас вынуждены работать с легаси-инструментами, в которых и с обычными-то символами бывают проблемы. Но мы можем это изменить. Если вы пользуетесь программой, в которой поддержки эмодзи нет — создайте тикет или отправьте запрос на добавление функционала. И да свершится революция эмодзи!


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

Стали бы вы использовать эмодзи в своем проекте?

Проголосовало 888 человек. Воздержалось 148 человек.

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

Поделиться с друзьями
-->

Комментарии (76)


  1. Duster
    26.08.2016 13:48
    +21

    О наболевшем: пожалуй, я бы пометил некоторые участки своего старого кода картинкой с экскрементами…


  1. BasicXP
    26.08.2016 13:49
    +12

    Есть одна проблемка — нарушает выравнивание в моноширинных шрифтах.


    1. LoadRunner
      26.08.2016 14:13
      +7

      Да здравствуют моноширинные эмодзи!


    1. dipsy
      26.08.2016 14:25

      Лет 5 как ушел с моноширинных, ещё ни разу не пожалел. Основной кодинг на с++. Табов для красивого выравнивания хватает, хотя стараюсь особо ASCII-артом в коде не увлекаться, только стандартные отступы в начале строки.


  1. lizarge
    26.08.2016 13:51
    +5

    Использую в swift, что может быть лучше чем эмодзи для названия переменной?


    1. s_suhanov
      26.08.2016 17:55
      +3

      «что может быть лучше чем эмодзи для названия переменной?» — эмодзи для названия класса. :)


      1. inoyakaigor
        26.08.2016 18:43
        +1

        Это, конечно, на ЯП, а просто CSS, но тоже про классы
        image


  1. SamoilowAlex
    26.08.2016 14:09

    Автора не смущает, что обычно используется шрифт от 8 до 12 и эмодзи такого размера будет выглядеть как размытое пятно либо нарушать моноширинность текста? И в целом они больше отвлекают от кода и мешают его чтению, насчет UTF-галочек и пр. возражений нет, они элегантно вписываются, в отличии от колобков. И еще, с чего автор оригинала решил, что яйца это вегетарианское блюдо?


    1. impwx
      26.08.2016 14:13

      Википедия:

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


      1. negodnik
        26.08.2016 20:15

        Молочные продукты и яйца не употребляются лишь частью вегетарианцев.

        Части курицы не употребляются лишь частью вегетарианцев.


    1. alexkunin
      26.08.2016 15:00
      +1

      На ретине выглядит неплохо, а для человека, постоянно работающего с текстом, ретина — маст хэв, я так считаю. На счет остального согласен, слишком мало «тематических» эмодзи, которые реально помогали бы. Пытался подобрать по штуке на десяток хостов (в терминале в PS1 вставить для наглядности), часа два провозился шаря по эмодзи — результат на троечку.


    1. k12th
      26.08.2016 15:09

      Если вегетарианца интересует этика, то диетические яйца не проблема в этом смысле (нет зародыша — нет убийства).


      1. terziele
        26.08.2016 15:38
        +2

        Все еще проще. В обиходе «вегетарианец» обозначает такого вегетарианца, у которого в рацион входят яйца и молочные продукты, или более научно — лактоововегетарианец. Если же что-то из этого маленького списка отсутствует по каким-либо причинам, то это либо лактовегетарианец(не употребляет яичные продукты), либо ововегетарианец(очевидно, без молочки). Если же вегетарианец не употребляет и это, то он веган. Правда, с веганами все немного сложнее.


        1. k12th
          26.08.2016 15:44

          Я не берусь судить, что значит «вегетарианец» в обиходе, но когда я был лактоововегетарианцем, на меня все смотрели круглыми глазами, когда я ел яйца и сыр: «ты же вегетарианец!!11».
          В общем, не опирайтесь на «обиход»: обычно люди в этом не разбираются и строгих терминов не знают.


          Правда, с веганами все немного сложнее.

          Трудно не согласиться:)


          1. terziele
            26.08.2016 15:47

            >на меня все смотрели круглыми глазами, когда я ел яйца и сыр: «ты же вегетарианец!!11».

            Я тебя так понимаю.


          1. alsii
            26.08.2016 17:53

            В Германии многие, кто называет себя вегетарианцами едят рыбу :-) Зато есть такие, которые едят "только плоды. которые сами упали с растений". Ибо срывать из с ветки — это насилие.


          1. torbasow
            27.08.2016 22:59
            +1

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


          1. icoz
            28.08.2016 17:29

            Вы ещё про сыроедение не вспомнили.


      1. alsii
        26.08.2016 17:56
        +1

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


  1. m1n7
    26.08.2016 14:16
    +17

    Первая же картинка.
    Better delete icons — почему бомба?
    Shows an error… — почему ракета?
    Почему мердж ветки это такой праздник? Почему тогда конфетти, а не бокал шампанского или кружки пива?

    При этом на фоне монохромного текста цветные иконки выделяются, глаз за них автоматически цепляется.
    Мозг работает по алгоритму картинка->ассоциация->ничего не понятно->чтение комментария. То есть три лишних этапа. Эмодзи среди текста — это визуальный шум в чистом виде.
    Если хочется сделать логи более читаемыми (сейчас не затрагиваем вопросы совместимости) — разукрасьте текст. Или используйте однозначно понятные эмодзи: галочки и крестики.


    1. TrogWarZ
      26.08.2016 14:38

      Конкретное соглашение? Автор писал про гайды по комментам в гите (в т.ч. по эмодзи, вот тут https://github.com/atom/atom/blob/master/CONTRIBUTING.md#git-commit-messages) – тогда цепочка сокращается до «картинка –> понятно о чём коммит –> не читать текст пока не нужны детали». Как аналог текстовых тегов "[DOC] Update docs about adding new customer", только легкофильтруемые визуально без чтения. Или выделять только определённые чтобы глаз цеплялся – например, при внесении broken changes.
      Интересно как у большинства разработчиков софт это будет поддерживать. Мой iTerm2, например, может и картинки в консоли показывать.


  1. rprokop
    26.08.2016 14:23
    +47

    Кто не любит эмодзи?

    Я! Я этот человек.


    1. terziele
      26.08.2016 14:43
      +8

      В этой нелюбови ты не один!


      1. throttle
        26.08.2016 15:20
        +4

        Примите меня в свой клуб.
        Особенно выбешивают эмодзи на iOS — то, что они третьим языком стоят.


        1. budgged
          26.08.2016 17:28
          +2

          Так это же легко в настройках выключается


        1. budgged
          26.08.2016 17:29
          +1

          Настройки -> Основные -> Клавиатура -> Клавиатуры
          Свайп по ненужной и удаляете


          1. throttle
            26.08.2016 18:06

            Да, я знаю, спасибо. Планшетом чаще жена пользуется, она просила оставить.
            А меня выбешивает, что они в ротации с Ру/En присутствуют.


      1. TimsTims
        26.08.2016 15:20
        +1

        Присоединяюсь. Как разведутся эмодзи, так и полезут у нас переменные в виде эмодзи. Плюс стили эмодзи очень зависят от используемого пака картинок, и т.о. когда один человек привые видеть улыбающийся смайлик в логах = нет ошибок, а такой-же улыбающийся смайлик с зубами = есть некритичные ошибки, то когда он сядет за другой редактор, или другую ОС, и увидит так обратную картинку — это взорвёт мозг, и этот человек пожалеет, что начал использовать эмодзи.


        1. olegchir
          26.08.2016 18:04

          не только переменные надо правильно называть, но и эмодзи. Эмодзи *smile* и *bitter smile* отличаются не только визуально, но и по написанию!


    1. bogolt
      26.08.2016 19:35
      +5

      Особенно помогают смайлики ( помимо самих эмодзи я не люблю еще и слово эмодзи ) в тот момент когда кусок кода в мессенджере превратился в веселые смайлики там где скобочки.


  1. a_vasyutin
    26.08.2016 14:25
    +9

    Грепать логи с эмодзи, навреное, очень удобно:)


    1. BasicXP
      26.08.2016 14:30
      -2

      Эмодзи по задумке автора призваны не заменить текст, а дополнить его. Как грепали по тексту, так и будем. А вот по галочкам/крестикам легче отличить info от error.


      1. Dwite
        26.08.2016 14:43

        Для этого обычно использую разделения логирования по цвету, если real-time логи.


        Пример

        image


      1. lakroft
        26.08.2016 14:49

        Заметить написанное капсом error довольно легко. А если даже нет, да поможет нам Ctrl-F. Хотя я не против украсить это дело эмодзи.


    1. zhka
      26.08.2016 14:49
      +3

      alias ?='grep'


  1. eskrano
    26.08.2016 14:38
    +1

    как на винде то юзать?)


    1. bigfatbrowncat
      27.08.2016 13:05

      Да кому она нужна, эта ваша Венда ;)

      Вместе с кучей старых IDE, которые эти милые картиночки не поддерживают…


  1. Fen1kz
    26.08.2016 14:38
    +1

    Но ведь в статье они "улучшают" не код, а комменты, твиты и названия issues...


  1. Envek
    26.08.2016 14:44
    +3

    1. atsvetkov
      26.08.2016 18:59

      Ну или так.
      http://www.emojicode.org/



  1. Camel
    26.08.2016 14:50
    +17

    Т??еп?е???р??ь? ??жд??ё???м??? ?Z???a?l??g???o??-??к?о??д??а??!?


    1. Camel
      26.08.2016 15:44
      +2

      Меня сейчас идея посетила...commit hook автоматически за?л?г?оф?и?ц?и?р?уе?т? код который выдаёт предупреждения компилятора или статического анализатора, в общем «дурно пахнет».


  1. AndersonDunai
    26.08.2016 15:06
    +4

    Нет! Нет, нет, нет, нет! Пожалуйста!


  1. Denai
    26.08.2016 15:18
    +12

    Я вижу это так:
    image


    1. terziele
      26.08.2016 15:29
      +5

      Лучше так, чем действительно видеть это непотребство.


  1. jrip
    26.08.2016 15:23
    +1

    >Описания коммитов в основном довольно унылы, но эмодзи разбавляют обстановку.
    Создатели нескучных html 6 добрались до комментариев в коде?


  1. terziele
    26.08.2016 15:33

    Вот, кстати, задумался, а существуют ли в странах, где письменность иероглифическая, языки программирования на таких языках? Это ж какой уровень абстракции!


    1. Orky
      26.08.2016 17:02

      Да, существуют, конечно.
      https://en.wikipedia.org/wiki/Non-English-based_programming_languages


  1. berezuev
    26.08.2016 15:46
    +7

    Детский сад, чесслово…


    1. zip_zero
      26.08.2016 16:32
      +1

      И хипстота.


    1. Nakilon
      26.08.2016 23:59

      Забыли на каком сайте находитесь?


  1. amarao
    26.08.2016 16:32
    +13

    Я считаю, что эмодзи — это мало. Нужно обязательно приделывать видео с инстаграмма или ютуба. Или писать лайвстрим с камеры разработчика. Что может быть увлекательнее, чем описание коммита с видео лайвстрима в нём?


    1. zip_zero
      26.08.2016 16:33
      +1

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


    1. bliznezz
      26.08.2016 16:58

      https://habrahabr.ru/post/146418/


    1. riot26
      27.08.2016 14:24
      +2

      Smoothie-driven development


  1. sneakyfildy
    26.08.2016 16:47
    +3

    Трэш. Против.


  1. abyrkov
    26.08.2016 16:47
    -3

    Мало того, что эмоджами можно помечать… так еще и языки программирования на них есть. Но они преследуют, в общем-то, другую цель — краткость. Вместо унылых console.log'ов веселые, легко запоминающие эмоджи — самое то, для телефонного кодинга.

    Что же касается плагинов — то и под Atom есть emoji-code.


  1. barbados
    26.08.2016 16:56

    а как их вводить то под виндой/убунтой в том же VSCode например? и на сколько удобно?


  1. Pinsky
    26.08.2016 18:04

    Вроде была такая статья уже.


  1. Teivaz
    26.08.2016 18:09
    +6

    Я исправил
    image


  1. AndreyDmitriev
    26.08.2016 18:31
    +1

    Зависит от среды разработки. Кое где можно и анимированные гифки использовать — баги помечать, к примеру :)


    1. impwx
      26.08.2016 20:00

      Что это за среда?


      1. AndreyDmitriev
        26.08.2016 20:17
        +2

        Это LabVIEW. Штука специфическая немного, но поскольку язык G графический, то прямо в код я могу вставлять картинки. Конечно, анимированные гифки я не использую — на них задолбает смотреть, но если там математика какая, то у меня комментарии в в виде самых настоящих формул. Ну или куски доков могу бросать рядом с кодом — это удобно, если поддержку какого-нибудь протокола для специфичной железки кодить.


  1. Alexey2005
    26.08.2016 23:21

    Сразу вспомнилась шутка:

    «Проклятье!» — подумал китаец, заучивая сорокатысячный иероглиф. — «А ведь начиналось-то всё с простых смайлов...»


  1. Craftist
    27.08.2016 00:26

    Для всех тех, кто говорит, что эмодзи попортят моноширинность кода:
    А что мешает использовать эмодзи только в комментариях? Там же моноширинность не нужна совсем, нечего элайнить.

    Ну на крайняк, можно эмодзи моноширинными сделать))


  1. mafia8
    27.08.2016 12:11

    ----------
    ¦ ¦
    ¦ ---- ¦
    ¦ ------ ¦
    ¦ --- ¦
    ¦ ---- ¦
    ¦ --- ¦
    ¦ ------ ¦
    ¦ ¦
    ----------

    - - - - ¦¦

    Ещё можно делать буквы из псевдографики. Крупно и хорошо заметно.
    З.Ы. Тег (соде) не работает.


  1. bigfatbrowncat
    27.08.2016 13:11

    Я в институте писал на C#. И писал (будучи физиком) в основном математику. И делал я имена переменных с участием греческих букв. И было это неудобно, но зато красиво.

    Здесь, как мне кажется, та же ерунда. Уместное использование картинок в коде (как, например, сирена возле «warning») может его сделать милее глазу. Но вот все остальные операции с текстом явно усложнит, коль скоро на клавиатуре нет кнопки с этой самой сиреной.

    Остается только вспомнить про известную клавиатуру студии Лебедева


  1. FrozenInternet
    27.08.2016 14:24

    Спасибо за лайфхак с экранной клавой винды!

    А в коде действительно эможи не нужны. К вышеперечисленным проблемам добавлю то, что в некоторых местах (мессенджерах и пр.) иногда код распознается как эмоджи. Если туда добавить еще свои эмоджи, то читаемость ухудшается во много раз.


    1. Craftist
      27.08.2016 22:55

      Так в большинстве (если не во всех) мессенджерах нет моноширинной подсветки. А в некоторых так и вообще пробелы триммятся. Как вконтакте.


      1. FrozenInternet
        28.08.2016 00:57

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


        1. amakhrov
          28.08.2016 12:43

          В скайпе в начале сообщения вводим!!! и дальше текст сообщения с новой строки.


          1. amakhrov
            28.08.2016 19:07

            В скайпе в начале сообщения вводим !! и дальше текст сообщения с новой строки. Сообщение форматируется как будто с тэгом <pre> — моноширинный шрифт, никакой замены скобок на смайлики


            1. FrozenInternet
              29.08.2016 14:25

              А, спасибо, буду знать :)


    1. torbasow
      27.08.2016 23:02

      Кстати: а где этот значок? Я у себя в Win10 такого не вижу.


      1. FrozenInternet
        28.08.2016 00:53

        Правой по панели задач и поставить соответствующую галочку.