?

Log in

No account? Create an account
"ты, Завалишин, как e в степени x - хоть кол на голове теши" - dz

> Свежие записи
> Архив
> Друзья
> Личная информация
> DZ Online

Апрель 14, 2009


Previous Entry Поделиться Next Entry
06:32 am - "ты, Завалишин, как e в степени x - хоть кол на голове теши"
Наконец, пришли математики с предъявой - чо я тут про ОО, а это частный случай, а они про общий, а я про это молчок.

Пацаны - а знаете анекдот? Как математик идёт мимо камерного театра, замечает вывеску, и заинтересованно заходит внутрь. Через минуту выходит разочарованный со словами "тривиальный случай - ка равно трём"...?

Я вот примерно в этом же ключе случай рассматриваю - частный, тривиальный, но ОЧЕНЬ практичный. А фп мне симпатично, но пока что это и всё. Вы за него сначала сами повоюйте, чтоб хотя бы я начал вас до конца понимать. А то, извините за самомнение, но пока даже я всего не понял, рассчитывать на широкие массы программеров - ну - как бы это сказать - преждевременно.

Ну и - предлагаю некоторое утверждение, которое и сам считаю спорным. Я его породил в процессе обдумывания предъяв фп-шников, вспомнив по дороге про Форт. Который жуть какой красивый, только это не вызывает никакого желания им пользоваться, а после первой попытки - даже очень успешной - когда ты тратишь полчаса на написание, а уже через час тебе надо два часа на прочтение - понимаешь, что на нём точно не надо ничего никогда писать. Если это хочешь иногда и читать тоже.

Мысль вот какая. Надо выбирать не самый широкий базис, не самую всеобъемлющую парадигму, а МИНИМАЛЬНО возможный базис. Идеален не тот ЯП, на котором можно написать ЛЮБУЮ программу, а тот, на котором можно написать ЛЮБУЮ НУЖНУЮ тебе программу. То есть - никому не нужны к-мерные театры. Для 3-мерных существ ВПОЛНЕ достаточно 3-мерных, и давать в этом месте гибкость - бессмысленно и ВРЕДНО.

Утверждение: Правильный, хороший ЯП, неполноценен и ИЗБЫТОЧЕН, а полноценный и неизбыточный (лисп, форт, ассемблер стековой машины) - вреден и чрезмерен.

Утверждение: программирование - это НЕ написание программы, а написание ТАКОЙ программы, процесс написания которой позволяет организовывать мышление программиста эффективным с точки зрения формализации предметной области способом. Запуск программы на исполнение - важный, но почти побочный эффект её написания. (это вообще кто-то древний сказал...)

PS: Я прощёлкал - а когда это в течении последних 75 лет присваивание признали функционально кошерным?

PPS: Мне тут ещё фразу подарили: "третий элемент кортежа похож на емейл". Пишу, чтобы не забыть. Очень хочу посмотреть на спеку для ФП-библиотеки функций, в которой говорится, что все функции принимают в качестве параметра кортежи с третьим элементом, похожим на емейл. Сплю и вижу. Сплю, вижу, и фигею, дорогая редакция. /* int [] myfunc( int [] ); third int in array supposed to be x coordinate in inches */

(95 комментариев | Оставить комментарий)

Comments:


[User Picture]
From:spamsink
Date:Апрель 14, 2009 03:21 am
(Link)
Ты неудержимо жжешь.

Правильный, хороший ЯП, неполноценен и ИЗБЫТОЧЕН.

Pan Perlowiec?
[User Picture]
From:dz
Date:Апрель 14, 2009 03:47 am
(Link)
не понял.
[User Picture]
From:juan_gandhi
Date:Апрель 14, 2009 04:24 am
(Link)
Дима, у каждого человека есть предел понимания. Вот скажем рассказать об этих дискуссиях Пушкину - ну ни хрена не оценит ни цимеса ни пафоса. Соответственно, будь ты хоть трижды Перельман, а через пару тысяч лет его рассуждения наверняка будут казаться элементарными.

