clojure по сравнению с [закрытым] Ruby

17
задан Mostafa Elmoghazi 26 July 2010 в 13:27
поделиться

3 ответа

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

3
ответ дан 30 November 2019 в 13:27
поделиться

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

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

1
ответ дан 30 November 2019 в 13:27
поделиться

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

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

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

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

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

Это только начало. Будь то ORM, механизмы шаблонов или что-то еще, что вы хотели бы сделать с этим в Интернете, у вас есть масса вариантов качества.

Отрицательная сторона рубина:

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

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

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

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

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

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

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

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

Итак, краткое изложение:

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

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

19
ответ дан 30 November 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: