Re[2]: Что мы потеряли?
От: _rasta  
Дата: 24.08.06 13:26
Оценка:
Здравствуйте, AVC, Вы писали:

AVC>Если оставить в стороне эмоции, то какие именно задачи не могут решаться на "современных" языках?

AVC>Меня мало интересует список специфических приемов программирования на Lisp.
AVC>А вот перечисление задач было бы убедительным.

да господи, всякий тьюринг-полный язык решает любую задачу.
ага, даже brainfuck
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Что мы потеряли?
От: Курилка Россия http://kirya.narod.ru/
Дата: 24.08.06 13:33
Оценка:
Здравствуйте, _rasta, Вы писали:

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


AVC>>Если оставить в стороне эмоции, то какие именно задачи не могут решаться на "современных" языках?

AVC>>Меня мало интересует список специфических приемов программирования на Lisp.
AVC>>А вот перечисление задач было бы убедительным.

_>да господи, всякий тьюринг-полный язык решает любую задачу.

Таки любую? И задачу останова
Re[6]: Что мы потеряли?
От: Gaperton http://gaperton.livejournal.com
Дата: 24.08.06 13:48
Оценка: 1 (1) +2 -3
Здравствуйте, IB, Вы писали:

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


G>>Каким образом тот факт, что большинство пишет на Java, C++, Delphi, доказывает, что на LISP и Smalltalk неудобно писать те приложения, которые на них были написаны?

IB>Не верно формулируешь... Это говорит в пользу того факта, что на LISP и Smalltalk неудобно писать те приложения, которые на них не были написаны....

Это никак не говорит в пользу названного тобой факта. Есть масса непопулярных технологий, который существенно удобнее и функциональнее своих популярных аналогов. Причем, практически в любой отрасли.
Re[6]: Что мы потеряли?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 24.08.06 13:53
Оценка: 7 (3) +2 -1 :))
Здравствуйте, Master Yoda, Вы писали:

MY>Я не спорил с тем, что перечисленные Евгением приложения, написанные на Smalltalk-е, удобней было написать на другом языке. Хотя допускаю возможность, что имей (или знай?) люди другой инструмент, они возможно выбрали бы его. Я просто вижу тот факт что сейчас менеджер проекта в качестве языка разработки скорее выберет Java или C#, нежели Smalltalk, хотя бы потому-что для последнего легче найти квалифицированных разработчиков (но не только поэтому).


Прошу прощения, но Ваш начальный вопрос был:
MY>А разве коммерческий софт когда-то разрабатывался всерьез на Lisp-е или Smalltalk-е?

Я ответил с примерами, что да, разрабатывался и продолжает разрабатываться. В ответ Вы написали:
MY>Ну а если сейчас начать составлять список приложений на Java, С++, Delphi, C#? Я не спорю что на этих языках что-то пишется, но по сравнению с мейнстривомыми это просто капля в море.
Это, на мой взгляд, явная подмена темы. Изначально Вы спрашивали совершенно другое, и отвечал я на Ваш исходный вопрос.


Что же касается того, что Smalltalk и Lisp сейчас далеко не самые популярные языки — это очевидно и было бы глупо с этим спорить (что не мешает долго и с удовольствием рассуждать о причинах такого состояния вещей). Впрочем, см. ниже.

MY>Ведь мы же пришли каким-то образом к такой ситуации, что одни языки в определенной области (в нашем случае — коммерческая разработка) популярней чем другие? Как это объяснить? На мой взгляд это просто естественная эволюция — естественный отбор, борьба за выживание и т.п. В этом и заключается основная мысль моих сообщений, если не очень понятно (допускаю, что я выражаюсь не совсем точно). А не в том, что приложения, написанные на Smalltalk были написаны на нем по недоразумению.


