*nix: можно прервать SIGSEGV (обычно, этот сигнал повышен прежде, чем отказать), и сохраните информацию в файл. (помимо базового файла, который можно использовать для отладки использования gdb, например).
победа: Проверьте это из MSDN.
можно также посмотреть на хромовый код Google, чтобы видеть, как он обрабатывает катастрофические отказы. Это имеет хороший механизм обработки исключений.
В Python "базовые" конструкции, такие как if / else
, логические операторы с коротким замыканием, а циклы являются частью самого языка. В Smalltalk это все просто сообщения. В этом смысле, хотя и Python, и Smalltalk согласны с тем, что «все является объектом», Smalltalk идет дальше, утверждая, что «все является сообщением»
[EDIT] Некоторые примеры.
Условный оператор в Smalltalk:
((x > y) and: [x > z])
ifTrue: [ ... ]
ifFalse: [ ... ]
Обратите внимание, что и:
- это просто сообщение на Boolean
(само создается в результате передачи message >
to x
), а второй аргумент и:
не простое выражение, а блок, позволяющий выполнять ленивое (т.е. короткое замыкание) вычисление . Это создает другой объект Boolean
, который также поддерживает сообщение ifTrue: ifFalse:
, принимая еще два блока (т. Е. Лямбды) в качестве аргументов и выполняя один или другой в зависимости от значения логическое.
Как новичка в smalltalk, меня больше всего поражают две вещи: система, основанная на изображениях, и это отражение повсюду. Эти два простых факта, по-видимому, приводят к возникновению всего остального крутого в системе:
Все вышеперечисленное начинает круто складываться:
Языковой аспект часто не так важен, и многие языки довольно одинаковы ,
Насколько я понимаю, Python и Smalltalk совместно используют ООП идеалы ... но очень разные по своей реализации и мощности представленного языкового интерфейса.
реальная ценность заключается в том, что тонкие различия в синтаксисе позволяют с точки зрения реализации . Взгляните на Self и другие мета-тяжелые языки.
Не обращайте внимания на синтаксис и непосредственную семантику на то, что тонкие различия позволяют делать реализации.
Например:
Все в Smalltalk-80 доступно для модификации из запущенной программы
Какие различия между Python и Smalltalk допускают более глубокие манипуляции, если таковые имеются? Как язык позволяет реализовать компилятор / среду выполнения?
Smalltalk исторически имел потрясающую встроенную среду IDE. Я скучал по этой среде разработки на многих языках.
Smalltalk также обладает прекрасным свойством, которое обычно присутствует в живой системе. Вы начинаете с чистого листа и начинаете что-то изменять. По сути, это система постоянного хранения объектов. При этом это и хорошо, и плохо. То, что вы используете, является частью вашей системы и частью того, что вы поставляете. Система может быть довольно хорошо настроена перед распространением. Обратной стороной является то, что в системе есть все, что вы запускаете, как часть того, что вы поставляете. Вы должны быть очень осторожны с упаковкой для распространения.
Итак, как уже было сказано, я давно не работал со Smalltalk (около 20 лет). Да, я знаю, веселые времена для тех, кто занимается математикой. Smalltalk - приятный язык, на нем интересно программировать, интересно учить, но я обнаружил, что это немного сложно доставлять вещи.
Наслаждайтесь игрой с ним, если вы это сделаете. Я играл с Python и мне это нравилось.
Джейкоб