vit_r: default (Default)
[personal profile] vit_r
Хороший программист - тот, кто пишет код, который любой дурак поймёт и ни один идиот не сломает.

Всё остальное - или выпендрёж, или пионерство.

Date: 2010-02-10 11:40 pm (UTC)
From: [identity profile] founderin.livejournal.com
подписываюсь

Date: 2010-02-11 08:24 am (UTC)
From: [identity profile] realurix.livejournal.com
По поводу "поймет" не согласен. Если Бог не дал, то никто не даст. Код, основанный на более или менее сложных положениях теории дурак не поймет. Прочитать сможет, а понять - не дано.
А вот второе, не сломает, - тоже не есть правильно. Достаточно гле-то не там поставить запятую или точку. И программы не созхдают себе окружение, а работают в какой-то среде, которую может создать "умелец". А еще проще - берем кувалду и с помощью кувалды и такой-то матери "рихтуем" код...

Date: 2010-02-11 08:48 am (UTC)
From: [identity profile] vit-r.livejournal.com
Для этого есть комментарии. Дурак не должен понимать "как". Он должен понимать "что" и "зачем".

И код, основанный на тонких теориях, нужен в исключительных случаях.

Ошибки с точками и запятыми должны застревать в контроле качества. А за кувалдометры в приличных домах просто бьют по рукам.

Date: 2010-02-11 09:01 am (UTC)
From: [identity profile] realurix.livejournal.com
> Дурак не должен понимать "как". Он должен понимать "что" и "зачем".
Без "как"-ов все остальное лишь благие пожелания. Ситуация aka "гляжу в книгу, вижу фигу".

> И код, основанный на тонких теориях, нужен в исключительных случаях.
А часто Вы встречались с тем, чтобы скудентам правильно читали, например, сортировки? Теория не тонкая, а ...

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

Date: 2010-02-11 09:19 am (UTC)
From: [identity profile] vit-r.livejournal.com
Большая часть проблем возникает из-за того, что человек думает, что знает.

Контроль качества зависит от качества контроля качества. А условия, чтоб лишние запятые никуда не попадали, создать не сложно.

Date: 2010-02-11 09:40 am (UTC)
From: [identity profile] realurix.livejournal.com
> возникает из-за того, что человек думает, что знает
Один мой знакомый говорил: "Думать надо, когда есть чем. В остальных случаях надо просто знать." ;-))

> Контроль качества зависит от качества контроля качества.
Как известно - использование рекурсии приводит к физически нереализуемым моделям.

Date: 2010-02-11 09:44 am (UTC)
From: [identity profile] vit-r.livejournal.com
В правильном варианте это не рекурсия.

В не правильном всё в любом случае безнадёжно.

Date: 2010-02-11 10:09 am (UTC)
From: [identity profile] realurix.livejournal.com
А как Вы собираетесь контролировать неточности в программировании? Неточность в программировании приводит к ошибке в прогнозе поведения программы в изменившихся условиях. Все равно ошибка, хотя прога сразу не "падает". Но такиек вещи контролировать не сможет ни одна система контроля. Только человек. Да еще обязательно очень грамотный, хорошо знающий теорию.

Это, кстати, одна из причин почему Виртовские разработки, вроде Oberon, Modula и Lilit, не имеют широкого хождения.

Date: 2010-02-11 01:14 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Это не может быть причиной.

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

Оберон просто работает. Это самая важная причина того, что он не имеет широкого хождения. Нет места для якобы улучшающих качество программирования тулзовин (бизнес) и самоудовлетворения задротов (психология).

Date: 2010-02-11 01:19 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Пожалуй, с последним соглашусь.

Насчёт же кадрового вопроса не всё так просто в смысле бизнеса.

Date: 2010-02-11 01:35 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Ну, я по умолчанию предположил, что у конкретного "кадра" умение программировать уже есть. А перейти на оберон опытному программисту раз плюнуть. При этом качество разработки не снизится, а скорее наоборот.

Date: 2010-02-11 01:43 pm (UTC)
From: [identity profile] realurix.livejournal.com
"Языки портят программистов." (C) Дейкстра.
Кроме того, гляньте сюда http://ooc.sourceforge.net/ ;-))

Date: 2010-02-11 01:53 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
"Портят", да. Есть такое дело. Но при этом, в том же КП есть всё, что необходимо для промышленной постановки задачи. Поэтому я и говорю - если человек владеет соответствующим категориальным аппаратом, то использование оберона не будет проблемой. А если не владеет, то пойдут проблемы от BEGIN END, отсутствия break и прочих вытребенек.

Date: 2010-02-11 01:48 pm (UTC)
From: [identity profile] realurix.livejournal.com
Кроме того, Никлаус Вирт грешит тем, что настаивает на своем сечении библиотек. Именно поэтому нельзя воспользоваться остальным накопленным опытом. Вещь в себе.

