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

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

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

Мы (т. е. главным образом 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!