Я пишу корпоративные Java-приложения и веб-сервисы на работе ( Spring , Hibernate, Maven, RESTEasy) и PHP (CakePHP) и Python (Django) для своих сторонних проектов.
Хотя я вижу ценность, которую привносит Spring в Inversion of Control, Aspect Oriented Programming и т. Д., Я не уверен, как массивные веб-приложения, не входящие в стек Java, обходятся без такой среды, как Spring.
Итак, нужно ли разработчикам просто «мириться» с тесно связанными компонентами и другими обидами, которые устраняет Spring, или я что-то упускаю?
Для тех, кто не знаком с Spring, мы чаще всего используем следующие функции:
Контейнер «Инверсия»: настройка компонентов приложения и управление жизненным циклом объектов Java,
Аспектно-ориентированное программирование: позволяет реализовать сквозные процедуры,
Управление транзакциями: объединяет несколько API-интерфейсов управления транзакциями и координирует транзакции для объектов Java.
Ответы:
Другие платформы не нуждаются в Spring, потому что эти языки не так строги, как Java.
Я приведу пример с node.js
Конфигурация сервера выполняется либо в коде, либо в простом конфигурационном файле json. Что касается универсальных систем IoC, они нам просто не нужны, Javascript - это выразительный и динамичный язык. Да, вам нужен IoC, но это просто, передавайте зависимости своим объектам в качестве параметров функции.
Я просто не думаю, что нам нужно что-то подобное, мы пишем модульный код, и он просто работает.
noSQL невероятно популярен. Там нет понятия транзакции.
Лично я бы сказал, что такие системы раздуты и чрезмерно спроектированы, и они вам просто не нужны. Другие языки и платформы просто остаются стройными и проворными.
источник
На большинстве языков высокого уровня писать тривиально, используя принципы проектирования AOP и / или IoC.
Все, что вам нужно для реализации AOP - это чтобы язык поддерживал функции более высокого порядка. Например:
Вы также можете следовать общим принципам IoC или Dependency Injection при программировании. Вам не нужен конкретный контейнер, чтобы обеспечить эту возможность. Вы можете просто написать код таким образом.
источник
Ну, Python наслаждается весной и Spring Python .
Spring Framework был создан для облегчения разработки Java, и то, что верно для разработки Java, не обязательно верно для разработки на Ruby или Python.
Например, в Ruby есть возможности метапрограммирования, что означает, что вы можете создать свой собственный АОП.
По иронии судьбы, новые веб-фреймворки Java пытаются поймать фреймворки Django и Rails (см., Например, фреймворки Grails и Play!).
источник
Для Python BlueBream (он же Zope 3) предоставляет то, что делает Spring и многое другое.
Сложность и мощь обходятся дорого, бывают моменты, когда вы не хотите их платить.
Многие программисты находят BlueBream пугающим и слишком много для того, что им нужно делать, они предпочитают более узкие, меньшие наборы инструментов. Большинство других решений (Django и т. Д.) Основаны на парадигме MVC.
Вы можете увидеть аналогичные силы в действии и в пространстве Java, с такими вещами, как красивая Playframework .
источник