xds - Excelsior Oberon-2/Modula-2 compiler, set up to produce native FreeBSD binaries. Поставляется в бинарниках. Посему им никто не пользуется - падает, зараза.

Date: 2010-02-11 01:55 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
А никто не даст гарантию, что модель "накопленного опыта" полностью совпаст с моделью Вашей разработки. Очень часто случается так, что проще изобрести простой велосипед, чем иметь геморрой с очередным мега-компонентищем.

Date: 2010-02-11 03:39 pm (UTC)
From: [identity profile] realurix.livejournal.com
Представляете мое удивление, когда для компиляции CVSUP приходится полностью компилировать не только ezm3 (компилятор Modula3), но еще потом еще и кучу библиотек окружения. Это только для одной cvsup. Представляю, какие пойдут затраты, если появится како-нить продукт на oberon. Тут будет уже полная жопа. Такая же, как и с компилятором, колторый сделан в виде бинарника и который падает. Были бы исходники - перекомпилировал и никаких проблем. А так я это дело сразу выкинул и пометил себе - пользоваться нельзя, говно.

И, кстати, не напомните, что там сам Никлаус Вирт говорил по поводу языка C?

Date: 2010-02-12 05:10 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Вообще-то оберон поддерживает раздельную компиляцию, поэтому такими устарвешими вещами, как независимая компиляция, Вам попросту нет необходимости заниматься.

Date: 2010-02-11 01:58 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ну да. У него многое принесено в жертву академической красоте.

А для Линукса компилятор Оберона лучше?

Date: 2010-02-11 02:12 pm (UTC)
From: [identity profile] vit-r.livejournal.com
К сожалению, опытных программистов не так много, как хотелось бы. Да и "умение программировать" встречается очень и очень разное.

Date: 2010-02-12 05:17 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Это бесспорно. Выгода от использования оберона в том, что не надо отвлекаться на вытребеньки языка, а смотреть на алгоритмы "напрямую".

Прилично мозг разгружается, да.

Date: 2010-02-11 01:24 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Есть ревью, есть внутренние проверки.

В принципе, писать "выживающий" код не так сложно, хотя и муторно.

Date: 2010-02-11 09:09 am (UTC)
From: [identity profile] realurix.livejournal.com
> И код, основанный на тонких теориях, нужен в исключительных случаях.
А часто Вы встречались с тем, чтобы скудентам правильно читали, например, сортировки? Теория очень простая. "Знаю - это не только помню, но еще и умею применять". Например, нужно отсортировать массив из миллиарда записей. Затраты на qsort и другие сортировки N*sqrt(N). В общем, работа программе на несколько часов. А можно сделать так сортировку, чтобы ее затраты были между N и n*sqrt(N). Как - это следует из теории сортировок. Дурак будет решать задачу "в лоб"...

Date: 2010-02-11 09:17 am (UTC)
From: [identity profile] vit-r.livejournal.com
Это вещи ортогональные. Большинство сложных задач имеет простые и изящные решения. Отсылки к алгоритму достаточно, чтоб минимум уважение у чайника вызвать.

Date: 2010-02-11 09:36 am (UTC)
From: [identity profile] realurix.livejournal.com
> чтоб минимум уважение у чайника вызвать
Я не для чайников пишу, что бы работало. Какая у Вас цель, когда Вы пишете код - шашечки или ехать?

Date: 2010-02-11 09:37 am (UTC)
From: [identity profile] vit-r.livejournal.com
Смотря где и для кого.

В больших проектах приходится возводить мощную защиту от дурака.

Date: 2010-02-11 09:43 am (UTC)
From: [identity profile] realurix.livejournal.com
> В больших проектах приходится возводить мощную защиту от дурака.
Американцы для этих целей контроля качества в самом коде создали язык Ada. Вам туда...

Хотя, если система защищена от дурака, то в ней может работать только дурак.

Date: 2010-02-11 01:27 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ада - это военка. Что не особо интересно.

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

Date: 2010-02-11 01:45 pm (UTC)
From: [identity profile] realurix.livejournal.com
> Ада - это военка.
Какая разница? Важна цель с которой создавался данный язык. Америкосов замотало бесконечное дебаженье, вот они и наделили язык функциями контроля. Из-за чего на это у**ище может писать только шизик. Это что-то вроде "экскремента" с PL/1. ;-)))

Date: 2010-02-11 02:10 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Язык - это не более, чем инструмент.

Вот уже много лет я выбираю тот, который лучше подходит под задачу. Или, который потребен заказчику.

Там, где используется Ада столько мутотени, что особенности языка на фоне не очень выделяются.

