Re[10]: Синтаксический оверхед
От: moudrick Россия http://community.moudrick.net/
Дата: 22.06.05 08:04
Оценка:
OAB>>>и т.д... и посмотрю на того кто осмелится такое писать в одну строку!
OAB>>> Понимаю что процедуры на 2-3 экрана это не нормально, но иногда без них не обойтись

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

M>>Рефакторинг рулит. Паттерн Выделение метода (Extract Method). Примерчик там, правда, галименький, но ничего лучшего я не нашел. Применяем его с одновременным применением паттерна добавление параметра (Add Parameter).

M>>Сокращаем текст длинного метода на ~5 строк. Заодно если называем только что выделенный метод правильно, не нужно тратить лишние строки на поясняющие комментарии (самодокументированность).


OAB>это все хорошо, но как я уже сказал ИНОГДА без этого не обойтись.

OAB>1. я сам не приемлю работать с рекордами, но когда нужна скорость при выделении/освобождении памяти блоками, скорость доступа и т.д — я их использую, а так предпочитаю классы.
OAB>(итак мне нужна была скорость)
OAB>2. вы как минимум забыли в процедуру передать 1 параметр — this.
Нет. Выделенный метод и изначальный метод находится на одном уровне (в том же классе, либо оба глобальные). При вызове из того же класса this передается неявно. А если глобальные, какой тут тогда this. (В дельфях же есть вроде глобальные методы, если я не ошибаюсь)

OAB> да, он не попал в увиденом блоке, но он есть.


OAB> один параметр конежно же мелочь, если... если у нас не будет глубоких вложенных рекурсий, а они тоже есть.

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


OAB>так что если добавить к этому, что inline появилась только в D9... это то самое иногда.

Борьба эффективности и понятности.... старая история.

В борьбе бобра с ослом всегда побеждает бобро. (с) Сергей Бобро.

OAB>PS код кстати приводился по сабджу

У нас не сабдж а флейм. Мы в хуморе.
Re[7]: А эхо в ответ: мать...мать...мать...
От: xBlackCat Россия  
Дата: 22.06.05 08:04
Оценка: :))
Здравствуйте, Mr. None, Вы писали:

MN>Ну продемонстрировали вы числа... И что? Я тоже много чисел знаю... ООЧЕНЬ много... могу их все продемонстрировать... А смысл в чём?


Смылсл?

Два программиста:
П1: Мне нужен генератор случайных чисел!
П2: 43!

... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Rojac &mdash; Rsdn Offline JAva Client
Анонсы и обсуждение здесь
Автор: xBlackCat
Дата: 08.02.10
Re[6]: А эхо в ответ: мать...мать...мать...
От: Mamut Швеция http://dmitriid.com
Дата: 22.06.05 08:04
Оценка: +2
M>>Сергей. Вы, как самый ярый сторонник Оберона, можете внятно и с фактами на руках показать преимущество Оберона?

СГ>Конечно могу. Но только это не тема данной ветки форума. Тема этой ветки форума: 235% и 700%. Ваша ошибка в том, что Вы делаете далеко идущие выводы из этих чисел. В этой ветке я ни чего доказывать не собираюсь. Просто демонстрирую числа 235% и 700%. Признаться, мне трудно сдерживать себя от того чтобы полезть чего-то доказывать. Здесь речь исключительно только о синтаксисе.


А смысл такой демонстрации? Тем более, что уже не раз неоднократно было показано, что "не лексемами едиными жив язык программирования". А альтернативные
Автор: Mamut
Дата: 15.06.05
подсчеты вы игнорируете.

Кстати, ни в одной ветке, посвященной Оберону, так и не было приведено ни одного факта, реально доказывающего преимущества Оберона. Может, уже пора?

Единственно преимущество, и то только над С/С++, — это наличие GC. Причем GC реализуется и на С++. В чем еще преимущества?


dmitriid.comGitHubLinkedIn
Re[10]: Синтаксический оверхед
От: Socrat Россия  
Дата: 22.06.05 08:05
Оценка: :)
Здравствуйте, moudrick, Вы писали:

