OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 21 Июнь, 2025 22:53

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




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

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Критика оберона опирается на утверждения, что:
1. Поскольку язык лаконичный (примитивный), то выражение программных конструкций в исходных текстах получается более многословным.
2. Поскольку язык непопулярный, то приходится многажды "изобретать велосипеды", что опять же якобы приводит к распуханию исходников.

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

Для оценки можно использовать следующие статистические параметры:

1. Общее время использования среды программирования. Среда программирования тут рассматривается как приспособление для создания программных текстов. Под использованием среды программирования подразумевается любая активность в среде - перетаскивание окон, кликанье мышкой, сохранение-открытие документов и т.п.

2. Общий объём текста. Те самые пресловутые 100-200 строк в день, в промежутках между набором которых программист думает, изучает документацию, пишет комментарии и т.п.

3. Общий объём использования клавиатуры как приспособления для набора текстов. Тут считаем все нажатия всех клавиш, включая стирание символов, пролистывание, горячие клавиши и т.п.

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

Я думаю, что набирание статистики возможно организовать как из среды BlackBox, так и из других сред программирования. Можно вывести даже некий индекс как отношение объёма текста к общему времени работы в среде. Если майнстрим настолько хорош, как его малюют, то преимущество популярных инструментов будет очевидно - времени потрачено мало, а набрано много. Или же набрано не очень много, зато нажатий почти нет. Ну и так далее.

Как вам идея? Покритикуем?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 21:39 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Нужно обмерить Оберон и конкурентов метриками. Например, метриками Холстеда. Свердлов хорошую методу предложил по измерению сложность: мерить объем грамматики в самых разных разрезах.
Можно обмерить типовые структуры данных в реализации на Обероне и, например, на С++.
При этом еще как-то надежность надо обмерять. Кроме статистики тут ничего не пойдет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 21:46 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Про метрики Холстеда я уже думал. Ещё бы, конечно, вести подобные статистики с разбивкой по проектам, тогда можно получить усреднённое время реализации проекта. На достаточно больших периодах, можно даже приблизиться к каким-то нормам, независимым от среды и языка. Волонтёры статистику могут вести вообще в фоновом режиме, в BlackBox это сделать несложно. Результаты отсылать куда-нибудь в Центр.

P.S. Вообще, мне думается, что такой "мониторинг программиста" поможет избавиться от сугубо субъективных оценок и смотреть именно на то, как просто\сложно реализовывать задачи. Для этого нужны параметры, независимые от языка\среды, но фиксирующие как раз труд программиста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 21:58 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Эти параметры изложены в стандартах по качеству ПО.
Лично я этим делом собрался заняться очень плотно после докторской. То есть примерно через год. К тому времени и статистика подоспела бы... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 22:19 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Мне кажется, что оценка качества ПО исходит все же из другой модели, нежели оценка инструмента разработки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 22:24 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Инструмент - это ПО. И мы собираемся оценить его качество. По некоторым параметрам. В стандартах изложены критерии в достаточной мере обобщенные. Например, мобильность, модифицируемость, читабельность. Кстати, никто еще не придумал способ объективного измерения читабельности.
Мы же хотим обмерить более частные критерии. Но суть та же - мы хотим измерить некое конкретное качество конкретного ПО.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Понедельник, 01 Март, 2010 23:41 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Иван Кузьмицкий писал(а):
Критика оберона опирается на утверждения, что:
Критика происходит из отрицания того, что основное назначение кода - для Человека, а не для Компьютера.
Говорят все, что угодно - а в голове именно это.
И все следует именно из этого. Пока нет согласия по этой основной позиции - сто лет спорить с пеной у рта можно.
Вспомните Педсовет :D

И что занимательно, глаза "нападающим" открыл (на странице, где-то - двадцатой...) не участник данного форума, а Руслан. И показалось мне, что как-то сникли "нападающие" немного... После этого. Не было уже той страсти, за мелочи взялись...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 00:58 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ну, для человека, и ладно. Теперь к этому человеку надо линейку приложить и заценить - на что он тратит время своей жизни, на километры кода или на решение задачи. А то может оказаться так, что задачи в обероне решаются примерно такие же, как в майнстриме, а времени на это решение уходит меньше. Хотя бы из-за стремящегося к нулю периода отладки...

