Концепции программирования для разных логик.

 
+
-
edit
 

Balancer

администратор
★★★★★
Всем известно деление основных языковых концепций на императивные и функциональные языки.

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

Тем не менее, выставляя Форт, можно императивные языки поставить в середину между ним и языками функциональными.

Так вот, родилась у меня достаточно давно и всё укрепляется мысль, что:
- Функциональные языки написаны для чёрных логиков. Не быдлокодеров, а тех, кто действительно заботится о качестве своего кода. Чёрному логику тяжело охватить взглядом всю белологическую структуру программы, а ФП позволяет эту структуру раздробить на несколько субструктур, безошибочной связью которых занимается компилятор и, таким образом, позволяет ЧЛ- программисту меньше заботиться о связках в целом.

- Форт - это язык для БЛ. Общую структуру программы программист прекрасно держит в голове, взаимосвяз объектов очевидна, но, у всех БЛ проблема - безошибочная компоновка низкоуровневых, конечных, чернологичных элементов. Форт тут приодит на помощь, позволяя составлять программу из крошечных элементов, связи которых с внешними элементами строго заданы, а размер такой ("психологические" 7+/-2 активных элемента), что просто не позволяет развиться в них паразитным связям и особым ситуациям, которы программист-статик легко зевнёт. Зато, каждый такой кирпичик, легко отлаживается отдельно. Имея же набор безошибочно работающих кирпичиков, белый логик легко потом их соединить в целостную большую структуру - программу.

- Императивные языки находятся прмерно посередине, имея достоинства и недостатки и того и другого подхода...

...

Кстати, общая тенденция "чернологизации" программирования последних 10..15 лет, наверное, и объясняет то, что тот же Форт был практически вытеснен с рынка. Чёрному логику довольно неуютно в нём.

Этим же, наверное, объсянется и рост интереса последнего времени к функциональным языкам у профессиональных программистов.
 

Zeus

Динамик

Хмм... Что-то тут не так. Как раз наоборот, ЧЛ (особенно творческие) хорошо знают, как что-то делать. Они легко описывают способ решения, порядок действий. Поэтому им нужен императивный язык. Мне, например, неуютно писать на функциональном языке, потому что я не понимаю, как конкретно он будет вычислять (или, хуже того, понимаю/догадываюсь и вижу неэффективность). Хотя, возможно, это просто мой глюк (перфекционизм :)). В общем-то, вопрос ведь лишь в степени детализации.

К сожалению, не работал с Фортом настолько, чтобы его заценить с этой стороны :)

Кроме того, нельзя забывать про вторую сильную ментальную. Не знаю, как с БС, но БИ очень даже помогает в цельном восприятии программы со всеми ее связями. Но представляется скорее не структура, а поток (в динамике). (Собственно, восприятие программы именно как БЛ-структуры - не универсально, это лишь частный случай). Что опять же склоняет к императивным язкам. Функциональные - это как раз чистая статика :) Может, ЧЛ-статикам они действительно ближе?
И животноводство!  
+
-
edit
 

Balancer

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

Вот о чём я и говорю! Они легко описывают порядок действий, но не могут увязать этот порядок в структуру программы. За них это должен делать язык!

>Поэтому им нужен императивный язык.

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

> Мне, например, неуютно писать на функциональном языке, потому что я не понимаю, как конкретно он будет вычислять (или, хуже того, понимаю/догадываюсь и вижу неэффективность).

Ты просто, работая с императивными языками, прявык не доверять языку. И пытаешься сам контролировать всё. Доверься языку. Тем более, что те же O'Caml или Haskell сделают всё настолько грамотно, насколько чёрному логику будет сделать что либо тяжело даже при интенсивном, так сказать, приложении силы :D

Zeus> К сожалению, не работал с Фортом настолько, чтобы его заценить с этой стороны :)

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

Zeus> Кроме того, нельзя забывать про вторую сильную ментальную. Не знаю, как с БС, но БИ очень даже помогает в цельном восприятии программы со всеми ее связями.

Ну да... "Интуиция - та же логика, только быстрая". Увы, тут это не прокатит. Т.к. структуру нужно знать не примерно, а точно :D Т.е. определённая помощь будет, но безошибочно писать программы не поможет :)

>(Собственно, восприятие программы именно как БЛ-структуры - не универсально, это лишь частный случай).

А я и не говорил этого. Я, мне казалось, совершенно недвусмысленно указал, что любая программа - это ЧЛ+БЛ :) И, соответственно, чёрным логикам приходится затыкать пробелы в своей БЛ, а белым - слабости в ЧЛ :)

