Comments 168
Сразу распредложение. Хотелось бы видеть методы jQuery их там не так много. И как назвать саму библиотеку?

жКвери.искать(«тело») красота же.
Не так много?
https://api.jquery.com — не знаю у кого как, у меня за 30 экранов в высоту.
Не все наверно. Основные конструкции .find .on .off .parents .each .filter .hide .show может еще с десяток, которые составляют 90% кода.
Тут фишка jQ в том, что он укорачивает имена нативных методов. Даже тот же forEach → each.
А тут что будет, яЗапрос('жырно').родители().показать()?
У вас цикл по переменной «и». А как будет логическая операция && типа «если( и>5 и и<10)»?
Вначале подумал — старались? А потом перечитал заново
пир духа

но только уже делая паузу.
UFO landed and left these words here
Госсподи, это ж сколько надо раз туда-сюда между русской и английской раскладками переключаться, чтобы такое написать
function ПреобразоватьСтрокуВФорматПросмотра(Строка, ЗаменитьНа, ОбрезатьДо) {
	Строка	= Строка.split("<br>").join(ЗаменитьНа);
	if( Строка.length > ОбрезатьДо )
		Строка	= Строка.substr(0, ОбрезатьДо)+"...";
	return(Строка);
}

пресвятой Ктулху, я вообще не подозревал что так можно писать и что это будет работать. Чертовы 1с'ники
а если серьезно по теме топика — мне кажется читабельность на практике сильно страдает, вышеприведенный кусок вполне показателен
Всё гораздо хуже. Поди набери в русской раскладке операции сравнения… Поэтому программировать по русски никто и не любит.
«Вам нравится русский язык, вы любите программировать…
Начните программировать на 1С.
Вы возненавидите и то и другое.»©
Это окно возможностей для монетизации проекта. Можно будет наладить выпуск специальных клавиатур для программирования на русском. Илон Маск, конечно, продал бы их вначале как обычные клавиатуры, а потом бы за три доллара предложил софтверный апгрейд до правильной, но мы же тут все честные люди.
Судя по переменным «ЗнаСХение», «ПреобразоватьМесяцИзСХислаВСтроку», «СХисло» и «СХас», изначально это писалось транслитом, типа «CHislo», а потом конвертировалось. Возможно, по словарю. Вот только зачем?
И ведь действительно страшно зайти на сам сайт и спросить зачем они такое сделали. В смысле, задача функции понятна, но зачем это было делать так ужасно? (на самом деле страшно, вдруг мозг сломают безвозвратно)

function ПреобразоватьМесяцИзСХислаВСтроку(Месяц) {

		if( Месяц == 1 )	return("января");		if( Месяц == 7 )	return("июля");
		if( Месяц == 2 )	return("февраля");		if( Месяц == 8 )	return("августа");
		if( Месяц == 3 )	return("марта");		if( Месяц == 9 )	return("сентября");
		if( Месяц == 4 )	return("апреля");		if( Месяц == 10 )	return("октября");
		if( Месяц == 5 )	return("мая");			if( Месяц == 11 )	return("ноября");
		if( Месяц == 6 )	return("июня");			if( Месяц == 12 )	return("декабря");

}


Я уважительно и с пониманием отношусь к Христианству в целом и его ветвям в частности.
Но вот эти — «Первым десяти Миряночкам, оформившим заказ, красный шифоновый платок в подарок» — явно секта. Ещё и программер под стать.
Да, return как функция, со скобочками, это сильно.
Сам я, помнится, переписывал на боярский бота для небызызвестной здесь игры: pastebin.com/e9zx9XeH.
А смысл этого действа? Длина ключевых слов больше чем в английской версии, значит набирать дольше; части символов, типа [], {} нет в русской раскладке, т.е. придётся постоянно переключать раскладку. Плюс проект на 100% привязывается к русскоговорящим разработчикам, отдать его на запад или индусам для доработки уже не получится.
Зачастую переведённые на английский названия сущностей вызывают мысль «это что ещё за зверь? Как оно на русском звалось-то?».
Ну напишите транслитом в конце-концов. Смена раскладки обходится слишком дорого при написании кода, об это как бы спотыкаешься. Хотя тут ещё стоит поднять вопрос на тему того, а зачем вам вспоминать, как оно называлось по-русски, если вы пишете по-английски?
Это признак того, что как минимум один из двух кодеров (писавший или читающий) не владеет бизнес-логикой программы.
Я как-то пришёл в проект, где от предыдущих разработчиков осталось куча сущностей вида format custom. Классы CSS, ID в HTML, классы, переменные и методы во фронтэнде и бэкэнде. Как думаете, что это может значить в контексте интернет-магазина?
(спойлер не могу вставить)