Так вот, аналогичный случай и в более коротком масштабе времени.

Ты ведь не читал SICP? Не знаешь ничего про лямбда-куб? И насчёт теории моделей не в курсе, верно? Ты практикующий программист, да? Ну и хорошо.

Так это как если бы стекольщик учил физиков как лазеры делать.

Эпоха объектного программирования уходит, как ушла эпоха "структурного". Функциональное - тоже не на веки.

Насчёт же третьего элемента кортежа, похожего на емейл - ты не представляешь, как это элементарно выражается хоть в Хаскеле, хоть в Скале. Это часть дискурса теперь, для тех, кто в курсе. А кто нет - так нет. Парадигмы умирают с поколениями. Я насмотрелся на уже хрен знает сколько поколений ветеранов, которые с ворчанием уползали в начальники, в учителя, в продавцы целительных растений, в архитекторы и в писатели.

А чтобы быть в курсе, надо учиться. Постоянно. Новым языкам, новым идеям. Мы все учимся одновременно. А кто не учится, тот отстаёт, как СССР, навсегда.
[User Picture]
From:dz
Date:Апрель 14, 2009 04:33 am
(Link)
пафос я оценил, ползу на кладбище с белой простынёй в зубах.
давай как-нибудь более конкретно. например, как именно это элементарно выражается.
[User Picture]
From:vinsent_ru
Date:Апрель 14, 2009 05:25 am
(Link)
похоже идеальный ЯП - Java :)) потому что на нем решают реальные задачи, а не письками меряются :))
[User Picture]
From:hedin
Date:Апрель 14, 2009 06:08 am
(Link)
ИМХО удел ФП пока специализированные области.

Ковырялся с преобразованием текста в формальную модель, на функциональном языке, там была надстройка над REFAL ...

Там все получалось и локанично и читаемо и повторное использование, за счет жертвы производительностью, лучше чем в ООП коде.

Но там инструмент под класс задач, он рвет все по скорости разработки ...
Читаемость как всегда зависит от разработчика, для ООП разработчика по началу читаемость низкая просто по тому что языковые конструкции не проскакивают в мозг сами, а о них надо думать, но это быстро проходит.
[User Picture]
From:thesz
Date:Апрель 14, 2009 06:56 am
(Link)
Вырази на объектах условие. if-then-else. Ветви "тогда" и "иначе" вычисляются лениво.

Вот на лямбдах:
true = \t e.t
false = \t e.e

if = \sel t e.sel t e
-- if true A B === A
-- if false A B === B
Нужны циклы? Будут.

Нужен перебор с откатом? Будет.

Вот, смотри:
type NonDet a = [a] -- работаем на ленивом списке.

pure :: a -> NonDet a
pure a = [a] -- список из одного элемента.

(<*>) :: NonDet (a -> b) -> NonDet a -> NonDet b
p <*> q = [f x | f <- p, x <- q]
Пжалте. Частный случай Control.Applicative. Я на этих двух штуках уже могу собирать синтаксический разбор.

Что ещё нужно? Вот то и будет.

Вот тебе минимальность базиса и возможность наращивания.

Сравни с ОО.
[User Picture]
From:alpha_cygnus
Date:Апрель 14, 2009 07:35 am

Оффтопик?

(Link)
IIRC:
x ifTrue: [ doThen ] ifFalse: [ doElse ]

Уже не помню точно синтаксис...
У SmallTalk'а базис чуть ли не меньше всех. И, кстати, он весьма читабелен как минимум из-за кусочных названий методов.
Кстати, я как-то видел, как Хаскель наравне с Перлом отнесли к классу write-only языков. Его читать сложно примерно так же, как математическую статью, для тех, кто не в теме.
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)
[User Picture]
From:nw_wind
Date:Апрель 14, 2009 08:20 am
(Link)
Форт. Который жуть какой красивый, только это не вызывает никакого желания им пользоваться, а после первой попытки - даже очень успешной - когда ты тратишь полчаса на написание, а уже через час тебе надо два часа на прочтение - понимаешь, что на нём точно не надо ничего никогда писать.
Форт очень красив - это да. Писать красивые усер-гуи на форте бессмыссленно - это ад.
Зато на форте, которые влезает в пзу 2к можно написать массу очень компактного и быстрого кода для какого-ньть микроконтроллера. Писать для железки на С# нет смысле, там только заголовок файла будет больше, чем программа вся на форте.

