OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 11:37

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 01:43 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Нет, кодовые файлы все там есть, проверил. Может, ты не положил подситемы в корневую директорию ББ?


Директория Mt была не та. Все запустилось.
Стал смотреть код. Увидел русские иднтификаторы... Ощущения объяснить сложно, ближайший синоним: "меня начало колбасить". Настолько круто колбасить, что больше 20 секунд я не выдержал, закрыл все нафиг %) У тебя нет таких же исходников, но без русских букв? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 02:33 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
2Vlad: Русские идентификаторы конечно вызывают дискомфорт. Но как Вы предлагаете поступить в модуле MtLingvo, например? Я знаю, как по-русски называются падежи, и понимаю смысл констант. А Вы можете привести их английские эквиваленты? И если даже сможете, все ли читающие код поймут назначение этих констант?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 02:52 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Ivor писал(а):
2Vlad: Русские идентификаторы конечно вызывают дискомфорт. Но как Вы предлагаете поступить в модуле MtLingvo, например? Я знаю, как по-русски называются падежи, и понимаю смысл констант. А Вы можете привести их английские эквиваленты?


На память? :) Нет. Но специально заглянул в словарь - они есть. Так что не вижу проблемы. Не говоря о том, что пополнить свой личный словарный запас всегда полезно.

Ivor писал(а):
И если даже сможете, все ли читающие код поймут назначение этих констант?


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

P.S. Я не буду спорить на тему "хорошо или плохо писать русские идентификаторы". Я просто констатировал факт своего личного восприятия. Точнее полного невосприятия :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 14:13 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
Ivor писал(а):
2Vlad: Русские идентификаторы конечно вызывают дискомфорт. Но как Вы предлагаете поступить в модуле MtLingvo, например? Я знаю, как по-русски называются падежи, и понимаю смысл констант. А Вы можете привести их английские эквиваленты? И если даже сможете, все ли читающие код поймут назначение этих констант?


На мой взгляд, использование в программе идентификаторов на национальных языках сродни замене математических обозначений на национальные. А почему, собственно, углы в математике обозначать не греческими буквами, а целыми словами на русском или даже русскими буквами (Ц, Ш, Ю и т.д.)? Почему писать какой-то чужеродной латиницей имена переменных в той же математике -- ведь у нас есть же кириллица! Или так вопрос не стоит?

Вирт не зря отстаивает позицию, выдвинутую когда-то Дейкстрой, что язык программирования -- это прежде всего символика. Она ближе к математике, нежели к естественному языку.

Математические тексты читают люди, а не компьютер. Символика упорядочивает процесс мышления. Если приучают людей в программировании прежде всего создавать и оперировать абстракциями, то почему им надо обязательно давать строго осмысленное название на родном языке (с падежами и склонениями)?

Особенно умиляет, когда пытаются подвергать русификации ключевые слова самого языка (тот же Глагол). Или авторы не понимают, что они создают при этом НОВЫЙ язык? Усекают его до конкретной территории и вводят проблему коммуникации людей разных национальностей.

Это хорошо для детей? А чем плоха математика? Или традиции программирования не идут в сравнение с традициями математики?

На мой взгляд, если в языке количество ключевых слов очень небольшое (как в Обероне), то их представление на латинице для тех, кому привычна кириллица, даже лучше, чем для носителей английского -- они вынужденно воспринимают их как символы, а не как НАЧАЛО-КОНЕЦ (НЧЛ-КНЦ).

Если есть проблема с формированием имен идентификаторов для тех, кто незнаком с английским -- вводите небольшие словари данной предметной области (англо-русские) и вводите правила комбинирования и мнемоники. А комментарии на родном языке снимут проблему непонимания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 15:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Руслан Богатырев писал(а):
На мой взгляд, использование в программе идентификаторов на национальных языках сродни замене математических обозначений на национальные.


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

Идентификатор LoadFromXMLFile написанный на английском языке ни чуть не лучше идентификатора ЗагрузитьИзXMLФайла.

LoadFromXMLFile - именно что английский идентификатор, а не математический. Математически, он был бы обозначен, скажем, так: L_28.