Пора переходить от философии к цифрам :) Объём грамматики по Свердлову хорош, но не хватает фактора времени.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 01:04 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
А время можно оценить только на практике. Посадить две команды с ОДИНАКОВЫМ опытом на одну задачу. кто быстрее и напишет. И где меньше ошибок. И где текст короче. У нас есть две такие команды? Или хотя бы два человека?
Хотя можно Ермакова попросить, мож двух студентов подбросит. Только их нужно обоих одинаково научить и ББ+КП и С++ + дотнет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 01:10 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Тогда уж команды должны не только писать код, но и читать его после этого. И важным условием должно быть то, что читающий человек не участвовал в написании кода (эмулируется ситуация, когда к коду возвращаешься спустя долгое время и он настолько забыт, что воспринимается как чужой). И на основе чтения можно будет судить - для Человека писался код или для Машины.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 01:10 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Валерий Лаптев писал(а):
Только их нужно обоих одинаково научить и ББ+КП и С++ + дотнет.

Вот цена этого "одинаково" и есть искомая мера. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 06:07 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Кузьмицкий писал(а):
Для оценки можно использовать следующие статистические параметры:
Надо, конечно, сильно думать, чтобы правильно проинтерпретировать такие цифры. Но вообще интересно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 07:14 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Думаю, что "спортивный" подход на сравнение работы двух команд по решению одной задачи слишком узкий, что ли... В жизни встречаются разные задачи и разные уровни подготовки людей.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 08:05 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Без реального мониторинга любую меру можно оспорить. Дело же не в метриках, а в их интерпретации. Метрики можно посчитать какие угодно. Но важно сопоставить числовые характеристики с субъективным человеческим восприятием. Например, посчитали мы метрики Чидамбера-Камерера или Лоренца и Кидда. Ну и что? Должен быть вывод: при таких значениях метрик получается хорошая модифицируемость проекта, а при таких - нет. А такой вывод можно сделать только на основе конкретного реального опыта. То есть опыта эксперта. Тут в полный рост приходится оперировать неточной-неполной информацией.
Мой аспирант в диссере предложил подход к оценке такого рода информации: нечеткие нейронные сети Ванга-Менделя. Но! Сначала ему пришлось ограничиться классом задач и инструментария. Он, естественно, рассмотрел дотнетовские ООП-системы, написанные на додиезе, так как сам был начальником отдела АСУ и сам это все писал.
Далее ему пришлось анализировать массу проектов и на основании своего ЛИЧНОГО опыта сопоставлять: проекты с такими-ито значениями метрик лучше поддаются модификации, чем вон те. А дальше уже обучать сеть и обрабатывать новые проекты.
Так что с метриками ПО - все достаточно сложно.
Холстед мне нравится потому, что он использует только статистику ТЕКСТА. И это дает кое-какую ОБЪЕКТИВНУЮ информацию. Мож в лингвистику залезть глубже надо и там поискать?
Но опять же - нужног усреднять по большому массиву текстов в обоих вариантах.

Показатель модифицируемости здесь только в качестве примера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 13:53 

Зарегистрирован: Вторник, 11 Август, 2009 11:44
Сообщения: 516
Откуда: Бердск
Иван Кузьмицкий писал(а):
Ну, для человека, и ладно

А вот не "и ладно", а самое главное :D
Никакая "линейка" не поможет, если для человека главное то, что он "Hello Word" может написать за 6 секунд (в смысле быстрее)
А если главное "понимание", то и "линейка" как-то уже и не актуальна...
Тем более, что "читаемость" - не понять что такое... Что более "читаемо" - код на (предположим) КП, или схема на ДРАКОНе ???
Вот если я отвечу на этот вопрос - "HiAsm", то где та "линейка", которая нас рассудит :?:
Чего-то мне кажется, что нет такой линейки.... В смысле, фиг ее сделаешь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 14:35 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
То, что сейчас не понятно, не значит, что не нужно вообще ничего делать.
Вот, например, наличие цикла Дейкстры и вообще структурных конструкций делает прогу более модифицируемой, чем при наличии конструкций с выходом из середины. И видимо, более надежной. И, кстати, возможно, что более читабельной. Осталось придумать метрику, которая показывает эту разницу, и во сколько раз. Метрика, естественно, эвристическая. Потом ее уточнять в реале.
Меры сложности - они в первую очередь, количественные. На основе количества разнообразных элементов в программе. И, кроме того, на основе статического и динамического графа программы.
Далее - опять эмпирический закон требуется наблюдать: насколько влияет сложность на другие характеристики.
Это и есть первые шаги науки в ИТ - первоначальные наблюдения, измерение и классификация.

