Piszę aplikacje Java dla przedsiębiorstw i usługi sieciowe w pracy ( Spring , Hibernate, Maven, RESTEasy) oraz PHP (CakePHP) i Python (Django) dla moich pobocznych projektów.
Chociaż widzę wartość, jaką przynosi inwersja sterowania, programowanie zorientowane na aspekty itp., Które przynosi Spring, nie jestem pewien, jak potężne aplikacje internetowe, które nie znajdują się na stosie Java, radzą sobie bez frameworka takiego jak Spring.
Czy więc programiści muszą po prostu „pogodzić się” ze ściśle powiązanymi komponentami i innymi skargami, które Spring eliminuje, czy coś mi brakuje?
Dla tych, którzy nie znają wiosny, najczęściej używamy funkcji:
Inwersja kontenera Control: konfiguracja komponentów aplikacji i zarządzanie cyklem życia obiektów Java,
Programowanie zorientowane na aspekty: umożliwia wdrożenie procedur przekrojowych,
Zarządzanie transakcjami: ujednolica kilka interfejsów API do zarządzania transakcjami i koordynuje transakcje dla obiektów Java.
Odpowiedzi:
Inne platformy nie potrzebują Springa, ponieważ te języki nie są tak restrykcyjne jak Java.
Podam przykład z node.js
konfiguracja serwera odbywa się w kodzie lub w prostym pliku konfiguracyjnym json. Jeśli chodzi o ogólne systemy IoC, po prostu ich nie potrzebujemy, JavaScript to ekspresyjny i dynamiczny język. Tak, potrzebujesz IoC, ale to proste, przekaż zależności do obiektów jako parametry funkcji.
Po prostu nie sądzę, że potrzebujemy czegoś takiego, piszemy modułowy kod i to po prostu działa.
noSQL jest niezwykle popularny. Nie ma pojęcia transakcji.
Osobiście powiedziałbym, że takie systemy są nadęte i przerobione, a ty po prostu ich nie potrzebujesz. Inne języki i platformy są po prostu szczupłe i sprawne.
źródło
W większości języków wysokiego poziomu pisanie przy użyciu zasad projektowania AOP i / lub IoC jest banalne.
Wszystko, czego potrzebujesz, aby wdrożyć AOP, to język obsługujący funkcje wyższego rzędu. Na przykład:
Podczas programowania możesz także przestrzegać ogólnych zasad IoC lub Injection Dependency. Nie potrzebujesz konkretnego kontenera, aby zapewnić taką możliwość. Możesz po prostu napisać kod w ten sposób.
źródło
Cóż, Python cieszy się wiosną także Spring Python .
Framework Spring został stworzony w celu ułatwienia programowania w Javie, a to, co jest prawdziwe w przypadku programowania Java, nie jest konieczne w przypadku programowania Ruby lub Python.
Na przykład Ruby ma możliwości Metaprogramowania, co oznacza, że możesz stworzyć swój własny AOP.
Jak na ironię, nowe frameworki Java próbują złapać frameworki Django i Rails (patrz na przykład frameworki Grails i Play!).
źródło
W przypadku Pythona BlueBream (znany również jako Zope 3) zapewnia to, co robi Spring i nie tylko.
Złożoność i moc wiążą się z kosztami, są chwile, kiedy nie chcesz jej płacić.
Wielu programistów uważa BlueBream za zniechęcające i zdecydowanie za dużo w stosunku do tego, co muszą zrobić, wolą cieńsze, mniejsze zestawy narzędzi. Większość innych rozwiązań (Django itp.) Opiera się na paradygmacie MVC.
Podobne siły działają również w przestrzeni Java, z takimi rzeczami jak piękny Playframework .
źródło