Fwd: Оповещение Google - rsug

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
65 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
правильно Strongtalk


24 июля 2013 г., 15:35 пользователь Nikolay Kleptsov <[hidden email]> написал:
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
In reply to this post by Nikolay Kleptsov
Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:
Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
Smalltalk - живая среда. Каждый метод компилируется отдельно. Очень трудно отследить какой будет тип ответа из метода.


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:
как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
In reply to this post by Nikolay Kleptsov
Я прямо теряюсь, что вам ответить. Мы вообще о разных вещах говорим, похоже.
Обычно статически типизированные программы как раз быстрее. И проверка типов идет только во время компиляции.
"Очень трудно" это вам так кажется, а на практике это ничем не отличается от компиляции в .o файлы разных кусков одной программы на C++.

2013/7/24 Nikolay Kleptsov <[hidden email]>
как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
In reply to this post by Nikolay Kleptsov
Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:
Smalltalk - живая среда. Каждый метод компилируется отдельно. Очень трудно отследить какой будет тип ответа из метода.


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 



--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
Про вывод типов вы не слышали, я чувствую.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 



--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
In reply to this post by Nikolay Kleptsov
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:
Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:
Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
Единственный вариант, кому нужна строгая типизация - это добавление в качестве отладочного инструмента, который можно включить и отключить.
На exept.de (Smalltalk/x) есть статья про скорость, а также ее сравнительный анализ. Smalltalk в этом отношении довольно шустрый.
Интересен миф, что динамическая типизация замедляет работу системы. В приложениях с высокой степенью полиморфизма динамическая типизация выгоднее и быстрее.


24 июля 2013 г., 15:54 пользователь Nikolay Kleptsov <[hidden email]> написал:
Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:

Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
Я не хочу сказать, что языки с динамической типизацией медленнее, если что. Это объективно не всегда так. Но как правильно статически-типизированные языки почему-то быстрее.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Единственный вариант, кому нужна строгая типизация - это добавление в качестве отладочного инструмента, который можно включить и отключить.
На exept.de (Smalltalk/x) есть статья про скорость, а также ее сравнительный анализ. Smalltalk в этом отношении довольно шустрый.
Интересен миф, что динамическая типизация замедляет работу системы. В приложениях с высокой степенью полиморфизма динамическая типизация выгоднее и быстрее.


24 июля 2013 г., 15:54 пользователь Nikolay Kleptsov <[hidden email]> написал:

Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:

Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
Вообще нас опять не туда прет совершенно. У меня претензий к быстродействию Smalltalk нет, если что.


2013/7/24 Semyon Novikov <[hidden email]>
Я не хочу сказать, что языки с динамической типизацией медленнее, если что. Это объективно не всегда так. Но как правильно статически-типизированные языки почему-то быстрее.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Единственный вариант, кому нужна строгая типизация - это добавление в качестве отладочного инструмента, который можно включить и отключить.
На exept.de (Smalltalk/x) есть статья про скорость, а также ее сравнительный анализ. Smalltalk в этом отношении довольно шустрый.
Интересен миф, что динамическая типизация замедляет работу системы. В приложениях с высокой степенью полиморфизма динамическая типизация выгоднее и быстрее.


24 июля 2013 г., 15:54 пользователь Nikolay Kleptsov <[hidden email]> написал:

Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:

Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Nikolay Kleptsov
Что-то не так с тестами. Ну не в 10-30 раз медленнее.


24 июля 2013 г., 16:25 пользователь Semyon Novikov <[hidden email]> написал:
Вообще нас опять не туда прет совершенно. У меня претензий к быстродействию Smalltalk нет, если что.


2013/7/24 Semyon Novikov <[hidden email]>
Я не хочу сказать, что языки с динамической типизацией медленнее, если что. Это объективно не всегда так. Но как правильно статически-типизированные языки почему-то быстрее.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Единственный вариант, кому нужна строгая типизация - это добавление в качестве отладочного инструмента, который можно включить и отключить.
На exept.de (Smalltalk/x) есть статья про скорость, а также ее сравнительный анализ. Smalltalk в этом отношении довольно шустрый.
Интересен миф, что динамическая типизация замедляет работу системы. В приложениях с высокой степенью полиморфизма динамическая типизация выгоднее и быстрее.


