Добро пожаловать!

Итак! Вы наконец-то здесь!

Пара слов об этом блоге... Он посвящен всему, что нас интересует: преподаванию математики/информатики, (веб-)программированию, прочим глупостям =)

Мы (т. е. главным образом iwannt) обожаем Smalltalk и Seaside! Немного интересуемся Ruby, совсем немного.

А в остальном... просто читайте нас! =)

четверг, 12 июня 2008 г.

Немного о красоте JavaScript

JavaScript может быть очень красивым языком, однако не сразу... Мне, как новичку, долгое время было не понятно, почему некоторые называют его "дзэнским" языком. В чем дзэн JS?

Красота JS во многом зависит от нас самих. Кто ты, адепт школы c/pascal (и их потомков, вроде c++/java или delphi) или же постигающий мудрость и красоту стилей lisp и smalltalk? Дело в том, что JS, в силу своей гибкости, может использовать адепт любой школы, и лишь постигший дзен истинного ООП, может делать это красиво...

Приведу простой пример истинной красоты JavaScript.

В JS есть стандартный объект Math, который отвечает за всю "математику". Например, нужен мне синус - использую Math, нужно случаное число - использую Math и т. д. Этот объект добавлен в язык для того, чтобы обеспечить совместимость со школой c/pascal. Почему? Потому что само существование объекта Math, с точки зрения истинного ООП, лишено смысла. Все операции, связанные с числами, должны быть реализованны в объекте Number, и вот, как это должно выглядеть:

Синус числа x
"Неправильно": Math.sin( x )
Правильно: x.sin()

Округление числа x
"Неправильно": Math.round(x)
Правильно: x.round()

Случайное число от 1 до 100
"Неправильно": Math.round( Math.random() * 99 ) + 1
Правильно: ( 100 ).atRandom()

Все, что "неправильно", будет работать и при том по умолчанию, т.е. никакая дополнительная работа не потребуется, однако только то, что "правильно" позволит вам по-настоящему понимать JavaScript!

воскресенье, 1 июня 2008 г.

Зачем использовать что-то хуже, чем оригинал?

"Why use anything less than the original?" - один из слоганов на сайте Cincom'омвского Smalltalk'а. Действительно, зачем использовать что-то, что лишь копирует Смолток и при том делает это плохо?


Алан Кэй как-то сказал: "Я придумал термин объектно-ориентированный и вот, что я вам скажу: я не имел в виду C++".


Изучите хоть немного Смолток и вы поймете, что означают слова "красивый язык программирования"! :)