W tym kontekście pracuję w dużym prywatnym banku w Szwajcarii, pisząc aplikacje korporacyjne na stosie J2EE.
W Pythonie dostępnych jest wiele frameworków internetowych "Production Ready". Istnieje wiele dużych serwisów opartych na Pythonie.
Powiedział, że myślę, że Python jest złym wyborem dla aplikacji Enterprisy. Może być używany jako język klejenia lub język skryptowy (nasze skrypty wdrożenia to Python). Showstopper to dla mnie kompatybilność wsteczna (Python 3.x nie jest wstecznie zgodny z Pythonem 2.x). Filozofia Pythona wydaje się bardziej innowacyjna i sprawia, że język jest lepszy, płynniejszy i niekoniecznie wspiera programy napisane 10 lat temu.
Po stronie strony internetowej, uwielbiam Django, ale jest zdecydowanie za młody i ewoluuje zbyt szybko, aby mógł być używany w przedsiębiorstwie. Nie mam dużego doświadczenia z innymi frameworkami opartymi na Pythonie.
Jeśli chcesz stworzyć platformę dla przedsiębiorstw, musisz pozostać przy stosach korporacyjnych (Java/.Net).
Z drugiej strony, nawet w świecie Java istnieje tendencja do korzystania z frameworków, które są mniej entuzjastyczne.Think Spring vs EJB2 lub EJB3 są znacznie lżejsze niż EJB2. Albo myślę, że Flex (który jest daleki od ram korporacyjnych, moim zdaniem) jest coraz częściej wykorzystywany w przedsiębiorstwie. Więc jeśli twoja firma jest wystarczająco otwarta, gotowa do skoku w przyszłość, używanie Django, RoR lub innych nowoczesnych Web 2.0, opartych na społeczności, Open Source, następnej generacji, opartych na aktywnych rekordach ... może nie być aż tak trudne. ..
I wreszcie, aby odpowiedzieć na kilka z punktów bezpośrednio:
- wsparcie ORM/cache/...: Tak, ale większość rozwiązań są oparte na aktywnym rekordu, co jest dobre dla 90 % z tego, co możesz chcieć, ale z pewnością nie jest tak kompletny/złożony jak JPA/Hibernate
- zorientowany na kontrolę UI: nie, i nie znajdziesz standardu, więc nie znajdziesz komponentów innych firm. Najbliższym, co możesz uzyskać, jest integracja z jQuery lub innymi frameworkami JS UI
- Wstrzykiwanie zależności: Istnieje port Spring do Pythona, obsługiwany przez SpringSource. Ale DI nie jest w filozofii Pythona. Ten sam problem zostanie rozwiązany za pomocą funkcji, domyślnych argumentów i zamknięć. I możemy argumentować, że rozwiązanie Pythonic jest czystsze niż metoda Java ...
- testy jednostkowe/integracyjne: bardzo dobra obsługa, wiele frameworków testowych. Mimo to wsparcie nie jest tak dobre, jak w Javie, gdzie mamy mnóstwo narzędzi do testowania.
- Dobre wsparcie dla IDE: istnieją ograniczenia techniczne w zakresie wsparcia, które możesz zapewnić w dynamicznym języku, ale przynajmniej zarówno Eclipse, jak i Netbeans mają świetne wsparcie dla Pythona.
- Klastrowanie/modułowość: klastrowanie zostanie rozwiązane za pomocą "infrastruktury nic nie udostępniaj" i/lub rozproszonego buforowania. Na ile wiem, nie ma rozwiązań dla modułowości (w sensie OSGI). Ale rzuciłbym wyzwanie, że bardzo często OSGI jest rozwiązaniem problemu, którego nie mamy w przedsiębiorstwie ...
Jeśli nie wiesz nic o Python następnie przełączenie na bazie ram Python wiedzieć prawdopodobnie nie jest to bardzo dobry pomysł. –
Więc chcesz wszystkie funkcje Java EE ... W Pythonie? STICK DO JAVY! – jonwd7
Prawie wszystkie ramy spełniają twoje "gotowe do produkcji" kryteria. Ale zadajesz pytanie w sposób ("czy są jakieś"), które jest zasadniczo argumentacyjne. Po co zadawać pytanie w ten sposób? –