>Функциональные - это как раз чистая статика :)

Ты не с той точки зрения смотришь :) Функциональные языки - это БЛ-подпорка для ЧЛ-программистов :D
 

Zeus

Динамик

>>Поэтому им нужен императивный язык.
Balancer> А императивный язык для такого не приспособлен. Он им только позволит немного лучше делать то, что они итак делать умеют. Но нисколько не поможет в том, в чём они слабы. И поэтому для них нужен язык функциональный, который заткнёт слабые места в их логике :)

Погоди, не понимаю. Императивный язык предоставляет инструмент для непосредственного приложения ЧЛ. То есть: я знаю, как решить задачу, и я это программирую. А в функциональном языке все как-то не так...
Хотя, кажется, я начинаю понимать, о чем ты говоришь. Но...

Balancer> Ты просто, работая с императивными языками, прявык не доверять языку. И пытаешься сам контролировать всё. Доверься языку. Тем более, что те же O'Caml или Haskell сделают всё настолько грамотно, насколько чёрному логику будет сделать что либо тяжело даже при интенсивном, так сказать, приложении силы :D

Сильно не уверен :/ Надо знать, как работает данный язык, без этого все будет казаться ужасным. Ну, простейший случай: одно дело, если в языке есть ленивые вычисления, и совсем другое, если нет. Оптимальные декларации будут разными.

Zeus>> К сожалению, не работал с Фортом настолько, чтобы его заценить с этой стороны :)
Balancer> Если же хочешь контролировать всё, то Форт тебе как раз покажется приятным.

А он мне и кажется приятным :) Только я не писал на нем серьезных программ. А на этом уровне несколько другие законы работают...

Balancer> Ну да... "Интуиция - та же логика, только быстрая". Увы, тут это не прокатит. Т.к. структуру нужно знать не примерно, а точно :D Т.е. определённая помощь будет, но безошибочно писать программы не поможет :)

Безошибочно писать программмы - это вообще... хм. Ну да ладно. Дело-то в том, что вопрос этот количественный. Начиная с некоего уровня сложности и самый что ни на есть БЛ не сможет держать всю структуру в голове. Придется довольствоваться пониманием "верхнего слоя" структуры и "примерным представлением" об остальном. А в таких условиях интуиция, имхо, таботает как раз лучше :)

Ко всему, не надо забывать, что любой логик силен и в БЛ, и в ЧЛ, и даже витальной вполне можно пользоваться :)

Balancer> А я и не говорил этого. Я, мне казалось, совершенно недвусмысленно указал, что любая программа - это ЧЛ+БЛ :) И, соответственно, чёрным логикам приходится затыкать пробелы в своей БЛ, а белым - слабости в ЧЛ :)

Да я не об этом... Я просто думаю, обязательно ли вообще понимание "структуры программы" именно в БЛ-виде? В ООП, например, взаимодействие объектов очень удобно представлять именно в динамике, как "жизнь", само взаимодействие... Трудно с ходу объяснить. А имплементация объектов - это уже вообще ЧЛ. Хотя, при сложной иерархии опять структура получается довольно сложная. Но, в общем-то, не шибко, топологически особенно.

>>Функциональные - это как раз чистая статика :)
Balancer> Ты не с той точки зрения смотришь :) Функциональные языки - это БЛ-подпорка для ЧЛ-программистов :D [»]

Почему не стой? Я со всех смотрю ;) Мне действительно неудобно в статике (декларациями) программировать. Противоестественно :)
И животноводство!  
RU Balancer #02.12.2005 11:53  @Balancer#28.11.2005 12:17
+
-
edit
 

Balancer

администратор
★★★★★
Zeus> Сильно не уверен :/ Надо знать, как работает данный язык

Вот они, Бальзаки! :D Acrobat-4, Photoshop-5, Opera-6 и концепции двадцатилетней давности :)

Я этот страх перешагнул в себе ещё во времена VB3 :D

Попробуй хотя бы GUI в Java попрограммировать - хочешь не хочешь, а придётся забить на то как оно работает :)

Zeus> Ну, простейший случай: одно дело, если в языке есть ленивые вычисления, и совсем другое, если нет. Оптимальные декларации будут разными.

Дык, это же оговаривается заранее! Ведь ты не станешь использовать foreach в Java 1.4 или объекты в классическом Си. Потому что их там просто нет :)

