LINUX.ORG.RU

Будущее Smalltalk и Ъ-ООП

 , , ,


2

5

Вопрос к смоллтолкером и ооп-шникам. Скажите - каково будущее у данного языка? Какой из диалектов наиболее развит и перспективен? Как себя чувствуют поделки на jvm (Redline Smalltalk)? Как дела у Smalltalk/X? GST уже научилась работать по человеческому под оффтопиком?

Есть ли еще языки, кроме эльфиля, которые реализуют полностью именно классическое представление об ООП? (именно подход смаллтолка). Лишпики не предлагать.

★★

Последнее исправление: silver-bullet-bfg (всего исправлений: 2)

Скажите - каково будущее у данного языка?

Он останется на своём месте

Какой из диалектов наиболее развит и перспективен?

Из свободных - Pharo

GST уже научилась работать по человеческому под оффтопиком?

В списке рассылки об этом давно вестей не было, у меня в своё время (где-то с год-полтора назад) собрать не удалось.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Скажите, а Вы не видели в действии Redline Smalltalk? Не приходилось использовать? В принципе, если есть Lisp на JVM, то Smalltalk тем более может быть без проблем...

silver-bullet-bfg ★★
() автор топика
Ответ на: комментарий от silver-bullet-bfg

Не видел, не приходилось. buddhist возможно пробовал, он донейтил туда.

yoghurt ★★★★★
()
Ответ на: комментарий от true_admin

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

silver-bullet-bfg ★★
() автор топика
Ответ на: комментарий от true_admin

Какая сила заключена в первом пункте? Оно позволяет, например, сообщения передавать по сети (для RPC)?

Да, так работают распределённые системы GemStone/S

yoghurt ★★★★★
()
Ответ на: комментарий от silver-bullet-bfg

Использовал, нужное количество бабла в свое время не собрали, поэтому он пока в полуразобранном состоянии. Обрати еще внимание на Amber Smalltalk.

buddhist ★★★★★
()

Ну типа рибу говорят очень объектно ориентирован. Хотя не знаю как там с сообщениями.

nanoolinux ★★★★
()
Ответ на: комментарий от silver-bullet-bfg

На сколько помню в Smalltalk 80 было всего 3 оператора

Сейчас столько же: отправка сообщения, присваивание, возврат значения.

yoghurt ★★★★★
()

Скажите - каково будущее у данного языка?

А у него есть настоящее?

Deleted
()
Ответ на: комментарий от silver-bullet-bfg

Он же для браузеров

Да

нативные

Здесь не совсем уместно это слово :) Смоллток всегда был чем-то типа гостевой ОС.

buddhist ★★★★★
()

Скажите - каково будущее у данного языка?

Его нет.

Как нет будущего ни у одного TrueЪ™ Pure® языка. Будущее за гибридными языками — Java, Scala, C++, JavaScript, Python — умело сочетающими в себе несколько парадигм. В основном это императивное + объектно-ориентированное + функциональное программирование. Scala плюс к этому имеет возможности метапрограммирования.

anonymous
()
Ответ на: комментарий от anonymous

А obj C?

Во-первых он не мультипарадигменный; во-вторых, мы рассматриваем только промышленные языка, а Objective C — язык узконишевой; в-третьих, некоторая его популярность обусловлена исключительно нетехническими причинами.

anonymous
()
Ответ на: комментарий от anonymous

Во-первых, он
только промышленные языки

быстроселффикс

anonymous
()

Ещё есть довольно няшный Io, но это уже немного из области маргинальщины.

mix_mix ★★★★★
()
Ответ на: комментарий от buddhist

Скажите пожалуйста, а чем селф принципиально отличается от js. Вот допустим выкинуть из js замыкания. Будет ли он селфом семантически?

anonimous
()

Скажите - каково будущее у данного языка?

Никакого.

Диалект под названием Objective C ещё поживёт, а вот сам смолток — уже нет.

Есть ли еще языки, кроме эльфиля, которые реализуют полностью именно классическое представление об ООП?

Да. Эрланг. Правда, эрлангисты говорят на другом языке, они вместо «объект» говорят «процесс», но смысл тот же.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Скажите - каково будущее у данного языка?

Никакого.

Objective C ещё поживёт, а вот сам смолток — уже нет

Ну почему же. Вокруг языка есть хоть и маленькое, но гордое и крепкое сообщество, которое продолжает по-тихоньку пилить реализации и батарейки, есть и из корпоративного сектора поддержка, ежегодно проводятся конференции в Европе, США и Южной Америке, закапывать его никто не спешит :)

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

закапывать его никто не спешит

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

Miguel ★★★★★
()
Ответ на: комментарий от dave

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

Примеры: С++, D, Vala, Java, Scala, Groovy, Python, JavaScript.
Контрпримеры: Smalltalk, LISP, Haskell, Racket, Clojure, Kotlin.

anonymous
()
Ответ на: комментарий от anonymous

Как говорили во времена моей юности: «Знал бы прикуп - жил бы в Сочи»

dave ★★★★★
()
Ответ на: комментарий от anonymous

Будущее есть у промышленных языков, авторы которых не боятся экспериментировать

Примеры: С++, D, Vala, Java, Scala, Groovy, Python, JavaScript.

у промышленных языков

D, Vala, Scala

MUA-HA-HA-HA-HA-HA

LISP

не, не слышал.

gensym ★★
()
Ответ на: комментарий от gensym

у промышленных языков
D, Vala, Scala

MUA-HA-HA-HA-HA-HA

Ты по ходу не знаешь, на чем в твиттере обработка очереди сообщений сделана?

ovk48 ★★★
()

