Saya menulis aplikasi Java perusahaan dan layanan web di tempat kerja ( Spring , Hibernate, Maven, RESTEasy) dan PHP (CakePHP) dan Python (Django) untuk proyek sampingan saya.
Sementara saya memang melihat nilai yang Inversion of Control, Aspect Oriented Programming, dll yang membawa Spring, saya tidak yakin bagaimana aplikasi web besar yang tidak ada di stack Java mengelola tanpa kerangka kerja seperti Spring.
Jadi, apakah para pengembang hanya harus "tahan dengan" komponen-komponen yang digabungkan secara ketat dan keluhan-keluhan lain yang dihilangkan Spring atau apakah saya kehilangan sesuatu?
Bagi mereka yang tidak terbiasa dengan Spring, fitur yang paling sering kami gunakan adalah:
Inversi wadah Kontrol: konfigurasi komponen aplikasi dan manajemen siklus hidup objek Java,
Pemrograman berorientasi aspek: memungkinkan implementasi rutinitas lintas sektoral,
Manajemen transaksi: menyatukan beberapa API manajemen transaksi dan mengoordinasikan transaksi untuk objek Java.
Jawaban:
Platform lain tidak perlu Spring karena bahasa-bahasa itu tidak seketat Java.
Saya akan memberikan contoh dengan node.js
konfigurasi server dilakukan baik dalam kode atau file konfigurasi json sederhana. Adapun sistem IoC generik, kita tidak membutuhkannya, Javascript adalah bahasa yang ekspresif dan dinamis. Ya Anda membutuhkan IoC tapi itu sederhana, meneruskan dependensi ke objek Anda sebagai parameter fungsi.
Saya benar-benar tidak berpikir kita perlu sesuatu seperti ini, kita menulis kode modular dan hanya berfungsi.
noSQL sangat populer. Tidak ada pengertian transaksi.
Secara pribadi saya akan mengatakan sistem seperti itu bengkak dan over engineered dan Anda hanya tidak membutuhkannya. Bahasa dan platform lainnya tetap ramping dan gesit.
sumber
Dalam sebagian besar bahasa tingkat tinggi, menulis dengan menggunakan AOP dan / atau prinsip desain IoC sepele.
Yang Anda butuhkan untuk menerapkan AOP adalah bahasa yang mendukung fungsi tingkat tinggi. Sebagai contoh:
Anda juga dapat mengikuti prinsip umum IoC atau Injeksi Ketergantungan saat pemrograman. Anda tidak perlu wadah khusus untuk menyediakan kemampuan itu. Anda bisa menulis kode seperti itu.
sumber
Nah Python menikmati Spring juga Spring Python .
Kerangka pegas dibuat untuk memudahkan pengembangan Java dan apa yang benar untuk pengembangan Java tidak perlu benar untuk pengembangan Ruby atau Python.
Ruby misalnya memiliki kemampuan Metaprogramming yang berarti Anda dapat membuat AOP Anda sendiri.
Ironisnya, kerangka kerja web Java baru mencoba menangkap kerangka Django dan Rails (lihat kerangka kerja Grails and Play! Misalnya).
sumber
Untuk Python, BlueBream (alias Zope 3) memberikan apa yang dilakukan oleh Spring dan banyak lagi.
Kompleksitas dan kekuasaan harus dibayar, ada saatnya Anda tidak mau membayarnya.
Banyak programmer menganggap BlueBream menakutkan dan terlalu banyak untuk apa yang harus mereka lakukan, mereka lebih suka toolkit yang lebih ramping dan lebih kecil. Sebagian besar solusi lain (Django, dll.) Didasarkan pada paradigma MVC.
Anda dapat melihat kekuatan serupa beraksi di ruang Jawa juga, dengan hal-hal seperti Playframework yang indah .
sumber