Date: 2010-02-11 10:00 pm (UTC)
From: [identity profile] realurix.livejournal.com
> Язык - это не более, чем инструмент.
Молоток он что в военке молоток, что в гражданке. Правда, в военке могут сделать (америкосы так уже делали) такой молоток, что он будет стоить дороже золотого. Объективно, Ada тоже из серии таких "молотков". Конечно, Oberon на фоне Ada очень даже хорошо смотрится. Но стоит его сравнить с C...

Date: 2010-02-12 05:31 am (UTC)
From: [identity profile] akastargazer.livejournal.com
Нешто в С есть сборка мусора? Вы меня удивляете :)

Date: 2010-02-12 08:37 am (UTC)
From: [identity profile] realurix.livejournal.com
Вот именно поэтому C, а не Oberon и используется в качестве языка системного программирования. А для прикладухи Java и Perl концептуально интересней.

Date: 2010-02-12 02:11 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Вы меня обратно удивляете :) Сборка мусора в оберонах лишь требование к среде выполнения и отключается в одно прикосновение :)

Date: 2010-02-11 08:30 am (UTC)
From: [identity profile] patak.livejournal.com
Сломать можно любой код, если есть доступ к соурсам.

Date: 2010-02-11 08:44 am (UTC)
From: [identity profile] vit-r.livejournal.com
Не всегда.
Всё зависит от того, как в проекте контролируют качество.

Date: 2010-02-11 08:50 am (UTC)
From: [identity profile] patak.livejournal.com
Тогда надо уточнить, что ты подразумеваешь по словом "сломать"

Date: 2010-02-11 08:55 am (UTC)
From: [identity profile] vit-r.livejournal.com
Если начать уточнять и уточнённое уточнять, придётся книжку писать. А я пока не готов.

Естественно, один посреди голого поля и хороший программист - не воин.
(deleted comment)

Date: 2010-02-11 01:23 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Как сказал один спец, "Оберон был проще, чем нужно"

В принципе, весь проект шёл под эгидой "Тут все с высшим образованием, так что разберутся"
И люди, пишущие на Обероне, продолжали в коде форматировать так, как у Вирта в книжке. Что для промышленного уровня не приемлемо.

Кстати, самый понятный и ясный код пришёл тоже из универа от одного профессора.

Date: 2010-02-11 01:48 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Когда я перешёл на Оберон (Component Pascal + среда BlackBox Component Builder, далее ББ), со мной приключилась история по поводу форматирования исходников.

В среде ББ нет автораскраски сырцов, плюс сам стиль текста такой "уплотнённый", что попервоначалу меня это повергало в изумление. Я продолжал пользоваться своим привычным шрифтом, поставил подсистему автораскраски и оформлял сырцы как раньше.

Постепенно я заметил, что цветовая раскраска мне стала мешать. Ни в кларионе, ни в FreePascal такого не происходило.

Далее, мои исходники как-то сами собой стали принимать "уплотнённый" вид.

И однажды случилось "страшное" :). Я полностью отказался от автораскраски исходников и перешёл на "архитектурную" раскраску (так я её назвал), благо составные документы среды ББ позволяют такое.

А для форматирования отступов и стилей у нас есть "корпоративный" инструмент для оформления :)

Date: 2010-02-11 02:00 pm (UTC)
From: [identity profile] vit-r.livejournal.com
То, что Оберон не способствует раскраске, - это тоже можно отнести в минусы.

Date: 2010-02-11 04:11 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Оберон тут ни при чём, это все среда BlackBox с её составными документами :) архитектурная раскраска куда интереснее обычной, автоматической :)

Date: 2010-02-11 04:17 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Можно посмотреть на примеры?

Date: 2010-02-11 07:19 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
Сделал 4 скрина, выложил тут:

http://picasaweb.google.ru/akaStargazer/BlackBox

Date: 2010-02-11 07:24 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Спасибо.

Ну, да. Логично.
Только мне не нравится.

Date: 2010-02-11 08:33 pm (UTC)
From: [identity profile] akastargazer.livejournal.com
А это как женщина - пока не распробуешь, не поймешь :)
(deleted comment)

Date: 2010-02-11 01:55 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Блоки кода у Вирта предназначены для линейного чтения. А это не частый и не основной вид работы с кодом.
(deleted comment)

Date: 2010-02-11 02:02 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Не. Сейчас под рукой нет

Первым делом, я обещал всем, приславшим код, что уничтожу электронную версию.
Вторым, после переезда все бумаги по старым проектам лежат в коробках.

Profile

vit_r: default (Default)
vit_r

February 2026

S M T W T F S
12 34 567
8 9 1011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 13th, 2026 08:11 am
Powered by Dreamwidth Studios