Я буду говорить только о том, что знаю очень хорошо. Я довольно много писал на Java. Также я пару лет писал на Smalltalk (коммерческие вещи).
* Я могу однозначно сказать, что как Smalltalk мне как язык нравится значительно больше, чем Java — я считаю, что он значительно гибче, позволяет большинство вещей делать более простыми, лёгкими и быстрыми способами, и практически нету вещей, которые бы на нём было сделать сложнее, чем на Java.
* Как среда исполнения он тоже приятнее, чем Java (чего стоит хотя бы отсутствие необходимости тащить за собой всю JRE, обойдясь одной виртуальной машиной размеом 1 Мб).
* Относительно удобства сред разработки — на данный момент (после выхода IntelliJ IDEA) я считаю, что среды разработки для Java примерно сравнялись в удобстве со средами разработки для Smalltalk. Разумеется, в силу специфики языков "удобство" для них заключается в разных вещах, поэтому можно говорить только об общем впечатлении.
* Богатство библиотек у Java и у Smalltalk, на мой взгляд, примерно одинаковое. По количеству Java выигрывает, но по степени охвата задач — примерно паритет. По среднему качеству библиотек Smalltalk выигрывает, но за счёт отсутствия большого количества некачественных поделок. Если же брать только _нормальные_ библиотеки, то тут тоже примерно одинаково.
* Комьюнити. О, Smalltalk-овское комьюнити — это отдельная пестня, причём исключительно мажрная Такой отзывчивости, искреннего желания помочь и скорости реакции я не видел больше нигде
* Документация. Если пользоваться коммерческими версиями Smalltalk (например, VisualWorks от Cincom), то Smalltalk однозначно выигрывает по качеству и охвату, но проигрывает по абсолютному количеству. Впрочем, а они нужны, огромные горы мусора?

Итого, из шести пунктов Smalltalk лучше, чем Java, в четырёх пунктах, и наравне с ней в двух. Здесь во весь рост встаёт вопрос, почему же он настолько менее популярен, чем Java? На мой взгляд, дело в двух вещах:
1) Как здесь уже говорили, Smalltalk слишком хорош для "среднего кодера". Он предоставляет очень большую свободу — и, как следствие, требует большой самодисциплины.
2) Маркетинг. В рекламу Java были вложены очень большие деньги — в отличии от рекламы Smalltalk.
--
Бесчастнов Евгений
Re[3]: Что мы потеряли?
От: AVC Россия  
Дата: 24.08.06 14:07
Оценка:
Здравствуйте, FR, Вы писали:

AVC>>Если оставить в стороне эмоции, то какие именно задачи не могут решаться на "современных" языках?


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


Вот и интересно, какова разница (и для каких задач, и почему), и в чью пользу?
Меня не слишком интересуют "остроумные" высказывания (в этом топике они есть) относительно машины Тьюринга, Брейнфака, задачи останова и т.п.

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[7]: Что мы потеряли?
От: Master Yoda Великобритания  
Дата: 24.08.06 14:13
Оценка: :)
Здравствуйте, Gaperton, Вы писали:

G>Это никак не говорит в пользу названного тобой факта. Есть масса непопулярных технологий, который существенно удобнее и функциональнее своих популярных аналогов. Причем, практически в любой отрасли.


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

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

Тут многие могут считать, что Java и C# это исключительно продукты успешной маркетинговой компании Sun и Microsoft. Это личное дело (и право) людей, которые так думают. Однако это вовсе не мешает этим языкам быть лидерами в своей области на протяжении уже долгого времени (последнее конечно больше относится к Java).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[7]: Что мы потеряли?
От: Master Yoda Великобритания  
Дата: 24.08.06 14:31
Оценка: :)
Здравствуйте, Eugene Beschastnov, Вы писали:

EB>Прошу прощения, но Ваш начальный вопрос был:

MY>>А разве коммерческий софт когда-то разрабатывался всерьез на Lisp-е или Smalltalk-е?

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

EB>Я ответил с примерами, что да, разрабатывался и продолжает разрабатываться. В ответ Вы написали:

MY>>Ну а если сейчас начать составлять список приложений на Java, С++, Delphi, C#? Я не спорю что на этих языках что-то пишется, но по сравнению с мейнстривомыми это просто капля в море.
EB>Это, на мой взгляд, явная подмена темы. Изначально Вы спрашивали совершенно другое, и отвечал я на Ваш исходный вопрос.

Эта не подмена темы. Вы начали перечислять продукты созданные на Smalltalk с тем уклоном (как мне по крайней мере показалось), что он ничуть не менее популярный, чем Java или C#. Я ответил, что так не считаю. Если я вас неправильно понял (хотя мне так не кажется), то извините.

EB>1) Как здесь уже говорили, Smalltalk слишком хорош для "среднего кодера". Он предоставляет очень большую свободу — и, как следствие, требует большой самодисциплины.


