OberonCore
https://forum.oberoncore.ru/

Свежый взгляд (Рыжий vs Дейкстра и др.)
https://forum.oberoncore.ru/viewtopic.php?f=27&t=3216
Страница 3 из 7

Автор:  Info21 [ Понедельник, 31 Январь, 2011 19:48 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Виктор О писал(а):
Меня, к приммеру , учили таблице умножения (была такая штука в докомпьютерную эру), а еще умножать в столбик. Причем не только умножать, но даже и (вы не поверите!) квадратный корень извлекать. В столбик.
И что?
Вы (мы) даже обоснованием этих алгоритмов в школе не занимались, не то что поиском альтернатив.

Автор:  ScrollLock [ Понедельник, 31 Январь, 2011 20:46 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

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

Из своего опыта думаю, что такое вполне могло быть. Моим первым языком был GWBASIC (где-то младшие классы школы), где очень популярен GOTO на нумерованную строку, а ещё GOSUB/RETURN. Помню, что потом было трудно удержаться от соблазна их использовать (там, где реально нужен WHILE, SELECT CASE, или даже процедура или функция)

Автор:  Виктор О [ Среда, 02 Февраль, 2011 15:05 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Илья Ермаков писал(а):
Приведена куча каких-то не совсем прямых ассоциаций. Например, причём тут курс общего образования и развития личности - и проф. образование?

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

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

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

и плюс то, что классный плотник, виртуозно работающий с электродрелью, электрорубанком, электропилой, вообще-то должен уметь справиться с куском дерева и в отсутствие электричества, пусть и не так эффективно.

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

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

Так вот, на все мои запросы он отвечал: "Невозможно" и показывал руководство по языку, в котором отсутствовала нужная информация. Кончилось дело тем, что наиболее важные куски я написал сам (доказывая что возможно), попутно освоив язык.

В коллективе абсолютно все инженеры были опытнее меня (лет на 20 стажа), но, уверяю Вас, ни один бы не справился с этим программистом. По незнанию программирования.

Автор:  Виктор О [ Среда, 02 Февраль, 2011 15:13 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Info21 писал(а):
Вы (мы) даже обоснованием этих алгоритмов в школе не занимались, не то что поиском альтернатив.

Я про то, что
Человек, который использует инструмент как черный ящик,
подвергается двум взаимосвязанным опасностям:

1. Когнитивный разрыв.
2. Абстрагирование от объекта.

1. Когнитивный разрыв.
В его картине мира отсутствует работоспособная модель совершаемых действий.
Он может только тупо выполнять инструкцию.

2. Абстрагирование от объекта.
Он может быть уподоблен врачу, который лечит результаты анализов, а не больного.
Анализы никогда не содержат всей важной информации. Плюс отсутствие эмпатии (личного отношения).

Автор:  Info21 [ Среда, 02 Февраль, 2011 17:21 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Виктор О писал(а):
Info21 писал(а):
Вы (мы) даже обоснованием этих алгоритмов в школе не занимались, не то что поиском альтернатив.

Я про то, что
Человек, который использует инструмент как черный ящик,
подвергается двум взаимосвязанным опасностям:

1. Когнитивный разрыв.
2. Абстрагирование от объекта.
Мне казалось, мы обсуждаем шаблоны циклов и нужно ли там чего-то экспериментировать. Там, вроде, никакого разрыва нет.

Автор:  Илья Ермаков [ Среда, 02 Февраль, 2011 17:47 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Виктор О писал(а):
Я про то, что
Человек, который использует инструмент как черный ящик,
подвергается двум взаимосвязанным опасностям:

1. Когнитивный разрыв.
2. Абстрагирование от объекта.


Всё верно. Но какое отношение это имеет к обсуждаемому вопросу, действительно.

Автор:  Рыжий [ Среда, 02 Февраль, 2011 18:56 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Цитата:
Мне казалось, мы обсуждаем шаблоны циклов и нужно ли там чего-то экспериментировать.

Разве...
Цитата:
Всё верно. Но какое отношение это имеет к обсуждаемому вопросу, действительно.

Как это какое? Самое прямое:
Цитата:
-- Ногу! -- закричал он, хватаясь за рукав Б. Питомника. --
Снимайте ногу! Крупным планом! Ля вибрасьен са моле гош этюн гранд
синь!* Эта нога отметет все происки и сорвет все ярлыки, которые на меня
навешивают! Уи сан дот**, человек, который не специалист, может быть,
даже удивится, как я отношусь к этой ноге. Но ведь, товарищи, все
великое обнаруживается в малом, а я должен напомнить, что данная модель
есть модель ограниченных потребностей, говоря конкретно -- только одной
потребности и, называя вещи своими именами, прямо, по-нашему, без всех
этих вуалей -- модель потребности желудочной. Потому у нее такое
ограничение и в духпотребностях. А мы утверждаем, что только
разнообразие матпотребностей может обеспечить разнообразие
духпотребностей. Поясняю для прессы на доступном ей примере. Ежели бы,
скажем, была у него ярко выраженная потребность в данном магнитофоне
"Астра-7" за сто сорок рублей, каковая потребность должна пониматься
нами как материальная, и оно бы этот магнитофон заимело, то оно бы
данный магнитофон и крутило бы, потому что, сами понимаете, что еще с
магнитофоном делать? А раз крутило бы, то с музыкой, а раз музыка --
надо ее слушать или там танцевать... А что, товарищи, есть слушанье
музыки с танцами или без них? Это есть удовлетворение духпотребностей.
Компрене ву?

Вот Вирт изобрел свои рекорды, так их и крутит, что ж ему еще делать. А Geniepro - Хаскелл крутит.

Автор:  Рыжий [ Четверг, 03 Февраль, 2011 01:44 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

http://www.sql.ru/forum/actualthread.as ... 5&hl=mumps

:lol:

Автор:  Рыжий [ Четверг, 03 Февраль, 2011 15:41 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Вот как легко реализуються рекорды, на языках первой линейки:

a=.1;2;3;4
b=.'aaa';'bbb';'cccccc';'qqqq'
records=.a,.b
'id name'=.0 1
hren=.2

Извлечение:
from=.{
id from hren from records
name from hren from records
hren from records (целиком)

Реплейс:
( to=.<&, do=.} - всомогательное)

newid (to hren id) do records
newname (to hren name) do records
newrec (to hren) do records (целиком) :D

Т.е. имеем контейнер записей, где величина hren указывает на текущую "запись",а идентификаторы полей величины id и name.
Совершенно очивидно , что ничего кроме массивов тут не используется.

Автор:  Илья Ермаков [ Четверг, 03 Февраль, 2011 15:45 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Угу, и как со статическим контролем?

Автор:  Рыжий [ Четверг, 03 Февраль, 2011 16:00 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Собственно говоря, никак. Но можно организовать динамический контроль:стандартные типы определены(не найду ссылку на справку). Для составных типов проверка может быть организована аналогично с учетом размерности аргумента.
Это частности, в M тоже нет этого. Это скорее плюс чем минус.

Автор:  Рыжий [ Четверг, 03 Февраль, 2011 20:11 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Вот как легко реализуються рекорды, на языках первой линейки:
---------------------------------------------------------------------------------
a=.1;2;3;4
b=.'aaa';'bbb';'cccccc';'qqqq'
records=.a,.b
'id name'=.0 1
hren=.2

Извлечение:
of=:{"1
id of hren of records
name of hren of records
hren of records
(целиком)

Реплейс:
( to=.<&,
do=.}
- всомогательное)

newid (to hren id) do records
newname (to hren name) do records
newrec (to hren) do records (целиком)


Т.е. имеем контейнер записей, где величина hren указывает на текущую "запись",а идентификаторы полей величины id

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

----------------------------------------------------------------------------------------
rec=.1;4;5;6;7;4;6;78;3;42;2;1
v=.'Иванов';'Петров';'Сидоров';'Вайнфельд';'Громов';'Симаков';'Туркин';'Павлов';'Фигли';'Ой';'Ку';'Гы'
records=.rec,.v
'id name'=.0 1

А вот язык запросов к рекорадам:
Служебные:

select=:]
from=:&.>
where=:{~(I.)&((<1)&=)

Функция отбора:
tag=:3&>

select rec where tag from rec

( отбираем значения id<3)

select records where tag from rec

(сдесь выбираем записи records по его первому полю т.к. rec = 0{"1 records))

либо, не меняя функции отбора tag:

select records where tag from id of records

отдельно поля записей:

select name of records where tag from id of records
или:
select id of records where tag from id of records

select (id,name) of records where tag from id of records

Впрочем, можно изменить и саму функцию отбора tag.

так потихоньку-помаленьку за недельку можно соорудить язык : оберономумпсосиквелджей :D
А еще говорят , что АПЛ - нечитабельный язык :D

Автор:  Виктор О [ Пятница, 11 Февраль, 2011 17:22 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Info21 писал(а):
Мне казалось, мы обсуждаем шаблоны циклов и нужно ли там чего-то экспериментировать. Там, вроде, никакого разрыва нет.

А мне казалось, что обсуждается более общая задача: давать ли в руки неофиту сразу идеальный инструмент или дать сначала помучиться?

К примеру дать первокурсникам простенький курсовичок на Бейсике (на пару тыщ строк) и посмотреть, что получится.

Ожидаю, что 20% получат стойкое отвращение к программированию и слиняют (фиг с ними, нормальный отсев).

80%-1 - с радостью перейдут к Оберону и будут жить по понятиям.
У оставшегося одного произойдет короткое замыкание, и он навсегда останется поклонником скрупулезного программирования.

И вот вопрос - оправданна ли эта жертва нашего метода шокового программирования?
Как говорится, слеза ребенка и Царствие Господне...

Автор:  Peter Almazov [ Пятница, 11 Февраль, 2011 17:58 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Зачем людей уродовать.
"Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации."
Э. Дейкстра.

Автор:  Рыжий [ Суббота, 12 Февраль, 2011 02:30 ]
Заголовок сообщения:  Re: Исп-е Octave/Matlab для векторно-матричных вычислений

Виктор О писал(а):
Info21 писал(а):
Мне казалось, мы обсуждаем шаблоны циклов и нужно ли там чего-то экспериментировать. Там, вроде, никакого разрыва нет.

А мне казалось, что обсуждается более общая задача: давать ли в руки неофиту сразу идеальный инструмент или дать сначала помучиться?

К примеру дать первокурсникам простенький курсовичок на Бейсике (на пару тыщ строк) и посмотреть, что получится.

Ожидаю, что 20% получат стойкое отвращение к программированию и слиняют (фиг с ними, нормальный отсев).

80%-1 - с радостью перейдут к Оберону и будут жить по понятиям.
У оставшегося одного произойдет короткое замыкание, и он навсегда останется поклонником скрупулезного программирования.

И вот вопрос - оправданна ли эта жертва нашего метода шокового программирования?
Как говорится, слеза ребенка и Царствие Господне...


И что получиться? Бейсик отличный язык. Дейкстра имел ввиду первые варианты бейсика, ну так тогда все такое было. Все последующие варианты бейсика имели вполне процедурно-модульный вид. А, как я убедился на практике, решать задачи на нем куда как приятнее, чем на паскале или пресловутом Delphi.Посмотрите на продуманный состав операторов нормального бейсика, ну хоть Quick... Еще один "необъектный" язык баз данных М , ОМД не нем - сущая радость. Коллега ЧАЛ боролся-боролся на sql.ru c приматическим элементом, да так и не поборол.

Автор:  Илья Ермаков [ Суббота, 12 Февраль, 2011 14:10 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Мой первый язык - QuickBasic :) :)

Автор:  Виктор О [ Понедельник, 14 Февраль, 2011 14:44 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Peter Almazov писал(а):
"Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации."
Э. Дейкстра.

Судя по всему, эти голландские студенты были изначально убогие. Добро бы он еще сказал РАНЕЕ ПРИМЕНЯВШИХ БЕЙСИК. Изучать можно что угодно, это ничего не значит. Неужели, если б этих голландцев научить матерным выражениям, они все стали бы патологическими извращенцами?

Я лично изучал бейсик (3 или 4 дня). Никаких патологий ни я ни мои начальники у меня не наблюдали...

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

Автор:  Peter Almazov [ Понедельник, 14 Февраль, 2011 14:51 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Виктор О писал(а):
Я лично изучал бейсик (3 или 4 дня). Никаких патологий ни я ни мои начальники у меня не наблюдали...
"А судьи кто?"
:)

Автор:  Виктор О [ Понедельник, 14 Февраль, 2011 18:54 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Peter Almazov писал(а):
"А судьи кто?"
:)

"За древностию лет"?
О, Вы мне льстите. И некоторым из моих начальников тоже :D

Автор:  Рыжий [ Четверг, 17 Февраль, 2011 01:25 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Очивидно, что само понятие "записи" носит некорректный канторовский манер. И, вообще, стоит в стороне от науки. Можно легко заметить к каким несуразицам приводят подобные определения:
TRassel=class
rtext.String;
rassel:TRassel; {само по себе режущее глаз рекурсивное определение}
end;

var
Rass:TRassel;

Rass:=Trassel.Create;
Rass.rtext:='bubububu'; //задаем значение первому элементу
Rass.rassel:=Rass; //задаем значение второму элементу
Rass.rassel.rtext:='ssssss'; //задаем значение первому элементу второго элемента
Memo1.Lines.Add(Rass.rtext); // и апп!....
{сдесь любой психически здоровый человек ожидает печать bububu
хорошо еще что строки с присвоениями расположены близко друг с другом}
Memo1.Lines.Add(Rass.rassel.rassel.rassel......rassel.rassel.rassel.rtext);
{данная конструкция вообще ничего кроме умиления не вызывает, чем она отличается
от *********p один бог знает}

Такого рода примеров можно плодить при работе с объектами сколько угодно, многие из них далеко не очивидны. Проистекает данная ситуация из самого понятия "записи", как объединения разнотипных объектов, в сочетании с неизбежностью использования "указателей", дабы иметь возможность строить на основе записей "структуры данных". Помимо этого все типовые алгоритмы основаны на явной или скрытой рекурсии, что не упрощает ни их восприятия, ни их конструирования.
Массивы избавлены от подобного рода недостатков.

Пример заезженный, но налицо очивидный моветон.

Страница 3 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/