October 16th, 2009

with Cat The Cat

St.

Не который сокращение от Saint, а который сокращение от Smalltalk.

Его пользователи упёрты. ;)

Чего стоит заклинание "у нас есть Strongtalk!" сразу после упоминания типов данных.

Моё-то знакомство со St было коротким и не всегда непосредственным.

Однажды я реализовал объектную систему на Форте в стиле ObjectiveC/Oberon/Smalltalk в попытке улучшить скорость моего программирования. Меня, однако, эта штука не защитила ни от одной ошибки, всё так же приходилось тестировать программы.

В другой раз я скачал Squeak и был поражён отличием его GUI от всего, что я знаю. Я не смог завершить ни одного действия, основываясь только на моём понимании оконного интерфейса (Windows). Я хотел понять, можно ли его приспособить для программирования банкоматов, улучшит ли он наш процесс, и несмотря на то, что я не отбросил его сразу, а отложил на потом, ответ был очевиден.

После второго столкновения я стал похохатывать при упоминании St. Это не очень хороший симптом, но удержаться я не могу. ;)

Плюс, ещё я как-то прочитал The ZINC Experiment, в которой была глава Toplevels considered harmful.

Теперь всё. Я точно знаю, почему St никогда больше не выстрелит. Это не бином Ньютон, всё очень просто.

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

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

Языки со строгой типизацией позволяют думать в их логике. Java/C# - объекты, методы, интерфейсы. Обобщения (generics). Всё это слабая, но логика. Язык заставляет её придерживаться.

Зависимые типы так вообще вне конкуренции. Там можно задать практически всё, что угодно.

Языки с развитой стандартной библиотекой, предназначенные для решения определённых задач - Erlang, - заставляют накладывать решение на готовые решения из библиотеки и использовать небольшой набор приёмов. Из той же, примерно, оперы APL/J/K - три варианта применения операции, изволь всё выразить через них.

Лисп только-только подбирается к своему варианту ограничения мышления - малые языки программирования. Да, подбирается только-только, до этого Лисп пихали всюду и везде. Он мог и быстрее Фортрана считать, и ACL2 на нём писали. Но сейчас он хоть как-то определился.

А воз St и ныне там. Где-то. В непонятном мне месте. Буду рад узнать, где.