CyberManiac Нет, конечно. Цель - более эффективный код (повторное использование кода в case-ах, меньше размер бинарного кода).
green Снова процитирую "Кин-дза-дзу": "зачем говоришь на языке, продолжения которого не знаешь"? Пресловутый "технический английский" это как раз тот язык, продолжение которого очень мало кто знает. В нём ~200 слов, из которых половина - спец. термины, и ещё треть - глаголы самого общего содержания. Какое-нибудь GetFile, если его рассматривать вне программистского мозга, сразу вызвало бы массу вопросов - что за документ и откуда его нужно взять (получить? вытащить?) Тогда надо использовать китайские идентификаторы. Они точно будут лишены побочных смыслов для абсолютного большинства некитайцев. Если бы национальные идентификаторы были плохи, почему англоязычные программисты от них не отказались? Пенис - эт половой член. Дырку от ж0пы тоже можно было как-нибудь обозвать. Печёнки-селезёнки же по-русски называем, да и нижнюю челюсть мало кто именует мандибулой.
CyberManiac это, наверное, вопрос стиля и задач. мне не так уж давно пригодилось. да, и правый мизинец будет накачанный. =) кстати, если еще и брать повсеместное использование русской раскладки при наборе кода(ваши же локализованные имена и т.п.) - будет еще и растяжка пальцев на руке, которая будет тянуться к двоеточию. а что, сплошные плюсы. надо переходить на паскаль с поддержкой юникода. не, это некорректное сравнение. чтение книжек не требует регулярного переключения раскладки клавиатуры - библиотечные функции же не локализованы и рассчитывать на это глупо. и для опенсорса это сильно вредно - хочешь дописать чей-то код, а для этого приходится ставить дополнительную раскладку клавиатуры. и всякая осмысленность имен теряется... короче, тут уже все сказали по ходу обсуждения.
но говорим-то мы именно о программистских мозгах. в конце концов, англоязычная терминология уже забита во все наши мозги как однозначный стандарт, что несомненный плюс. мы все понимаем, что делает CreateFile, и если это будет, скажем, функция создания сущности "Подшивка" в БД - это вызовет ощутимый когнитивный диссонанс, что, ИМХО, плохо.
Voodoo Но ведь разница в частоте использования вариантов с break и без него всё равно огромна? А зачем к нему тянуться? Оно как раз под левой рукой. Да зачем она? Цопы-пасте рулит. У меня, вон, японской раскладки не установлено, зато из Вакана всё отлично цопыпастится. А её там частенько и так нет ни для кого, кроме аффтара с его личными тараканами. Меня вот издавна забавляла линуксячья команда "чмод" - в ней каких только смыслов не углядишь
э? шестерка под левой рукой - это интересно. впрочем, это уже мелочи. ну, это уже косяк аффтара. вообще, должна быть, говорят. это ж убиться можно. на 20ом копипасте уже задолбает кого угодно.
Voodoo К счастью, не во все. В прикладном ПО неродной язык не рулит вообще никаким местом. Словечки типа "давальческое сырьё" или там "виза отдела снабжения" в английском переводе кому угодно моск аннигилируют. Можно, конечно, прикинуться Паганини, типа "ваши низменные инстинкты не соответствуют нашим высоким идеалам". Ну и на кой тогда эти идеалы, если "виза_отдела_снабжения" по-любому более читабельна, чем "visa_otd_snab"? А все ли понимают, что делает "drop user system"? Если не знать, про что эти слова и к какому программному продукту относятся, можно очень долго гадать на кофейной гуще.
CyberManiacЕ Ещё один плюс английского в программировании - большая структурированность. Я имею в виду, что английском слова и словосочетания формируются в основном комбинированием, а не морфлением. Кроме того, английский более компактен - эквивалентные русские идентификаторы, как правило, существенно более длинные. Пример (к первому пункту): Код (Text): int writtenToFile; int readFromFile; int writtenToStream; int readFromStream; #define TRANSFERRED(container) (readFrom##container + writtenTo##container) Напишите это на русском. Придётся или давать идентификаторам корявые названия типа Файл_Прочитано, или добавлять доп. параметр в макрос, разве нет?
Тут дело даже не английском, а в том, что мышление символами и образами происходит эффективнее, нежели словами. Взять математику, физику, вообще точные науки, и сравнить например с философией. В их изложении плотность информации выше именно из-за того, что всё формализовано и символизировано (если так можно выразиться). В связи с этим возрастает и скорость обработки такой информации человеком (мозгом). Вообще, как только в какую-либо область знания приходят символы, она как правило получает быстрый рывок в развитии.
CyberManiac break это такая малость, switch используется редко, даже вспоминать об этом не стоит. а лишние запятые и скобочки тебе не мешают?
green Не придётся, у меня с русским языком проблем не было. "СчитаноИзФайла", "ЗаписаноВФайл",СчитаноИзПотока", "ЗаписаноВПоток". Просто по-русски надо писать, а не на "смеси французского с нижегородским". J0E Вообще не мешают. Синтаксически правильно, но по сути неверно из-за них написать невозможно, а экономить буквы - плебейство худшего сорта. Я даже числительные пишу буквами, если разрядов не слишком много.
Хотя, пожалуй, пример недостаточно выразителен. Вот такое напишите на русском: Код (Text): int writtenToFile; int readFromFile; int writtenToFileSystem; int readFromFileSystem; int writtenToFolder; int readFromFolder; #define TRANSFERRED(container) (readFrom##container + writtenTo##container)
CyberManiac "=" + "==" = 3 символа ":=" + "=" = 3 символа в чем преимущество? А если учесть, что оператор присваивания исползьуется чаще, то в C-стиле даже короче.
Раз уж зашло про локализацию языков программирования, скажу своё мнение. На русской раскладке нету некоторых знаков, которые довольно часто используются. Т.е. придется отказаться от # & | ~ [ ] { }, а они используются во всех(?) языках программирования, а, значит, нужно разрабатывать собственный язык, ибо переключать раскладку стопятьсот раз не кошерно.
странная тема. из разряда вопросов что нехватает в молотке, чтобы превратить его в ножовку. как говорится "легким движением руки брюки превращаются в шорты" (с)
Код (Text): [b]struct [/b]S { [b]enum [/b] { Файл, Директория, ФС, Считано=0 Записано=1, }; ulong индексыУчета[3][2]; // опущена проверка выхода за границы массива ulong Передано(ulong ОбъектФС) { [b]вернуть[/b] индексыУчета[ОбъектФС][Считано] + индексыУчета[ОбъектФС][Записано]; } }
По теме - я бы не отказался от ADT и, соответственно, pattern matching и вывода типов. С одной стороны, функциональщина, которая в С не к месту, с другой - реально удобный инструмент, который может быть в достаточной мере легковесен и несложно реализуем на низком уровне.