24 июля 2013 г., 15:54 пользователь Nikolay Kleptsov <[hidden email]> написал:

Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:

Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Igor Stasenko
Оверквотинг порезан.

Хочу добавить свои 5 копеек.

Вся проблема с статической типизацией, что она требует более полного описания
системы правил на каждом этапе разработки.
В идеале, любая программа должна иметь наиболее полную и естесвенно
непротиворечивую
систему правил по которой она работает.
Но написание самого кода собственно и есть процесс формирования этой
системы правил.
Что происходит, когда компилятор требует от вас то, о чем вы еще не
подумали и что еще вам самим непонятно? Вам приходиться
перестраиваться под него, чтобы его удовлетворить.
И вот получается, что при написании программы вам вместо формирования
своих правил, приходиться отвлекаться на занудство компилятора.
И этот диктат очень сильно влияет на конечный результат.
Простой пример: попробуйте унаследовать интерфейс в Жабе..
и допустим что на данный момент ваш код вызывает только один (1) метод
этого интерфейса,
тогда как интерфейс описует 10. Однако компилятор в жизни не отпустит
вас пока вы не накопи-пастите все 10 методов.

Работая с С++ я очень часто с сталкивался с подобным: я хочу чтоб было
вот так, а компилятор (после чесания своей сверх-умной головы
несколько минут) выдает мне ошибку и говорит садись двойка.
В результате, все-равно я делаю как хотел изначально, но только после
пары часов упрашивания компилятора не выдавать ошибку.

Более того, очень важное отличие: в смаллтолке ошибка это норма.  На
самом деле такое понятие как "ошибка" даже не определена на уровне
языка. Конечно за исключением ошибок синтаксиса, но с учетом насколько
прост синтаксис это никогда не вызывает головной боли.
Ошибки в смаллтолке определены как отдельная библиотека, которой можно
пользоваться, а можно и полностью игнорировать.
Что такое ошибка, а что нет полностью отдано на суд разработчика.
То-есть не система определяет что есть ошибка в коде/программе, а
человек.
А это значит, что мне для описания своего свода правил ничего не
мешает. (окромя семантики языка которая зашита намертво в ВМ :) )

--
Best regards,
Igor Stasenko.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.


Reply | Threaded
Open this post in threaded view
|

Re: Fwd: Оповещение Google - rsug

semka.novikov
Отличный текст, спасибо!
Совершенно справедливое замечание по поводу процесса формирования требований во время написания кода.

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

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

Dennis Schetinin
In reply to this post by Nikolay Kleptsov
К слову, Smalltalk и так строго типизирован.

Статические типы (опциональные) не так сложно (не сказать, просто) ввести в Smalltalk. Ведь тип — это всего лишь "сопроводительная" информация к объекту, добавить такие метаданные — совсем не проблема. 