M>Ничто тебе не мешает написать класс с перегруженными нужным образом операторами сравнения и приведения к double. Разве только отсутствие времени... Может и написан уже где-то. Поиск в осети рулит.


Что, осетины уже написали?
Re[5]: Ошибка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 08:06
Оценка:
Здравствуйте, Oleg Volkov, Вы писали:

OV>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>1) Как Вам только что показали структурную парадигму не поддерживает.


OV>Вы хотите сказать, что на С/С++ невозможно обеспечить p == false после выхода из цикла while(p)?


Конечно нельзя, вот пример
p = true;
while(p)
{
  break;
}
assert(!p); // этот ассерт всегда будет останавливать работу программы.

Аналогично с goto.
Re[7]: Open source
От: moudrick Россия http://community.moudrick.net/
Дата: 22.06.05 08:08
Оценка: :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, moudrick, Вы писали:


M>>Что, и сборку мустора будем на Оберонах писать? Успехов... покажите только потом исходники, посмеемся вместе.


СГ>Известно, что BlackBox Component Builder 1.5 от Oberon Microsystems распространяется с открытыми исходными текстами на языке Component Pascal (наследник Оберона 2). В том числе модуль Kernel тоже написан на нем. Поскольку проект является open source, то я не понимаю, что до сих пор удерживало Вас от того чтобы посмотреть исходники самостоятельно? Что значит покажите? Берите и смотрите сами, они доступны любому без ограничений!

Я уже просмотрел все проекты Open Source в интернете. По состоянию на 12 мая 2005 года. И провел их подробный анализ. К сожалению, каким-то непостижимым образом пропустил BlackBox Component Builder 1.5 от Oberon Microsystems. Сегодня вечером исправлю эту ошибку. Простите меня пожалуйста.

СГ>Ваше отношение тем более не понятно в свете того, что известно, что подсистема управления динамической памятью (выделение памяти + освобождение ее сборщиком мусора) в BlackBox работает в несколько раз быстрее чем в .NET.


Не известно.
Re[3]: Синтаксический оверхед
От: Кодт Россия  
Дата: 22.06.05 08:08
Оценка:
Здравствуйте, moudrick, Вы писали:

M>Это все равно что путать "правила игры" и "технику игры". Знавал я таких (юных) преферансистов, среди которых бытовало прпвило "на третью даму не закладываться". Долго же я им объяснял, что понятие "третья дама" к правилам преферанса не имеет отношения, это элемент описания техники игры.


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

Аналогично этому, С++ный приём закрывания угловых скобок через пробел — хотя и является техникой — фактически, относится к правилам.
Перекуём баги на фичи!
Re[5]: Ошибка
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 08:10
Оценка:
Здравствуйте, Mr. None, Вы писали:

СГ>>1) Как Вам только что показали структурную парадигму не поддерживает.


MN>Сударь! "Программирование без goto" и "структурная парадигма" — это совершенно разные понятия!


У кого-то разные, а у кого-то нет. goto может легко нарушить пост условия циклов WHILE и REPEAT.
Re[7]: Open source
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 22.06.05 08:10
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, moudrick, Вы писали:


M>>Что, и сборку мустора будем на Оберонах писать? Успехов... покажите только потом исходники, посмеемся вместе.


СГ>Известно, что BlackBox Component Builder 1.5 от Oberon Microsystems распространяется с открытыми исходными текстами на языке Component Pascal (наследник Оберона 2).


У меня начинает складываеться такое впечатление, что вы читаете 2 — 3 последних слова в сообщении и начинаете отвечать только на них, совершенно выкидывая всё остальное, тем самым меняя смысл вопроса. Или я бы даже сказал грубее — вы отвечаете только на то, что вам удобно или на что вы знаете ответ... Вопос о том являются ли исходники Оберона открытыми или нет тут не стоял — это была ирония, сарказм, не требующий ответа. Вопрос состоял в следующем, если вы не поняли: как GC может быть написан на самом Обероне, если он уже является его составной частью?
Варинаты ответа:
1) GC написан на другом языке;
2) GC написан на обрезанном варианте Оберона без многих функций защиты (потому что он нужен для их реализации), как следствие при написания GC не было GC.
3) вы не знаете.

