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

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

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
Вы меня обратно удивляете :) Сборка мусора в оберонах лишь требование к среде выполнения и отключается в одно прикосновение :)

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:47 pm
Powered by Dreamwidth Studios