Zeus> Безошибочно писать программмы - это вообще... хм. Ну да ладно. Дело-то в том, что вопрос этот количественный. Начиная с некоего уровня сложности и самый что ни на есть БЛ не сможет держать всю структуру в голове. Придется довольствоваться пониманием "верхнего слоя" структуры и "примерным представлением" об остальном. А в таких условиях интуиция, имхо, таботает как раз лучше :)

Тут всё очень просто. Просто для БЛ и тяжело для ЧЛ. Как только структура становится сложной (а Чарльз Мур так и просто учил - как только число активных объектов структуры превысит 5+/-2 субэлемента), БЛ задачу факторизует автоматически. Для ЧЛ это уже неочевидно, требуются программные решения и накатанные методы. Сейчас, вот, работая в проекте l2j очень здорово это вижу :)

Если структура сложная - разбей её на две законченных структуры и соедини их в примитивную структуру из двух элементов. Уж два-то элемента связать будет по силам :)

Zeus> Ко всему, не надо забывать, что любой логик силен и в БЛ, и в ЧЛ, и даже витальной вполне можно пользоваться :)

Просто одни решения ты принимаешь не задумываясь, как дышишь, а над другими приходится ломать голову :)

Zeus> Да я не об этом... Я просто думаю, обязательно ли вообще понимание "структуры программы" именно в БЛ-виде? В ООП, например, взаимодействие объектов очень удобно представлять именно в динамике, как "жизнь", само взаимодействие...

Не-а. Как ни крути, а ты сам пишешь - взаимодействие объектов. А это явное белое. Значит, либо БЛ, либо БС. Если допустить неявное (что, на самом деле, сразу сделает структуру менее адекватной), то получатся БИ или БЭ. Но никак не ЧЛ :D ЧЛ изучает объекты, но никак не связи.

Zeus> Трудно с ходу объяснить. А имплементация объектов - это уже вообще ЧЛ.

А вот я имплементация объектов затрудняюсь аспектизировать :) М.б. и ЧЛ, хотя динамики я там не вижу.

Zeus> Хотя, при сложной иерархии опять структура получается довольно сложная. Но, в общем-то, не шибко, топологически особенно.

Вот-вот. И опять бы БЛ-задачу рассматриваешь :D

>>>Функциональные - это как раз чистая статика :)
Balancer>> Ты не с той точки зрения смотришь :) Функциональные языки - это БЛ-подпорка для ЧЛ-программистов :D [»]
Zeus> Почему не стой? Я со всех смотрю ;) Мне действительно неудобно в статике (декларациями) программировать. Противоестественно :) [»]

ФП в статике - это нонсенс. Там все виды записей практически - динамика :)
 

Zeus

Динамик

Zeus>> Сильно не уверен :/ Надо знать, как работает данный язык
Balancer> Вот они, Бальзаки! :D Acrobat-4, Photoshop-5, Opera-6 и концепции двадцатилетней давности :)

Да потому что новое не всегда лучше старого. По крайней мере, для всех :)

Balancer> Попробуй хотя бы GUI в Java попрограммировать - хочешь не хочешь, а придётся забить на то как оно работает :)

Во! Хороший пример. Можно бы и забить. Но факт в том, что Джава сама рисует все элементы. И работает это отвратительно. Хрен бы с ним - медленно, тут всегда можно возразить, что, мол, дешевле компьютер более быстрый купить. Но ведь до ужаса глюкаво. Колеса у мыши работают неправильно (причем только в джава-приложениях, т.е. это ее вина), перерисовка окон глючит - да вообще, список можно растянуть надолго. Если это цена "новизны" концепций, то нафиг мне это надо. Лучше потратить больше времени на написание, но сделать качественно.

Zeus>> Ну, простейший случай: одно дело, если в языке есть ленивые вычисления, и совсем другое, если нет. Оптимальные декларации будут разными.
Balancer> Дык, это же оговаривается заранее! Ведь ты не станешь использовать foreach в Java 1.4 или объекты в классическом Си. Потому что их там просто нет :)

Ну так получается, я должен сначала знать, что это такое и как работает!

Balancer> Тут всё очень просто. Просто для БЛ и тяжело для ЧЛ. Как только структура становится сложной (а Чарльз Мур так и просто учил - как только число активных объектов структуры превысит 5+/-2 субэлемента), БЛ задачу факторизует автоматически. Для ЧЛ это уже неочевидно, требуются программные решения и накатанные методы. Сейчас, вот, работая в проекте l2j очень здорово это вижу :)

Честно говоря, не вижу здесь трудностей. Но может быть... Трудно сравнить :)