Четврётого варианта я не вижу.
Варианты ответа 1 и 2 атоматически означают, что сам по себе GC не защищён и может содержать ошибки, следовательно ошибка в GC не будет перехвачена обероном и приложение таки упадёт, будь оно хоть трижды надёжным (не знаю зачем вообще я это объясняю — это должно быть понятно всем и так). Вариант 3 не говорит ни о чём, кроме того, что вы не знаете и всё.
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re[6]: Синтаксический оверхед
От: Cyberax Марс  
Дата: 22.06.05 08:11
Оценка:
Сергей Губанов wrote:

> Q>Да задолбали вы уже этой уверенностью!

> Это называется научный подход к программированию. Программирование,
> оказывается, тоже есть наука.
> Кстати, здесь <http://rsdn.ru/Forum/Message.aspx?mid=1233660&amp;only=1&gt;
Автор: Mamut
Дата: 21.06.05
,

> за "задолбали", оказывается, могут наказать. Прошу Вас впредь быть
> поосторожнее.

Угу, поэтому все академические разработки весьма успешно загибаются.
Живет только созданое практиками.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[8]: Синтаксический оверхед
От: Demiurg  
Дата: 22.06.05 08:11
Оценка:
Здравствуйте, Трурль, Вы писали:

Q>>Я часто проверяю условие p именно с целью узнать, как произошел выход из цикла: по брейку или "мирным путем".

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

Это касается не только С/С++. В чем проблема такой "озабоченности"?
... << RSDN@Home 1.1.4 beta 7 rev. 499>>
Re[8]: Синтаксический оверхед
От: jazzer Россия Skype: enerjazzer
Дата: 22.06.05 08:13
Оценка: +2
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, qwertyuiop, Вы писали:


Q>>Я часто проверяю условие p именно с целью узнать, как произошел выход из цикла: по брейку или "мирным путем".

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

Можно подумать, программеры java или C# ими менее озабочены.
Наоборот, ставят свои продвинутые развитые средства этого самого как преимущество перед С++.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Синтаксический оверхед
От: moudrick Россия http://community.moudrick.net/
Дата: 22.06.05 08:13
Оценка:
M>>Я вам могу сказать, какие приоритетные принципы у C++.
M>>1. Поддержка максимального количества парадигм программирования (в том числе и структурного) здесь
Т>И все из них поддерживаются кое-как.
В достаточной мере. Для использования многих парадигм выразительных средств хватает.

M>>2. Поддержка Legacy кода здесь

Т>Написанного по большей части на C++
На C. На старых версиях C++, коих было уже много, Язык развиваются, парадигмы добавляются, код пишется, используется и работает.

Код, написанный на старых версиях должен работать. Совместимость снизу вверх — еще библейский принцип.

"Не думайте, что Я пришел нарушить закон или пророков, — сказал Он, — не нарушить пришел Я, но исполнить" Евангелие от Матфея (Мф. 5:17);

Отказ от поддержки в стандарте каких-то устаревших особенностей и/или совместимости с ними всегда дается очень болезненно.
Re[7]: Интересно
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 08:13
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Плевать мне на теорию про три цикла. На _ПРАКТИКЕ_ (подчеркиваю

C>специально) нужен break для нормального кода.

Мне даже интересно стало. Может покажете пример?

C>А необходимости в зависимости от инвариантов цикла у меня не возникало

C>ни разу.

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

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

C>вещь.

Слухи сильно преувеличены.
Re[10]: А эхо в ответ: мать...мать...мать...
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 22.06.05 08:14
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Mamut, Вы писали:


M>>Ааа. Понял То есть — а на чем же написан рантайм Оберона? Боюсь, на ассемблере. Вернее, того Оберона, что BlueBottle. BlackBox вполне себе на C наверное написан


СГ>Почему Си, а не Паскаль (1970), а почему не Модула 2 (1979)


Потому что последнии релизы C новее и удобнее, я не говорю уже о C++...

СГ>а почему не сам Оберон?