Интересно направление Model checking - я в литературе книжку переводную приводил. Шалыто в книжке Автоматное программирование упоминал, что основное наблюдение в этом направлении: невозможно доказать правильность проги, если она с самого начала не строится под доказательство. Это как с другимихарактеристиками. Например, если изначально не строить программу с целью облегчения модифицируемости, то потом это уже невозможно сделать. Переписать заново проще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 16:30 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Да, я тоже думаю, что окутывание мистическим флёром нужных нам понятий вряд ли поможет делу. Дело программиста - выражать инженерию в текстах, а тексты надо читать. Вот, можно для начала определиться с чтением и читаемостью.

Вот что я нашёл у Фасмера про "читать":

Цитата:
Слово:честь

Ближайшая этимология: ж., род. п. -и, чеґстный, честноґй крест, чтить (см.)., поґтчевать (см.), укр. честь, блр. чесць, др.-русск. чьсть, ст.-слав. чьсть tim» (Клоц., Супр. и др.), болг. чест, сербохорв. ча?ст, словен. ‰a?st, чеш. ‰еst ж., слвц. ‰еst', польск. czesґcґ, род. п. сzсi, в.-луж. ‰escґ, н.-луж. сеscґ.

Дальнейшая этимология: Праслав. *‰ьstь, связанное со ст.-слав. чьт†, чисти (см. чту), родственно др.-инд. ciґttis· ж. "мышление, понимание, намерение", авест. ‰isti- "мышление, познание, понимание"; др. ступень чередования гласных: др.-инд. сЊґtаti "соблюдает, замечает, думает", лтш. «k§ist, «k§i°etu "думать, соблюдать"; см. Бернекер I, 173 и сл.; Траутман, ВSW 135; Мейе, МSL 14, 349; М. -- Э. 4, 47; Либерт 100. Ср. чту, читаґть.

Слово:чту

Ближайшая этимология: II, честь: почтуґ, почеґсть, прочтуґ, прочеґсть, чтеґние, почтеґние, почеЁт, почтиґ, нареч., буквально "считай, можно считать", также чеЁтки мн. (см.), чеЁткий, ст.-слав. чьт†, чисти ўnagignиskein, sebe‹n (Еuсh. Sin., Супр.), болг. четаґ "читаю", сербохорв. стар. чтем, чисти "читать, почитать", совр. ча°ти?м, ча°тити, ча°та?м, ча°тати "читать", по?штити "почтить", словен. ‰te·?jem, ‰te·ґti, «te·^jem, «te·ґti "считать", чеш. ‰tu, ‰iґsti "читать, считать", польск. стар. czte§, czysґcґ, полаб. caІte "считает".

Дальнейшая этимология: Связано чередованием гласных с читаґть (см.), сюда же честь (*‰ьt-tь). Родственно др.-инд. сЊґtаti "соблюдает, мыслит, познает, понимает", kЊґtas м. "мысль, умысел, желание", cikitvѓґn "понимающий, знающий", авест. ‰iki±wѓІ "мудрый", далее -- лит. skaityґti, skaitau~ "читать, считать", лтш. ska°iti^t "считать", «k§i°etu§, «k§ist "думать"; см. Бернекер I, 175; Траутман, ВSW 135; Зубатый, AfslPh 16, 388; М.--Э. 4, 47; Мейе, МSL 14, 349.


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

У лингвистов можно найти такое определение текста: "последовательность осмысленных высказываний, передающих информацию". Видно главное - текст есть элемент общения.

