Clojure против Ruby

Я разработчик ASP.NET. Я хочу изучать технологии веб-разработки и другие языки, кроме Microsoft. Я слышал о двух языках, но я не знаю, какой из них лучше или как поддержать друг друга, особенно, что clojure как-то новый.

Может ли кто-нибудь помочь мне в том, почему выбрать один из них над другим?

Спасибо.

Ответы

Ответ 1

Ruby, очевидно, даст вам лучший удар для вашего доллара, если ваша цель - добиться успеха и повторно использовать зрелые библиотеки. Он должен иметь одну из самых ярких экосистем, рассматривающих веб-разработку. Количество новых вещей велико и, что самое главное, качество часто поражает.

У этого есть очень хорошая система распространения пакетов, а также ряд инструментов, которые делают практическую веб-разработку легкой на всех уровнях.

В веб-фреймворках тяжеловесов вы имеете:

  • Rails, о котором вы обязательно слышали. Вероятно, сегодня это один из лучших компромиссов между большим сообществом и интеллектуальным дизайном. Другой, по моему мнению, будет django, но это python framework
  • Merb, что является более легкой альтернативой в полномасштабном инфраструктурном отделе

И у вас есть тонна более светлых, например Sinatra, которая, вероятно, является одной из самых элегантных небольших веб-фреймворков, или Camping, что мало и очень интересно использовать.

Это только начало. Будь то для ORM, шаблонов двигателей или чего-то еще, что вы хотели бы сделать с этим веб-сайтом, у вас есть тонна качественных опций.

С отрицательной стороны для ruby:

  • Это очень плотный язык, с большим количеством вещей, чтобы учиться, и отличная склонность к "магическим" конструкциям. Это довольно красиво, но это далеко не самый простой язык.
  • Это медленно. Если вы хотите сделать все, что требует производительности, рубин, вероятно, не тот язык, который вам нужен. Это может быть или не быть проблемой в зависимости от того, что вы хотите с ней сделать.
  • У него не так много библиотеки для "обычного программирования", как для веб-программирования, хотя это явно не пустыня. Язык, такой как python, имеет более широкий спектр библиотек, если вы выходите из веб-программирования.

Clojure - совсем другой зверь. Это очень новый язык, и он полностью функциональный. Если вы никогда раньше не программировали в функциональном стиле, это может быть сдвиг парадигмы, который сделает вас менее продуктивным на некоторое время, но вы почти наверняка многому научитесь в этом процессе.

Это также lisp, и, как и при функциональном программировании, это, вероятно, будет означать много нового для изучения, но много просветления в конце процесса.

Это очень элегантный язык с очень ярким сообществом. Это также намного быстрее, чем рубин, и он только улучшается с новой версией 1.2.

Итак, с положительной стороны:

  • Это умный язык. Содержит много интересных идей, особенно в отношении concurrency. Он не является объектно-ориентированным.
  • Быстро для динамического языка
  • Он работает на JVM и имеет очень простую и удобную в использовании систему взаимодействия с Java. Это в основном означает, что у вас есть вся экосистема Java в вашем распоряжении.

С отрицательной стороны:

  • Это очень новое. Это не является недостатком в себе, но является причиной других неприятностей, которые могут возникнуть у вас на этом пути.
  • В нем очень мало хорошо интегрированных и продуманных библиотек. На мой взгляд, это самый неприятный момент. У вас в основном есть все, что вам когда-либо понадобится в Java-мире, но решения могут быть уродливыми. Вы можете захотеть закодировать свою собственную библиотеку обертки в процессе, но это требует времени.
  • Это не похоже на все, что вы знаете. Это не объектно-ориентированное, это не обязательно, и он не имеет ничего общего с классическим синтаксисом C. Поэтому, в зависимости от ваших других языковых переживаний, может потребоваться много времени, чтобы узнать

Итак, сводка:

Если вы хотите изучать новые вещи в очень удобной среде, имея возможность быстро создавать вещи, используя зрелые библиотеки, выберите ruby.

Если вы хотите узнать еще больше о новых вещах, вы не возражаете на совершенно новой территории, в конечном итоге уделите больше времени на то, чтобы сделать что-то, и вы хотите участвовать в сообществе, которое может быть на пути изменить то, как мы подумайте о программировании, взломав и получив удовольствие в процессе, выберите clojure;)

Ответ 2

Переключение с ASP на Ruby, вероятно, проще, чем переход на Clojure, также он имеет более обширное сообщество и экосистему. Однако, если вы заинтересованы в функциональном программировании и/или фантазии concurrency, вы должны дать Clojure снимок.

Ответ 3

Ruby - хороший язык, хотя я частично отношусь к структуре Django над Rails. Одна вещь, которую я нашел, работая с интерпретируемыми языками, - это их неоднозначная реализация потоков. В Ruby и Python интерпретатор будет хруст только по одному потоку за раз.

Что касается clojure, подумайте о том, насколько большой будет библиотека, когда вы попытаетесь ее использовать. Из .Net у вас уже есть огромная библиотека. На данный момент Python и Ruby довольно зрелые, и вы можете найти большинство расширений, которые вы могли себе представить. Достаточно легко взять большую библиотеку как должное, пока у вас ее не будет. Перед переключением взгляните на .Net nuke. Не использовал его, но он должен быть слоем модели/зрителя для .Net.