Banyak programmer, setelah pertama kali bertemu Python, segera ditunda oleh pentingnya spasi putih. Saya telah mendengar berbagai alasan bahwa ini tidak nyaman, tetapi saya belum pernah mendengar keluhan dari seorang programmer Python.
Tentu saja, saya belum bertemu banyak programmer Python, karena saya telah menghabiskan karir saya di dunia Java.
Jadi pertanyaan saya adalah bagi Anda yang telah berpartisipasi dalam proyek Python besar (lebih dari 3 bulan, dengan Python menjadi bahasa utama yang digunakan): Apakah Anda menemukan masalah spasi putih tidak nyaman dan terus-menerus mengganggu? Atau apakah itu bukan masalah setelah Anda ikut arus?
Saya tidak mengajukan pertanyaan karena saya mendukung atau menentang Python, atau untuk atau menentang penggunaan spasi putih. Saya kebetulan suka Python, tapi saya tidak pernah menggunakannya untuk hal besar.
Tolong jangan berikan spekulasi jika Anda tidak berpengalaman dengan Python.
sumber
Jawaban:
Hanya ada satu kasus di mana saya menemukan ruang kosong menjadi menjengkelkan, dan saat itulah memodifikasi kode yang ada sehingga blok kode harus menjadi lebih atau kurang menjorok dari sebelumnya (misalnya, menambah atau menghapus
if:
sebelum kode). Saat menulis dalam bahasa seperti C, Anda cukup menambahkanif
dan sepasang kurung kurawal, dan (dalam Emacs, atau saya bayangkan ada editor yang bagus) tekan Tab untuk membiarkan editor secara otomatis memperbaiki lekukan. Dengan Python, Anda harus melakukannya sendiri. Tentu saja, ada jalan pintas editor untuk melakukannya sendiri, jadi itu tidak terlalu buruk, tetapi hilangnya redundansi tidak membebankan sedikit tambahan pada programmer.Secara keseluruhan, ini adalah kemenangan, jika hanya untuk mencegah separuh layar saya tidak terisi dengan garis-garis seperti berikut:
sumber
C-c >
atauC-c <
. Anda masih harus melakukannya sendiri. Dengan kata lain, karena spasi dan logika kode tidak mubazir, Anda tidak bisa hanya memilih blok raksasa dan memanggilM-x indent-region
(atau apa pun versi editor Anda) untuk membuat indentasi semuanya "dengan benar".Saya suka ruang putih signifikan Python. Bagi saya itu adalah contoh sempurna KERING di tingkat sintaksis. Cara yang dapat dibaca manusia untuk menunjukkan di mana blok kode dimulai dan diakhiri dengan indentasi. Jika Anda ingin kode Anda dapat dibaca, Anda harus indentasi apa pun bahasanya. Konyol membuat programmer menentukan informasi ini dua kali, satu kali untuk kompiler / juru bahasa dan satu kali untuk manusia. Lebih jauh, lekukan dalam bahasa mirip-C mirip dengan komentar: Ini dimaksudkan untuk meningkatkan pemahaman tetapi maknanya tidak ditegakkan oleh kompiler / juru bahasa dan itu bisa keluar dari sinkronisasi dengan makna sebenarnya (di mana kawat gigi itu) sangat mudah, membingungkan daripada mengklarifikasi.
sumber
Ruang kosong yang signifikan sebenarnya nyaman bagi saya. Itu membuat saya mengetik lebih sedikit. Ini memformat kode dengan rapi dan agak tidak ambigu. Karena ini, itu membuat kode lebih mudah dibaca.
(Saya suka spasi putih yang signifikan di Haskell juga, untuk alasan yang sama.)
sumber
Ketika saya pertama kali menggunakan python, hal spasi putih itu baru dan karenanya pembatasan yang menjengkelkan.
Sekarang saya bahkan tidak menyadarinya. Saya telah menggunakan python selama 11 bulan.
sumber
Pertama - bahasa roti dan mentega saya adalah Python, SQL, dan Java. Saya suka spasi putih Python - kurang sintaksis dan pengetikan, dan memaksa orang untuk menulis kode yang dapat dibaca dan diformat dengan rapi. OTOH, saya benci verbositas Jawa - sangat banyak sehingga saya benar-benar menggunakan Python untuk menghasilkan semua pelat boiler yang harus saya tulis di Jawa, yang mengesankan semua rekan kerja Java saya yang kagum dengan produktivitas saya.
Satu peringatan besar adalah ketika menyalin / menempel kode dari web - sering menyebabkan spasi dan tab campuran yang membutuhkan langkah ekstra untuk membersihkan, dan saya biasanya hanya menangkap setelah pengecualian runtime.
sumber
highlight link RedundantSpaces Error | au BufEnter,BufRead * match RedundantSpaces "\t" | au BufEnter,BufRead * match RedundantSpaces "[[:space:]]\+$"
di vimrc sayaJika seorang programmer terganggu oleh pentingnya white-space ia mungkin tidak akan menjadi programmer python.
sumber
Saya yakin Anda akan menemukan banyak tumpang tindih antara orang-orang yang memiliki masalah dengan ruang kosong yang signifikan dan mereka yang tidak memiliki pengalaman dengan editor teks programmer yang baik, seperti Emacs, yang menangani sebagian besar lekukan tanpa keterlibatan mereka.
Bagaimanapun, setelah Anda menginternalisasi Python, itu bukan masalah lagi; pada kenyataannya, keringkasan dan ruang kecil yang diperlukan di layar menjadi keuntungan besar untuk dibaca. Karena saya telah menggunakan terutama Python, saya menemukan bahasa di mana ada lebih banyak redundansi (misalnya Java dan C #) sulit untuk mendisiplinkan diri untuk menulis. Menempatkan kawat gigi di sekitar kode yang lekukan sudah membuat strukturnya jelas di saraf saya.
sumber
Untuk pengkodean aktual, ini sama sekali tidak merepotkan, tetapi sebenarnya bermanfaat (lihat jawaban dsimcha).
Ini bisa menjengkelkan ketika berhadapan dengan teknologi komunikasi yang tidak menghormati spasi putih terkemuka (seperti banyak forum web berorientasi non-pemrograman dan juga ketika menyematkan kode Python ke dalam bahasa yang berbeda, seperti bahasa templating HTML), Meskipun saya melihat itu sebagai lebih banyak cacat pada alat yang menghilangkan spasi putih terkemuka daripada cacat pada Python, memang benar bahwa bahasa yang berlebihan yang mengekspresikan struktur kode dua kali lebih siap untuk menangani lingkungan yang merusak (karena Anda dapat menempelkan kode ke editor dan otomatis reindent berdasarkan pada marka struktural eksplisit, atau tidak peduli apakah kode tersebut hanya dieksekusi daripada dibaca oleh manusia).
sumber
Saya tidak menemukan ruang putih itu mengganggu. Saya menemukan indentasi yang kurang atau tidak konsisten sangat menjengkelkan dalam bahasa lain. Saya mengerti masalah ini adalah salah satu masalah yang ingin dipecahkan oleh gaya.
Python bukan salah satu bahasa utama saya.
Saya menemukan penanganan tab dan spasi di indentasi kadang-kadang mengganggu. Ini dapat menyebabkan masalah saat mengalihkan editor dari satu edit ke yang lain, atau ketika mengedit kode yang ditulis orang lain. Biasanya sepele untuk diselesaikan.
sumber
Saya berasal dari latar belakang C # / Javascript / XBase tanpa urutan tertentu, dan dalam mencoba-coba saya dengan Python itu bukan pertimbangan sama sekali bagi saya. Ini seperti kawat gigi dalam bahasa lain - begitulah cara kerjanya, memasukkan hal-hal seperti yang dikatakan peraturan, dan mengeringkan mata Anda adalah sikap saya.
sumber