Kami akan memulai proyek baru yang akan melibatkan pelatihan semua pengembang .net di Jawa (frameworks / sistem ECO dll). Kami memiliki banyak kode yang ditulis dalam C # dan tampaknya semua ini akan sia-sia karena kami harus menulis ulang semuanya di Jawa. Masalah yang saya lihat adalah bahwa tahun pertama atau lebih (mungkin 2 tahun) kami tidak akan memberikan apa-apa karena kami akan menghabiskan sebagian besar waktu mereproduksi apa yang kami miliki sebelumnya tetapi sekarang di Jawa.
Karena tim kami didistribusikan di berbagai kantor di seluruh dunia dan kami memiliki sejumlah besar pengembang java (20 hingga 30) dan 10 pengembang menggunakan .net, kami ingin mendapatkan semua pengembang menggunakan bahasa / platform yang sama sehingga kami dapat mulai menggunakan kembali komponen / modul. Jadi saya bisa mengerti sudut pandang manajemen.
Kemarin saya menemukan Scala dan bertanya-tanya apakah akan lebih baik menggunakan ini dengan produk saat ini (yang ditulis dalam C #) dan kemudian setidaknya kita akan memiliki produk yang berfungsi dalam setahun. Juga dalam setahun kami memiliki modul yang dapat digunakan di dunia Java sementara kami memigrasi bagian lain dari produk.
Akankah Scala menjadi pilihan yang lebih baik daripada Jawa mengingat apa yang kami coba capai?
Jawaban:
Beberapa hal yang perlu dipertimbangkan:
Mengingat semua ini, Anda mungkin ingin melakukan lindung nilai taruhan Anda dan pergi untuk strategi Java / Scala campuran - yaitu bermigrasi ke platform JVM , dan fokus pada Java, tetapi tetap buka opsi untuk menggunakan Scala ketika pengembang Anda merasa nyaman dan / atau itu cocok dengan masalah yang dihadapi.
Dari perspektif manajemen, ini memiliki banyak keuntungan:
Kelemahannya adalah Anda masih memiliki dua bahasa utama untuk didukung. Tetapi Anda mungkin sebenarnya sudah memiliki lebih dari dua (skrip shell? Format XML khusus domain? File konfigurasi? Mesin aturan? HTML? Javascript?) Sehingga Anda dapat berpendapat bahwa itu sebenarnya bukan masalah besar.
sumber
Saya akan menambahkan opsi ke-3. Adakah orang di organisasi Anda yang melihat interop antara modul C # dan Java Anda? Bagaimana Anda mengekspos fungsionalitas C #? Apakah layanan web SOAP atau RESTFul merupakan opsi?
Menulis ulang 2 tahun bisa menjadi lonceng kematian bagi sebuah organisasi (tanyakan saja pada Netscape). Namun migrasi bertahap sementara kode yang ada berfungsi baik satu sama lain memiliki potensi dampak bisnis yang lebih kecil.
sumber
Menulis ulang C # ke Scala akan sama sulitnya dengan menulis ulang ke Jawa. Adapun bahasa mana yang "lebih baik", titik itu bisa diperdebatkan, setiap bahasa memiliki poin plus dan minus sendiri.
Saya tidak tahu seberapa besar basis kode Anda tetapi 2 tahun untuk 30 pengembang tampaknya besar untuk penulisan ulang sederhana. Mengambil Java ketika Anda tahu C # itu mudah. Saya butuh satu atau dua hari untuk merasa nyaman dengan itu.
Saran saya adalah membiarkan manajemen mengambil jalan mereka dan menikmati kenyataan bahwa Anda dibayar untuk memperluas keahlian Anda.
sumber
Saya pikir pilihan yang lebih mudah adalah membuat pengembang java belajar C #. Kedua bahasa sangat mirip dalam banyak hal dan tidak butuh waktu lama bagi pengembang java untuk mengambil C #. Saya telah bekerja dengan banyak pengembang java yang belajar C # dan biasanya transisi yang mulus. Satu area di mana mereka mungkin macet untuk sementara waktu adalah model pemrograman WebForms. Pengembang Java menyesuaikan diri dengan paradigma MVC. Dengan cara ini, Anda tidak perlu menunggu selama setahun sebelum mulai mengembangkan fitur baru. Mengenai Scala, saya khawatir itu akan memperkenalkan masalah yang sama sekali baru dengan 30 pengembang yang mencoba mempelajari bahasa baru.
sumber