Ну уж это звиняйте физически невозможно... Разве что только писать не листочке, потом в уме компилировать в инструкции процессора и вбивать руками их в файл... Другого способа не вижу...
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re[7]: Синтаксический оверхед
От: moudrick Россия http://community.moudrick.net/
Дата: 22.06.05 08:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Сергей Губанов wrote:


>> Q>Да задолбали вы уже этой уверенностью!

>> Это называется научный подход к программированию. Программирование,
>> оказывается, тоже есть наука.
>> Кстати, здесь <http://rsdn.ru/Forum/Message.aspx?mid=1233660&amp;only=1&gt;
Автор: Mamut
Дата: 21.06.05
,

>> за "задолбали", оказывается, могут наказать. Прошу Вас впредь быть
>> поосторожнее.

C>Угу, поэтому все академические разработки весьма успешно загибаются.

C>Живет только созданое практиками.

С++, кстати, тоже начинался с академической разработки. А практики его потом подхватили.
Ссылку навскидку не нашел, извините.
Re[6]: Ошибка
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 22.06.05 08:18
Оценка: +1 :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Mr. None, Вы писали:


СГ>>>1) Как Вам только что показали структурную парадигму не поддерживает.


MN>>Сударь! "Программирование без goto" и "структурная парадигма" — это совершенно разные понятия!


СГ>У кого-то разные, а у кого-то нет. goto может легко нарушить пост условия циклов WHILE и REPEAT.


Ну простите — у вас может и не разные... У всего мира разные, включая самого Вирта, а у вас нет...

Вместо того, чтобы народ смешить шли бы мат. часть поучили!
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re[4]: Синтаксический оверхед
От: jazzer Россия Skype: enerjazzer
Дата: 22.06.05 08:22
Оценка:
Здравствуйте, AVC, Вы писали:

AVC>Но особенность ситуации в том, что в обероновской среде нет никакого отдельного IDE.

AVC>Считаю, что объединение мной особенностей языка и среды в данном случае совершенно правомерно.

Правомерно, только если брать возможности среды, зафиксированные стандартом оберона (раз уж они неразделимы).
Которые, соответственно, прошу в студию.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Синтаксический оверхед
От: moudrick Россия http://community.moudrick.net/
Дата: 22.06.05 08:22
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, moudrick, Вы писали:


M>>Это все равно что путать "правила игры" и "технику игры". Знавал я таких (юных) преферансистов, среди которых бытовало прпвило "на третью даму не закладываться". Долго же я им объяснял, что понятие "третья дама" к правилам преферанса не имеет отношения, это элемент описания техники игры.


К>А вот нифига! Я встречал конвенцию игры в преферанс, где за недозаклад (скажем, при чистой восьмерной заказал шесть — и, естественно, огорчил вистующих) писали "без одной"


Блин. Против этого правила — преферанмная поговорка есть. *Недозаложился (вариант — перезаложился) — залез в совй карман.*
А вистущим надо грамотно вистовать. И тогда и недозаклад, и перезаклад играются так, что поговорка справедлива.
Преферанс — не для азарта, а для мышления.

К>В этом случае третья дама не считается за взятку, а марьяж или (король,дама)-валет-десять считается. (Разумеется, под прикрытием козырей).

Считает взятки игра, а не расклад. Расклад лишь обусловливает некоторые моменты игры.

К>Аналогично этому, С++ный приём закрывания угловых скобок через пробел — хотя и является техникой — фактически, относится к правилам.

Ничего страшного. Есть правила и у техники. Называются "правила техники безопасности".

Кто-то когда-то работал на промышленном производственном постсоветском предприятии?
Re[11]: Яркий пример
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 22.06.05 08:23
Оценка:
Здравствуйте, Mamut, Вы писали:

M> недокостыле


Вы спорите против прописных истин.
Циклы с проверкой условия выполнения и циклы с проверкой условия завершения для того и придуманы, чтобы гарантировать выполнение пост условий. Вообще же достаточно было бы иметь лишь один тип цикла LOOP ... END и больше ни чего не надо, ни WHILE ни REPEAT. Но, опять же таки, вспоминаем: Сделать так просто как только можно, но не проще!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.