> Если хочется метапрограммирования — в Elixir и lfe есть вполне пристойные макросы.
Основное, чем меня лично полностью покорил Elixir — это то, что макросы в нем — нативный AST. Буквально, без уточнений и ссылок мелким шрифтом. Поэтому макросы не добавляют инструкций процессора (классический пример — отладочный логгер, который в продакшн версии просто отсутствует; на C так можно было сделать с помощью `if 0`, но отсюда до прямого управления AST в compile-time — как до луны).
Так LISP же ж))), скажут мне, но нет: писать сразу все на AST довольно утомительно.
В общем, для сомневающихся: есть прекрасныя книга автора http://phoenixframework.org Криса Мак Корда «Metaprogramming Elixir» может прямо глаза открыть и заставить хохотать с «простоты» современных хипстерских языков. Плюс нативная поддержка кода на эрланге без допольнительных декораторов и — конечно — OTP.
> Видимо у Гугла, Дропбокса, Хероку, Докера, Монги
Да, у гугла ресурсов больше. Это довольно внезапно, согласитесь, так-то обычно я привык к обратному.
> вы не знаете этих плюсов, потому что судите об языке лишь по «невнятным статейкам на хабре»
О, аргументы «ad hominem», это я люблю. «Это я бомбил Балканы, я зарезал Корвалана и Александра Мирзояна я планировал убить.»
Мне даже добавить-то нечего, настолько это все смешно и по-детски.
У меня есть ресурсы на проведение стратегических исследований. У меня нет ресурсов на «попробовать хипстерский язык из-за невнятных статеек на хабре».
Я не могу себе позволить пробовать все, что нынче модно. Я вынужден выбирать. И основной критерий выбора — наличие очевидных плюсов в сравнении с имеющимся стеком. У го таких плюсов нет, пока что, по крайней мере.
Да ну? Куда ваши экономические критерии-то подевались? У меня нет свободных даже трех программистов, чтобы попробовать перевести что-нибудь на го и «провести тестирование».
А тестирование fps в вакууме — это вон к диванному аналитику с таким штатом в подчинении, что там можно полк отрядить тестировать.
А, простите, я просто думал, что хабр хоть в какой-то мере остался сообществом программистов. Как программисту, мне хотелось бы тут обсуждать преимущества языков не с экономической точки зрения. Мне хватает необходимости уделять экономическому аспекту проблемы кучу времени. Потому что в нашей скромной компании я вынужден принимать технологические стратегические решения.
Но и даже в этой ситуации я не вижу преимуществ го. Историй успеха нет. «Мы переписали все с руби на скала» и получили 20× преимущество — слышал. «Аккуратно переписали проксирование и получили 40×» — было. Написали свою виртуальную машину для обработки PHP — помню. А вот выбросили виртуальную машину Java в пользу го и теперь все круто — только на уровне недотеп из никому не известных компаний.
Да и само понятие «экономический аспект» вы понимаете неправильно. Наша контора, например, пока растет быстрее, чем развивается го. Поэтому на сегодняшний день я даже не рассматриваю го в качестве варианта на «попробовать микросервисы». Банально нет данных на отзывчивость под нагрузкой. А мы на одной неверной транзакции можем обанкротиться. Это не сервис гугла, и не инстаграм, где недопоказ картинки обернется максимум воплями имярека в бложике.
Так что экономически го тоже не фонтан. Если не пытаться сэкономить три копейки прямо сейчас, полностью наплевав на потенциальное будущее.
> А по каким критериям вы определяете лучше подходит язык или хуже?
По производительности, количеству и внятности кода, который нужно будет написать профессионалу, чтобы эту задачу решить.
> Экономические в их число не входят, да?
Не входят. Этот вопрос не про качество языка вообще, он лежит в перпендикулярной плоскости. Если бы статья была озаглавлена «как мы сэкономили бабла на качестве нашего продукта за счет найма хомяков» — я бы вообще слова не сказал.
А я вообще считаю, что активные сторонники любого языка — люди ограниченные. Для одних задач хорошо подходит эрланг, для других — R, для третьих — си, для четвертых — java/scala. Своя безусловная ниша есть у lua, javascript, LISP, FORTRAN, SQL.
Таких задач, для которых лучше всего подходит го, насколько могу судить, нет. Ну, если не считать задачей «нанять двести обезьян по дешевке».
Поэтому как только товарищ начинает предъявлять «сперва добейся», товарищ идет нахрен. А так-то я со всей максимальной лояльностью :)
Повторяю еще раз для особо одаренных: первый комментарий был написан не вам, а последующие меня вынудило написать остаточное воспитание; меня научили в публичных беседах указывать на невменяемость собеседника ради остальных участников.
А я и не претендую, я уже давно пишу комментарии, как мне нравится. И общаться с вами у меня никакого желания не было, поэтому я вам ничего и не написал.
Спасибо, кстати, вот этот тред позволил мне, наконец, понять, чем меня так этот весь шум про го напрягает: активные сторонники всегда агрессивнее, косноязычнее и просто тупее, чем сомневающиеся, причем вот со всем этим джентльменским набором: «сколько человек ты прогибал», «иди мимо, это не для тебя» и так далее.
На простые вопросы ответить не хотят (не могут?), «Гугл переходит на го» в качестве вечного аргумента (у гугла столько слабосвязанных сервисов, что я не удивлюсь увидеть у них и ним/немерле в продакшене), в общем, от коммьюнити явно попахивает школотой.
При этом, как вы совершенно верно заметили, сам-то язык, может быть, и ничего. Просто я не вполне понимаю, зачем лично мне, профессионалу более-менее, выбирать команду и язык по принципу «обезьяна справится с порогом входа». Ну пусть обезбяны справляются, я очень рад за них, спецам-то это все зачем?
На дворе, внезапно, 2015 год к концу подходит: любое устройство покажет UTF-8 (про который в тексте ни слова) корректно, а 95% устройств — еще и половину эмотиконов раскрасит даже в plain text.
А ведь это дает возможность писать:
✓ красиво,
✓ «типографически» верно,
✓ с в̲ы̲д̲е̲л̲е̲н̲и̲е̲м̲.
Это же типичный вопрос про курицу и яйцо, только здесь на него есть однозначный ответ.
Мне код на PR не с альфа-центавры доставляют, автор — вон он сидит, в пяти метрах. И если вместо того, чтобы позаботиться о будущем проекта в целом и здоровья рассудка команды в частности, он вывалил какую-то кашу из своего подсознания и тут же нажал кнопку «готово для ревью» — он проявил неуважение первым. Поэтому если я проскроллил один экран и перестал понимать, о чем это вообще, я отправляю задачу на доработку именно с такой пометкой, только еще короче: «Unreadable.»
«Уважение» — это такой зверь, который никак не зависит от того, что кто-то в какой-то момент может написать плохой код. И уж подавно уважение — не синоним толерантности. Я вообще очень люблю повторять «fuck your ego».
Основное, чем меня лично полностью покорил Elixir — это то, что макросы в нем — нативный AST. Буквально, без уточнений и ссылок мелким шрифтом. Поэтому макросы не добавляют инструкций процессора (классический пример — отладочный логгер, который в продакшн версии просто отсутствует; на C так можно было сделать с помощью `if 0`, но отсюда до прямого управления AST в compile-time — как до луны).
Так LISP же ж))), скажут мне, но нет: писать сразу все на AST довольно утомительно.
В общем, для сомневающихся: есть прекрасныя книга автора http://phoenixframework.org Криса Мак Корда «Metaprogramming Elixir» может прямо глаза открыть и заставить хохотать с «простоты» современных хипстерских языков. Плюс нативная поддержка кода на эрланге без допольнительных декораторов и — конечно — OTP.
Да, у гугла ресурсов больше. Это довольно внезапно, согласитесь, так-то обычно я привык к обратному.
> вы не знаете этих плюсов, потому что судите об языке лишь по «невнятным статейкам на хабре»
О, аргументы «ad hominem», это я люблю. «Это я бомбил Балканы, я зарезал Корвалана и Александра Мирзояна я планировал убить.»
Мне даже добавить-то нечего, настолько это все смешно и по-детски.
Я не могу себе позволить пробовать все, что нынче модно. Я вынужден выбирать. И основной критерий выбора — наличие очевидных плюсов в сравнении с имеющимся стеком. У го таких плюсов нет, пока что, по крайней мере.
А тестирование fps в вакууме — это вон к диванному аналитику с таким штатом в подчинении, что там можно полк отрядить тестировать.
Эрланг 30 лет боролся за свои 15 девяток. Я уже довольно давно решения для задач бизнеса выбираю не в детском саду.
Но и даже в этой ситуации я не вижу преимуществ го. Историй успеха нет. «Мы переписали все с руби на скала» и получили 20× преимущество — слышал. «Аккуратно переписали проксирование и получили 40×» — было. Написали свою виртуальную машину для обработки PHP — помню. А вот выбросили виртуальную машину Java в пользу го и теперь все круто — только на уровне недотеп из никому не известных компаний.
Да и само понятие «экономический аспект» вы понимаете неправильно. Наша контора, например, пока растет быстрее, чем развивается го. Поэтому на сегодняшний день я даже не рассматриваю го в качестве варианта на «попробовать микросервисы». Банально нет данных на отзывчивость под нагрузкой. А мы на одной неверной транзакции можем обанкротиться. Это не сервис гугла, и не инстаграм, где недопоказ картинки обернется максимум воплями имярека в бложике.
Так что экономически го тоже не фонтан. Если не пытаться сэкономить три копейки прямо сейчас, полностью наплевав на потенциальное будущее.
По производительности, количеству и внятности кода, который нужно будет написать профессионалу, чтобы эту задачу решить.
> Экономические в их число не входят, да?
Не входят. Этот вопрос не про качество языка вообще, он лежит в перпендикулярной плоскости. Если бы статья была озаглавлена «как мы сэкономили бабла на качестве нашего продукта за счет найма хомяков» — я бы вообще слова не сказал.
Таких задач, для которых лучше всего подходит го, насколько могу судить, нет. Ну, если не считать задачей «нанять двести обезьян по дешевке».
Поэтому как только товарищ начинает предъявлять «сперва добейся», товарищ идет нахрен. А так-то я со всей максимальной лояльностью :)
Повторяю еще раз для особо одаренных: первый комментарий был написан не вам, а последующие меня вынудило написать остаточное воспитание; меня научили в публичных беседах указывать на невменяемость собеседника ради остальных участников.
На простые вопросы ответить не хотят (не могут?), «Гугл переходит на го» в качестве вечного аргумента (у гугла столько слабосвязанных сервисов, что я не удивлюсь увидеть у них и ним/немерле в продакшене), в общем, от коммьюнити явно попахивает школотой.
При этом, как вы совершенно верно заметили, сам-то язык, может быть, и ничего. Просто я не вполне понимаю, зачем лично мне, профессионалу более-менее, выбирать команду и язык по принципу «обезьяна справится с порогом входа». Ну пусть обезбяны справляются, я очень рад за них, спецам-то это все зачем?
А ведь это дает возможность писать:
✓ красиво,
✓ «типографически» верно,
✓ с в̲ы̲д̲е̲л̲е̲н̲и̲е̲м̲.
Мне код на PR не с альфа-центавры доставляют, автор — вон он сидит, в пяти метрах. И если вместо того, чтобы позаботиться о будущем проекта в целом и здоровья рассудка команды в частности, он вывалил какую-то кашу из своего подсознания и тут же нажал кнопку «готово для ревью» — он проявил неуважение первым. Поэтому если я проскроллил один экран и перестал понимать, о чем это вообще, я отправляю задачу на доработку именно с такой пометкой, только еще короче: «Unreadable.»
«Уважение» — это такой зверь, который никак не зависит от того, что кто-то в какой-то момент может написать плохой код. И уж подавно уважение — не синоним толерантности. Я вообще очень люблю повторять «fuck your ego».