Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Javascript чудовий

leave a comment »

Настільки чудовий що дехто навіть мене ревнує. Ну бо логічно, якщо б JavaScript не був таким класним, я б проводив з ним час лише на роботі, а тут займаюсь ним ще й коли іноді ночами не спиться… Останні два тижні на роботі я вже не JavaScript розробник, а DevOps, що є зовсім новою для мене професією, в якій я такий нуб, що повозившись пів дня з 503 помилками сервера я просто змінив для нього користувача з nginx на root і все запрацювало. Звичайно це страшно, але якщо є екстремальне програмування, то повинно ж ще бути екстремальне розгортання, правда? 😀 Але про те який з мене сисадмін я напишу коли зроблю все правильно, а поки що про JavaScript.

З ним, і трошки з CSS я на дозвіллі вправляюсь на власному сайті http://bunyk.github.io/. І нарешті вже я веб-розробник з сайтом. Бо якось дивно було, в резюме написано що веб-розробник, а крім Python майже нічого не знав…

В JavaScript є свої косяки. Про деякі розповідають у вже класичній презентації WAT!. Хоча node.js в мене деякі штуки показує не так як в тій презентації:

> [] + {}
'[object Object]'
> {} + []
'[object Object]'
> {} + {}
'[object Object][object Object]'

Ну але блін, кому захочеться додавати об’єкти? Якщо ви мали на увазі extend, то така функція є багатьох популярних бібліотеках. Тому якщо про косяки знати – вони не страшні. Достатньо про косяки написано на сторінці JavaScript Garden. Хоча це ж навіть не косяки, а особливості…

Ще хочу показати виступ Дугласа Крокфорда (того що винайшов JSON і написав книжку JavaScript Good Parts). Там він цікаво розповідає про історію LiveScript/JavaScript/JScript/ECMAScript і про те яка нелегка доля цій мові випала. Зокрема, Брендана Ейха змусили взяти синтаксис Java, він хотів написати Scheme. (CoffeeScript проблему з синтаксисом усуває, і це не остання причина використовувати CoffeeScript. Він також усуває косяки, без використання “use strict”;)

The first time I saw JavaScript in 1995, I thought “This is the stupidest thing I ever seen”. And I was pretty confident that I was right. … Five years later … I discovered it has lambdas in it!

Ах, ще з цієї доповіді я дізнався що є така функція як Y комбінатор (рекомендую статтю, вона від того самого дядька який написав illustrated guide to PhD), яка вміє перетворювати рекурсивні функції на нерекурсивні аналоги, і виглядає отак:

var Y = function (F) {
 return (function (x) {
  return F(function (y) { return (x(x))(y);});
  })
        (function (x) {
  return F(function (y) { return (x(x))(y);});
  }) ;
} ;

Я поки що дивлюсь на цю функцію як баран, але думаю незабаром вникну в суть.

Це одна з багатьох речей які зі мною останнім часом відбуваються, але про все розповідати доведеться довго. Тому поки що дивіться мій сайт, коментуйте, ставте лайки, розкажіть друзям, f*&k my repo чи краще submit issue. Пост про nginx, fabric, tar, mako, або систему топологічного сортування залежностей колись буде. Ви лише скажіть що вам цікавіше.

Advertisements

Written by bunyk

Липень 15, 2013 at 23:52

Оприлюднено в Кодерство, Павутина

Tagged with

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: