?

Log in

No account? Create an account

Previous Entry | Next Entry

Clojure at Echo

Originally posted by tonsky at Clojure at Echo
Провел в команде опрос на тему Кложи. Опрошено три респондента с 4-5 месячным опытом использования (основные разработчики нашего clojure-driven продукта) и двое с 1-2 месячным (переключились на другой проект). Результаты анонимизированы и подсокращены до смысловой части.

Насколько сложно читать?

— Несложно, дело привычки
— Читать сложнее Эрленга
— Python (2,3) < Java, Erlang (4) < Clojure(6,7)
— Примерно Ruby (без Rails)
— Очень зависит от автора

Насколько сложно писать?

— Очень легко
— Легче, чем в ООП языках
— Меньше кода, только суть
— Упирается в понимание кода
— Проблем с отладкой не возникает (отладочная печать она и в Африке отладочная печать)

Как быстро начинает получаться писать что-то полезное?

— Неделя
— Недели две
— От недели и больше
— С учетом, что есть опыт в ФП

Наиболее сложные области

— Concurrency примитивы
— Двухсторонний interop
— Meta параметры
— Идеология

Стала ли Clojure естественным, «своим» языком?

Все: Пока нет, но потенциально да.

Полезно

— Гибкость, лаконичность
— Особенно чувствуется при переключении на другой язык
— Скорость написания кода («опа-опа и готово»)
— Java—библиотеки
— Синтаксис удобен для файлов конфигурации

Раздражает

— Скобки (1 чел.)
— Привязанность к Java (2 чел.)
— Непрозрачность кода из-за макросов (2 чел.)
— Медленный старт, тяжеловесность платформы (2 чел.)

Общее впечатление

— Писать на Clojure очень легко. Видимо поэтому мы так много пишем и переписываем то, что пишем.

— Большая неограниченная свобода. Можно писать как угодно и в любом стиле. Код становится зеркалом разработчика.

— Clojure идеально подходит для соло проектов и достаточно плохо подходит для командной разработки.

Наиболее полезные ресурсы

clojure.org
clojuredocs.org
— The Joy of Clojure
— Clojure Programming
— Programming Clojure


От себя (lionet). Вот этот пункт — ключевой:

— Clojure идеально подходит для соло проектов и достаточно плохо подходит для командной разработки.

Именно из-за особенностей влияния среды на командную работу, в Echo на серверной стороне использует в основном Erlang, и только в тех местах, где активный народ принципиально прётся от какой-то альтернативной технологии (i.e., OCaml, Clojure) написано на них.

Tags:

Comments

( 73 comments — Leave a comment )
occuserpens
Mar. 24th, 2013 10:41 pm (UTC)
Т.е. для больших проектов не подходит и читается хуже нечитабельной Джавы?!
lionet
Mar. 24th, 2013 10:47 pm (UTC)
Зависит не только от размера проекта, но и от размера команды, и даже от предметной области.
mak_
Mar. 25th, 2013 12:35 am (UTC)
(я идиот, да) clojure - это то, что транслируется в java?
lionet
Mar. 25th, 2013 02:34 am (UTC)
Нет, оно не транслируется в язык Java. Но оно работает на JVM, так как компилируется в байт-код для неё.
(no subject) - mak_ - Mar. 25th, 2013 11:24 am (UTC) - Expand
potan
Mar. 25th, 2013 03:30 am (UTC)
Знак меньше в плане читабельности означает "менее читабельный" ли "менее сложно"?
Лично мне код на питоне и джаве читать тяжелее, чем на Erlang или Clojure.
tonsky
Mar. 25th, 2013 10:22 am (UTC)
Означает: Clojure сложнее всего читать
(Deleted comment)
lionet
Mar. 25th, 2013 05:06 am (UTC)
Haskell нереально кому-то показать и объяснить. Только [мотивировать на] самообучение.
levgem
Mar. 25th, 2013 05:10 am (UTC)
«Большая неограниченная свобода. Можно писать как угодно и в любом стиле. Код становится зеркалом разработчика.»

Это ведь очень плохо.
prepor
Mar. 25th, 2013 08:47 am (UTC)
Зато весело, в этом фича :) Но как сайд-эффект да, не знаю как с этим в команде работать. С другой стороны код Хикки вполне себе читается и имеет внятную структуру :)
(no subject) - levgem - Mar. 25th, 2013 09:09 am (UTC) - Expand
(no subject) - prepor - Mar. 25th, 2013 09:12 am (UTC) - Expand
(no subject) - levgem - Mar. 25th, 2013 09:16 am (UTC) - Expand
(no subject) - maxim - Mar. 25th, 2013 10:23 am (UTC) - Expand
(no subject) - levgem - Mar. 25th, 2013 10:24 am (UTC) - Expand
(no subject) - maxim - Mar. 25th, 2013 10:25 am (UTC) - Expand
(no subject) - tonsky - Mar. 25th, 2013 10:24 am (UTC) - Expand
(no subject) - levgem - Mar. 25th, 2013 10:26 am (UTC) - Expand
(no subject) - tonsky - Mar. 25th, 2013 10:28 am (UTC) - Expand
(no subject) - levgem - Mar. 25th, 2013 10:32 am (UTC) - Expand
(no subject) - fas_tm - Mar. 25th, 2013 11:29 am (UTC) - Expand
(no subject) - nealar - Mar. 25th, 2013 10:55 am (UTC) - Expand
pufpuf
Mar. 25th, 2013 09:51 am (UTC)
а как должно быть, чтобы было хорошо?
(no subject) - tonsky - Mar. 25th, 2013 10:23 am (UTC) - Expand
(no subject) - vit_r - Mar. 27th, 2013 02:48 pm (UTC) - Expand
psilogic
Mar. 25th, 2013 06:17 am (UTC)
[ Проблем с отладкой не возникает (отладочная печать она и в Африке отладочная печать) ]

*прослезился*
jakobz
Mar. 25th, 2013 09:42 am (UTC)
Я когда пишу куски на C#, которые потенциально могут сломаться в проде (зависимы от того, какие в проде бывают хитрые данные в БД, например) - стараюсь не юзать дебаггер. Через это в логи начинает попадать все что нужно, что помогает потом в продакшне.

Вообще, как это не странно звучит, дебаггер и всякие решарперы - они позволяют писать такой код, в котором потом без дебаггера и решарпера не разобраться. Что и делают в кровавом .net/java-энтерпрайзе.
(no subject) - psilogic - Mar. 25th, 2013 10:17 am (UTC) - Expand
(no subject) - tonsky - Mar. 25th, 2013 10:26 am (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 10:35 am (UTC) - Expand
(no subject) - metaclass - Mar. 25th, 2013 01:30 pm (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 03:23 pm (UTC) - Expand
(no subject) - _winnie - Mar. 25th, 2013 06:29 pm (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 08:52 pm (UTC) - Expand
(no subject) - _winnie - Mar. 25th, 2013 10:34 pm (UTC) - Expand
(no subject) - metaclass - Mar. 25th, 2013 10:26 am (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 10:29 am (UTC) - Expand
(no subject) - jakobz - Mar. 25th, 2013 11:08 am (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 11:16 am (UTC) - Expand
(no subject) - lionet - Mar. 25th, 2013 05:11 pm (UTC) - Expand
(no subject) - psilogic - Mar. 25th, 2013 05:23 pm (UTC) - Expand
(no subject) - ko_bx - Mar. 25th, 2013 11:49 am (UTC) - Expand
(no subject) - metaclass - Mar. 25th, 2013 01:10 pm (UTC) - Expand
(no subject) - ko_bx - Mar. 25th, 2013 01:13 pm (UTC) - Expand
(no subject) - metaclass - Mar. 25th, 2013 01:29 pm (UTC) - Expand
(no subject) - ko_bx - Mar. 25th, 2013 01:31 pm (UTC) - Expand
(no subject) - swizard - Mar. 25th, 2013 11:25 am (UTC) - Expand
(no subject) - tonsky - Mar. 25th, 2013 03:27 pm (UTC) - Expand
(Deleted comment)
lionet
Mar. 25th, 2013 06:46 am (UTC)
2) Похоже на правду, но К Эрлангу не относится. Эрланг — динамика.
(Deleted comment)
(no subject) - lionet - Mar. 25th, 2013 07:02 am (UTC) - Expand
(no subject) - ko_bx - Mar. 25th, 2013 11:50 am (UTC) - Expand
(Deleted comment)
(no subject) - ko_bx - Mar. 26th, 2013 07:48 am (UTC) - Expand
(Deleted comment)
(no subject) - ko_bx - Mar. 26th, 2013 12:26 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Mar. 26th, 2013 05:03 pm (UTC) - Expand
(no subject) - ko_bx - Mar. 26th, 2013 08:41 pm (UTC) - Expand
(Deleted comment)
(no subject) - lionet - Mar. 27th, 2013 07:14 am (UTC) - Expand
(no subject) - ko_bx - Mar. 27th, 2013 09:51 am (UTC) - Expand
(Deleted comment)
(no subject) - ko_bx - Mar. 27th, 2013 10:36 am (UTC) - Expand
(no subject) - blackyblack - Mar. 25th, 2013 07:35 am (UTC) - Expand
(no subject) - lionet - Mar. 25th, 2013 07:43 am (UTC) - Expand
(no subject) - blackyblack - Mar. 25th, 2013 08:27 am (UTC) - Expand
(no subject) - lionet - Mar. 25th, 2013 04:59 pm (UTC) - Expand
(no subject) - blackyblack - Mar. 25th, 2013 06:12 pm (UTC) - Expand
(no subject) - kurilka - Mar. 25th, 2013 07:03 pm (UTC) - Expand
(no subject) - blackyblack - Mar. 25th, 2013 07:14 pm (UTC) - Expand
(no subject) - kurilka - Mar. 25th, 2013 07:26 pm (UTC) - Expand
(no subject) - blackyblack - Mar. 25th, 2013 07:38 pm (UTC) - Expand
(no subject) - lionet - Mar. 25th, 2013 07:44 pm (UTC) - Expand
(no subject) - si14 - Mar. 25th, 2013 11:00 pm (UTC) - Expand
(no subject) - blackyblack - Mar. 26th, 2013 04:23 am (UTC) - Expand
(no subject) - lionet - Mar. 26th, 2013 07:10 am (UTC) - Expand
(no subject) - si14 - Mar. 26th, 2013 09:50 am (UTC) - Expand
(no subject) - ko_bx - Mar. 25th, 2013 11:51 am (UTC) - Expand
( 73 comments — Leave a comment )

Profile

lionet
Lev Walkin
Website

Latest Month

December 2016
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by yoksel