custom — товар
format custom — товар, который покупатель зарезервировал (оформил в будущую покупку)
так уж лучше по-русски писали бы :(
А вы можете выдать перевод для параметра «материнский капитал» чтобы и в словари лазить не нужно было даже при посредственном знании английского языка, и при этом на ржач не пробивало?
Поскольку эту специфичный локальный термин, уместна калька — MotherCapital
Может быть не совсем корректно, зато понятно и англичанин это читать никогда не будет.
Это как Sputnik или Tsar.
Увы, эта как раз та калька, что вызывает смех у всех (но в код пошла именно она).
Подобные «специфические локальные термины» пачками встречаются в проектах рассчитанных на российские реалии и проблема корявых названий на английском кроется не в (не)знании предметной области, а, банально, в языковых различиях.

Резюмируя — в идеале было бы не насиловать мозг себе и коллегам и давать нормальные (читай: без перевода на не связанные с предметной областью языки) названия, но солянка из русских и английских слов выглядит часто выглядит ещё хуже таких вот МатушекМосковий, да и набирать замучаешься.
Видимо у вас не срабатывает ассоциация с Mother Russia одновременно с преобразованием MotherCapital -> Москва )
В существовании значения «капитал» я и не сомневался, но вспоминается в первую очередь столица.
Логика понятна, но как-то надумана. Это явно не самая первая ассоциация.
В целом бессмысленность такого «языка программирования» очевидна даже автору статьи, просто очередная эзотерика.

Но вот насчет русской раскладки — это вы немного погорячились. Нет в стандартной раскладке, но есть сторонние раскладки, в которых не нужно переключаться на английский, чтобы набрать []{}<>.

Я предпочитаю типографскую раскладку Ильи Бирмана, но для программистов, пожалуй, удобнее такая чудная штука, как расширенная раскладка для русского языка Александра Куклева.

На Хабре была статья об этом. Очень облегчает жизнь.

Кстати, украинцам в linux вообще хорошо — стандартная украинская раскладка сразу же поддерживает не только введение большого количества типографских символов, но и некоторые буквы, специфичные для русского языка. В результате для трех языков не нужно держать три расскладки, а хватает только двух.
Теперь frontend engineer может гордо называть себя Инженер Переднего Конца.
Зачем уж так гуглопериводчезки — можно ведь быть передовиком или авангардистом )
связать, сдвинуть, раздвинуть, совместно, впихнуть — авторы явно вдохновлялись 50 оттенками серого.

Валяется у меня в старых заметках вот такой отрывок с какого-то форума:




для русских программистов англоязычные ключевые слова скорее благо чем зло. Почему?
Если встречаешь слово, например, ПРОЦЕДУРА, то к нему у нас прилеплено в сознании много чего — типа "неприяная процедура", "процедура удаления зуба" и т.п… — мало ли какой опыт жизненный у человека был. Все эти ассоциации хочешь-не хочешь, а подымаются из памяти, когда читаешь текст и так или иначе засоряют пространство сознания вещами, не имеющими отношения к делу. С английскими ключевыми словами бытовых ассоциаций у русского человека нет или почти нет, поэтому к ним относишься сразу как к знакам (иероглифам, в каком-то смысле) именно с тем смыслом, который они имеют в языке программирования, а не в жизни. От этого восприятие должно быть легче и соответственно мышление — быстрее. IMHO — так оно и есть.
При этом обратите внимание: Вирт — швейцарец, по английски говорит классно, но язык этот для него не родной. Как и для его студентов, для которых он, собственно и языки придумывает. Потому для него как раз хорошо ипользовать BEGIN/END — легко запомнить. Сами же американцы, как иногда кажется, из кожи вон лезут, чтобы избежать употребления реальных слов в программных текстах в качестве ключевых. Сишный синтаксис, который активно переиспользуют и в Java и в C# — по-моему тому хорошее подтверждение.



