Menulis Python seperti Rust
(kobzol.github.io)- Setelah mulai menggunakan Rust, saya mengadopsi beberapa konsep Rust ke cara menulis kode Python
- Menggunakan type hint sebanyak mungkin
- Dataclasses alih-alih tuple/dictionary
- Algebraic data types (ADT)
- Pola newtype
- Mengenkodekan invariant dengan menggunakan tipe
- Bounding box dengan strong typing
8 komentar
Kalau begini, buat apa pakai Python...
(feat. Kalau begini, buat apa pakai nodejs)
Sepertinya cuma diberi tipe saja, tapi apakah layak dibandingkan dengan Rust?
Kalau mau menulis Python seperti Rust, bukankah lebih baik pakai Rust saja?..
Apakah Tensorflow dan PyTorch bisa dipakai dengan Rust? Kalaupun bisa, belum tentu pustaka-pustaka yang bergelantungan di sana juga bisa dipakai. Pemikiran seperti itu terlalu satu dimensi.
Saya pikir menggunakan karakteristik (konsep) bagus dari suatu bahasa dan benar-benar menggunakan bahasa itu sendiri adalah dua hal yang berbeda, meskipun itu bisa bergantung pada situasinya. Hanya karena karakteristik bahasa fungsional seperti Lisp atau Haskell digunakan dengan sangat efektif di JavaScript, bukan berarti Lisp bisa digunakan di tempat yang menggunakan JavaScript.
Tergantung situasinya, memang perlu dipilih sesuai kebutuhan, tetapi secara umum ini tampak seperti pendekatan yang layak direkomendasikan.
Saya kurang paham Python....
Kalau dilakukan seperti ini, bukankah overhead-nya jadi lebih besar?
Secara keseluruhan, isinya banyak membahas soal akan memakai type hint, tetapi ini bukan sesuatu yang dilakukan saat runtime, jadi tidak berhubungan dengan performa. Bagian pemeriksaan tipe seperti
isinstancetentu akan menambah beban dibanding tidak ada sama sekali, tetapi setahu saya itu di-cache secara internal. Kalau dilakukan dalam loop yang sangat besar, memang bisa muncul perbedaan.