Harga pemindahan Mercurial ke Python 3 mungkin merupakan jejak ralat yang tidak dijangka.

Penyelenggara sistem kawalan versi Mercurial turunkan saya jumlah berusaha untuk memindahkan projek daripada Python 2 kepada Python 3. Walaupun percubaan pemindahan pertama telah dibuat pada tahun 2008, dan penyesuaian dipercepat untuk bekerja dengan Python 3 bermula pada tahun 2015, keupayaan penuh untuk menggunakan Python 3 telah dilaksanakan hanya dalam tempoh terkini. cawangan Mercurial 5.2.

Ramalan tentang kestabilan port untuk Python 3 adalah mengecewakan. Khususnya, ralat rawak dijangka akan muncul dalam kod selama beberapa tahun, kerana ujian tidak meliputi 100% asas kod, dan banyak masalah tidak dapat dilihat semasa analisis statik dan hanya muncul pada masa jalan. Selain itu, banyak alat tambah dan sambungan pihak ketiga masih belum diterjemahkan kepada Python 3.
Memandangkan semasa porting, ia telah memutuskan untuk menyesuaikan kod secara beransur-ansur kepada Python 3, sambil mengekalkan sokongan untuk Python 2, kod tersebut memperoleh banyak hacks untuk menggabungkan Python 2 dan 3, yang perlu dibersihkan selepas sokongan untuk Python 2 tamat.

Mengulas tentang situasi dengan Python 3, penyelenggara Mercurial percaya bahawa keputusan untuk mempromosikan Python 3 yang melanggar kebolehoperasian dan mengenakannya sebagai bahasa baharu yang lebih betul, tanpa adanya peningkatan terobosan yang berkaitan dengan pembangun, adalah satu kesilapan besar yang menyebabkan kemudaratan besar kepada masyarakat dan merupakan contoh bagaimana projek besar tidak perlu berbuat demikian. Daripada membina fungsi secara beransur-ansur dan membenarkan aplikasi disesuaikan secara berperingkat, keluaran Python 3 memaksa pembangun untuk menulis semula kod dan membelanjakan sumber untuk mengekalkan cawangan berasingan untuk Python 2 dan Python 3. Hanya tujuh tahun selepas keluaran Python 3.0 barulah Python 3.5 memperkenalkan ciri untuk melancarkan proses peralihan dan memastikan bahawa asas kod yang sama menjalankan kedua-dua Python 2 dan Python 3.

Sumber: opennet.ru

Tambah komen