Чего Вам не хватает в С ?

Тема в разделе "LANGS.C", создана пользователем osox, 14 июн 2010.

  1. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    CyberManiac
    Нет, конечно. Цель - более эффективный код (повторное использование кода в case-ах, меньше размер бинарного кода).
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    green
    Снова процитирую "Кин-дза-дзу": "зачем говоришь на языке, продолжения которого не знаешь"? Пресловутый "технический английский" это как раз тот язык, продолжение которого очень мало кто знает. В нём ~200 слов, из которых половина - спец. термины, и ещё треть - глаголы самого общего содержания. Какое-нибудь GetFile, если его рассматривать вне программистского мозга, сразу вызвало бы массу вопросов - что за документ и откуда его нужно взять (получить? вытащить?)

    Тогда надо использовать китайские идентификаторы. Они точно будут лишены побочных смыслов для абсолютного большинства некитайцев.

    Если бы национальные идентификаторы были плохи, почему англоязычные программисты от них не отказались?

    Пенис - эт половой член. Дырку от ж0пы тоже можно было как-нибудь обозвать. Печёнки-селезёнки же по-русски называем, да и нижнюю челюсть мало кто именует мандибулой.
     
  3. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    CyberManiac
    это, наверное, вопрос стиля и задач. мне не так уж давно пригодилось.

    да, и правый мизинец будет накачанный. =) кстати, если еще и брать повсеместное использование русской раскладки при наборе кода(ваши же локализованные имена и т.п.) - будет еще и растяжка пальцев на руке, которая будет тянуться к двоеточию. а что, сплошные плюсы. надо переходить на паскаль с поддержкой юникода.

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

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    но говорим-то мы именно о программистских мозгах. в конце концов, англоязычная терминология уже забита во все наши мозги как однозначный стандарт, что несомненный плюс. мы все понимаем, что делает CreateFile, и если это будет, скажем, функция создания сущности "Подшивка" в БД - это вызовет ощутимый когнитивный диссонанс, что, ИМХО, плохо.
     
  5. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Voodoo
    Но ведь разница в частоте использования вариантов с break и без него всё равно огромна?

    А зачем к нему тянуться? Оно как раз под левой рукой.

    Да зачем она? Цопы-пасте рулит. У меня, вон, японской раскладки не установлено, зато из Вакана всё отлично цопыпастится.

    А её там частенько и так нет ни для кого, кроме аффтара с его личными тараканами. Меня вот издавна забавляла линуксячья команда "чмод" - в ней каких только смыслов не углядишь :)
     
  6. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    э? шестерка под левой рукой - это интересно. впрочем, это уже мелочи.

    ну, это уже косяк аффтара. вообще, должна быть, говорят.

    это ж убиться можно. на 20ом копипасте уже задолбает кого угодно.
     
  7. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Voodoo
    К счастью, не во все. В прикладном ПО неродной язык не рулит вообще никаким местом. Словечки типа "давальческое сырьё" или там "виза отдела снабжения" в английском переводе кому угодно моск аннигилируют. Можно, конечно, прикинуться Паганини, типа "ваши низменные инстинкты не соответствуют нашим высоким идеалам". Ну и на кой тогда эти идеалы, если "виза_отдела_снабжения" по-любому более читабельна, чем "visa_otd_snab"?

    А все ли понимают, что делает "drop user system"? Если не знать, про что эти слова и к какому программному продукту относятся, можно очень долго гадать на кофейной гуще.
     
  8. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    CyberManiacЕ
    Ещё один плюс английского в программировании - большая структурированность. Я имею в виду, что английском слова и словосочетания формируются в основном комбинированием, а не морфлением. Кроме того, английский более компактен - эквивалентные русские идентификаторы, как правило, существенно более длинные.

    Пример (к первому пункту):
    Код (Text):
    1. int writtenToFile;
    2. int readFromFile;
    3. int writtenToStream;
    4. int readFromStream;
    5. #define TRANSFERRED(container) (readFrom##container + writtenTo##container)
    Напишите это на русском. :)
    Придётся или давать идентификаторам корявые названия типа Файл_Прочитано, или добавлять доп. параметр в макрос, разве нет?
     
  9. 7mm

    7mm New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2009
    Сообщения:
    442
    Тут дело даже не английском, а в том, что мышление символами и образами происходит эффективнее, нежели словами. Взять математику, физику, вообще точные науки, и сравнить например с философией. В их изложении плотность информации выше именно из-за того, что всё формализовано и символизировано (если так можно выразиться). В связи с этим возрастает и скорость обработки такой информации человеком (мозгом). Вообще, как только в какую-либо область знания приходят символы, она как правило получает быстрый рывок в развитии.
     
  10. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    CyberManiac break это такая малость, switch используется редко, даже вспоминать об этом не стоит. а лишние запятые и скобочки тебе не мешают? ;)
     
  11. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    green
    Не придётся, у меня с русским языком проблем не было. "СчитаноИзФайла", "ЗаписаноВФайл",СчитаноИзПотока", "ЗаписаноВПоток". Просто по-русски надо писать, а не на "смеси французского с нижегородским".

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

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Двойные стандарты? Ты ведь экономишь буквы на слове break? ;)
     
  13. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    CyberManiac
    Так перепишите мой пример, используя русские идентификаторы. :)
     
  14. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Хотя, пожалуй, пример недостаточно выразителен.
    Вот такое напишите на русском:
    Код (Text):
    1. int writtenToFile;
    2. int readFromFile;
    3. int writtenToFileSystem;
    4. int readFromFileSystem;
    5. int writtenToFolder;
    6. int readFromFolder;
    7. #define TRANSFERRED(container) (readFrom##container + writtenTo##container)
    :derisive:
     
  15. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    CyberManiac
    "=" + "==" = 3 символа
    ":=" + "=" = 3 символа
    в чем преимущество?
    А если учесть, что оператор присваивания исползьуется чаще, то в C-стиле даже короче.
     
  16. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Напомнило этикетки в магазине во дворе: "жолтый полосатик" и "калмар" :)
     
  17. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Раз уж зашло про локализацию языков программирования, скажу своё мнение. На русской раскладке нету некоторых знаков, которые довольно часто используются. Т.е. придется отказаться от # & | ~ [ ] { }, а они используются во всех(?) языках программирования, а, значит, нужно разрабатывать собственный язык, ибо переключать раскладку стопятьсот раз не кошерно.
     
  18. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    странная тема. из разряда вопросов что нехватает в молотке, чтобы превратить его в ножовку. как говорится "легким движением руки брюки превращаются в шорты" (с)
     
  19. jabocrack

    jabocrack New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    96
    Код (Text):
    1. [b]struct [/b]S
    2. {
    3. [b]enum [/b]
    4. {
    5.   Файл,
    6.   Директория,
    7.   ФС,
    8.   Считано=0
    9.   Записано=1,
    10. };
    11.  ulong  индексыУчета[3][2];
    12. // опущена проверка выхода за границы массива
    13.  ulong  Передано(ulong ОбъектФС) { [b]вернуть[/b] индексыУчета[ОбъектФС][Считано]
    14.                                                       + индексыУчета[ОбъектФС][Записано];
    15.                                                       }
    16. }
     
  20. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    По теме - я бы не отказался от ADT и, соответственно, pattern matching и вывода типов. С одной стороны, функциональщина, которая в С не к месту, с другой - реально удобный инструмент, который может быть в достаточной мере легковесен и несложно реализуем на низком уровне.