Balancer> Не-а. Как ни крути, а ты сам пишешь - взаимодействие объектов. А это явное белое. Значит, либо БЛ, либо БС. Если допустить неявное (что, на самом деле, сразу сделает структуру менее адекватной), то получатся БИ или БЭ. Но никак не ЧЛ :D ЧЛ изучает объекты, но никак не связи.

Я и не утверждаю, что это ЧЛ. Я утверждаю, что это динамика. Точнее, динамика здесь адекватнее. (Но воспринимать можно по-разному). То есть восприятее взаимодействия объектов, получается, адекватнее с помощью БС и БИ. Во всяком случае, такое вот ощущение. Вообще, мне достаточно неудобно в статике думать, может, от этого.

Zeus>> Трудно с ходу объяснить. А имплементация объектов - это уже вообще ЧЛ.
Balancer> А вот я имплементация объектов затрудняюсь аспектизировать :) М.б. и ЧЛ, хотя динамики я там не вижу.

А я вижу, я говорил, простейший вариант восприятия - поток команд.

Balancer> ФП в статике - это нонсенс. Там все виды записей практически - динамика :) [»]

Декларация по определению - статика. В ней может содержаться динамика, но как раз этой динамикой занимается компилятор. А вот последовательность команд - это динамика чистая.

Вот смотри. Я пишу: fibb(x)::=fibb(x-1)+fibb(x-2). (Не будем углубляться в конечные условия и вообще усложнять :)). Само это утверждение - чистая статика. Ничем не лучше fibb(x)::=x :). При выполнении оно развернется в некие динамические действия, но какие именно - тут как раз зависит от компилятора (например, некоторые развернут это в цикл); собственно, ФП и предполагает, что этим я не буду задаваться, а буду писать только декларации - в том виде, в каком мне удобно их выразить. To есть динамику у меня отбирают!
И животноводство!  

Balancer

администратор
★★★★★
Zeus> Во! Хороший пример. Можно бы и забить. Но факт в том, что Джава сама рисует все элементы. И работает это отвратительно. Хрен бы с ним - медленно, тут всегда можно возразить, что, мол, дешевле компьютер более быстрый купить. Но ведь до ужаса глюкаво. Колеса у мыши работают неправильно (причем только в джава-приложениях, т.е. это ее вина), перерисовка окон глючит - да вообще, список можно растянуть надолго. Если это цена "новизны" концепций, то нафиг мне это надо. Лучше потратить больше времени на написание, но сделать качественно.

Э... Мсье видел Azureus? Eclipse-SDK? Coccinella? :) Замечательные приложения. Если что и не по душе, так это то, что по дефолту интерфейс имеет свой Java-стиль, а не системный, скажем, GTK. Он неплох, но хочется единообразия :)

Zeus> Ну так получается, я должен сначала знать, что это такое и как работает!

Нужно знать что там есть. Это всегда и для всего. А вот как оно работает - тебе не пофиг ли? Ты же не хочешь в своей программе заниматься отрисовкой каждого пиксела? Более того - управлять выводом каждого бита в ЦАП :)

Zeus> А я вижу, я говорил, простейший вариант восприятия - поток команд.

А как же асинхронность тогда? :)

Zeus> Вот смотри. Я пишу: fibb(x)::=fibb(x-1)+fibb(x-2). (Не будем углубляться в конечные условия и вообще усложнять :)). Само это утверждение - чистая статика. Ничем не лучше fibb(x)::=x :). При выполнении оно развернется в некие динамические действия, но какие именно - тут как раз зависит от компилятора (например, некоторые развернут это в цикл); собственно, ФП и предполагает, что этим я не буду задаваться, а буду писать только декларации - в том виде, в каком мне удобно их выразить.

В этом контексте - согласен.

Zeus> To есть динамику у меня отбирают! [»]

У тебя не динамику отбирают, а рутину :) Или ты собрался в машинных кодах писать? :) По мере роста вычислительных мощностей компьютеров, объём задач, которые они могут решать эффективнее программиста всё растёт. Сначала - расстановка адресов при переходе от машкода к ассемблеру. Потом - макросы. Императивные конструкиции. Сейчас приходит время конструкций функциональных. Компьютеры становятся слишком сложными, чтобы эффективно расписывать задачу на последовательность действий вручную. Решая эту задачу вместо компьютера ты теряешь в производительности :)

А, возвращаясь к исходной постановке задачи, ФП-языки с тебя, как с ЧЛ, и снимают чернологичную рутину. Да, ты бы и сам её легко, может быть, сделал, но компьютер это сделает лучше. А ты сможешь больше внимания уделить тому, что для тебя сложнее - БЛ :)

...

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

Zeus