Призываете использовать только математические обозначения? Ну тогда все идентификаторы будут вот такими: a, b, c, .. A, B, .. X13, w6, ..., alpha, beta, ..., Gamma, ... epsilon...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 23:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Коллеги, я не призываю переходить на национальный синтаксис и нотацию. Ни в коем случае. С письменным английским у меня тоже все неплохо (правда, только с письменным), чему доказательство - переводы документации ББ. Русские ЯП мне не кажутся особенно удачными. Сейчас у меня сложилось достаточно четкое мнение относительно русских идентификаторов:

1) В библиотеках общего назначения и открытых исходниках - только английские. Нигде в Mt вы русских слов не найдете. Только Lingvo.
2) Если модуль будет использоваться только в России или это наши внутрифирменные исходники, то мы приняли следующий подход:
- русские идентификаторы используются для абстракций предметной области. (Накладная, Склад, Товар и т.д.) и логических действий над ними.
- все сущности, относящиеся к технической реализации, именуются только по-английски.

Мы убедились, что исходники становятся читабельней. И дело не в английском - ни у кого в фирме проблем с ним нет. Дело в том, что это еще один способ разделить между собой различные части программы. Сразу ясно, что Накладная - это нечто из предметной области, а вот Buffer или HashTable - это технический компонент, никакой связи с ПрО не имеющий. С таким же успехом я мог бы использовать цветовое выделение.

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


Последний раз редактировалось Илья Ермаков Четверг, 16 Февраль, 2006 22:27, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 23:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Насчет математики: в ней-то действительно используются английская нотация.
Но мы-то с вами в первую очередь инженеры. При составлении строительных чертежей и планов в России вместо "дверь" используют "door"? Да ничего подобного. Поэтому ничего "антинаучного" я здесь не вижу. Вопрос только в том, оправдывает себя или нет. Полный переход на русский - нет, а вот частичный, как это сначала ни покажется кому-то корявым, - очень даже.

Еще раз повторюсь - вы видели не открытые исходники, а внутрифирменные. Или учебные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 02 Декабрь, 2005 23:08 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
Сергей Губанов писал(а):
Руслан Богатырев писал(а):
На мой взгляд, использование в программе идентификаторов на национальных языках сродни замене математических обозначений на национальные.


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

Идентификатор LoadFromXMLFile написанный на английском языке ни чуть не лучше идентификатора ЗагрузитьИзXMLФайла.

LoadFromXMLFile - именно что английский идентификатор, а не математический. Математически, он был бы обозначен, скажем, так: L_28.

Призываете использовать только математические обозначения? Ну тогда все идентификаторы будут вот такими: a, b, c, .. A, B, .. X13, w6, ..., alpha, beta, ..., Gamma, ... epsilon...


Не понял, к чему так утрировать. Перечитайте мой последний абзац. Повнимательнее. И еще раз.

если не затруднит, ответьте на следующие вопросы:

1. Вы считаете некорректным трактовать язык программирования как символику (математическую)?

[Да/Нет/Затрудняюсь]


2. Вы считаете допустимым использование русских букв в зарезервированных идентификаторах (ключевых словах) языка?

[Да/Нет/Затрудняюсь]


3. Вы считаете использование русских букв в идентификаторах...

[Допустимым/Необходимым/Недопустимым]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 11:49 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Руслан Богатырев писал(а):
Сергей Губанов писал(а):
Руслан Богатырев писал(а):
На мой взгляд, использование в программе идентификаторов на национальных языках сродни замене математических обозначений на национальные.

Идентификатор LoadFromXMLFile написанный на английском языке ни чуть не лучше идентификатора ЗагрузитьИзXMLФайла.
LoadFromXMLFile - именно что английский идентификатор, а не математический. Математически, он был бы обозначен, скажем, так: L_28.
... epsilon...

Не понял, к чему так утрировать. Перечитайте мой последний абзац. Повнимательнее. И еще раз.

Конечно Вы, этого не предлагаете. Я одного не пойму. Если словарь предметной области будет не большой, почему не использовать русско-английский словарь, вместо англо-русского. Благо таковые имеются в необходимом количестве. Проблема будет если нельзя перевести на английский. Но думается до этого не дойдет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 14:06 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
- русские идентификаторы используются для абстракций предметной области. (Накладная, Склад, Товар и т.д.) и логических действий над ними.
- все сущности, относящиеся к технической реализации, именуются только по-английски.