Склонен согласиться. Ведь если вспомнить историю — то для названий каких-то новых лекарств или изобретений — часто использовали «мертвый» язык — латынь. Т.е. брали несколько слов из латыни и комбинировали их в один термин. Видимо тут было два фактора:
  1. Латынь — была достаточно общеизвестна (как и английский сейчас).
  2. Комбинация слов собственного языка могла звучать так же неблагозвучно, как и вышеозначенная «ПирДуха», что превращало бы учебный процесс, или процесс обсуждения чего-либо, в балаган. :)
Ваш код будет непригоден к интернациональной поддержке, а значит не будет никому нужен (я говорю о серьезных потребностях) и будет выглядеть как херня. В продакшн это не нужно, разве что код более православный.

Все это напоминает мне наш с другом университетский проект по курсу трансляторов под названием «Сало» с синтаксисом на украинском языке, только этим мы занимались в рамках курсовой работы и были студентами. А не предлагали куда — либо внедрять.
Ни фига он у вас не самый распространённый. Ваш код — на тайваньском, а не на мандарине.

Простой, кстати, как валенок — проверяет введённое число на равенство 23.
Выразительность, кстат, отличная. Один иероглиф — одна синтагма.
Между прочим, да, именно иероглифическая система письменности позволяет по-новому взглянуть на ЯП. Не обязательно, кстати, тайваньская, м.б. гонконгская, просто иероглифы неупрощённые
module.exports = function(content) {

А что это Вы сами используете имена переменных на английском?
Я не могу в это серьезно поверить!
Ну, пожалуйста, скажите, что вы просто прослоупочили 1-е апреля, и чтобы «материал не пропадал» опубликовали сейчас?
Вам же не трудно признать такую мелочь, так? :)

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

На самом деле использование английского языка имеет ряд преимуществ:
— отсутствие склонений и спряжений делает текст программы похожим на нормальный язык. В коротком тексте это не чувствуется, но в большой программе на русском будет порядком конфликтов падежей и склонений — это будет раздражать и отвлекать.
— если английский для вас неродной, то вообще все хорошо. Вы думаете о переменной, а не об ее названии.
— использование латиницы с всего 26 буквами вместо 33 позволяет иметь все нужные символы на 1 раскладке стандартной клавиатуры. Сейчас для того, чтобы ввести фигурные скобки и знак «меньше», вам пришлось переключать раскладки.
— это стандартный ASCII, который везде одинаков. Никаких ошибок перекодировок, битого юникода и прочего быть не может.
— используемый набор слов очень простой. Это явно проще писать, чем «впихнуть» и «совместно».
Первый пункт изрядно раздражает в 1С, с которой приходилось сталкиваться пару-тройку раз. Часть объектов используется в ед.ч. м.р. и.п., часть склоняется. Ссылка.Пустая(), но Объект.Пустой() или Справочники.Контрагенты, но Регистр.Реквизиты
UFO landed and left these words here
На самом деле мало читаю )
Поэтому мне пока кажется, что наоборот, более жесткий порядок слов в предложении придает более «алгоритмичную» структуру фразам, которую удобнее «парсить» глазами — выхватывая ключевые слова в нужном порядке. Вы правильно пишете, что такое чтение напоминает чтение заголовка — когда из минимума слов понимается смысл. В худшем случае — абстрагируемся от текста вообще.
UFO landed and left these words here
Всегда думал, что абзац — это p. Можете чем-то подкрепить свое утверждение?
В защиту своей версии приведу следующий материал.
SomebodyElse имеет в виду, что на картинке <а> кириллическая. Т.е. в человеческом HTML там был бы <p>.

Тем, что первая буква в слове абзац — а? Мы ведь все еще о руссифицированном хтмл?

Вы правы, не сразу понял. Вопрос снимаю, тэг уже переведен :)
Предыдущий комментатор имел в виду, что тег <а></а> — это не забытый непереведенный тег ссылки (anhchor), а вполне переведенный тег , который на русском действительно выглядел бы именно так: <а></а>.

Вот, кстати, еще один недостаток «локализованных» ЯП. Сейчас мы точно знаем, что вся лексика ЯП почти гарантированно набрана символами из пространства ASCII, в ином случае мы рискуем не разобрать, какими символами набрано то или иное слово. Например, в какой раскладке набрано слово «Kyсoк»? Лишний источник неочевидных ошибок.
Какой-нибудь бедный грамотный программист будет долго пытаться понять, почему сотрудники.длина выдаёт ошибку, пока не заметит, что в русском ЯваСкрипт свойства и методы не проверили спеллчекером (длинна в примере, видимо, ошибок не выдаёт).
спасибо, поправил. пример был до того как пришел первый pull-request с правками
Не удержусь:

«Встречаются два 1с-ника:
— Как дела?
— Ну, если тебя интересует, как дела, конец если...»

Спасибо вам! А уж за березку — особенно!
Один из многих минусов: в английском из-за омонимии частей речи (существительные и глаголы выглядят одинаково) можно использовать одни и те же имена для функций и контейнеров, например. Но вы бы хоть отследили в переводах это различие. Функции ведь как правило называются глаголами. А у вас в таблице соответствий появились существительные в именах функций: alert — внимание, filter — фильтр, map — карта, slice — часть. Глаголы у вас то в инфинитиве, то в повелительном наклонении (do — сделай). Ошибки всё ещё есть (попробывать вместо попробовать).

Много непоследовательностей: super — супер и log — логировать (если уж переводить на естественный язык, так переводить всё); break — стоп и continue — продолжить (вместо обоих глаголов в английком, в русском междометие и глагол); var — пер и const — константа (то сокращаете, то нет); splice — соединить и join — объединить (разница сливается); typeof — тип и indexOf — номерВ.

Покажите сначала свои варианты хорошему переводчику с английского и русскому филологу, они смогут исправить самые грубые несоответствия. Потому что throw — бросить, yield — уступить, unshift — раздвинуть, concat — связать сомнительно семантически, а push — впихнуть — стилистически.
Спасибо за объективную критику. Хоть кто-то серьезно отнёсся.
Хоть и серьёзно, но негативно. Английский для программистов сейчас как латынь для медиков и фармацевтов. Вряд ли целесообразно здесь что-то менять. Разве что ради психологического эксперимента по разрыву шаблона)
UPD Товарищи ставящие минусы, ну имейте хоть капельку чувства юмора.

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

Вообще конечно забавно выглядит.
Бедные 1Сники, наверное так мучаются :)
Мне очень понравилось. Спасибо разработчикам за действительно актуальный продукт. Форкнулся. По возможности буду участвовать в разработке.
цикл(пер и=0; и<сотрудники.длина; и++)


Как бы не так

Должно быть
для(пер и=0; и<сотрудники.длина; и++)


Непонятно, кому и как пришло в голову обозначить цикл словом «для». Хорошо, что когда я впервые коснулся программирования, я не знал английского языка, и команды для меня не значили ничего, кроме того, что написано в мануале.

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

Звучит примерно так: «выполнить определенный код ДЛЯ 'и' равной от 0 до количество сотрудников.»
Слово «цикл» здесь совершенно неуместно.
Вспомнился школьный алгоритмический язык — там присутствует и «нц» (начало цикла) и «для»:

алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + … + n*n
нач цел i
| ввод n; S:=0
| нц для i от 1 до n
| | S := S + i * i
| кц
| вывод «S = », S
кон

В питоне и перле есть конструкции с более очевидным порядком слов: [х*й для х из списка_х]. Да, "списка". Или уж все слова английские — или надо делать склонение. Иначе получился монстр из зловещей долины.

Мне казалось логичным, что «for» в данном случае используется в своем значении «в течение»
Потом будет маленькая радость отладки, когда, забывшись, кто-нибудь напишет одну английскую буковку в русском слове… :)
что мешает сейчас написать одну русскую букву в английском слове?
В басурманском жабаскрипте ключевые слова не пишут по-русски, шансов меньше.
Я удивлен тому, сколько человек минусуют такую веселую штуку. У pycckux разработчиков все печально с чувством юмора похоже
Тогда уж летописать. Journal тоже не исконно русское слово, из французского заимствовано.
Помнится была вполне нешуточная вариация Pascal, в которой можно было переключаться между оригинальным и «русифицированным» синтаксисом. Если не ошибаюсь, даже в школах предполагалось использовать.
push — вдавить
reverse — развернуть
если join — объединить, то slice — разбить, разрезать, разделить…
some — любой
У меня тоже есть такой транслятор кода прямо в браузере kolumb.tk/code
Начал делать, чтобы показать одному малому, который с английским пока не дружит, как программируют игры. Изначально даже хотел подправить синтаксис, чтобы решить проблему переключения раскладки на символы { } [ ].
Комментарий, показывающий всё в реальном времени

Что Я об этом думаю

И всё же мне не нравится такая идея, как уж повелось по-английски писать код, так уж пусть и дальше будет.
Сюда можно отнести, как уже сказали, и проблемы с кодировкой, и частое переключение раскладки, и как-то неудобно читать русские слова, да ещё в разных склонениях ну и всё такое, то, что код может получиться длиннее, что будут путаницы какая же это буква, русская «а» или английская «a», ну и так далее…
В коде есть такая замечательная штука, как комментарии. Так вот, если программисту что-то и не понятно, пусть пишет для себя /* большие комментарии с пояснениями */

И коду это особо не помешает, так как комментарии можно легко убрать…
Вот моё мнение.

Идея хорошая, поддерживаю. Ростелеком заблокирует все сайты с нерусским JS.
Я как-то заметил, что в современном Perl никто не мешает делать идентификаторы на русском языке. Прямо из коробки. Одна засада — сторонний софт, типа IDE, форматировщиков, чеккеров это не поддерживает. В JavaScript — скорее всего, такие программы нарвутся на те же проблемы. Но Ростелеком этих ретроградов тоже прогнёт либо запретит.
Переписал пример из статьи на правильном православном.

_хттп://i.imgur.com/CQdySGn.jpg

Авторам-смутьянам все ж таки желаю обрести истинную веру :)

Жаль что забалытвается важная и интересная тема :(
Гвидо Ван Россум — создатель Питона считает что код пишется 1 раз а читается много.
Достаточно много программистов используют кириллические названия переменных и функций — это позволяет:
1. избежать пересечения пространства имён и сразу разделять свой код/переменные/функции от чужих (это самое важное помоему!!)
2. самодокументирование кода — комментариев меньше или они описывают более общие вещи
3. обфусикация кода для иностранных разработчиков/хакеров/аналитиков
Недостатки:
1 — необходимо следить чтобы исходники были в кодировке UTF-8
1. Если предположить что весь код будет на отечественном языке (или часть его), все равно рано или поздно возникнут проблемы с наименованием переменных, процедур, функций — вот этого всего. И нужна будет некая нотация, что как бы доставит +1 стандарт.
2. Тут не все так однозначно. Самодокументирование кода будет ровно до того момента, пока сам код решает какие-то простые задачи. Чем более будет сложный алгоритм — тем самодокументирование будет все хуже и хуже. В конце концов оное даже сможет сбить вас с толку. Напр., из последнего — в коде была такая переменная как «кластер». И вот долго я ее курил, что это? Что за кластер? Чего? Хотя сама задача не предполагала вообще наличие чего-то «кластеро-подобного». Затем, видимо такой же чел, который ранее уже раскурил тему, где-то в потрохах описал, что кластер — это группа аналогии. Вроде бы интуитивно все стало понятно, но без такого коммента, самодокументирование только сбило с толку. И вот такого, его становится все больше и больше, когда алгоритмы описания чего-то становятся все сложнее и сложнее. Я стараюсь сначала все таки читать комменты в таких случаях, а потом сам код. Хотя и в оригинале, очевидно, проблема будет аналогичной.
3. Тут в яблочко, но кажется, это в плане js — все таки минус, нежели плюс.
Присоединяюсь к комментарию. «Код хорошо документирован на языке C» — это, в общем случае, крайне спорное утверждение. Даже свой собственный код спустя некоторое время становится непонятным. А что же говорить о чужом. Нет, конечно круто, если логика участка кода легко умещается на 1 экране. Ну типа «если а, то б, иначе ц, для дд из д в цикле бла бла бла без ветвлений». Но, как правило, жизнь, как воды реки, наносит много осадочной породы на это основание. И вот тут, для понимания, только «комментариев на языке C», скорее всего будет недостаточно.
Звески круто! Рескпект! Вот только клаву переключать задалбливает…
Всё бы хорошо, но нормальный русский человек «рускава» языка не учил.

«цыкл» или «цикл», вот в чём вопрос!
… В русском языке традиционно применяются французские «ёлочки», а для кавычек внутри кавычек и при письме от руки — немецкие „лапки“…
… Если по техническим причинам невозможен набор кавычек другого рисунка, кавычки одного рисунка рядом не повторяются…


пер сотрудники = [«Владимир», „Дмитрий“, «Николай»];


Как только примете за стандарт — сразу перехожу!
Думаю, на это дело Вы сможете даже государственный грант какой-то получить, если что…
https://lenta.ru/news/2016/05/10/russian_times/
Only those users with full accounts are able to leave comments. Log in, please.