Есть ли еще языки, кроме эльфиля, которые реализуют полностью именно классическое представление об ООП?

Ruby нельзя назвать диалектом Smalltalk'a, но очень многое было перенято у него(мне кажется, уж точно поболее, чем у лиспов и перла). Иерархия объектов Ruby полностью взята из него. Но, надо признать, Smalltalk значительно чище; в Ruby есть грязные штучки — keywords, которые просто проебуют весь формализм, который без них мог бы быть идеальным. Тем не менее, некоторые отличия Ruby от Smalltalk'a весьма удобны, и они позволяют мечтать о реализации, в которой не будет никакого «control flow», помимо получения сообщений.

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

Anatolik ★★
()
Ответ на: комментарий от ovk48

Ты по ходу не знаешь, на чем в твиттере обработка очереди сообщений сделана?

Если я использую CL и Erlang в продакшене, значит они уже в промышленности широко используются? А я ведь догадывался!!!

gensym ★★
()
Ответ на: комментарий от gensym

Если я использую CL и Erlang в продакшене, значит они уже в промышленности широко используются?

Разницу между тобой и твиттером не чувствуешь?

ovk48 ★★★
()
Ответ на: комментарий от gensym

Т.е. ты борщевик, живущий в замкнутом дивном мирке, не слышавший про Twitter, Facebok, highload вообще и промышленную разработку ПО?

Но ведь тогда твое мнение имеет нулевую ценность.

anonymous
()
Ответ на: комментарий от gensym

Если я использую CL и Erlang в продакшене

Но ведь твой «продакшен» — это поделки, не выходящие за пределы твоего десктопа.

anonymous
()
Ответ на: комментарий от ovk48

Я - не оракул, но думаю, что Scala уже не взлетит. Немного уродлива и не продумана, а менять уже слишком поздно. Есть просчеты Одерского в дизайне.

Повторяться особо не буду, поскольку писал здесь пару раз:

  • нет адекватного синтаксического сахара для монад и моноидов, а в этом есть насущная потребность, даже если судить по костылям для flow из akka, встроенном плагине продолжений и futures;
  • чрезмерное злоупотреблением трейтами в библиотеке коллекций, из-за чего она элементарно не влезает в дальвик андроида без обфускации в чистом виде как есть, но главное, каков дизайн этой библиотеки - просто кошмар на крыльях ночи.
dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от dave

Это все дело наживное. Скала не может «не взлететь» только по этим двум причинам, потому что ее преимущества перевешивают эти частные недостатки (которые при желании фиксятся).

ovk48 ★★★
()
Ответ на: комментарий от dave

Scala: (обслуживает хардкорнейшие задачи highload и bigdata в мире)
Лиспер: Я думаю, что Scala уже не взлетит.
Scala: (пожимает плечами и продолжает обслуживать)

anonymous
()
Ответ на: комментарий от ovk48

Да не фиксятся они просто ни фига. Для фикса первого надо менять дизайн (отказываясь от for-comprehension, плагина продолжений, return и опционального break). Для фикса второго надо отказываться от идеологии «вызов комбинатора как посылка сообщения объекту». Там все настолько завязано. Как говорит мой друг: «поздно пить „Боржоми“, когда бочки закончились.»

Я тут пару раз приводил совместное видео Одерского, Сайма и Армстронга. Так они там прямо говорили, что язык, находящийся в использовании, очень сложно менять. Менять легко, пока его почти никто не использует. Этот этап для Scala давно пройден.

dave ★★★★★
()
Ответ на: комментарий от dave

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

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

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

dave ★★★★★
()
Ответ на: комментарий от anonymous

Будущее за гибридными языками

CL опять опередил своё время.

ugoday ★★★★★
()
Ответ на: комментарий от vertexua

как и твиттер о твоем авторитетном мнении

кто есть ты?

gensym ★★
()
Ответ на: комментарий от anonymous

Scala: (пожимает плечами и продолжает обслуживать)

Сказал Scala-фанбой, и отхлебнул борщика.

Мой Х длиннее, чем твой Y. Ога.

gensym ★★
()

Правильное ООП в Eiffel. Остальное все ересь разной степени ложности.

anonymous
()
Ответ на: комментарий от dave

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

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

То что я назвал наболело мне годами программирования на Scala на работе. Но я ни разу не столкнулся с тем что назвал ты

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

А я как раз столкнулся и с тем, и с другим. Особенно чувствовал нехватку первого (синтаксический сахар для монад). Просто катастрофически.

Нормальный синтаксический сахар существует в F#, но этого языка очень многие не знают, но это сугубо их проблема. Тот сахар - одна из самых сильных фишек F#. Еще хаскель хорош со своей нотацией do, но она в том виде, в каком существует, хороша именно для хаскеля. Скаловская for-comprehension не ровня нотации do. Был тут как-то один аноним, пытавшийся доказать обратное, но у него не получилось (завалился на фейковых переменных, а что говорить про поддержку паттерн-матчинга, if, while и for внутри такого сахара). Да, и в интернете видел «унылые и слабоватые» попытки поставить знак равенства. Это - одна из широко распространенных глупостей среди скальщиков.

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

Ну, и потом. Архитектурную кривизну я за версту чувствую. Благо, образование и практика позволяют мне это. Библиотека коллекций в Scala спроектирована не очень хорошо. У них там перебор, как с точки зрения теории, так и практики.

Кстати, Одерского корили и Сайм, и Армстронг, но сделали это намеком по-интеллигентному (их совместное видео) - там, где говорится про злоупотребление наследованием - чрезвычайно распространенный антипаттерн. Scala очень сильно поощряет этот антипаттерн благодаря трейтам.

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

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.