Вот с этого и надо начинать, а не перечислять достоинства Smalltalk. Я же не спорю с тем, что это замечательный язык, что для него есть много библиотек, что у вас сложилось хорошее коммьюнити и т.д. и т.п.. Я просто не могу с этим спорить, поскольку не сталкивался с этим языком. Поэтому охотно вам верю.

Лейтмотив моих рассуждений — пользуются тем языком, который лучше всего вписывается в текущую ситуацию в коммерческой разработке софта. Это включает в себя и уровень программистов в этой отрасли (и многие другие факторы). А под последними вашими словами сам готов подписаться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[7]: Что мы потеряли?
От: IB Австрия http://rsdn.ru
Дата: 24.08.06 14:44
Оценка: 8 (1) +1
Здравствуйте, Gaperton, Вы писали:

G>Это никак не говорит в пользу названного тобой факта.

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

G> Есть масса непопулярных технологий, который существенно удобнее и функциональнее своих популярных аналогов.

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

Это первое... А второе — всякая технология может быть "удобна" в довольно узких рамках, поэтому говорить об удобстве вообще, в отрыве от области пременения, на мой взгляд, занятие довольно бесперспективное.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[4]: Что мы потеряли?
От: FR  
Дата: 24.08.06 15:06
Оценка: 6 (2)
Здравствуйте, AVC, Вы писали:

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


AVC>Вот и интересно, какова разница (и для каких задач, и почему), и в чью пользу?

AVC>Меня не слишком интересуют "остроумные" высказывания (в этом топике они есть) относительно машины Тьюринга, Брейнфака, задачи останова и т.п.

Я думаю высококвалифицированному программисту при решении большого класса нетривиальных задач лисп и ему подобные могут помощь сильно ускорить и упростить разработку.

Ну а вообще думаю основная разница между мейнстримом и теми же лиспом, смаллтоком, динамическими и функциональными языками, в том что мейнстрим хорош как инструмент для массового производства, а вторая категория как инструмент для индивидуальной работы. Притом для освоения второй категории требуется гораздо больше самостоятельно думать, зато и результат может быть очень хорошим.
Re[8]: Что мы потеряли?
От: Gaperton http://gaperton.livejournal.com
Дата: 24.08.06 15:50
Оценка: 5 (2) +4 -1
Здравствуйте, IB, Вы писали:

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


G>>Это никак не говорит в пользу названного тобой факта.

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

Если тебе неважно, в силу каких причин — то непонятно к чему ты тогда вообще помянул популярность. Ничего нового и интересного ты не сказал — и так все знают, что Java популярнее Lisp. Мне рассуждать на тему популярности и переливать из пустого в порожнее не интересно. Здесь не маркетинговая тусовка, и главный предмет обсуждения — технологии, а не объемы продаж и сегментации рынков.

G>> Есть масса непопулярных технологий, который существенно удобнее и функциональнее своих популярных аналогов.

IB>Технология может быть просто супер функциональной и удобной, но с высоким порогом вхождения — и привет. Все зашибись, а на практике об удобстве и речи не идет.
IB>Просто когда речь заходит о промышленном применении технологии...
Это тоже многим известно, что происходит при промышленном применении технологий, тут не только пионеры сидят. При этом, любая технология в момент появления — сыра. Рассуждали бы все таким образом (популярность, и неважно в силу каких причин), как ты описываешь — все бы сейчас до сих пор писали на макроассемблере и автокоде.

IB>Это первое... А второе — всякая технология может быть "удобна" в довольно узких рамках, поэтому говорить об удобстве вообще, в отрыве от области пременения, на мой взгляд, занятие довольно бесперспективное.


Замечательно. Согласен. Так давай не и будем, не разбираясь в технологиях (LISP/Smalltalk), c умным видом говорить об их удобстве или неудобстве, высасывая аргументы из пальца ("популярность").
Re[9]: Что мы потеряли?
От: IB Австрия http://rsdn.ru
Дата: 24.08.06 17:06
Оценка: +1 -1 :)))
Здравствуйте, Gaperton, Вы писали:

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

Во-первых, не мне неважно, а вообще не важно, а во-вторых, упомянул не я...
Упомянуто же это было к тому, что не смотря на то, что в данном аспекте, причины популярности не существенны, популярность — это более чем объективный критерий удобства той или иной технологии.

G> Ничего нового и интересного ты не сказал — и так все знают, что Java популярнее Lisp.

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

G> Здесь не маркетинговая тусовка, и главный предмет обсуждения — технологии, а не объемы продаж и сегментации рынков.

Конечно, поэтому давай обсуждать тьехнологии, а не кто, что нового сказал...

G>Это тоже многим известно, что происходит при промышленном применении технологий, тут не только пионеры сидят.

Кто бы сомневался, конечно не пионеры, однако некоторые передергивают как дети..

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

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

G>Замечательно. Согласен.

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

G> Так давай не и будем, не разбираясь в технологиях (LISP/Smalltalk), c умным видом говорить об их удобстве или неудобстве, высасывая аргументы из пальца ("популярность").

Я согласный, убирай умный вид и прекращай сосать из пальца, а я пойду с лиспом разбираться..
... [RSDN@Home 1.2.0 alpha rev. 619]
Мы уже победили, просто это еще не так заметно...
Re: Что мы потеряли?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.08.06 17:52
Оценка: 88 (12) +6 -1 :))) :)
Здравствуйте, Mamut, Вы писали:

M>Для нетерпеливых — вопрос находится в самом конце этой цитаты


Для нетерпеливых — ответ сразу. Это провакационный толчек сознания, а-ля НЛП с закосом под невинный вопрос. В принципе в саомй провакации нет ничего плохого, но вот булшит лично мне не нарвится. У меня стойкое ощущение, что это не вопрос, а гипноз.

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

Чтобы не быть голословным, поясню на примерах...

M>Глава 18: Lisp in Lisp (Building an interpreter)

...
M> 30: Procedure writing programs

M>Что меня волнует, так это то, что "старые" языки могли выполнять задачи, которые (как мне кажется) сложны или вообще невыполнимы в современных языках. Как так произошло, что все эти Java и C# потеряли все эти возможности, а называются "современными"?


Дествительно как так произошло, что языки не имевшие каких-то возможнсотей и являющиеся наследниками языков так же никогда в жизни не поддерживающих этих возможнсотей могли потерять эти возможности?
Другими словами, как можно потерять то о чем даже не знал никогда, не то что не имел?

И главный вопрос. Зачем строить фразу так, как будто факт потери очевиден?

M>Я заметил одну ОЧЕНЬ беспокоящую тенденцию в мире Java...

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

А теперь вопрос. Что не так в этих рассуждения? Никто не догадался?
Правильно, ни Лисп, ни Смолток не являются компилируемыми языками и самое лучшее на что они могут быть рассчитаны — это JIT-компиляция в момент выполенния. Таким образом проверки корректности в случае "старых языков" будет выполняться точно так же в рантайме или (в лучшем случае, во время развертывания, но это уже при применении супер технлогий вывода типов и т.п.). Так что претензию отсуствия статических проверок можно предъявить те же претензии что и к внешним ХМЛ-файлам.

M>Кажется, что им удалось изобрести новый скриптовый язык поверх Java, который на самом деле имитирует то, что у нас уже было лет десять тому назад в ASP/JSP/VB, но имимтирует намного хуже, потому что XML — это не язык, а структура данных...


Любой язык можно характеризовать как структура данных интерпретируемые человеком и машиной. Так что ХМЛ-языки фрэймворков вроде Spring-а — это такие же языки как и все остальные, только очень специализированные. Другими словами — это DSL-и рассчитанные реализацию конкретных возможнсотей отсуствующих в Яве или C#.

M>Возвращаясь к отправной точке — какие возможности мы потеряли, перейдя с Lisp/Smalltalk на всякие VB/Delphi/C++? а потом на всякие Java/C# и т.д., и какие возможности теперь заново изобретают (в худших формах) в этих новых "язвках"?


Это очередной булшит этой заметки. "Мы" (Кстати, кто это? Мэйнстрим? Или это прием цель которого создать впечатление, что автор и читатель стоят на одних позициях?) никогда не теряли Lisp/Smalltalk. Их попросту никогда не было у "нас". Были (да и есть) люди для которых был Lisp. Были и есть те для кого существует Smalltalk. Есть даже откровенные фанаты этих языков. Но все они это капля в море. Ява и C# — это мэйнстрим языки. Они захватывают умы тех кто учился программировать на Паскале, С и С++ (или на самих Яве и C#). А в этих языках никогда не было тех возможнсотей которые есть в Лиспе.

