Harga migrasi Mercurial ke Python 3 mungkin merupakan jejak kesalahan yang tidak terduga.

Pemelihara sistem kontrol versi lincah mengecewakanku total bekerja untuk mentransfer proyek dari Python 2 ke Python 3. Terlepas dari kenyataan bahwa upaya porting pertama dilakukan pada tahun 2008, dan adaptasi yang dipercepat untuk bekerja dengan Python 3 dimulai pada tahun 2015, kemampuan penuh untuk menggunakan Python 3 hanya diterapkan di versi terbaru cabang Mercurial 5.2.

Prediksi mengenai stabilitas port untuk Python 3 mengecewakan. Secara khusus, kesalahan acak diperkirakan akan muncul dalam kode selama beberapa tahun, karena pengujian tidak mencakup 100% basis kode, dan banyak masalah tidak terlihat selama analisis statis dan hanya muncul saat runtime. Selain itu, banyak add-on dan ekstensi pihak ketiga yang masih belum diterjemahkan ke Python 3.
Karena selama porting diputuskan untuk mengadaptasi kode secara bertahap ke Python 3, sambil mempertahankan dukungan untuk Python 2, kode tersebut memperoleh banyak peretasan untuk menggabungkan Python 2 dan 3, yang harus dibersihkan setelah dukungan Python 2 berakhir.

Mengomentari situasi dengan Python 3, pengelola Mercurial percaya bahwa keputusan untuk mempromosikan Python 3 yang melanggar interoperabilitas dan menerapkannya sebagai bahasa baru yang lebih tepat, dengan tidak adanya perbaikan terobosan yang relevan bagi pengembang, adalah kesalahan besar yang menyebabkan kerugian besar bagi masyarakat dan merupakan contoh betapa proyek-proyek besar tidak perlu melakukan hal tersebut. Alih-alih membangun fungsionalitas secara bertahap dan memungkinkan aplikasi untuk dikustomisasi secara bertahap, rilis Python 3 memaksa pengembang untuk menulis ulang kode dan menghabiskan sumber daya untuk memelihara cabang terpisah untuk Python 2 dan Python 3. Baru tujuh tahun setelah rilis Python 3.0 barulah Python 3.5 memperkenalkan fitur untuk memperlancar proses transisi dan memastikan bahwa basis kode yang sama menjalankan Python 2 dan Python 3.

Sumber: opennet.ru

Tambah komentar