Автоматический вывод типов — существует уже в нескольких воплощениях: начало я видел в статьях еще 80-х годов, лет пять–десять назад запомнился RoelTyper, в прошлом и в этом году в GSoC-е участвуют соответствующие проекты. Поиск по "Smalltalk type inference" дает массу интересных ссылок, включая совсем свежую статью [http://pleiad.dcc.uchile.cl/papers/2013/allendeAl-scp2013.pdf]. В общем, там наверняка куча проблем, но не все так безнадежно.

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

Про организацию проверки правильности программ я вообще не припомню чтобы слышал — нужно это вообще в Smalltalk-е?

А попытаться увеличить скорость выполнения программ — вот это действительно интересная задача… и очень сложная, как я понимаю, при современном устройстве того же Pharo. Но, возможно, в этом направлении тоже идет работа? 


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 14:02 пользователь Nikolay Kleptsov <[hidden email]> написал:
Единственный вариант, кому нужна строгая типизация - это добавление в качестве отладочного инструмента, который можно включить и отключить.
На exept.de (Smalltalk/x) есть статья про скорость, а также ее сравнительный анализ. Smalltalk в этом отношении довольно шустрый.
Интересен миф, что динамическая типизация замедляет работу системы. В приложениях с высокой степенью полиморфизма динамическая типизация выгоднее и быстрее.


24 июля 2013 г., 15:54 пользователь Nikolay Kleptsov <[hidden email]> написал:

Конечно можно совершить насилие над Smalltalk добавив привязку к типам. Придется перелопачивать всю среду почти каждый объект. Сколько времени потребуется на отладку... Нету даже 50-ти процентной уверенности, что получится что хорошее.


24 июля 2013 г., 15:51 пользователь Semyon Novikov <[hidden email]> написал:

Потому что его бросили поддерживать, я об этом и пишу.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Почему же тогда не используют Strongtalk - судя по сайту высокоэффективный яз программирования


24 июля 2013 г., 15:45 пользователь Nikolay Kleptsov <[hidden email]> написал:

Если только не указать какой тип будет возвращать каждый метод


24 июля 2013 г., 15:43 пользователь Nikolay Kleptsov <[hidden email]> написал:

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


24 июля 2013 г., 15:41 пользователь Nikolay Kleptsov <[hidden email]> написал:

как можно на этапе компиляции проверить, если присвоение переменной происходит в активное время, а присвоить к переменной можно любой объект.


24 июля 2013 г., 15:37 пользователь Semyon Novikov <[hidden email]> написал:

Что же вы такое говорите? Статическая проверка типов работает во время компиляции, а не во время присваивания чего-то куда-то.


2013/7/24 Nikolay Kleptsov <[hidden email]>
Введение статической типизации в Smalltalk уменьшит быстродействие. Проверять тип придется на этапе присвоения значения переменной. Хотя можно добавить как инструмент отладки, который можно при необходимости отключать. Если жизненно необходим контроль типов.
С другой стороны в Smalltalk динамическая (я бы даже назвал безтиповая) типизация, является основой языка, как и полиморфизм.
Добавив контроль типов, Smalltalk превратится в Strontalk. Какова судьбы этого языка всем видно как и эксперименты в этом направлении.


24 июля 2013 г., 14:39 пользователь Dennis Schetinin <[hidden email]> написал:

Лямбды без HM-типов возможны? Значит язык изначально не минимален. Нет?

А каков "голый" синтаксис Haskell? Я просто не помню деталей, но было примерно так: человек пару рассказывал про "основной" Haskell. Потом сказал: еще есть вот такая фишка, но для этого нужна специальная какая-то версия, так как мой компилятор это не поддерживает… и так пару–тройку раз про основы… Могу наврать, конечно… Мог и он наврать, но у меня такое впечатление осталось. Оно ошибочно?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 12:29 пользователь Semyon Novikov <[hidden email]> написал:

Ну дак в хаскеле всего две сущности: лямбда исчисление и HM-типы. Все.
Синтаксис тут вообще ни при чем, он там тривиальный довольно. Единственное отсутпление в синтаксисе это сахар для монадических вычислений. Его можно сравнить с сахаром вида #{} в St.


2013/7/24 Dennis Schetinin <[hidden email]>
Как не усложняет?! Чем меньше в системе компонент, тем она проще? Нет? Я говорю о сложности самой системы.

Но хаскель ведь должен расширять свой синтаксис для добавления новых фич, нет?


--

Best regards,


Dennis Schetinin



24 июля 2013 г., 11:38 пользователь Semyon Novikov <[hidden email]> написал:

Я всеми руками и ногами за развитие идеи Pluggable Typesystems. Но что-то там пока все глухо.
А вот что система типов ложится в основу языка на самом деле его совершенно не усложняет, она просто меняет базис.

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

Вот в Scala действительно добавляют фичи, которые просто понравились.


2013/7/24 Denis Kudriashov <[hidden email]>
24 июля 2013 г., 8:45 пользователь Dennis Schetinin <[hidden email]> написал:

Например, что касается типов. (Судя по всему, разговор о строгой типизации в соседней ветке близок к финалу. Хотя прямого ответа на поставленный вопрос "так, стоит оно того или нет?" я в явном виде и не получил, но понимаю, что он близок к утвердительному). Я вполне согласен, что дополнительная мета-информация об объектах (в том числе из типизация) — это весьма полезный инструмент. Я вот только не согласен, что она нужна всегда и везде, что система должна отказываться работать без этих данных; что она должна быть в основе языка, усложняя его. Поэтому я бы хотел видеть это как дополнительный подключаемый модуль, реализующий типы в виде "подсказок" (hint-ов) программисту (для контроля правильности программы, для проведения рефакторинга, помощи при написании кода и т.п.) и системе (для повышения производительности, но, опять же, с "позволения" программиста). Жизнь не позволяет не только самому плотно заняться реализацией этих идей, но даже и отслеживанием положения дел (идеи, конечно, не новые, был уже ряд попыток что-то подобное сделать даже в Smalltalk-е) — не хотят за это платить (или я не в состоянии найти такие источники) :)   … Но именно этот подход мне кажется наиболее перспективным.

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

+1


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 




--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 


--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Fwd: Оповещение Google - rsug

Igor Stasenko
In reply to this post by semka.novikov
2013/7/24 Semyon Novikov <[hidden email]>:

> Отличный текст, спасибо!
> Совершенно справедливое замечание по поводу процесса формирования требований
> во время написания кода.
>
> Что происходит, когда компилятор требует от вас то, о чем вы еще не
> подумали и что еще вам самим непонятно? Вам приходиться
> перестраиваться под него, чтобы его удовлетворить.
>
> А вот это уже лукавство, попытка удовлетворить компилятор это тревожный
> звоночек. Дело в том, что компилятор сам по себе не понимает, что вы пишете,
> но он понимает как работает то, что вы уже описали. Если вы начинаете
> противоречить самому себе -- он справедливо возмутится. То есть тактика
> "компилятор ругается, кастану тип" она проигрышна, потому что не компилятор
> нужно удовлетворять, а непротиворечивость модели данных.
> Я еще раз повторю, что C++ и Джава в контексте дискуссии это не те системы
> статической типизации о которых я говорил.
>

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

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

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

К слову о Strongtalk и типах: действительно на начальном этапе
разработки планировалось
введение "мягкой" статики. Но как оказалось в последствии, после
реализации JIT, надобность
требовать от разработчика выводить типы в ручную и помечать ими методы
и переменные совершенно лишняя, а виртуальная машина сама эффективно с
этим справляется.
В этом смысле Google Dart - прямой наследник Strongtalk-а.
Позиционируется как компромисс между любителями статики и динамики. Но
так же как и в
Strongtalk-е они говорят: вы конечно можете помечать все что видите
типами. Однако на скорости
выполнения это не скажеться. Единственное в чем может быть
преимущество это статический анализ кода, но это уже не основное
требование системы, а как дополнитеная фича.



--
Best regards,
Igor Stasenko.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.


Reply | Threaded
Open this post in threaded view
|

Re: Fwd: Оповещение Google - rsug

Dennis Schetinin
К слову о Strongtalk и типах: действительно на начальном этапе
разработки планировалось
введение "мягкой" статики. Но как оказалось в последствии, после
реализации JIT, надобность
требовать от разработчика выводить типы в ручную и помечать ими методы
и переменные совершенно лишняя, а виртуальная машина сама эффективно с
этим справляется.
В этом смысле Google Dart - прямой наследник Strongtalk-а.
Позиционируется как компромисс между любителями статики и динамики. Но
так же как и в
Strongtalk-е они говорят: вы конечно можете помечать все что видите
типами. Однако на скорости
выполнения это не скажеться. Единственное в чем может быть
преимущество это статический анализ кода, но это уже не основное
требование системы, а как дополнитеная фича.

А вот это интересно. Где можно увидеть подробности? 