Так что правильно ставить вопрос так:
Почему умы масс захватили Паскале, С, С++, Ява, VB и C#, а не Lisp или Smalltalk?

Вот тут лично я могу высказать свое мнение. Хотя оно для многи может показаться радикальным.

К такому положению дел, по-моему, привели следующие вещи:
1. Привычки. Лисп и Смолток очень не традиционные языки. Привычки — это опыт который закладывается в каждого человека с детства и остается в сознании практически на уровне рефлексов. Так в начальной школе нас обучали арифметике в которой есть инфиксная запись выражений и есть приоритеты. Так вот и Лисп и Смолток нарушают эти прадиции (и не только эти). Смолток плюет на приоритеты (ради умозрительных приемуществ), а Лисп и вовсе плюет на инфиксную запись. Примитивные арефмитические выражения на этих языках уже выглядят не похоже на то к чему привыкли те самые массы. Уже одно это заставляет ломать сознание. А вот как раз ломка сознания и борьба с привычками — это очень болезненные процессы. Большинство людей скорее выбросят нечто не привычное, чем будут пытаться себя перебороть.
2. Традиции. Лисп и Смолток родились в недрах исследовательских лабороторий и очень долго жили только там. Потом из Смолтока долго пытались устроить успешный коммерческий продукт, но добились только того, что интерес к Смолтоку так никогда и не возник. А Лисп вообще долгое время существовал для окружающего мира почти как прикол. Потом пошли ПК на которых оба языка по началу вообще не могли работать. Там счет шел на байты и инструкции, и GC с нитерпретацией смотрелись совсем странно. Алголоподобные же языки напротив поставлялись с массовыми компьютерами и вообще были ближе к народу.
3. Lisp и Smalltalk плохие языки. Понимаю, что этот пунтк вызовет бурю эмоций у их фанатов. Но объективно это так. Надо только понимать, что термин "плохие" для разных людей имеет разное содержание. Вы можете быть фанатом динамически типизированных языков, и вам может быть не важны проверки компилятора и скорость исполнения, или вы можете считать отставание Lisp и Smalltalk не сущесвенным, а проверки в рантайме ничем не хуже сделанных компилятором... но это ваше мнение. А мнение других людей другое. Так вот очень многие из особенностей этих языков делали их плохими для программистов. Отсуствие синтаксиса в Лисп является приемуществом для тех кто ценит макросы, но является недостатком для того кто не хочет читать вместо понятных выражений какой-то (по его мнению) эзопов язык (польскую нотацию). И таких примеров в обоих языках море. Главное что объеденят Лисп и Смолток — это то охренение в которое пребывает программист, привыкшей к Алголоподобным языкам, впервые сталкивающися с Лиспом или Смолтоком.

Ну, а теперь ответ на вопрос.

Лисп и Смолток были не принодны для мэйнстрима по очень большому количеству фаторов. Но многие родившиеся в них идеи поитихоничку переходя или прямо в мэйснтрим-языки или в языки претендующие на мэйнстрим. Скорее, правда, речь можно вести про Лиспе, так как Смолток практически ничего не дал миру кроме ООП которое и без Смолток выше крыши в мэйснтирме.