Динамик

Balancer> Э... Мсье видел Azureus? Eclipse-SDK? Coccinella? :) Замечательные приложения. Если что и не по душе, так это то, что по дефолту интерфейс имеет свой Java-стиль, а не системный, скажем, GTK. Он неплох, но хочется единообразия :)

Не видел. Но по идее это неважно, ведь интерфейс (стиль) именно что должен быть одинаковым (между приложениями) - по идеологии Джавы. Мне вот Матлаба хватает, я на него смотрю :) И я утверждаю, что его интерфейс глючит неимоверно, причем в совершенно "детских" местах, вроде скроллирования. В нативных приложениях я таких проблем не помню даже на 3.1 :)

К чему это мы? Видимо, к тому, что "вручную" все-таки нередко имеет смысл делать и, соответственно, знать, как оно работает. Это верно как для того, чтобы писать "с нуля", команда за командой, так и для "обхождения глюков".

Balancer> Нужно знать что там есть. Это всегда и для всего. А вот как оно работает - тебе не пофиг ли? Ты же не хочешь в своей программе заниматься отрисовкой каждого пиксела? Более того - управлять выводом каждого бита в ЦАП :)

Ну... Не, я согласен, что чаще всего этого не надо, или не стоит трудов. Но я все равно предпочитаю знать :) Это порой позволяет понять, откуда уши растут у каких-нибудь глюков/особенностей/неработоспособности/проблем производительности. И даже их обходить. Вот, кстати, особенности опроса ЦАП (не видео, специальной) мне оказались нужны в свое время :) То есть именно знание его работы позволило понять странности поведения системы. И таких случаев очень много. Но они проходят скорее по разделу БИ :) Бальзачья привычка собирать всякую информацию (даже неосознанно подмечать) - "а вдруг пригодится" :)

Zeus>> А я вижу, я говорил, простейший вариант восприятия - поток команд.
Balancer> А как же асинхронность тогда? :)

Точно так же. Вернее, не совсем. Сам процесс взаимодействия (двух нитей, например) можно рассматривать как набор команд. Или лучше сказать - транзакций, или что-то такое.

Balancer> У тебя не динамику отбирают, а рутину :) Или ты собрался в машинных кодах писать? :) По мере роста вычислительных мощностей компьютеров, объём задач, которые они могут решать эффективнее программиста всё растёт. Сначала - расстановка адресов при переходе от машкода к ассемблеру. Потом - макросы. Императивные конструкиции. Сейчас приходит время конструкций функциональных. Компьютеры становятся слишком сложными, чтобы эффективно расписывать задачу на последовательность действий вручную. Решая эту задачу вместо компьютера ты теряешь в производительности :)

Не, все это я понимаю. Но это несколько другой аспект. На компьютер возлагают то, что могут, это просто прогресс. Можно анализировать, что из этого получается, какие удобства. Но это не связано прямо с моими предпочтениями :)

Balancer> А, возвращаясь к исходной постановке задачи, ФП-языки с тебя, как с ЧЛ, и снимают чернологичную рутину. Да, ты бы и сам её легко, может быть, сделал, но компьютер это сделает лучше. А ты сможешь больше внимания уделить тому, что для тебя сложнее - БЛ :)

Так это нелогично! (С моей как бы точки зрения). Логичным было бы наоборот: пусть компьютер делает то, что мне трудно, т.е. БЛ. А то, что мне просто, я и сам сделаю :)

А так, получается, мне работу практически не облегчают. "При прочих равных", если комп даже ЧЛ-работу делает лучше меня, то БЛ-работу он тем более лучше сделает (просто потому, что она у меня хуже получается). Что, не умеет? Тогда, наоборот, странно, откуда "ЧЛ-изация" программирования. Наоборот, БЛогикам должно быть раздолье: наконец-то комп трудную для них ЧЛ-работу делает хорошо. ФП им в руки :)
Так?
И животноводство!  
+
-
edit
 

Balancer

администратор
★★★★★
Zeus> Не видел. Но по идее это неважно, ведь интерфейс (стиль) именно что должен быть одинаковым (между приложениями) - по идеологии Джавы.

Гы. В sun-jdk, например, среди прочих демок поставляется SwingSet2. Запусти и посмотри - в Look&Fill можно выбрать ажно три разных (по карйней мере под Linux) варианта интерфейса. Родной Java, Motiff и GTK2. Самый приятный и вылизанный - как раз родной :)

Zeus> Мне вот Матлаба хватает, я на него смотрю :) И я утверждаю, что его интерфейс глючит неимоверно, причем в совершенно "детских" местах, вроде скроллирования.

