Pada SO saya menemukan pertanyaan tentang platform, Java atau Python mana yang terbaik untuk dikembangkan di Google AppEngine. Banyak orang membual tentang peningkatan produktivitas yang diperoleh dari menggunakan Python di Jawa. Satu hal yang akan saya katakan tentang argumen produktivitas Python vs Java, adalah Java memiliki IDE yang sangat baik untuk mempercepat pengembangan sedangkan Python benar-benar kurang dalam bidang ini karena sifatnya yang dinamis.
Jadi meskipun saya lebih suka menggunakan Python sebagai bahasa, saya tidak percaya itu memberikan peningkatan produktivitas dibandingkan dengan Java terutama ketika menggunakan kerangka kerja baru. Jelas jika itu adalah Java vs Python dan satu-satunya editor yang dapat Anda gunakan adalah VIM maka Python akan memberi Anda dorongan produktivitas yang sangat besar tetapi ketika IDE dimasukkan ke dalam persamaan, itu tidak begitu jelas.
Saya pikir kelebihan Java sering semata-mata dievaluasi pada tingkat bahasa dan sering pada asumsi tanggal tetapi Jawa memiliki banyak manfaat eksternal untuk bahasa itu sendiri, misalnya JVM (sering dikritik tetapi menawarkan potensi besar), IDE yang sangat baik dan alat, sejumlah besar ketiga perpustakaan pesta, platform dll.
Pertanyaan, Apakah Python / bahasa dinamis terkait benar-benar memberikan peningkatan produktivitas besar yang sering dibicarakan? (dengan pertimbangan diberikan untuk menggunakan kerangka kerja baru dan bekerja dengan aplikasi sedang hingga besar).
Jawaban:
Salah satu keunggulan utama Python adalah filosofi "termasuk baterai": perpustakaan standar yang luas dan mudah digunakan. Di Jawa, hanya membaca file teks memerlukan beberapa baris kode, pembaca bersarang dan semacamnya. Dengan Python
f.read()
. Ini pasti akan menjadi peningkatan produktivitas besar terutama dalam pembuatan prototipe cepat. Bahasa Python juga umumnya kurang bertele-tele, yang bukan merupakan hal yang buruk (meskipun saya pikir pentingnya verbositas vs keringkasan sering terlalu ditekankan).Namun, jika Anda sudah mengerjakan beberapa kerangka kerja, seperti GAE, maka saya berharap perbedaannya akan jauh lebih kecil, dan terutama hingga kefasihan pribadi seseorang dalam bahasa tersebut. Anda sebagian besar hanya akan menggunakan kerangka kerja bersama dengan sintaks pilihan Anda, dan di sana pustaka standar Python yang bagus tidak banyak membantu.
sumber
List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("UTF-8"));
. Lumayan! (Ini adalah java 7 yang belum dirilis pada 11 Maret).Ini 2 sen saya. Dalam pengalaman saya Python baik untuk proyek-proyek kecil hingga menengah sedangkan untuk proyek-proyek besar saya lebih produktif dengan Java.
Secara umum, saya dapat menggunakan bahasa yang diketik secara dinamis seperti Python (atau PHP) untuk proyek yang lebih kecil: tidak terlalu rumit, Anda ingin menyelesaikannya dengan cepat dan tidak ada terlalu banyak yang bisa salah. Dalam hal ini, saya menemukan bahwa Python bisa lebih praktis untuk digunakan.
Namun, ketika saya harus mengembangkan perangkat lunak yang lebih besar, saya lebih suka bahasa yang diketik secara statis seperti Java karena saya lebih suka kompiler untuk melakukan sebanyak mungkin pemeriksaan untuk saya. Pengalaman saya adalah bahwa dalam proyek yang lebih besar saya harus menghabiskan lebih banyak waktu memperbaiki bug dengan Python daripada dengan Java, jadi saya tidak repot-repot jika diperlukan sedikit lebih banyak untuk menulis kode di Jawa karena ini akan menghemat waktu nanti.
sumber
Saya jauh lebih produktif dalam bahasa yang lebih kuat seperti Python atau Ruby. Tidak masalah jika beberapa kode Java dapat dihasilkan oleh IDE. Ada lebih banyak kode untuk dibaca dan dipelihara. Dibutuhkan lebih banyak waktu untuk mengarungi kode berulang dan menemukan bagian-bagian penting, dan lebih banyak waktu untuk mengubahnya. Tidak masalah Eclipse dapat mengonversi
untuk:
tetapi setiap kali saya membuka kelas saya akan melihat sampah itu dan harus melewatinya untuk menemukan bagian yang menarik. Juga, selama pemeliharaan, kesalahan dapat dimasukkan ke dalam kode yang dihasilkan.
Saya lebih suka melihat:
Bagi saya, perlunya IDE untuk bekerja secara efektif dengan Java adalah alasan yang baik untuk memilih bahasa lain.
Mungkin lebih kuat, bandingkan kode Ruby ini:
terhadap kode Java serupa:
Kode Ruby adalah terjemahan langsung dari spesifikasi: berat rata-rata orang yang lebih tinggi dari 200 (cm). Sebuah komentar akan sangat berlebihan.
Kode Java membutuhkan kerja keras untuk menulis dan membaca.
Paul Graham membuat argumen yang meyakinkan untuk singkatnya bahasa pemrograman dalam esai ini . Setelah melakukan beberapa matematika tingkat pascasarjana, saya menemukan argumennya menarik, dan argumen terhadap singkatnya lemah. Tentu saja satu baris dalam bahasa tingkat tinggi mungkin lebih sulit untuk dipahami daripada satu baris dalam bahasa tingkat rendah, seperti halnya persamaan diferensial parsial lebih sulit untuk dipahami daripada penambahan sederhana. Tetapi satu baris dalam bahasa yang kuat lebih mudah dipahami daripada lima atau sepuluh baris yang digantikannya. Bayangkan membaca teks matematika yang ditulis menggunakan kata-kata, bukan simbol.
sumber
dateOfBirth
publik. Jika logika perlu ditambahkan nanti di get atau set, tambahkan a_dateOfBirth
untuk menyimpan data, lalu buatproperty
namadateOfBirth
dengan metode get dan set. Kode panggilan tidak perlu diubah sama sekali dengan Python. Java hanya menggunakan accessors karena tidak memiliki konsep "properti".people.stream().filter(p -> p.getHeight() > 200).mapToDouble(Person::getWeight).average().orElse(0);
Saya pindah dari Jawa ke Python beberapa tahun yang lalu dan secara pribadi merasa bahwa saya lebih produktif. Seperti yang ditunjukkan oleh @Joonas, banyak produktivitas berasal dari perpustakaan paket. Tetapi beberapa di antaranya berasal dari bahasa itu sendiri. Saya tidak bisa membayangkan tidak memiliki kamus, pemahaman daftar, fungsi urutan yang lebih tinggi & shell.
Perlu diingat bahwa jika Anda sudah mengenal Java, perlu waktu untuk menjadi fasih berbahasa Python.
sumber
Ini sedikit pertanyaan lama tapi saya ingin menambahkan $ 0,03 saya. Saya pikir itu sangat tergantung pada cara Anda berpikir juga. I untuk satu benar-benar tidak tahan bahasa dinamis, ditafsirkan. Saya, di sisi lain, penggemar berat bahasa yang diketik secara statis. Tentu, menggunakan Java bisa lebih verbose tapi saya merasa lebih mudah untuk membaca dan memelihara setelah semuanya dikatakan dan dilakukan. Saya menemukan Python, Ruby, dan Perl sangat sulit dibaca (untuk saya). Aku tidak bisa membungkus kepalaku walaupun aku sudah mencoba. Yang mengatakan, saya bisa menulis kode dalam Scala baik-baik saja dan itu bukan masalah besar. Saya pikir itu tergantung pada apa yang Anda merasa nyaman. Pada akhirnya Jawa akan jauh lebih kuat; lebih dari Ruby, Python, atau Perl. JVM adalah teknologi yang menarik dan pembelajaran untuk memanfaatkan kekuatannya bisa sangat bermanfaat bagi Anda.
sumber
Saya menemukan bahwa Python, Ruby, Javascript dan SQL jauh lebih produktif daripada bahasa yang dikompilasi seperti Java karena bahasa-bahasa tersebut memiliki umpan balik yang sangat cepat. Anda dapat menjalankan beberapa baris kode pada baris perintah dan segera tahu apakah kode itu benar atau tidak. Jika itu melempar pengecualian, Anda langsung tahu. Dengan Java, Anda harus mengkompilasi, mengemas, dan menggunakan yang sering membutuhkan waktu beberapa menit untuk sistem besar, dan ini menghasilkan siklus umpan balik yang sangat lambat.
Siklus umpan balik cepat memungkinkan Anda dengan cepat beralih ke solusi yang baik, dan itulah yang membuat bahasa yang dinamis lebih produktif.
sumber
feedback loop
Saya telah melakukan lebih banyak python baru-baru ini dan telah menjadi programmer java untuk waktu yang lama, dan untuk pengembangan baru, saya pikir saya sedikit lebih produktif dalam python. banyak hal yang cukup sederhana di java bisa sedikit membosankan, seperti pemrosesan file / stream, membaca hal-hal dari URL, serialisasi XML, dll. dengan "membosankan", maksud saya apa yang membawa Anda 5 baris kode di java sepertinya sering ambil hanya satu dengan python. menggunakan alat yang tepat, seperti jambu atau API koleksi lain, benar-benar dapat membantu dengan ini.
Saya kira saya mengatakan bahwa salah satu keuntungan dari python adalah ia mengirim dengan banyak fitur yang Anda butuhkan untuk menggunakan perpustakaan pihak ke-3 di Jawa untuk mendapatkan.
semua yang dikatakan, untuk hal-hal tertentu saya akan jauh lebih produktif di java daripada saya bisa di python, terutama ketika datang ke refactoring dan bekerja dengan basis kode besar, dll.
sumber