Я иммутабельные данные, которые ещё и дают гарантии по времени исполнения — поставил бы вообще на первое место. Добавить элемент в начало списка размером в миллион элементов — за константа, добавить элемент в конец такой же длины массива — константа, получить новую версию коллекции, где пятый элемент заменён на вашу любимую структуру данных — константа. (На самом деле O(log32 n), но кого волнуют сверхмалые).
Далее идёт маркетинговый булщит и наркомания.
Для веб-программистов также стоит рассказать какое это удовольстие писать SQL-запросы под sql-korma. Представьте что вы пишете псевдо-SQL, а в дополнение вы можете составлять запросы как LEGO, включая or, and, in условия. То есть все эти условия можно передать свыше, как аргумент для функции которая в итоге делает селект.
Ещё для веб-программистов, отдельного слова заслуживает hiccup — самый царский способ генерить html. Представьте что Вы можете описать всю структуру страницы в виде данных — массивы, словари, списки. Вы просто генерите данные, и можете в любой момент отдать их какой-нибудь функции которая их пощупает и вернёт новую версию (не ломая старую версию). То есть генерация разных подтипов html-компонента превращается в хруст вафель. Вы работаете с данными, в языке который имеет сотни встроенных функций для работы с данными, который просто кромсает, уничтожает, генерит и месит данные, и вообще сам язык и есть данные — и это неописуемый восторг. Я фулл-стек программист, и clojure + hiccup — это лучший шаблонизатор что я пробовал из php, handlebars, jade. Ещё hiccup занимается там какой-то магией компиляции с макросами (хиккап и есть макрос), чтобы это ещё и быстро работало, но я разбираться не стал, и основные шаблоны просто обернул в мемоизацию.
А новая версия кложуры несёт ещё исключения с данными. То есть Вы сможете принимать решения исходя не только из типа исключения, но и используя дополнительные данные. Например, у Вас вылетело исключение, из-за неправильного значения параметра, а вам источник исключения, раз и прислал допустимый диапазон.
Удачно кто-то подметил: после того как ПРИВЫКАЕШЬ к иммутабельным данным, не можешь понять зачем тебе нужны были мутабельные.
Но должен признаться, поначалу бесился каждый раз делать присваивание, чтобы сохранить новую версию данных.
Очень рекомендую Diaspora — в каком-то смысле, продолжение Permutation City. Я ещё успел прочитать Incandescence — там жукоподобные герои пытаются построить общую теорию относительности, обитая в окрестности нейтронной звезды. Тоже отличная вещь. Надо бы добраться до остальных книг…
При изучении полезными будут ресурсы: www.clojure.org/ — официальный сайт, документация есть, но, пожалуй, лучше учить не по ней. learn-clojure.com/ — много различных ссылок, в том числе на книги. clojuredocs.org/ — неофициальная документация по стандартной библиотеке, очень полезная вещь при поиске конкретной функции.
Очень советую www.4clojure.com/ — сайт с набором задачек (от тривиальнейших, до вполне объемных). Гораздо интереснее знакомится с языком на практике. Хотя там нету задач на многопоточность и т.п.
Напомнило работы mindw0rk для рубрики «Креатив» в журнале «Хакер». Там тоже попадались классные рассказы. Была и история про трогательное общение между человеком и чат-ботом, называлась «Куни».
Но мой самый любимый рассказ из серии «Креатив» — «Единственная попытка», написал его NIRO, прочитать можно в #100 «Хакер». Очень трогательный, рекомендую.
Далее идёт маркетинговый булщит и наркомания.
Для веб-программистов также стоит рассказать какое это удовольстие писать SQL-запросы под sql-korma. Представьте что вы пишете псевдо-SQL, а в дополнение вы можете составлять запросы как LEGO, включая or, and, in условия. То есть все эти условия можно передать свыше, как аргумент для функции которая в итоге делает селект.
Ещё для веб-программистов, отдельного слова заслуживает hiccup — самый царский способ генерить html. Представьте что Вы можете описать всю структуру страницы в виде данных — массивы, словари, списки. Вы просто генерите данные, и можете в любой момент отдать их какой-нибудь функции которая их пощупает и вернёт новую версию (не ломая старую версию). То есть генерация разных подтипов html-компонента превращается в хруст вафель. Вы работаете с данными, в языке который имеет сотни встроенных функций для работы с данными, который просто кромсает, уничтожает, генерит и месит данные, и вообще сам язык и есть данные — и это неописуемый восторг. Я фулл-стек программист, и clojure + hiccup — это лучший шаблонизатор что я пробовал из php, handlebars, jade. Ещё hiccup занимается там какой-то магией компиляции с макросами (хиккап и есть макрос), чтобы это ещё и быстро работало, но я разбираться не стал, и основные шаблоны просто обернул в мемоизацию.
А новая версия кложуры несёт ещё исключения с данными. То есть Вы сможете принимать решения исходя не только из типа исключения, но и используя дополнительные данные. Например, у Вас вылетело исключение, из-за неправильного значения параметра, а вам источник исключения, раз и прислал допустимый диапазон.
Удачно кто-то подметил: после того как ПРИВЫКАЕШЬ к иммутабельным данным, не можешь понять зачем тебе нужны были мутабельные.
Но должен признаться, поначалу бесился каждый раз делать присваивание, чтобы сохранить новую версию данных.
При изучении полезными будут ресурсы:
www.clojure.org/ — официальный сайт, документация есть, но, пожалуй, лучше учить не по ней.
learn-clojure.com/ — много различных ссылок, в том числе на книги.
clojuredocs.org/ — неофициальная документация по стандартной библиотеке, очень полезная вещь при поиске конкретной функции.
Очень советую www.4clojure.com/ — сайт с набором задачек (от тривиальнейших, до вполне объемных). Гораздо интереснее знакомится с языком на практике. Хотя там нету задач на многопоточность и т.п.
Программист-Маг тут
и там есть плагин для git. Посмотрите, очень удобно!
gl = git pull
gp = git push
ga=git add
gm=git merge
но это я просто детский пример привёл, лучше посмотрите сами!
github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh
Питер Гамильтон и Грэм Джойс «Белое вещество»
Напомнило работы mindw0rk для рубрики «Креатив» в журнале «Хакер». Там тоже попадались классные рассказы. Была и история про трогательное общение между человеком и чат-ботом, называлась «Куни».
Но мой самый любимый рассказ из серии «Креатив» — «Единственная попытка», написал его NIRO, прочитать можно в #100 «Хакер». Очень трогательный, рекомендую.