Из всего этого можно сделать вывод - читая текст, мы последовательно перебираем знаки и расшифровываем, осмысляем их, а если обратиться к этимологии Фасмера
Цитата:
Слово:текст,

Ближайшая этимология: род.п. -а. Через нем. Техt или непосредственно из лат. teхtus "ткань; сочетание слов". от tехЎ, -еrе "ткать".
, можно еще дополнить - кроме осмысления, происходит восстановление структуры, исходного замысла.

Что же получается? Я рискну предположить, что говорить о "мере читаемости" нет смысла. Текст либо читаемый, либо нет. Его либо можно прочесть, либо нет. Нельзя "частично" прочитать текст, потому что текст обладает цельностью.

И дракон-схемы, и программы на обероне - всё читаемое. Нельзя говорить, что одно более читаемое, чем другое. Хотя, думается, что под "читаемостью" подразумевается несколько другое, а именно - скорость расшифровки знаков. Если знаков много, то скорость падает. Если знаки богато нагружены смыслами, то скорость опять же падает (эти смыслы надо ещё уметь развернуть). То есть, речь идёт о "соревновании": кто быстрее поймёт текст, восстановит у себя в голове его структуру.

Поэтому, критика оберона в плане "малочитабельности" основана на хитрости. Если как можно плотнее упаковать побольше смыслов в знак, выигрывая в количестве символов в тексте, то программа будет выглядеть компактной.
Но тогда надо говорить о затратах на расшифровку и восстановление первоначальной структуры.

И вот тут-то оберон, с его аналитичностью, берёт верх! В силу ограниченности смыслов в знаках и гармоничного построения знаковой системы, программы на обероне читать очень легко :) Что, кстати, подтверждается личным опытом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 19:42 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Я думаю, что с читабельностью вы правы. Но читаемость (понимаемость) текста влияет на другие характеристики программы. Например, на количество ошибок. Здесь можно говорить, например, о плотности ошибок на единицу программного текста: процедуру или модуль. А это уже сравниваемые вещи.
Но опять же: ошибки делают люди, поэтому сравнивать требуется работу людей с примерно одинаковым опытом.
То есть, куда ни кинь программа - это результат трудовой деятельности человека.
Кстати, в ИТ напрочь отсутствуют объективные нормативы мастерства программистов (и других деятелей... :) ). В отличие от других видов деятельности ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Вторник, 02 Март, 2010 23:46 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Валерий Лаптев писал(а):
Я думаю, что с читабельностью вы правы. Но читаемость (понимаемость) текста влияет на другие характеристики программы. Например, на количество ошибок. Здесь можно говорить, например, о плотности ошибок на единицу программного текста: процедуру или модуль. А это уже сравниваемые вещи.

Что-то здесь говорится только о "читабельности" текста.
А можно говорить и о других свойствах языка.
Открываю недавно изданную книгу М.Плаксина "Тестирование и отладка программ", главу 9 ("Ошибкоопасные ситуации").
Вот некоторые из перечисленных (с моими пометками):
- выход индекса за границу массива (Паскаль/Оберон vs Си)
- "висячая ссылка" (Оберон vs Си/Паскаль)
- использование записи с вариантами (Оберон vs Си/Паскаль)
- статические переменные (Оберон vs Алгол/Си)
- вложенные условные операторы: сочетание if-then-if-then-else (Оберон vs Си/Паскаль)
- ошибки в числе и типах параметров процедур (раздельная компиляция vs независимая компиляция).
Вопрос: число вероятных "ошибкоопасных ситуаций" будет учитываться в метрике?

Валерий Лаптев писал(а):
Кстати, в ИТ напрочь отсутствуют объективные нормативы мастерства программистов (и других деятелей... :) ). В отличие от других видов деятельности ...

Вот это "напрочь" вызывает сомнения.
Занимаются же "охотники за головами" набором программистов. Чем то они при этом руководствуются?
И так ли велика разница по сравнению с другими профессиями?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Есть идея, как измерить оберон.
СообщениеДобавлено: Среда, 03 Март, 2010 00:23 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ошибкоопасные свойства приводят к перерасходу времени использования среды (увеличивается период отладки, но объём текста меняется незначительно).

Так что, можно сказать, что учитываются :)


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

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


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

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


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

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