Я когда-то читал обратное, и эта мысль выглядит достаточно логичной: например, можно улучшить производительность за отказа от динамического поиска реализации и замены ее встраиванием там, где типы говорят, что это не нужно. Мне видится, что "не нужно" бывает очень часто в наиболее ключевых местах, типа Boolean-овских базовых методов (и за счет введения типов можно было бы отказаться от "грязных хаков" по оптимизиации в ВМ. Сейчас не могу сообразить, но интуитивно кажется, что типы (и/или другие подсказки со стороны программиста) могут помочь оптимизировать производительность и другими способами… Нет?


--

Best regards,


Dennis Schetinin



25 июля 2013 г., 3:02 пользователь Igor Stasenko <[hidden email]> написал:
2013/7/24 Semyon Novikov <[hidden email]>:
> Отличный текст, спасибо!
> Совершенно справедливое замечание по поводу процесса формирования требований
> во время написания кода.
>
> Что происходит, когда компилятор требует от вас то, о чем вы еще не
> подумали и что еще вам самим непонятно? Вам приходиться
> перестраиваться под него, чтобы его удовлетворить.
>
> А вот это уже лукавство, попытка удовлетворить компилятор это тревожный
> звоночек. Дело в том, что компилятор сам по себе не понимает, что вы пишете,
> но он понимает как работает то, что вы уже описали. Если вы начинаете
> противоречить самому себе -- он справедливо возмутится. То есть тактика
> "компилятор ругается, кастану тип" она проигрышна, потому что не компилятор
> нужно удовлетворять, а непротиворечивость модели данных.
> Я еще раз повторю, что C++ и Джава в контексте дискуссии это не те системы
> статической типизации о которых я говорил.
>

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

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

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

К слову о Strongtalk и типах: действительно на начальном этапе
разработки планировалось
введение "мягкой" статики. Но как оказалось в последствии, после
реализации JIT, надобность
требовать от разработчика выводить типы в ручную и помечать ими методы
и переменные совершенно лишняя, а виртуальная машина сама эффективно с
этим справляется.
В этом смысле Google Dart - прямой наследник Strongtalk-а.
Позиционируется как компромисс между любителями статики и динамики. Но
так же как и в
Strongtalk-е они говорят: вы конечно можете помечать все что видите
типами. Однако на скорости
выполнения это не скажеться. Единственное в чем может быть
преимущество это статический анализ кода, но это уже не основное
требование системы, а как дополнитеная фича.



--
Best regards,
Igor Stasenko.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.

Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.



--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: [RSUG] Fwd: Оповещение Google - rsug

sdfgh153
In reply to this post by Dennis Schetinin



2013/7/25 Dennis Schetinin <[hidden email]>
К слову, Smalltalk и так строго типизирован.

Да, это типичная ошибка, путать strong typing с static typing.
 

Статические типы (опциональные) не так сложно (не сказать, просто) ввести в Smalltalk. Ведь тип — это всего лишь "сопроводительная" информация к объекту, добавить такие метаданные — совсем не проблема. 

Сами типы сделать просто, сложнее сделать вывод типов и грамотную систему типов в принципе.
 
Автоматический вывод типов — существует уже в нескольких воплощениях: начало я видел в статьях еще 80-х годов, лет пять–десять назад запомнился RoelTyper, в прошлом и в этом году в GSoC-е участвуют соответствующие проекты. Поиск по "Smalltalk type inference" дает массу интересных ссылок, включая совсем свежую статью [http://pleiad.dcc.uchile.cl/papers/2013/allendeAl-scp2013.pdf]. В общем, там наверняка куча проблем, но не все так безнадежно.

Интересно, спасибо. RoelTyper у меня полтора года назад не захотел работать просто никак.
 

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

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

Собственно основная задача статической типизации — проверка корректности. Как так не слышал? :)
 

А попытаться увеличить скорость выполнения программ — вот это действительно интересная задача… и очень сложная, как я понимаю, при современном устройстве того же Pharo. Но, возможно, в этом направлении тоже идет работа? 

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

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу Russian Smalltalk User Group.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес [hidden email].
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 
1234