А переключать раскладку не напрягает? А путаница с буквами, которые одинаково пишутся и там и там (c, p, e и т.д.)?

P.S. Кстати, на 1С народ пишется по-русски :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 14:30 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Насчет раскладки - как ни удивительно, не напрягает. Большая ясность кода это окупает. Выделять цветом дольше времени бы отняло, и этого уж я точно желать не стал бы. А языком - почему нет? Есть же еще, кстати, автоматические переключалки для раскладнок.

Вот, кстати, чего надо бы докрутить к ББ - это автоматическое зажирнение экспортируемых идентификаторов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 14:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А путаница с буквами-то откуда возьмется? Если буква идет в слове, то сразу ясно, на каком она языке. А однобуквенные переменные - только по-аглицки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 15:57 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Руслан Богатырев писал(а):
1. Вы считаете некорректным трактовать язык программирования как символику (математическую)?
[Да/Нет/Затрудняюсь]

Язык программирования я трактую как некую формальную систему не зависимо от того имеет ли она отношение к математике или нет :D

Руслан Богатырев писал(а):
2. Вы считаете допустимым использование русских букв в зарезервированных идентификаторах (ключевых словах) языка?
[Да/Нет/Затрудняюсь]

Да, для меня это естественно. Русский язык не хуже английского, латинского, древнегреческого.

Руслан Богатырев писал(а):
3. Вы считаете использование русских букв в идентификаторах...
[Допустимым/Необходимым/Недопустимым]

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 16:04 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Илья Ермаков писал(а):
Вот, кстати, чего надо бы докрутить к ББ - это автоматическое зажирнение экспортируемых идентификаторов.


Подсистема Rad, позавчера выложил на своём сайте. Выделяет экспортируемые идентификаторы в том числе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 17:32 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
Сергей Губанов писал(а):
Руслан Богатырев писал(а):
1. Вы считаете некорректным трактовать язык программирования как символику (математическую)?
[Да/Нет/Затрудняюсь]

Язык программирования я трактую как некую формальную систему не зависимо от того имеет ли она отношение к математике или нет :D

Руслан Богатырев писал(а):
2. Вы считаете допустимым использование русских букв в зарезервированных идентификаторах (ключевых словах) языка?
[Да/Нет/Затрудняюсь]

Да, для меня это естественно. Русский язык не хуже английского, латинского, древнегреческого.

Руслан Богатырев писал(а):
3. Вы считаете использование русских букв в идентификаторах...
[Допустимым/Необходимым/Недопустимым]

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


Теперь мне вполне понятна Ваша позиция.

По п. 2 Вы согласны, что изменение ключевых слов (зарезервированных идентификаторов) создает НОВЫЙ язык?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 18:47 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Руслан Богатырев писал(а):
Вы согласны, что изменение ключевых слов (зарезервированных идентификаторов) создает НОВЫЙ язык?


Да, конечно. Это будет новый язык.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 03 Декабрь, 2005 22:22 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Использование символов из локального набора за пределами комментариев и литералов действительно создает новою возможность, не описанную в стандарте языка. Но это контролируемая возможность иначе называемая расширением. Полезность которого отстаивают ООО ОЦПИ "Метасистемы". Эта моя позиция понятна?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 04 Декабрь, 2005 09:42 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
GUEST писал(а):
Использование символов из локального набора за пределами комментариев и литералов действительно создает новою возможность, не описанную в стандарте языка. Но это контролируемая возможность иначе называемая расширением. Полезность которого отстаивают ООО ОЦПИ "Метасистемы". Эта моя позиция понятна?


Если говорить конкретно о связке Компонентный Паскаль (язык) -- BlackBox (система программирования, СП), то получается следующее.

В соотв. с описанием языка (Component Pascal Language Report, March 2001), см. п. 3 (Vocabulary and Representation), "The representation of (terminal) symbols in terms of characters is defined using ISO 8859-1, i.e., the Latin-1 extension of the ASCII character set. Symbols are identifiers, numbers, strings, operators, and delimiters.". Т.е. в языке не просто фиксируется SHORTCHAR для идентификаторов, а конкретная кодировка ISO 8859-1.