Скорее он пользуется какими-то весьма древними библиотеками. Тот же Eclipse не только нигде не тормозит, но и на сегодня это едва ли не самая лучшая межплатформенная (и в плане хостов и в плане проектов) IDE. Вряд ли бы эту IDE за первый месяц скачали миллион раз, если б она была отстоем :D

Zeus> К чему это мы? Видимо, к тому, что "вручную" все-таки нередко имеет смысл делать и, соответственно, знать, как оно работает. Это верно как для того, чтобы писать "с нуля", команда за командой, так и для "обхождения глюков".

Это, безусловно полезно. Вот только мы с тобой проводим границу допустимого в разных местах :D

Zeus> Ну... Не, я согласен, что чаще всего этого не надо, или не стоит трудов. Но я все равно предпочитаю знать :) Это порой позволяет понять, откуда уши растут у каких-нибудь глюков/особенностей/неработоспособности/проблем производительности. И даже их обходить. Вот, кстати, особенности опроса ЦАП (не видео, специальной) мне оказались нужны в свое время :) То есть именно знание его работы позволило понять странности поведения системы. И таких случаев очень много. Но они проходят скорее по разделу БИ :)

И в результате ты сидишь и копаешь яму лопатой, когда рядом есть экскаватор :D Да, руками оно может оказаться сподручнее. И, например, археологические раскопки экскаватором вести несподручно. Но в подавляющем большинсве задач экскаватор выгоднее :D А ты предпочитаешь - лопатой :)

Zeus> Так это нелогично! (С моей как бы точки зрения). Логичным было бы наоборот: пусть компьютер делает то, что мне трудно, т.е. БЛ.

Вот ФПЯ БЛ-связыванием (точнее, детальной его проработкой) и займутся :)

Zeus> А так, получается, мне работу практически не облегчают.

А ещё, такое впечатление, что ЧЛ плохо оценивают объёмы работ :-P

Zeus> Наоборот, БЛогикам должно быть раздолье: наконец-то комп трудную для них ЧЛ-работу делает хорошо. ФП им в руки :)

Это уже не ФП, а любой оптимизирующий компилятор. Я им стал доверять ещё во времена Watcom 10, когда увидел, что на средней задаче компилятор быстрее и эффективнее меня оптиимзирует код :D
 

Zeus

Динамик

Balancer> Гы. В sun-jdk, например, среди прочих демок поставляется SwingSet2. Запусти и посмотри - в Look&Fill можно выбрать ажно три разных (по карйней мере под Linux) варианта интерфейса. Родной Java, Motiff и GTK2. Самый приятный и вылизанный - как раз родной :)

Ты предлагаешь мне JDK качать? Нет уж, я лучше на слово поверю :D
Но я вообще-то говорил о том, что интерфес стандартизован именно между платформами, т.е. на разных платформах должен выглядеть одинаково. (То, что вариантов несколько - дела не меняет). Из-за этого Джаве приходится самой рисовать контролы, а не пользоваться нативными. А это по определению тормознее (как минимум).

Balancer> Скорее он пользуется какими-то весьма древними библиотеками. Тот же Eclipse не только нигде не тормозит, но и на сегодня это едва ли не самая лучшая межплатформенная (и в плане хостов и в плане проектов) IDE. Вряд ли бы эту IDE за первый месяц скачали миллион раз, если б она была отстоем :D

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

Balancer> Это, безусловно полезно. Вот только мы с тобой проводим границу допустимого в разных местах :D

Очевидно :)

Balancer> И в результате ты сидишь и копаешь яму лопатой, когда рядом есть экскаватор :D Да, руками оно может оказаться сподручнее. И, например, археологические раскопки экскаватором вести несподручно. Но в подавляющем большинсве задач экскаватор выгоднее :D А ты предпочитаешь - лопатой :)

Обычно выглядит так, что я смотрю, что тут наэкскаваторили, ужасаюсь, беру зубило и дорабатываю вручную :)

Balancer> Вот ФПЯ БЛ-связыванием (точнее, детальной его проработкой) и займутся :)

Ты ведь только что утверждал, что ФПЯ именно грубую ЧЛ-работу делают? (И причем здесь оптимизация, мы же не об этом уровне говорим).

Zeus>> А так, получается, мне работу практически не облегчают.
Balancer> А ещё, такое впечатление, что ЧЛ плохо оценивают объёмы работ :-P

