Замедление является не обязательно тем же с любым компилятором.
я не использовал Дельфи или Kylix, но назад в дни MS-DOS, программа Turbo Pascal скомпилировала бы почти мгновенно, в то время как эквивалентная программа Turbo C++ просто проверит.
Этими двумя основными отличиями была очень сильная система модуля и синтаксис, который позволил однопроходную компиляцию.
, конечно, возможно, что скорость компиляции просто не была приоритетом для разработчиков компилятора C++, но существуют также некоторые свойственные сложности в синтаксисе C/C++, которые делают более трудным обработать. (Я не эксперт по C, но Walter Bright, и после создания различных коммерческих компиляторов C/C++, он создал язык D. Одно из его изменений должно было осуществить контекстно-свободную грамматику для создания языка легче проанализировать.)
кроме того, Вы заметите, что вообще Make-файлы настраиваются так, чтобы каждый файл был скомпилирован отдельно в C, поэтому если 10 исходных файлов все использование, то же включает файл, которые включают файл, обрабатываются 10 раз.
И Spring, и Ruby on Rails разделяют принцип «соглашение важнее конфигурации». Это значительно сокращает количество строк кода. Ruby on Rails - это веб-фреймворк, и его можно сравнить со Spring MVC вместе с ORM-инструментом, таким как Hibernate.
Можно сказать, что Spring вместе со Spring MVC или другой MVC-фреймворком и Hibernate - самые близкие к нему инструменты. Ruby on Rails для мира Java.
Однако Spring имеет гораздо более широкие возможности, чем RoR.
After working with Rails, Spring (and just about any other Java coding) feels tedious and time consuming.
Прямое сравнение RoR и Spring не является прямым или простым сравнением.
RoR фокусируется на легкой разработке веб-сайтов. RoR отлично справляется с созданием страниц, связывает их вместе и очень легко сохраняет данные. RoR был разработан специально с учетом веб-разработки и является отличным инструментом для этого. Тем не менее, когда вам нужно заниматься более «корпоративной» разработкой (обмен сообщениями, интеграция и т. Д.), Или вам нужно сделать что-то, что не вписывается в соглашения RoR, вы почувствуете некоторую боль.
Тем не менее, Spring имеет много аспектов: Spring IoC, Spring AOP, SpringMVC и т. Д. который направлен на решение множества различных проблем разработки, с которыми сталкиваются разработчики. Spring имеет очень широкий ассортимент технологий, которые облегчат большинство проблем разработки, с которыми вы столкнетесь.
Чтобы напрямую ответить на ваш вопрос, это напрямую зависит от ваших требований. Если вы разрабатываете веб-приложения с простой базой данных, RoR позволит вам быстро и легко разработать приложение, и с ним будет проще начать работу новичку. Spring, с другой стороны, требует более крутого обучения и требует большего количества настроек, но дает вам гораздо больше гибкости и мощности.
Однажды аспект, который, как мне кажется, часто упускается в этом типе обсуждения, - это сила сообщества, инструментов и библиотеки доступны. Java / Spring - зрелая платформа с обширным сообществом и поддержкой инструментов, в то время как Ruby / RoR имеет отличное сообщество,
Особенность Spring в том, что это в основном две вещи:
Например, для (1) , Spring может делать такие вещи, как облегчение боли, связанной с тем, какой JMS-провайдер вы используете, или такие вещи, как перевод исключений, сгенерированных разными базами данных, в DataAccessExceptions среды выполнения Spring.
По этой причине Spring обычно называют облегченным контейнером. В мире Spring («контекст приложения») различия между поставщиками обычно сводятся только к вопросу конфигурации. Внедрение зависимостей делает многое, например, значительно упрощает тестирование (все сделано правильно).
Самая большая проблема в изучении и использовании Spring - это научиться думать таким образом, если вы раньше не делали ничего подобного.
Кроме что в Spring действительно не так много, и это хорошо. Весна вам не мешает. Вы выбираете любые технологии, которые хотите использовать, а Spring почти всегда упрощает их использование и интеграцию.
Как только вы войдете в образ мышления DI / IoC.
I suspect this question is really about Spring MVC. One of the hallmarks of Ruby on Rails is "convention over configuration". If you use the right names, you spare yourself a lot of work writing configuration files. With Spring, you're probably going to need to go ahead and type in a lot of that configuration.
Also Rails routing is much more powerful and concise than the alternatives in Spring. In recent releases, Spring has tried to move to more of a convention over configuration model, but it will still seem burdensome to a Rails developer.
Spring довольно большой, у него есть два аспекта , о которых я знаю : внедрение зависимостей и АОП. Ruby on rails очень ориентирован на написание веб-приложений.
Если вы хотите написать веб-приложение, я ожидаю, что вам будет проще использовать ROR, поскольку он намного ближе к проблемной области.
хотел использовать Spring для написания веб-приложения, вам, скорее всего, понадобится изучить еще несколько технологий, которые могут оказаться немного сложными. Однако, если вы просто учитесь для развлечения, объединение пружины с книгой по выкройкам может быть забавным.
Мне не нравится это сравнение
Вам следует сравнить Grails или Spring Roo с Rails. Groovy Grails - это система, подобная RoR, построенная на Spring, которая использует Groovy для рельсовых DSL. Roo - это смутно ржавый чистый Java-DSL для приложений, подобных RoR.
Я действительно ненавижу это говорить, но Spring - это платформа. Вы используете его для объединения технологий Java. Вы можете использовать его для приложений, не относящихся к сети, без базы данных и без пользовательского интерфейса. Вы можете использовать его для написания пакетных серверов. Вы можете использовать его для написания клиентов.
Rails - это не то же самое. Мне очень нравятся рельсы для веб-приложений, управляемых данными, но я содрогаюсь при мысли о написании системы пакетной обработки на рельсах.
Я довольно много работал с обоими, и я нашел Spring и самые популярные "надстройки" спящего режима, JSF , JSP, Rich Faces и т. Д. Крайне сложно использовать.
В основном это было из-за личного недовольства документацией и доступными книгами и учебными пособиями в полном стеке. Кроме того, он далеко не так удобен в использовании фреймворка, как Rails. Мне действительно кажется, что я только что показал лучший способ разработки веб-приложений почти во всех смыслах.
Недавно я перешел на использование Spring MVC + WebFlow после 4 лет использования Ruby on Rails.
Ruby - это великие рельсы - это цель повышения производительности. Тем не менее, Spring MVC больше ориентирован на предприятия со слоями дизайна и шаблонами, а не шаблонами.
Я не говорю, что это чушь, интересно изучить другой подход к разработке пользовательского интерфейса.
Вы не можете сравнивать эти два. Spring MVC больше ориентирован на проекты, которые можно повторно использовать при разработке портлетов или разработке веб-потоков, которые можно изменять без изменения большого количества кода Java.
Есть подфреймворки, такие как пружинная безопасность, не говоря уже об Аспектах во всех формах и видах, я нахожу все это большой кривой обучения.Представления могут отображаться с помощью JSF или JSP / JSTL.
Честно говоря, я думаю, что java - это язык, который веками не развивался, и люди вложили значительные средства в этот стек, который они взломали и переписали, обходя код. Аннотации и XML или Generics - все они созданы для того, чтобы язык удовлетворял потребности постоянно растущего и развивающегося мира вокруг него.
В отличие от современного динамического языка, такого как ruby, существует большая разница в производительности. Ruby очень простой, дружелюбный к программисту и превосходит его во всех отношениях.
Rails - очень самоуверенная программа, продиктованная тем, что DHH и остальные думают и хотят от нее.
Да, это отлично подходит для разработки веб-приложений. Фактически, вы почувствуете, что приобрели недостающую вещь, когда начнете программировать рельсы.
Проблема в том, что рельсы получили много негативной огласки на протяжении многих лет. Я не уверен в его будущем в настоящее время, и выбирать между чем-то проверенным и тем, что клонируется в каждой новой веб-платформе, - это риск.
ASP.net mvc, grails cakePHP В каждой популярной платформе MVC есть клонированные направляющие.
Труднее ли пружина по сравнению с рельсами?
Я думаю, что если вы приложите все усилия, то и то, и другое станет равным с точки зрения кривой обучения.