А ещё есть плисы. Ах, какой там язык! Красота! Ты видел програмера на плисах? Взгляд как у ненормального. Потому, что там 10 команд и 512 ядер и всё параллельно итп. Зато можно писать firewall 7 уровня для 40Гбс потока, что нереальзуемо на писюках в теории.

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

Утверждение про программирование твоё верно при условии отсутствия ограничений на производительность программы, её размер и прочие ресурсы. При наличии ограничений производительность труда программиста вступает в конфликт с рамками среды, где живёт программа. Тогда только органический мозг может втиснуть код в рамки. Никакой супер ЯП ни суперкомпилер не поможет.

Что-то я пургу гоню какую-то...
[User Picture]
From:blacklion
Date:Апрель 14, 2009 08:41 am
(Link)
. Писать для железки на С# нет смысле, там только заголовок файла будет больше, чем программа вся на форте.
Это передёргивание. Заголовок файла не зависит от языка. Зависит от среды выполнения. Если сделать FORTH.NET, то заголовок файла у него будет как у C#.NET.

А ещё есть плисы. Ах, какой там язык! Красота!
[копаясь в учебнике по VHDL] Это вот это — красота!? Ой.
(Удалённый комментарий)
(Удалённый комментарий)
[User Picture]
From:pavelm123
Date:Апрель 14, 2009 09:03 am

наверное, не совсем в тему, но...

(Link)
Как-то в бытность молодым специалистом писал я программку для анализа данных - должна была выводить банальную спектрограмму. В цвете там, с логарифмической/линейной шкалой и т.п. Надо было просто посмотреть изменение спектра во времени. Писал на Delphi, понятное дело долго - ну скажем месяц. Потом с ее помощью выводили картинки на докладе... А потом во время конференции приехали к там коллеги из штатов. Девушка там была... посмотрела на наши картинки, и говорит - о, интересно бы на наши данные так посмотреть... Я говорю - надо формат файла подгонять, у нас он немного не стандартный... Но оказалось, что это были "мысли в слух". Девушке нужен был просто комп. На комп поставился Matlab. В Маtlab загрузился её файл (пару команд). Файл вывелся на экран в виде спектрограммы (одна команда).
Я ощутил то самое "мучительно больно за безцельно прожитые годы"

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

А Матлаб тогда выучил на одном дыхании... Правда, с логарифмической шкалой по частотам у него трудности были, хоть какая-то отдушина мне была
(Удалённый комментарий)
[User Picture]
From:dz
Date:Апрель 14, 2009 10:25 am
(Link)
это вообще можно на всех языках - фпщики легко покажут ++ на лиспе - опять же, с неудачным синтаксом.
(Удалённый комментарий)
From:9000
Date:Апрель 14, 2009 05:44 pm
(Link)
Пользуясь случаем, вместо флейма поздравлю с ДР :)
[User Picture]
From:dz
Date:Апрель 14, 2009 05:46 pm
(Link)
спасибо :)
[User Picture]
From:keleg
Date:Апрель 15, 2009 04:21 am
(Link)
Насчет понятности программ... а Дракон ты читал-слышал-щупал?
[User Picture]
From:dz
Date:Апрель 26, 2009 09:24 pm
(Link)
нет, а что это?
(Удалённый комментарий)
[User Picture]
From:dz
Date:Апрель 24, 2009 07:34 am
(Link)
для создания языков форт и лисп точно не нужны. вот совсем.

а про просветиться - вы или подробнее, или не надо вообще.

> Go to Top
LiveJournal.com