Обычно как раз наоборот, по моим ощущениям. Хотя здесь слабая корреляция с конкретной логикой, другие аспекты сильно влияют. Да еще вопрос, откуда возможный глюк: в неверной оценке объема или неверной оценке потребных ресурсов (в т.ч. и времени) :)
И животноводство!  
+
-
edit
 

zyxman

опытный

Balancer> видел Пролог-подобное расширение всего в несколько килобайт исходных кодов

А можно ссылочку, или ключевые слова? - ну очень интересно ;)
называть крепостное право рабством - это просто за пределами любой логики и здравого смысла (с) Fakir Если ничего не делать то точно ничего не будет, а если делать и искать, то что-то может получиться ;)  1.5.0.61.5.0.6
+
-
edit
 

Balancer

администратор
★★★★★
zyxman> А можно ссылочку, или ключевые слова? - ну очень интересно ;)

Книжка была в конце 1980-х или начале 1990-х гг. Что-то типа «Программирование (проектирование?) экспертных систем». Таунсенда и ещё кого-то (Фохта?). Издательство, скорее всего, или «Финансы и статистика», или «Мир». Где-то так :) Там вся алгоритмика на Форте излагалась.
 
RU Balancer #13.07.2009 03:52  @Balancer#13.07.2009 03:49
+
-
edit
 

Balancer

администратор
★★★★★
zyxman>> А можно ссылочку, или ключевые слова? - ну очень интересно ;)

Вот, ключевых слов достаточно :)

«Таунсенд К., Фохт Д. "Проектирование и программная реализация экспертных систем на персональных ЭВМ": Пер. с англ./Предисл. Г.С. Осипова. - М.: Финансы и статистика, 1990. - 320 с: ил. »
 
RU Balancer #13.07.2009 03:54  @Balancer#13.07.2009 03:52
+
-
edit
 

Balancer

администратор
★★★★★
Balancer> «Таунсенд К., Фохт Д. "Проектирование и программная реализация экспертных систем на персональных ЭВМ": Пер. с англ./Предисл. Г.С. Осипова. - М.: Финансы и статистика, 1990. - 320 с: ил. »

А вот оно в электровиде: Forth • Просмотр темы - Проектирование и программная реализация экспертных систем

Воистину, в Интернете всё есть :D
 
+
-
edit
 

zyxman

опытный

Balancer> Вот, ключевых слов достаточно :)
Balancer> Форум - Development - lisp как препроцессор для C
Balancer> «Таунсенд К., Фохт Д. "Проектирование и программная реализация экспертных систем на персональных ЭВМ": Пер. с англ./Предисл. Г.С. Осипова. - М.: Финансы и статистика, 1990. - 320 с: ил. »

Спасибо, оказалось что уже давно скачал, теперь уже читаю.

Эх, где еще, кроме как на LORе, могут обсуждать Lisp, C++ и Forth на одной страничке :F
называть крепостное право рабством - это просто за пределами любой логики и здравого смысла (с) Fakir Если ничего не делать то точно ничего не будет, а если делать и искать, то что-то может получиться ;)  1.5.0.61.5.0.6
+
-
edit
 

Balancer

администратор
★★★★★
zyxman> Спасибо, оказалось что уже давно скачал, теперь уже читаю.

На сегодня оно уже мало интересно. Теория там простенькая, практика же устарела на 20 лет :)

zyxman> Эх, где еще, кроме как на LORе, могут обсуждать Lisp, C++ и Forth на одной страничке :F

Это ещё фигня. Там в одной теме в полутора тысячах сообщений могут обсудать десяток языков, Столмана, космические достижения СССР и украинский национализм :)
 
+
-
edit
 

zyxman

опытный

zyxman>> Спасибо, оказалось что уже давно скачал, теперь уже читаю.
Balancer> На сегодня оно уже мало интересно. Теория там простенькая, практика же устарела на 20 лет :)

А чем отличается нынешняя практика?
- По моему за эти 20 лет общий фон реально мало изменился - только еще больше стала "присадка" на микрокомпьютеры - вон даже крайний Скиф и тот делали на почти массовых материнках и точно из массовых комплектующих (по крайней мере заказывали материнки для крайнего Скифа точно в Китае :F).
Частные случаи (вроде гидры), конечно впечатляют, но "страшно далеки они от.."

zyxman>> Эх, где еще, кроме как на LORе, могут обсуждать Lisp, C++ и Forth на одной страничке :F
Balancer> Это ещё фигня. Там в одной теме в полутора тысячах сообщений могут обсудать десяток языков, Столмана, космические достижения СССР и украинский национализм :)

:D
называть крепостное право рабством - это просто за пределами любой логики и здравого смысла (с) Fakir Если ничего не делать то точно ничего не будет, а если делать и искать, то что-то может получиться ;)  1.5.0.61.5.0.6
+
-
edit
 

Balancer

администратор
★★★★★
zyxman> А чем отличается нынешняя практика?

На классическом Форте уже никто не пишет ;)

zyxman> - По моему за эти 20 лет общий фон реально мало изменился

Кардинально изменился. Скорость продукта разменяли на скорость разработки :)
 
+
-
edit
 

zyxman

опытный

Balancer> На классическом Форте уже никто не пишет ;)

Хм, я специально сейчас общаюсь с фортерами на форуме winglion, и они мне явно дают понять что идеология Форта такая-же и осталась - каждый изобретает свой Форт ;)
Они конечно явно не самые успешные среди знакомых мне разработчиков ПО, но все-же.

zyxman>> - По моему за эти 20 лет общий фон реально мало изменился
Balancer> Кардинально изменился. Скорость продукта разменяли на скорость разработки :)

Ну это вобщем1, а конкретно данная книга про работы с ИИ и с экспертными системами в частности - разве там есть какие-то серьезные изменения в сравнении с уровнем описанным в книге?

1 вообще разработка ПО повторяет путь практически всех технологий известных человечеству - от кустарных ("наукоемких") решений плавно перешли к корпоративным разработкам (где старались делать так чтобы оно подходило миллионам, пусть даже не идеально удобно, зато доступно каждому) и в конце к макдональдсовизации (где просто берется хорошо обкатанная технология, упрощается для улучшения тиражирования, делается красивая упаковка и продается совсем дешево), а также сейчас пришли к общественно-полезной разработке ПО.
называть крепостное право рабством - это просто за пределами любой логики и здравого смысла (с) Fakir Если ничего не делать то точно ничего не будет, а если делать и искать, то что-то может получиться ;)  1.5.0.61.5.0.6
+
-
edit
 

Balancer

администратор
★★★★★
Balancer>> На классическом Форте уже никто не пишет ;)
zyxman> Хм, я специально сейчас общаюсь с фортерами на форуме winglion

Удивительно грустный заповедник :) Я там пытался общаться, но люди там маниловщиной занимаются, увы.

zyxman> и они мне явно дают понять что идеология Форта такая-же и осталась - каждый изобретает свой Форт ;)

Идеология-то осталась. И идеологи тоже. А вот писать сейчас [winglion - особенно] - никто не пишет.

zyxman> Ну это вобщем1, а конкретно данная книга про работы с ИИ и с экспертными системами в частности - разве там есть какие-то серьезные изменения в сравнении с уровнем описанным в книге?

Я же писал - по самим принципам экспертных систем и т.п. - книга довольно поверхностна (а не устарела), а применение Форта - устарело :)
 
+
-
edit
 

zyxman

опытный

zyxman>> Хм, я специально сейчас общаюсь с фортерами на форуме winglion
Balancer> Удивительно грустный заповедник :) Я там пытался общаться, но люди там маниловщиной занимаются, увы.

Да, я заметил. Наверное я ерундой занимаюсь, но все-же попытаюсь им хотя-бы понятие дать о нормальном мировозрении (см далее).

zyxman>> и они мне явно дают понять что идеология Форта такая-же и осталась - каждый изобретает свой Форт ;)
Balancer> Идеология-то осталась. И идеологи тоже. А вот писать сейчас [winglion - особенно] - никто не пишет.

Не скажи. Там, как и везде, кстати, есть несколько интересных людей, которые реально делают дело, и даже новые правильные иногда появляются, и вот этих которые дело делают, явно стоит поддержать, хотя-бы морально.

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

Balancer> Я же писал - по самим принципам экспертных систем и т.п. - книга довольно поверхностна (а не устарела), а применение Форта - устарело :)

А, в смысле что сейчас применяют не Форт а что-то другое? Кстати что?

UPD кстати очень удачно сконвертировал книгу из DOC в PDF - взял, распечатал в файл с драйвером принтера HP LJ 4MS 300dpi, а потом этот файл скормил ps2pdf - в итоге смотрится приятнее чем в word2003 ну и конечно быстрее отрисовывается (в ворде явно с тормозами отрисовываются диаграммы).
называть крепостное право рабством - это просто за пределами любой логики и здравого смысла (с) Fakir Если ничего не делать то точно ничего не будет, а если делать и искать, то что-то может получиться ;)  1.5.0.61.5.0.6
Это сообщение редактировалось 14.07.2009 в 12:13

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru