В одном из интервью Алан Кэй говорил о том, как они хотели развивать Smalltalk:
"... Our plan and our hope was that the next generation of kids would come along and do something better than Smalltalk around 1984 or so. We all thought that the next level of programming language would be much more strategic and even policy-oriented and would have much more knowledge about what it was trying to do. But a variety of different things conspired together, and that next generation actually didn't show Как я понимаю, желание развивать Smalltalk от "MS-DOS" до Unix way было еще в далеких 80-х, но не сложилось. Интервью: http://queue.acm.org/detail.cfm?id=1039523 6 марта 2012 г. 0:39 пользователь Sr Visor <[hidden email]> написал: > > Однако могу поделиться тем, что мне не нравится в Smalltalk (пользовался > только VW и Pharo): так мне проще сформулировать свой ответ. > Сразу отмечу, что это моё личное впечатление, и не стоит его воспринимать, > как нападки на наш любимый язык. > Моя цель не в этом. > > Мне очень симпатична идея образа, однако она несет в себе массу проблем, на > мой взгляд. > Во-первых, это аналог Фон-Неймановской модели: код и данные хранятся в одном > месте. Удобно, но и небезопасно: потерять данные очень просто. > Я не говорю тут о коде. Конечно, можно взять свежий образ и залить в него > все нужные пакеты заново, а написав небольшой скриптик на самом же > Smalltalk, это будет еще и крайне просто. Однако, что делать с данными - > считайте, что это мой первый вопрос. > > Во-вторых, и это опять касается образа, разделение объектов. То, о чем уже > многие успели написать. Мне не нравится, что Smalltalk однопользовательский. > Раз уж я приводил аналогию, то для этого случая - это MS-DOS. Доводы были > приведены другими вполне ясные: менять можно всё и, как следствие, о > сохранности тех же паролей от какого-нибудь репозитория в простейшем случае, > от учетных записей mail-клиентов или чего-то еще, речи не идет вовсе. > > На данный момент этим ограничиваются мои потребности. > Но я для того и написал в сообщество, чтобы услышать о других. > > Если мы разовьем мысли, каждый поделится своим мнением, я, возможно, > припомню что-то еще. > Но пока эта пара вопросов. > > понедельник, 5 марта 2012 г. 23:28:15 UTC+4 пользователь Sr Visor написал: >> >> >> Некоторые размышления, которые уже приведены, как раз подходят. :) >> >> суббота, 3 марта 2012 г. 10:23:25 UTC+4 пользователь Владимир Мусулайнен >> написал: >>> >>> Игорь, такая позиция она оправдывающаяся. >>> >>> Просьба к топик стартеру - привести размышления, которые он упомнал: >>> >>> "Тогда уж лучше привести размышления для Smalltalk, но к ним и >>> сведется >>> обсуждение, чего не хотелось изначально. " >>> >>> On 2 мар, 18:27, Igor Stasenko <[hidden email]> wrote: >>> > 2012/3/2 Sr Visor <[hidden email]>: >>> > >>> > > Нет. Перечитайте вопрос. Я спросил о том, видите ли Вы, известны ли >>> > > Вам, кажется ли и т.д. и т.п. >>> > > Вопрос о мнении. Вот Вы могли бы привести пример такого >>> > > использования, >>> > > в котором Вы же такие проблемы и видите. >>> > > Это был бы конструктивный комментарий. >>> > > Я могу задать и конкретный вопрос, но обсуждение пойдет в его ключе, >>> > > а >>> > > я хочу очертить круг возможных проблем. >>> > > Как это сделать, не спросив практиков, которые с этими самыми >>> > > проблемами и сталкиваются ? >>> > > Что тут может быть непонятного ?! :) >>> > >>> > Смаллтолк это открытая система. Изменения даже одного обьекта может >>> > привести к фатальным последствиям. >>> > Вот вам и круг проблем. >>> > Но на практике это не есть проблема. Опять-же по аналогии с >>> > реальностью.. (этот чертов целофановый пакет). >>> > вы же не задумываетесь каждый раз используя пакет, а вдруг что-то >>> > пойдет не так? И я думаю врядли обходите стороной людей несущих >>> > пакеты. >>> > >>> > Потому как безопасность под вашим полным контролем (ну или скажем так, >>> > на удовлетворительном уровне). >>> > Так же и здесь: Компьютер лишь выполняет вашу волю, а все остальное >>> > зависит от Вас. >>> > >>> > -- >>> > Best regards, >>> > Igor Stasenko. > > -- > http://groups.google.ru/group/sugr -- Best Regards Daniel Baskakov Project Manager, AggreGate SCADA/HMI Tibbo Technology Inc. -- http://groups.google.ru/group/sugr |
Ребят, ну для этого и создан жемстоун - мультипользовательская смолтолк платформа, масштабируемая, распределенная, с правами пользователей и т.д.
При этом язык там все тот же - смолтолк, объекты общаются через сообщения и ничего более. Остальные смолтолк системы ориентированы на другой спектр задач, как и обычные языки программирования. Конечно, интересно посмотреть, как подобные требования могут быть реализованы в фаре. И фара, на мой взгляд, идеальна для подобных экспериментов. 6 марта 2012 г. 13:43 пользователь Daniel Baskakov <[hidden email]> написал: В одном из интервью Алан Кэй говорил о том, как они хотели развивать Smalltalk: -- http://groups.google.ru/group/sugr |
6 марта 2012 г. 17:20 пользователь Denis Kudriashov <[hidden email]> написал:
-- Ребят, ну для этого и создан жемстоун - мультипользовательская смолтолк платформа, масштабируемая, распределенная, с правами пользователей и т.д. Интересно, а как реализован механизм посылки сообщений объектам которые расположены в другом образе, например арифметические операции с числами, сравнение строк? http://groups.google.ru/group/sugr |
Насколько я знаю, образ там один - это и есть база данных.
А к нему уже могут присоединятся множество виртуалок 6 марта 2012 г. 16:22 пользователь Nikolay Kleptsov <[hidden email]> написал:
-- http://groups.google.ru/group/sugr |
In reply to this post by Dennis Schetinin
5 марта 2012 г. 22:03 пользователь Dennis Schetinin <[hidden email]> написал:
Я имею в виду, что взаимодействие со смолтолк системой возможно только через тулзы. Главной тулзой при этом является компилятор. Без него вы не сможете выполнить код в воркспейсе, изменить метод в браузере и д.т. При авторизации компилятор можно настраивать в соответствии с правами пользователя. Например, если компилятор не будет видеть Object, пользователь никогда не сможет выполнить "Object new". Другие тулзы - браузеры, дебагеры, для них можно запретить видеть определенные классы/методы. Вобщем, не вижу проблем реализовать подобную логику оставаясь в рамках смолтолка -- http://groups.google.ru/group/sugr |
6 марта 2012 г. 16:59 пользователь Denis Kudriashov
<[hidden email]> написал: > Например, если компилятор не будет видеть Object, пользователь > никогда не сможет выполнить "Object new". Выполнить и скомпилировать - две большие разницы. Дмитрий -- http://groups.google.ru/group/sugr |
Для того, чтобы выполнить код, его нужно скомпилировать. Что тут не верно?
6 марта 2012 г. 19:00 пользователь Dmitry Matveev <[hidden email]> написал: 6 марта 2012 г. 16:59 пользователь Denis Kudriashov -- http://groups.google.ru/group/sugr |
In reply to this post by Dennis Schetinin
Не "ломая" виртуалку придется опереться на наследников ProtoObject-а у которых имеются списки разрешенных и требующих авторизацию методов. "Права" пользователя можно разместить в контексте процесса или в глобальной переменной. Один объект может иметь несколько прокси и каждый со своими правами доступа. Среди минусов этого способа будет замедление, защищается только один объект (не Smalltalk-система), глобальные переменные доступны для изменения. Хотя, если требуется "расшарить" некоторые объекты, вполне сгодится
-- http://groups.google.ru/group/sugr |
In reply to this post by Denis Kudriashov
2012/3/6 Denis Kudriashov <[hidden email]>:
> Для того, чтобы выполнить код, его нужно скомпилировать. Что тут не верно? > абсолютно верно. просто многие не видят вещей лежащих на поверхности. Ведь что произойдет при выполнении выражения Object new полностью зависит от компилятора. Поменяв компилятор я могу запретить прямой доступ к системе или ограничить его как угодно. > 6 марта 2012 г. 19:00 пользователь Dmitry Matveev <[hidden email]> > написал: > >> 6 марта 2012 г. 16:59 пользователь Denis Kudriashov >> <[hidden email]> написал: >> > Например, если компилятор не будет видеть Object, пользователь >> > никогда не сможет выполнить "Object new". >> >> Выполнить и скомпилировать - две большие разницы. >> >> Дмитрий >> >> -- >> http://groups.google.ru/group/sugr > > > -- > http://groups.google.ru/group/sugr -- Best regards, Igor Stasenko. -- http://groups.google.ru/group/sugr |
In reply to this post by Nikolay Kleptsov
2012/3/6 Nikolay Kleptsov <[hidden email]>:
> >> >> >> Но два образа, мне кажется, не снимают проблему для второй упомянутой >> задачи: Smalltalk в качестве операционки. Как там можно обойтись без >> "ломания" виртуалки? > > > Не "ломая" виртуалку придется опереться на наследников ProtoObject-а у > которых имеются списки разрешенных и требующих авторизацию методов. "Права" > пользователя можно разместить в контексте процесса или в глобальной > переменной. Один объект может иметь несколько прокси и каждый со своими > правами доступа. Среди минусов этого способа будет замедление, защищается > только один объект (не Smalltalk-система), глобальные переменные доступны > для изменения. Хотя, если требуется "расшарить" некоторые объекты, вполне > сгодится > >> >> >> Best regards, >> Dennis Schetinin >> Sent with Sparrow >> >> On Monday, 5 March 2012 г. at 1:37, Igor Stasenko wrote: >> >> 2012/3/4 Dennis Schetinin <[hidden email]>: >> >> On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote: >> >> 2012/3/4 Dennis Schetinin <[hidden email]>: >> >> У C(++) нет среды. Поэтому все всегда делается через кастомный UI. >> Возможность использовать среду Smalltalk для того, чтобы дать возможность >> пользователям практически как угодно "перекраивать" приложение под себя, >> на >> мой взгляд, является огромным плюсом. Можно ли разграничить доступ, >> оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу >> "банального" -- раскройте мне глаза. >> >> да, конечно хочется чтоб все у нас было, но нам за это ничего не было :) >> в других языках вообще речь не идет о среде, и ниче, справляются. >> >> я бы сначала спросил, а кто потенциальный пользователь вашей системы. >> если это программист, >> то закрывая ему доступ вы только делаете ему медвежью услугу. >> если же это пользователь рода "а где на клавиатуре any key?" то не >> вижу смысла вообще >> открывать ему доступ к среде. только напугаете человека, а толку >> все-равно не будет. >> >> В том-то и дело, что у системы есть и "простые пользователи" (в том числе >> админы) -- с этими все просто. Но есть и "разработчики" -- те, которые >> определенным образом настраивают систему. В существующей (не на смоллтоке) >> системе настройка -- некоторая "пограничная" задача: значительная часть >> работы делается через UI (но здесь сделан свой построитель интерфейсов, >> несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к >> программированию и добавлении новых фич). >> >> тяжело мне представить добавление фич не имея полного доступа к системе. >> для меня такое неприемлемо. Ибо выглядит это как: вот умные дяди >> построили мне песочницу и >> за меня решили что мне можно а что нельзя.. вот и сижу леплю тут пасочки. >> Как я и говорил ранее это медвежья услуга для разработчика. >> Даже если Вы гений, Вы все-равно не сможете предугадать что может >> понадобиться для решения той или иной задачи. >> Всегда найдется ситуация, когда API предоставленный вами будет >> препятствовать простым решениям. >> Собственно с любым API с закрытым исходным кодом так и происходит. И >> собственно это одна из причин почему я выбрал смаллталк. >> Надоело в песочницах сидеть, знаете-ли :) >> >> Smalltalk позволил бы убрать эту границу, отказаться от сложных >> инструментов >> (типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому >> кодом... в общем, очень серьезно упростить систему. Но тогда такой >> разработчик >> сможет получить доступ к тем кускам, к которым доступ им должен быть >> ограничен. Не могу сказать, что сейчас это разграничение сделано в полной >> мере, но хотелось бы... >> >> >> Я конечно понимаю, что часто хочеться усидеть на двух стульях. >> А что вам мешает контролировать/использовать другой компилятор для >> компиляции кода из песочницы? Равно как и его выполнение. Тут даже не >> надо курочить ВМ. >> Решение как и в других средах - есть среда с "закрытым" кодом, и есть >> скриптовый язык для игр в пасочки >> (3DStudio Max, 1C etc).. и все это конечно легко реализовать в >> смаллтолке, было бы желание. >> >> >> ...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий >> идентификатор пользователя и (возможно, на уровне виртуалки) запретить >> получение сообщений при нехватке прав на их посылку? >> >> на таком низком уровне? имхо, это не сделает систему более безопасной. >> >> пути взлома сведутся к банальному поиску нужного идентификатора. >> >> Для этого должны быть права на "поиск" и на подмену идентификатора. Нет? >> >> >> ну предпосылка была что мол "можно посылать сообщения любым обьектам". >> с такой предпосылкой на поиск прав не нужно :) >> >> >> -- >> Best regards, >> Igor Stasenko. >> >> >> -- >> http://groups.google.ru/group/sugr >> >> >> >> >> -- >> Best regards, >> Igor Stasenko. >> >> -- >> http://groups.google.ru/group/sugr >> >> >> -- >> http://groups.google.ru/group/sugr > > > -- > http://groups.google.ru/group/sugr -- Best regards, Igor Stasenko. -- http://groups.google.ru/group/sugr |
Да, действительно, один авторизуется, а другой(ие) будут пользоваться его правами http://groups.google.ru/group/sugr |
In reply to this post by Denis Kudriashov
6 марта 2012 г. 19:47 пользователь Denis Kudriashov
<[hidden email]> написал: > Для того, чтобы выполнить код, его нужно скомпилировать. Что тут не верно? > Всё верно, только вот после того, как код скомпилировали, его можно выполнить ещё, ещё и ещё раз. Дмитрий -- http://groups.google.ru/group/sugr |
In reply to this post by Igor Stasenko
6 марта 2012 г. 19:50 пользователь Igor Stasenko <[hidden email]> написал:
> 2012/3/6 Denis Kudriashov <[hidden email]>: >> Для того, чтобы выполнить код, его нужно скомпилировать. Что тут не верно? >> > абсолютно верно. > просто многие не видят вещей лежащих на поверхности. > > Ведь что произойдет при выполнении выражения > Object new > > полностью зависит от компилятора. Игорь, ну вы же сами прекрасно знаете про #become: :) Дмитрий -- http://groups.google.ru/group/sugr |
2012/3/6 Dmitry Matveev <[hidden email]>:
> 6 марта 2012 г. 19:50 пользователь Igor Stasenko <[hidden email]> написал: >> 2012/3/6 Denis Kudriashov <[hidden email]>: >>> Для того, чтобы выполнить код, его нужно скомпилировать. Что тут не верно? >>> >> абсолютно верно. >> просто многие не видят вещей лежащих на поверхности. >> >> Ведь что произойдет при выполнении выражения >> Object new >> >> полностью зависит от компилятора. > > Игорь, ну вы же сами прекрасно знаете про #become: :) > Эхх.. возвращаемся к п.1. если я контролирую компилятор, как вы думаете что произойдет если пользователь попросит выполнить Object become: nil ? возвращаясь к тому что я сказал ранее: контроль точек входа. если в данном случае точка входа только одна - workspace то имея компирятор я могу сделать все чтоб защитить систему. И еще. Имейте ввиду что хотя мы говорим о том, что в системе можно послать любое сообщение любому обьекту, на самом деле это далеко не так. Пользователь не может напрямую посылать сообщения. Он использует воркспейс, бровзер etc.. Посмотрите на вещи как они есть: Не было у пользователя прямого доступа и никогда не будет. Поэтому вопрос что надо сделать чтоб сделать систему более "защищенной" полностью зависит от широты вашых фантазий (ну и мышления конечно :). > Дмитрий > > -- > http://groups.google.ru/group/sugr -- Best regards, Igor Stasenko. -- http://groups.google.ru/group/sugr |
In reply to this post by Denis Kudriashov
Образ в Gemstone это много уровневая система. Верхний уровень образ статический - база на диске, каждая живая виртуальная машина это тоже полноценный образ, но существующий только в памяти, созданый и существующий по подобию образа верхнего уровня. Каждый пользователь имеет свой образ ("взгляд") на кусочек полного образа. Один и тот же пользователь может создать и работать в нескольких виртуальных машинах/образах на одной и тоже или разных машинах. Уровень доступа пользователя к системным инструментам основан на привилегиях и начинается от может все до только посмотреть. Напрямую посылка сообщения обекту в другой виртуальной машине не осуществима, да и бессмыслена по большому счету, но разумеется есть утилиты которые облегчают решение проблем много задачности.
2012/3/6 Denis Kudriashov <[hidden email]> Насколько я знаю, образ там один - это и есть база данных. -- http://groups.google.ru/group/sugr |
Это очень интересно. К сожалению, времени не хватает исследовать эту технологию.
6 марта 2012 г. 21:11 пользователь Alexander Kogan <[hidden email]> написал: Образ в Gemstone это много уровневая система. Верхний уровень образ статический - база на диске, каждая живая виртуальная машина это тоже полноценный образ, но существующий только в памяти, созданый и существующий по подобию образа верхнего уровня. Каждый пользователь имеет свой образ ("взгляд") на кусочек полного образа. Один и тот же пользователь может создать и работать в нескольких виртуальных машинах/образах на одной и тоже или разных машинах. Уровень доступа пользователя к системным инструментам основан на привилегиях и начинается от может все до только посмотреть. Напрямую посылка сообщения обекту в другой виртуальной машине не осуществима, да и бессмыслена по большому счету, но разумеется есть утилиты которые облегчают решение проблем много задачности. -- http://groups.google.ru/group/sugr |
In reply to this post by Sr Visor
Насколько я могу судить, речь в конце-концов идет о вариантах безопасной реализации рефлексии.
Ну там, смоллтолк - рефлексивный, то есть можно везде залезть и все порушить. Как бы сделать так, чтобы и рефлексию сохранить, и чтоб образ сломать было нельзя. Ясно, что вместо смоллтолка можно подставить любой рефлексивный язык - ту же яву. Увы, я не обладаю опытом в этом вопросе. Но вот на что я хотел обратить внимание - как раз сейчас в Лилле в INRIA открылось место для PhD в точности, насколько я понимаю, по этому вопросу: ============= INRIA has a new call for PhD Student positions. =============Description ============ To support the creation and evolution of complex systems, dynamic languages provide support for reflection. A reflective system contains a model of itself to enable runtime change: if we change the model, the system changes and vice versa. Reflection allows the programmer to do any kind of change at runtime, even those that render the system useless or breach any kind of security guarantees. Reflection is an established research theme and has seen a lot of work over the last decades. The question of how to control reflection and related that of secure reflective systems in general has not seen much research activity. The goal of this PhD is to propose a new secure reflective language kernel for dynamic languages. The following points should be explored: - Study existing models of security. - Study existing reflective systems and especially prior work on security and reflection. - Propose a new, secure model of reflection. - Implemented the model in a dynamic, object-oriented language. References =========== - Jean-Baptiste Arnaud, Marcus Denker, Stéphane Ducasse, Damien Pollet, Alexandre Bergel, and Mathieu Suen. Read-Only Execution for Dynamic Languages. In Proceedings of the 48th International Conference Objects, Models, Components, Patterns (TOOLS'10), Malaga, Spain, 2010. - Marcus Denker, Mathieu Suen, and Stéphane Ducasse. The Meta in meta-object architectures. In Proceedings of TOOLS EUROPE 2008, volume 11 of LNBIP, pages 218–237, 2008. - Oscar Nierstrasz, Alexandre Bergel, Marcus Denker, Stéphane Ducasse, Markus Gaelli and Roel Wuyts, “On the Revival of Dynamic Languages,” Proceedings of Software Composition 2005, Thomas Gschwind and Uwe Aßmann (Eds.), vol. 3628, LNCS 3628, 2005, pp. 1-13 - Mark S. Miller and Jonathan S. Shapiro. Paradigm Regained: Abstraction Mechanisms for Access Control. In Proceedings of the 8th Asian Computing Science Conference, p. 224-242, 2003. Skills and Profile ==================== - You must hold a Master's in computer science, control engineering, mathematics, scientific computation or an equivalent diploma. - Nationality is not taken into consideration. - Knowledge in programming language design - Object-oriented programming with knowledge of Smalltalk пятница, 2 марта 2012 г. 7:51:25 UTC+2 пользователь Sr Visor написал: Приветствую всех увлекающихся Smalltalk !-- http://groups.google.ru/group/sugr |
Free forum by Nabble | Edit this page |