![](https://habrastorage.org/files/a98/62e/3b0/a9862e3b01804f0f866e59e6307c21a4.jpg)
Вы никогда не задумывались, как выглядит код на JavaScript для программиста, у которого родной язык — английский? Представьте, насколько удобнее им читать и писать код на своем «нативном» языке, насколько ускоряется время разработки и уменьшается количество багов. А ведь использование английского языка как основы для языков программирования не обусловлено ничем, кроме того, что «так исторически сложилось».
Почему мы не называем переменные на русском языке? Ведь для этого нет никакой технической необходимости: поддержка юникода сейчас есть практически в любой среде разработки и в большинстве популярных языков. Наверняка если ваша команда находится в России, то большая часть ваших разработчиков знают русский язык лучше английского!
Это основные доводы, которыми руководствовались мы, решив написать свой, русский язык программирования.
С другой стороны, давайте посмотрим правде в глаза: зачем изобретать очередной велосипед? Навряд ли язык, созданный небольшой группой энтузиастов, когда-нибудь сможет составить конкуренцию таким монстрам, как JavaScript или Python. После недолгих обсуждений, утихомирив наш пыл, мы решили начать с малого и написать транспиллер в JavaScript.
Так и родился наш проект — PycckuuJS.
Первое, с чего мы решили начать, — это loader для Webpack, с которым вы можете ознакомиться в репозитории на GitHub.
Процесс его установки и использования максимально прост и удобен. Достаточно установить npm-пакет и добавить pycckuu-loader в ваш webpack.config.js для файлов с расширением.яс.
Вот пример минимального конфигурационного файла:
module.exports = {
entry: "./тест.яс",
output: {
path: __dirname,
filename: "result.js"
},
module: {
loaders: [
{ test: /\.яс$/, loader: "pycckuu" }
]
}
};
Это позволит использовать русские ключевые слова в JavaScript.
Например, такой код:
пер сотрудники = ['Владимир', 'Дмитрий', 'Николай']
пер приветствовать = функция(имя){
консоль.логировать('Привет ' + имя + '!')
}
цикл(пер и=0; и<сотрудники.длина; и++){
приветствовать(сотрудники[и])
}
Будет транслирован в:
var сотрудники = ['Владимир', 'Дмитрий', 'Николай']
var приветствовать = function(имя){
console.log('Привет ' + имя + '!')
}
for(var и=0; и<сотрудники.length; и++){
приветствовать(сотрудники[и])
}
С полным списком соответствий можете ознакомится в репозитории на GitHub.
На данный момент loader находится в состоянии MVP (Minimum viable product), так что будем рады вашим pull-реквестам, советам и критике.
На ближайшее будущее запланировано доведение pycckuu-loader до стабильного состояния и создание плагинов для подсветки кода в популярных средах разработки.
UPD Товарищи ставящие минусы, ну имейте хоть капельку чувства юмора.
Комментарии (167)
MetaDone
06.05.2016 16:49+1http://miryanka.ru/frame.js
теперь я знаю кто автор этого скрипта!vlreshet
06.05.2016 16:51+3Госсподи, это ж сколько надо раз туда-сюда между русской и английской раскладками переключаться, чтобы такое написать
MetaDone
06.05.2016 16:54+17function ПреобразоватьСтрокуВФорматПросмотра(Строка, ЗаменитьНа, ОбрезатьДо) { Строка = Строка.split("<br>").join(ЗаменитьНа); if( Строка.length > ОбрезатьДо ) Строка = Строка.substr(0, ОбрезатьДо)+"..."; return(Строка); }
пресвятой Ктулху, я вообще не подозревал что так можно писать и что это будет работать. Чертовы 1с'ники
а если серьезно по теме топика — мне кажется читабельность на практике сильно страдает, вышеприведенный кусок вполне показателенZenitchik
06.05.2016 22:34+3Всё гораздо хуже. Поди набери в русской раскладке операции сравнения… Поэтому программировать по русски никто и не любит.
roach1967
07.05.2016 15:07+5«Вам нравится русский язык, вы любите программировать…
Начните программировать на 1С.
Вы возненавидите и то и другое.»©
vadimzz
10.05.2016 18:32Это окно возможностей для монетизации проекта. Можно будет наладить выпуск специальных клавиатур для программирования на русском. Илон Маск, конечно, продал бы их вначале как обычные клавиатуры, а потом бы за три доллара предложил софтверный апгрейд до правильной, но мы же тут все честные люди.
mwizard
06.05.2016 16:58+5Судя по переменным «ЗнаСХение», «ПреобразоватьМесяцИзСХислаВСтроку», «СХисло» и «СХас», изначально это писалось транслитом, типа «CHislo», а потом конвертировалось. Возможно, по словарю. Вот только зачем?
FlameStorm
10.05.2016 21:58И ведь действительно страшно зайти на сам сайт и спросить зачем они такое сделали. В смысле, задача функции понятна, но зачем это было делать так ужасно? (на самом деле страшно, вдруг мозг сломают безвозвратно)
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("декабря"); }
Я уважительно и с пониманием отношусь к Христианству в целом и его ветвям в частности.
Но вот эти — «Первым десяти Миряночкам, оформившим заказ, красный шифоновый платок в подарок» — явно секта. Ещё и программер под стать.
Bhudh
06.05.2016 19:10Да, return как функция, со скобочками, это сильно.
Сам я, помнится, переписывал на боярский бота для небызызвестной здесь игры: pastebin.com/e9zx9XeH.
hmspns
06.05.2016 16:56+9А смысл этого действа? Длина ключевых слов больше чем в английской версии, значит набирать дольше; части символов, типа [], {} нет в русской раскладке, т.е. придётся постоянно переключать раскладку. Плюс проект на 100% привязывается к русскоговорящим разработчикам, отдать его на запад или индусам для доработки уже не получится.
batyrmastyr
06.05.2016 17:28Зачастую переведённые на английский названия сущностей вызывают мысль «это что ещё за зверь? Как оно на русском звалось-то?».
ErickSkrauch
06.05.2016 18:20-3Ну напишите транслитом в конце-концов. Смена раскладки обходится слишком дорого при написании кода, об это как бы спотыкаешься. Хотя тут ещё стоит поднять вопрос на тему того, а зачем вам вспоминать, как оно называлось по-русски, если вы пишете по-английски?
dom1n1k
06.05.2016 19:15-2Это признак того, что как минимум один из двух кодеров (писавший или читающий) не владеет бизнес-логикой программы.
rombell
06.05.2016 23:30-1Я как-то пришёл в проект, где от предыдущих разработчиков осталось куча сущностей вида format custom. Классы CSS, ID в HTML, классы, переменные и методы во фронтэнде и бэкэнде. Как думаете, что это может значить в контексте интернет-магазина?
(спойлер не могу вставить)
custom — товар
format custom — товар, который покупатель зарезервировал (оформил в будущую покупку)
так уж лучше по-русски писали бы :(
batyrmastyr
10.05.2016 09:44+1А вы можете выдать перевод для параметра «материнский капитал» чтобы и в словари лазить не нужно было даже при посредственном знании английского языка, и при этом на ржач не пробивало?
dom1n1k
10.05.2016 15:57Поскольку эту специфичный локальный термин, уместна калька — MotherCapital
Может быть не совсем корректно, зато понятно и англичанин это читать никогда не будет.
Это как Sputnik или Tsar.batyrmastyr
10.05.2016 18:30Увы, эта как раз та калька, что вызывает смех у всех (но в код пошла именно она).
Подобные «специфические локальные термины» пачками встречаются в проектах рассчитанных на российские реалии и проблема корявых названий на английском кроется не в (не)знании предметной области, а, банально, в языковых различиях.
Резюмируя — в идеале было бы не насиловать мозг себе и коллегам и давать нормальные (читай: без перевода на не связанные с предметной областью языки) названия, но солянка из русских и английских слов выглядит часто выглядит ещё хуже таких вот МатушекМосковий, да и набирать замучаешься.dom1n1k
10.05.2016 18:56Не вижу причин для смеха, вполне нормально звучит. Capital не только столица, но и капитал тоже. Country — страна или деревня?
batyrmastyr
11.05.2016 10:38Видимо у вас не срабатывает ассоциация с Mother Russia одновременно с преобразованием MotherCapital -> Москва )
В существовании значения «капитал» я и не сомневался, но вспоминается в первую очередь столица.
ZiggiPop
06.05.2016 19:52+2В целом бессмысленность такого «языка программирования» очевидна даже автору статьи, просто очередная эзотерика.
Но вот насчет русской раскладки — это вы немного погорячились. Нет в стандартной раскладке, но есть сторонние раскладки, в которых не нужно переключаться на английский, чтобы набрать []{}<>.
Я предпочитаю типографскую раскладку Ильи Бирмана, но для программистов, пожалуй, удобнее такая чудная штука, как расширенная раскладка для русского языка Александра Куклева.
На Хабре была статья об этом. Очень облегчает жизнь.
Кстати, украинцам в linux вообще хорошо — стандартная украинская раскладка сразу же поддерживает не только введение большого количества типографских символов, но и некоторые буквы, специфичные для русского языка. В результате для трех языков не нужно держать три расскладки, а хватает только двух.
ianbrode
06.05.2016 17:05+76Теперь frontend engineer может гордо называть себя Инженер Переднего Конца.
batyrmastyr
06.05.2016 17:16+2Зачем уж так гуглопериводчезки — можно ведь быть передовиком или авангардистом )
kentaskis
06.05.2016 17:16+9Валяется у меня в старых заметках вот такой отрывок с какого-то форума:
для русских программистов англоязычные ключевые слова скорее благо чем зло. Почему?
Если встречаешь слово, например, ПРОЦЕДУРА, то к нему у нас прилеплено в сознании много чего — типа "неприяная процедура", "процедура удаления зуба" и т.п… — мало ли какой опыт жизненный у человека был. Все эти ассоциации хочешь-не хочешь, а подымаются из памяти, когда читаешь текст и так или иначе засоряют пространство сознания вещами, не имеющими отношения к делу. С английскими ключевыми словами бытовых ассоциаций у русского человека нет или почти нет, поэтому к ним относишься сразу как к знакам (иероглифам, в каком-то смысле) именно с тем смыслом, который они имеют в языке программирования, а не в жизни. От этого восприятие должно быть легче и соответственно мышление — быстрее. IMHO — так оно и есть.
При этом обратите внимание: Вирт — швейцарец, по английски говорит классно, но язык этот для него не родной. Как и для его студентов, для которых он, собственно и языки придумывает. Потому для него как раз хорошо ипользовать BEGIN/END — легко запомнить. Сами же американцы, как иногда кажется, из кожи вон лезут, чтобы избежать употребления реальных слов в программных текстах в качестве ключевых. Сишный синтаксис, который активно переиспользуют и в Java и в C# — по-моему тому хорошее подтверждение.
Fiery_Ice
08.05.2016 14:04Склонен согласиться. Ведь если вспомнить историю — то для названий каких-то новых лекарств или изобретений — часто использовали «мертвый» язык — латынь. Т.е. брали несколько слов из латыни и комбинировали их в один термин. Видимо тут было два фактора:
- Латынь — была достаточно общеизвестна (как и английский сейчас).
- Комбинация слов собственного языка могла звучать так же неблагозвучно, как и вышеозначенная «ПирДуха», что превращало бы учебный процесс, или процесс обсуждения чего-либо, в балаган. :)
lizarge
06.05.2016 17:17-8Ваш код будет непригоден к интернациональной поддержке, а значит не будет никому нужен (я говорю о серьезных потребностях) и будет выглядеть как херня. В продакшн это не нужно, разве что код более православный.
Все это напоминает мне наш с другом университетский проект по курсу трансляторов под названием «Сало» с синтаксисом на украинском языке, только этим мы занимались в рамках курсовой работы и были студентами. А не предлагали куда — либо внедрять.
ekapinos
06.05.2016 17:23+29Для того чтобы представить перспективы Вашего творения предлагаю оценить код на самом распростаненном языке планеты
(смотреть до просветления)lockywolf
06.05.2016 20:23+16Ни фига он у вас не самый распространённый. Ваш код — на тайваньском, а не на мандарине.
Простой, кстати, как валенок — проверяет введённое число на равенство 23.
Выразительность, кстат, отличная. Один иероглиф — одна синтагма.juryev
10.05.2016 10:39Между прочим, да, именно иероглифическая система письменности позволяет по-новому взглянуть на ЯП. Не обязательно, кстати, тайваньская, м.б. гонконгская, просто иероглифы неупрощённые
el777
06.05.2016 17:32+17Я не могу в это серьезно поверить!
Ну, пожалуйста, скажите, что вы просто прослоупочили 1-е апреля, и чтобы «материал не пропадал» опубликовали сейчас?
Вам же не трудно признать такую мелочь, так? :)
использование английского языка как основы для языков программирования не обусловлено ничем, кроме того, что «так исторически сложилось».
На самом деле использование английского языка имеет ряд преимуществ:
— отсутствие склонений и спряжений делает текст программы похожим на нормальный язык. В коротком тексте это не чувствуется, но в большой программе на русском будет порядком конфликтов падежей и склонений — это будет раздражать и отвлекать.
— если английский для вас неродной, то вообще все хорошо. Вы думаете о переменной, а не об ее названии.
— использование латиницы с всего 26 буквами вместо 33 позволяет иметь все нужные символы на 1 раскладке стандартной клавиатуры. Сейчас для того, чтобы ввести фигурные скобки и знак «меньше», вам пришлось переключать раскладки.
— это стандартный ASCII, который везде одинаков. Никаких ошибок перекодировок, битого юникода и прочего быть не может.
— используемый набор слов очень простой. Это явно проще писать, чем «впихнуть» и «совместно».Areso
06.05.2016 19:53+1Первый пункт изрядно раздражает в 1С, с которой приходилось сталкиваться пару-тройку раз. Часть объектов используется в ед.ч. м.р. и.п., часть склоняется. Ссылка.Пустая(), но Объект.Пустой() или Справочники.Контрагенты, но Регистр.Реквизиты
deniskreshikhin
10.05.2016 00:19— отсутствие склонений и спряжений делает текст программы похожим на нормальный язык. В коротком тексте это не чувствуется, но в большой программе на русском будет порядком конфликтов падежей и склонений — это будет раздражать и отвлекать.
Это если мало художественной литературы читать на английском, то да, кажется что все прилично выглядит. А вообще такая же «пир духа», как и на русском. В английском языке же смысл зависит от позиции слова, наличия артиклей и вспомогательных слов. А в программировании ничего этого нет. Поэтому в лучшем случае код звучит как заголовки в газетах, типа «FLORIDA MAN KILLS, COOKS, EATS SHARK»el777
10.05.2016 10:29На самом деле мало читаю )
Поэтому мне пока кажется, что наоборот, более жесткий порядок слов в предложении придает более «алгоритмичную» структуру фразам, которую удобнее «парсить» глазами — выхватывая ключевые слова в нужном порядке. Вы правильно пишете, что такое чтение напоминает чтение заголовка — когда из минимума слов понимается смысл. В худшем случае — абстрагируемся от текста вообще.deniskreshikhin
10.05.2016 12:35Да, но таким же образом можно и на русском писать. Например, вместо глаголов использовать отглагольные существительные типа «возврат строка» вместо «вернуть строку» и т.д. Т.е. добиться некоторого единообразного отклонения от норм, которое было бы всем понятно.
pehat
06.05.2016 17:36+15Релевантный баян.
Smi1e
06.05.2016 19:18+2Тэг a забыли перевести как я. Anchor = якорь.
SomebodyElse
06.05.2016 19:41+14<а> — это не якорь.
<а> — это абзац.
Так что все православно.Smi1e
06.05.2016 19:51-2Всегда думал, что абзац — это p. Можете чем-то подкрепить свое утверждение?
В защиту своей версии приведу следующий материал.mwizard
06.05.2016 19:54+8SomebodyElse имеет в виду, что на картинке <а> кириллическая. Т.е. в человеческом HTML там был бы <p>.
SomebodyElse
06.05.2016 19:57+4Тем, что первая буква в слове абзац — а? Мы ведь все еще о руссифицированном хтмл?
ZiggiPop
06.05.2016 20:07Предыдущий комментатор имел в виду, что тег <а></а> — это не забытый непереведенный тег ссылки (anhchor), а вполне переведенный тег , который на русском действительно выглядел бы именно так: <а></а>.
Вот, кстати, еще один недостаток «локализованных» ЯП. Сейчас мы точно знаем, что вся лексика ЯП почти гарантированно набрана символами из пространства ASCII, в ином случае мы рискуем не разобрать, какими символами набрано то или иное слово. Например, в какой раскладке набрано слово «Kyсoк»? Лишний источник неочевидных ошибок.
vmb
06.05.2016 17:40+6Какой-нибудь бедный грамотный программист будет долго пытаться понять, почему
сотрудники.длина
выдаёт ошибку, пока не заметит, что в русском ЯваСкрипт свойства и методы не проверили спеллчекером (длинна
в примере, видимо, ошибок не выдаёт).war_hol
06.05.2016 17:43+1спасибо, поправил. пример был до того как пришел первый pull-request с правками
dmitry_ch
06.05.2016 18:04+18Не удержусь:
«Встречаются два 1с-ника:
— Как дела?
— Ну, если тебя интересует, как дела, конец если...»
Спасибо вам! А уж за березку — особенно!
vmb
06.05.2016 18:14+4Один из многих минусов: в английском из-за омонимии частей речи (существительные и глаголы выглядят одинаково) можно использовать одни и те же имена для функций и контейнеров, например. Но вы бы хоть отследили в переводах это различие. Функции ведь как правило называются глаголами. А у вас в таблице соответствий появились существительные в именах функций:
alert — внимание, filter — фильтр, map — карта, slice — часть
. Глаголы у вас то в инфинитиве, то в повелительном наклонении (do — сделай
). Ошибки всё ещё есть (попробывать
вместопопробовать
).
Много непоследовательностей:super — супер и log — логировать
(если уж переводить на естественный язык, так переводить всё);break — стоп и continue — продолжить
(вместо обоих глаголов в английком, в русском междометие и глагол);var — пер и const — константа
(то сокращаете, то нет);splice — соединить и join — объединить
(разница сливается);typeof — тип и indexOf — номерВ
.
Покажите сначала свои варианты хорошему переводчику с английского и русскому филологу, они смогут исправить самые грубые несоответствия. Потому чтоthrow — бросить, yield — уступить, unshift — раздвинуть, concat — связать
сомнительно семантически, аpush — впихнуть
— стилистически.war_hol
06.05.2016 18:18+7Спасибо за объективную критику. Хоть кто-то серьезно отнёсся.
vmb
06.05.2016 18:21Хоть и серьёзно, но негативно. Английский для программистов сейчас как латынь для медиков и фармацевтов. Вряд ли целесообразно здесь что-то менять. Разве что ради психологического эксперимента по разрыву шаблона)
war_hol
06.05.2016 18:50+3Ради психологического эксперимента и для разрыва шаблона у меня есть другой проект https://habrahabr.ru/post/207656/ а этот так just for fun)
AllexIn
06.05.2016 18:19+3UPD Товарищи ставящие минусы, ну имейте хоть капельку чувства юмора.
Вынесите это предупреждение в начало.
Потому что людям без чувства юмора(типа меня) уже на середине не хочется читать, а хочется минусовать. Предупреждение можно и не увидеть.
Akuma
06.05.2016 20:01-1Если вы серьезно делаете это не в прикол, то сделайте пожалуйста нормальный лоадер.
Сейчас он заменяет все подряд. И если я хочу вставить просто англйиский текст в строковую переменную, лоадер доберется и до нее.
Вообще конечно забавно выглядит.
Бедные 1Сники, наверное так мучаются :)
mpakep
06.05.2016 20:53+3Мне очень понравилось. Спасибо разработчикам за действительно актуальный продукт. Форкнулся. По возможности буду участвовать в разработке.
Zenitchik
06.05.2016 22:31+2цикл(пер и=0; и<сотрудники.длина; и++)
Как бы не так
Должно быть
для(пер и=0; и<сотрудники.длина; и++)
Непонятно, кому и как пришло в голову обозначить цикл словом «для». Хорошо, что когда я впервые коснулся программирования, я не знал английского языка, и команды для меня не значили ничего, кроме того, что написано в мануале.
Идеальный язык программирования не должен использовать лексику естественных языков.war_hol
06.05.2016 23:35+1Мы тоже подумали что слово для не самое подходящее и исправили досадный недочет.
Bobak
06.05.2016 23:39+3Да ладно, вполне логично.
Звучит примерно так: «выполнить определенный код ДЛЯ 'и' равной от 0 до количество сотрудников.»
Слово «цикл» здесь совершенно неуместно.juray
08.05.2016 13:00Вспомнился школьный алгоритмический язык — там присутствует и «нц» (начало цикла) и «для»:
алг Сумма квадратов (арг цел 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
кон
salas
07.05.2016 02:25В питоне и перле есть конструкции с более очевидным порядком слов:
[х*й для х из списка_х]
. Да, "списка". Или уж все слова английские — или надо делать склонение. Иначе получился монстр из зловещей долины.
cherrypick
09.05.2016 17:57+1Мне казалось логичным, что «for» в данном случае используется в своем значении «в течение»
bugabuga
06.05.2016 23:27Потом будет маленькая радость отладки, когда, забывшись, кто-нибудь напишет одну английскую буковку в русском слове… :)
berman
06.05.2016 23:38Я удивлен тому, сколько человек минусуют такую веселую штуку. У pycckux разработчиков все печально с чувством юмора похоже
GeMir
07.05.2016 15:04Помнится была вполне нешуточная вариация Pascal, в которой можно было переключаться между оригинальным и «русифицированным» синтаксисом. Если не ошибаюсь, даже в школах предполагалось использовать.
cyber-jet
07.05.2016 15:05push — вдавить
reverse — развернуть
если join — объединить, то slice — разбить, разрезать, разделить…
some — любой
tautomer
07.05.2016 15:05У меня тоже есть такой транслятор кода прямо в браузере kolumb.tk/code
Начал делать, чтобы показать одному малому, который с английским пока не дружит, как программируют игры. Изначально даже хотел подправить синтаксис, чтобы решить проблему переключения раскладки на символы { } [ ].
alekssamos
07.05.2016 15:06Комментарий, показывающий всё в реальном времени
Что Я об этом думаю
И всё же мне не нравится такая идея, как уж повелось по-английски писать код, так уж пусть и дальше будет.
Сюда можно отнести, как уже сказали, и проблемы с кодировкой, и частое переключение раскладки, и как-то неудобно читать русские слова, да ещё в разных склонениях ну и всё такое, то, что код может получиться длиннее, что будут путаницы какая же это буква, русская «а» или английская «a», ну и так далее…
В коде есть такая замечательная штука, как комментарии. Так вот, если программисту что-то и не понятно, пусть пишет для себя /* большие комментарии с пояснениями */
И коду это особо не помешает, так как комментарии можно легко убрать…
Вот моё мнение.
Pilat
07.05.2016 19:28+4Идея хорошая, поддерживаю. Ростелеком заблокирует все сайты с нерусским JS.
Я как-то заметил, что в современном Perl никто не мешает делать идентификаторы на русском языке. Прямо из коробки. Одна засада — сторонний софт, типа IDE, форматировщиков, чеккеров это не поддерживает. В JavaScript — скорее всего, такие программы нарвутся на те же проблемы. Но Ростелеком этих ретроградов тоже прогнёт либо запретит.
OksikOneC
08.05.2016 08:00Переписал пример из статьи на правильном православном.
_хттп://i.imgur.com/CQdySGn.jpg
Авторам-смутьянам все ж таки желаю обрести истинную веру :)
wikipro
08.05.2016 20:00Жаль что забалытвается важная и интересная тема :(
Гвидо Ван Россум — создатель Питона считает что код пишется 1 раз а читается много.
Достаточно много программистов используют кириллические названия переменных и функций — это позволяет:
1. избежать пересечения пространства имён и сразу разделять свой код/переменные/функции от чужих (это самое важное помоему!!)
2. самодокументирование кода — комментариев меньше или они описывают более общие вещи
3. обфусикация кода для иностранных разработчиков/хакеров/аналитиков
Недостатки:
1 — необходимо следить чтобы исходники были в кодировке UTF-8OksikOneC
08.05.2016 22:51+11. Если предположить что весь код будет на отечественном языке (или часть его), все равно рано или поздно возникнут проблемы с наименованием переменных, процедур, функций — вот этого всего. И нужна будет некая нотация, что как бы доставит +1 стандарт.
2. Тут не все так однозначно. Самодокументирование кода будет ровно до того момента, пока сам код решает какие-то простые задачи. Чем более будет сложный алгоритм — тем самодокументирование будет все хуже и хуже. В конце концов оное даже сможет сбить вас с толку. Напр., из последнего — в коде была такая переменная как «кластер». И вот долго я ее курил, что это? Что за кластер? Чего? Хотя сама задача не предполагала вообще наличие чего-то «кластеро-подобного». Затем, видимо такой же чел, который ранее уже раскурил тему, где-то в потрохах описал, что кластер — это группа аналогии. Вроде бы интуитивно все стало понятно, но без такого коммента, самодокументирование только сбило с толку. И вот такого, его становится все больше и больше, когда алгоритмы описания чего-то становятся все сложнее и сложнее. Я стараюсь сначала все таки читать комменты в таких случаях, а потом сам код. Хотя и в оригинале, очевидно, проблема будет аналогичной.
3. Тут в яблочко, но кажется, это в плане js — все таки минус, нежели плюс.hudson
09.05.2016 22:53Присоединяюсь к комментарию. «Код хорошо документирован на языке C» — это, в общем случае, крайне спорное утверждение. Даже свой собственный код спустя некоторое время становится непонятным. А что же говорить о чужом. Нет, конечно круто, если логика участка кода легко умещается на 1 экране. Ну типа «если а, то б, иначе ц, для дд из д в цикле бла бла бла без ветвлений». Но, как правило, жизнь, как воды реки, наносит много осадочной породы на это основание. И вот тут, для понимания, только «комментариев на языке C», скорее всего будет недостаточно.
aryeh
10.05.2016 11:36Всё бы хорошо, но нормальный русский человек «рускава» языка не учил.
«цыкл» или «цикл», вот в чём вопрос!
boramod
10.05.2016 12:30… В русском языке традиционно применяются французские «ёлочки», а для кавычек внутри кавычек и при письме от руки — немецкие „лапки“…
… Если по техническим причинам невозможен набор кавычек другого рисунка, кавычки одного рисунка рядом не повторяются…
пер сотрудники = [«Владимир», „Дмитрий“, «Николай»];
Как только примете за стандарт — сразу перехожу!
amarao
Это пир духа. Натуральная.
war_hol
спасибо, мы старались!
mpakep
Сразу распредложение. Хотелось бы видеть методы jQuery их там не так много. И как назвать саму библиотеку?
жКвери.искать(«тело») красота же.
Bhudh
Не так много?
https://api.jquery.com — не знаю у кого как, у меня за 30 экранов в высоту.
mpakep
Не все наверно. Основные конструкции .find .on .off .parents .each .filter .hide .show может еще с десяток, которые составляют 90% кода.
Bhudh
Тут фишка jQ в том, что он укорачивает имена нативных методов. Даже тот же forEach > each.
А тут что будет,
яЗапрос('жырно').родители().показать()
?war_hol
Мы думали заменить символ jQuery-$ на символ рубля.
nckma
У вас цикл по переменной «и». А как будет логическая операция && типа «если( и>5 и и<10)»?
romy4
Вестимо, что надобно использовать і: «Война і миръ»
riot26
жЗапрос
RomanPyr
яЗапрос от Java — Ява.
orcy
jQuery тоже надо перевести: жЗапрос.искать()
stdrone
тогда уж как выше предложили
яЗапрос
vdonich
яОчередь же.
sompylasar
queue !== query
stargazr
Очередь — queue.
vadimzz
Мне кажется, что этот проект создан для вас :)
cry_san
Вначале подумал — старались? А потом перечитал заново
но только уже делая паузу.
Fxyz
где тесты производительности?
Yaroslaw_Alex
Когда выпустите книгу «КофеСценарий для чайников»? ;)
hacklex
Для кофейников, наверное
stas404
пер духа = натуральная.