Скала, Немерле и даже Питон с Руби и являются развитием идей этих старичков. Они потихоничку проникают в массы и рано или поздно проникнут в современных фаворитов (Яву и C#, возможно и в С++, но похоже скорее случится второе пришествие), или гибриды воде Скалы и Немерле вытеснят с рынка сегодняшних фаворитов, как они, в свое время, вытеснили вчерашних.

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

------------------
— Глянь какая здоровенная жидяра перед нами идет!
— Ага.
— А, давай ему морду набьем?
— Ты, что? А если он нам?
— А нам то за что?


В общем, это мнение тоже не безосновательно. Но сдается мне, что оправдвать отсуствие нужных многим программистам возможнсотей тем, что ими могут как-то не так воспользоваться тупые индусы. Особенно этот аргумент бессмысленнен в средах типа .net и Явы где можно без проблем использовать два и более языка. А языки типа Nemerle и Scala к тому же еще и имеют неплохие средства защиты от дурака.

M>[1] Я не имею ни малейшего представления, как перевести некоторые из этих терминов, поэтому оставил их, как есть.


Ну, например слово "могущие" нужно переводить как "которые могут", то есть не "могущие возникнуть проблемы", а "проблемы которые могут возникнуть". В остальном перевод очень неплох.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Что мы потеряли?
От: FR  
Дата: 24.08.06 18:22
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Потом пошли ПК на которых оба языка по началу вообще не могли работать. Там счет шел на байты и инструкции, и GC с нитерпретацией смотрелись совсем странно. Алголоподобные же языки напротив поставлялись с массовыми компьютерами и вообще были ближе к народу.


Я в первый раз баловался с лиспом на комьпютере zx spectrum с 48 кб озу. Интерпретатор занимал около восьми килобайт и работал шустрее встроенного бейсика. Кстати на нем интерпетатор бейсика не смотрелся странно, как и на большинстве тогдашних восьми и шестнадцатиразрядных машинках.
Re[2]: Что мы потеряли?
От: DenisY Россия  
Дата: 24.08.06 18:50
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Правильно, ни Лисп, ни Смолток не являются компилируемыми языками и самое лучшее на что они могут быть рассчитаны — это JIT-компиляция в момент выполенния.


О чем ты? google common lisp compiler

А по теме топика (почему лисп и др. не мэйнстрим) -- worse is better
Re[3]: Что мы потеряли?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.08.06 18:55
Оценка:
Здравствуйте, FR, Вы писали:

FR>Я в первый раз баловался с лиспом на комьпютере zx spectrum с 48 кб озу. Интерпретатор занимал около восьми килобайт и работал шустрее встроенного бейсика. Кстати на нем интерпетатор бейсика не смотрелся странно, как и на большинстве тогдашних восьми и шестнадцатиразрядных машинках.


Предлагаешь развести бурную дискуссию по поводу теории относительности?
У меня вот небыло zx spectrum, и Лиспа на доступных мне PC-шках небыло. А отношение к интерпретаторам было очень плохое, так как ресурсов было и так очень мало. В общем, я высказываю мое мнение. На истину в последней инстанции не претендую.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что мы потеряли?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.08.06 19:03
Оценка:
Здравствуйте, DenisY, Вы писали:

DY>О чем ты? google common lisp compiler


Ну, ты почитай свои ссылки. А потом... и вопросов не возникнет. Лисп (если не брать эксперементальные клоны) это не типизированный язык и до стадии выполнения у него попросту не хватает информации о типах чтобы породить статический код. По этому в Лиспе используют методы динамической компиляции, а это и есть JIT-компиляция.

Диалекты лиспа допускающие аннотацию типа Лиспом уже по сути не являются. А обычные не могут проверять ничего статически просто потому, что в них большая част кода является жудко обобщенной. Если у тебя есть функция, то до того как ты передашь в нее конкретные параметры можно делать предположения тольк для операций над константами (атомами в терминах Лиспа).

На свете есть языки в которых типизация статическая, но типы так же явно не указываются. Это Хаскель, клоны ML, Немерле, Скала. Пследние два допускают вывод типов только в врыжениях. Эти языки специально спроектиррованы так, чтобы типы в них были всегда изместны еще до стадии сыполнения. А Лисп, Смолток, Руби и Питон — это динамически типизированные языки полная информация о типах в которых доступна только в рантайме.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что мы потеряли?
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.08.06 19:25
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Анонимные функции, макросы, карринг, метапрограммирование, легковесные процессы... Да даже сборщик мусора появился на минимум десять-двадцать лет позже Лиспа и Смоллтолка (и это в Java, про C# молчу).


Ну, ты загнул.

M> Возможности замены работающих модулей на лету до сих пор нет нигде, кроме тех же Лиспа и Эрланга (ну и наверняка других, не менее экзотических языков).


Серьезно? А мужики то не знали и даже на VB5 это делали.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Что мы потеряли?
От: 0xDEADBEEF Ниоткуда  
Дата: 24.08.06 21:55
Оценка: +2
Здравствуйте, Mamut, Вы писали:

Эпиграф:
Есть только две настоящих бесконечности: Человеческая глупость и Вселенная. Впрочем, насчет второй я не уверен. (с) А.Эйнштейн.

M>Возвращаясь к отправной точке — какие возможности мы потеряли, перейдя с Lisp/Smalltalk

Потеряли свободу? Да. Потеряли. Заабстрагировались, что называтеся, по самое немогу. А когда абстракция повернулась лицом к реальной жизни (т.е производительности), не устояли.
Данные языки за деревьями не видят леса, точнее — его границ (по памяти, по процессору и тд), и, следовательно, там где данные границы важны, они сосут по полной.

M>на всякие VB/Delphi/C++?

...в начале был Ассемблер и он породил СИ. (ок, Фортран был первее, но где тот фортран?)
А потом были Делфи и C++ (о том, что их времена прошли — тема отдельной баталии), но пойнт был все тот же: удаляться от "железа" на "разумное" расстояние — но, не "полностью абстрагироваться", как было с Lisp/Smalltalk/Basic.
В их случае, "разумное" значило "абстрактнее, чем СИ, но до разумных пределов".
Ибо, спрос на программистов возрос, и их стало не хватать. И любой, кто знал что семь-ю-семь это не сорок семь и что у памяти есть пределы, мог стать программистом. Почили в бозЕ регистровые переменные и статические функции, облегчилось (но не ушло насовсем) управление динамической памятью. Впрочем, об ассемблере сии языки не тоже забывали.

M>а потом на всякие Java/C# и т.д.,

...Спрос на программистов все возрастал. В итоге, любой, кто смог запомнить синтаксис операторов "for" и "if" смог стать программистом. Но, использование таких программистов требует соответствующего языка. Что, собственно говоря и произошло. Конечно, с такими программистами у 90% проектов у зебры кончились полоски и последовал закономерный финал, но идея управлять ресурсами "на халяву" (несмотря на все свои недостатки) имеет свою притягательность....

Тем более, что память недорогА и скоро также подешевеет адресное пространство (переход на 64 бита).
В итоге, сакраментальная поговорка "был бы диск, а чем его набить — найдется" приобретает новое измерение.

M>и какие возможности теперь заново изобретают (в худших формах) в этих новых "языках"?

Изучение Лиспа (за Smalltalk не говорю ибо его не знаю) требовало "как-то по-особому вывернуть мозги". Если точнее — проникнуться философией языка. Так возникли "lisp-way", "c-way" и прочия. Следование какому-то "-way" позволяло что-то сделать хорошо. Но, для того чтобы ему следовать, надо было впитать его философию. Что требует (а)времени (б)значительных интеллектуальных усилий.

С другой стороны, интерпретируемые языки имеют одно интертерестое свойство: им не важна (на первый взгляд) "цена" языковой конструкции. То есть, то, во что эта конструкция выливается в машинном коде. Посему, есть великий соблазн тащить в свою помойку все что кажется привлекательным. А программисты-прикладники потом отсортируют. Ессесно, пОтом и кровью, но дизайнеров языка это мало интересует.
__________
16.There is no cause so right that one cannot find a fool following it.
Re[4]: Что мы потеряли?
От: FR  
Дата: 25.08.06 03:32
Оценка:
Здравствуйте, VladD2, Вы писали:

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


FR>>Я в первый раз баловался с лиспом на комьпютере zx spectrum с 48 кб озу. Интерпретатор занимал около восьми килобайт и работал шустрее встроенного бейсика. Кстати на нем интерпетатор бейсика не смотрелся странно, как и на большинстве тогдашних восьми и шестнадцатиразрядных машинках.


VD>Предлагаешь развести бурную дискуссию по поводу теории относительности?


Необязательно, можно просто спокойно об этом поговорить

VD>У меня вот небыло zx spectrum, и Лиспа на доступных мне PC-шках небыло. А отношение к интерпретаторам было очень плохое, так как ресурсов было и так очень мало. В общем, я высказываю мое мнение. На истину в последней инстанции не претендую.


Может просто тебе не нужен был лисп? Так как на PC он точно тогда был. А к интерпретаторам тогда отношение по моему было лучше чем в середине 90, на том же бейсике для восьми разрядных машинок было написано очень много программ.
Re[4]: Что мы потеряли?
От: _rasta  
Дата: 25.08.06 03:33
Оценка:
Здравствуйте, Курилка, Вы писали:

_>>да господи, всякий тьюринг-полный язык решает любую задачу.

К>Таки любую? И задачу останова

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

зы. дальше меня про это можно не спрашивать, ибо в вопросе не очень силен
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.