Нарушение данного правила автоматически ведет к появлению нового диалекта языка Component Pascal. Такой диалект может поддерживаться соотв. СП. Это означает, что должна быть новая версия BlackBox, поддерживающая новый диалект.

Идем дальше. Национальное расширение языка создает проблемы для его использования на других СП данного языка, не поддерживающих это расширение. Если система программирования GPCP для .NET и Java это не поддерживают, то программист, использующий русские идентификаторы, лишается возможности переносимости своих программ на другие платформы. Напомню, что BlackBox сейчас поддерживает только Win32.

Кроме того, при использовании национальных идентификаторов становится невозможным использование наработанного программного обеспечения стороними европейскими разработчиками (и совместная работа над проектами). Это еще одно ограничение.

Разумеется, если делается осознанная привязка к конкретной СП, к конкретному диалекту языка, к конкретной территории использования, то можно спокойно применять национальные идентификаторы. Понимая, на что идем.

Небольшие размышления.

Теперь о новой версии BlackBox и новом диалекте. С позиции стороннего наблюдателя.

Я знаю, что язык Component Pascal создан и поддерживается швейцарской фирмой Oberon microsystems. Я знаю, что BlackBox является коммерческим продуктом данной компании, которая имеет и сопровождает своих клиентов.

Я не знаю, что за организация осуществляет локализацию языка. Я не знаю, что за организация создает новые (национальные) версии BlackBox.

Дальше. Понятие open source к BlackBox, на мой взгляд, не применимо, в том числе потому, что представление в исходных текстах тестовой версии -- это не open source. Компания продолжает развивать свой коммерческий продукт, кроме того, нет конкретной группы (как, напр., Python Software Foundation), которая официально (явно) развивает этот продукт как open source.

Если кто-то начнет модифицировать исходные тексты BlackBox с целью создать свой open source - продукт, то он столкнется с ситуацией, когда одновременно на рынке появится коммерческая альтернатива самой компании BlackBox, которая никаких гарантий в этом отношении (в том числе и в плане изменения нынешней политики) не дает.

Что это означает? Что работа с BlackBox как с open source - продуктом невозможна. Что привязка к BlackBox несет большую опасность привязки к политике маленькой фирмы, что еще хуже, нежели узурпирование в рамках Borland языка Delphi и его СП. Мы все при этом до перевода BlackBox в полноценный open source и прекращения коммерческого развития BlackBox становимся заложниками компании Oberon microsystems.

Такова моя позиция.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 04 Декабрь, 2005 10:08 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
Добавление к предыдущему сообщению.

В описании языка Component Pascal (2001) указано:

Цитата:
1. Identifiers are sequences of letters, digits, and underscores. The first character must not be a digit.
ident = (letter | "_") {letter | "_" | digit}.
letter = "A" .. "Z" | "a" .. "z" | "À".."Ö" | "Ø".."ö" | "ø".."ÿ".
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".


В переводе этого описания на русский язык (Ф.В.Ткачев, 2001) читаем:

Цитата:
1. Идентификаторы [identifiers] суть последовательности букв, цифр и символов подчеркивания.
Первая литера не должна быть цифрой.
ident = (letter | "_") {letter | "_" | digit}.
letter = "A" .. "Z" | "a" .. "z" | "А".."Ц" | "Ш".."ц" | "ш".."я".
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".


Обратите внимание на произвольное изменение синтаксиса языка переводчиком без соотв. пояснений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 04 Декабрь, 2005 10:48 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Это всё замечательно, Руслан. Но каков Ваш прогноз? Будет ли компания Oberon microsystems и дальше предоставлять исходные тексты своего ядра в открытом доступе?
Я не думаю, что она бы хотела препятствовать именно появлению расширений своей системы. К тому же я не считаю, что при использовании русских идентификаторов становится невозможным использование наработанного кода сторонними европейскими разработчиками. Если у них возникнут затруднения в понимании русских терминов можно всегда в комментариях давать комментарии на родном им языке.
И последнее. Какие шаги нужно предпринять чтобы появилась организация, занимающаяся локализацией среды BlackBox?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB