Saya baru mulai belajar Python, dan saya ingin mendapatkan lebih banyak konteks pada bahasa.
Saya menyadari bahwa, dalam banyak kasus, Python adalah bahasa yang lambat relatif terhadap C atau C ++. Dengan demikian, Python mungkin bukan pilihan terbaik untuk aplikasi yang perlu dijalankan secepat mungkin.
Di luar ini, sepertinya Python adalah bahasa tujuan umum yang bagus yang mudah dibaca dan ditulis. Perpustakaan yang tersedia memberikannya sejumlah besar fungsionalitas. Di luar aplikasi penting kinerja, di mana itu pilihan yang buruk untuk menggunakan Python (dan mengapa)?
Jawaban:
Perangkat lunak ditujukan untuk target tertanam dengan sumber daya terbatas mereka. Sebagian besar prosesor di planet ini tidak dapat menjalankan Python karena sumber daya yang tidak mencukupi, atau tidak ada yang memport versi ke arsitektur itu. Sebagian besar prosesor, bahkan sekarang, datang dengan kurang dari satu megabyte memori.
sumber
Dua tempat yang terlintas dalam pikiran adalah hal-hal yang membutuhkan banyak konkurensi, yang mana saya akan menggunakan Erlang. Atau perhitungan numerik tugas berat, yang mungkin saya coba gunakan Fortran.
sumber
Karena Python adalah bahasa yang diketik secara dinamis, tanpa pemeriksaan waktu kompilasi, refactoring proyek Python besar yang tidak memiliki tes unit luas akan sulit.
Jadi, jika Anda memiliki proyek besar yang perlu dipertahankan dan dimodifikasi untuk waktu yang lama, dan tim Anda tidak berkomitmen untuk membuat tes otomatis untuk semuanya, maka Anda mungkin lebih baik menggunakan Java atau C #.
sumber
Jika fokus utama adalah pengembangan windows GUI, maka saya akan merekomendasikan terhadap CPython karena ada kekurangan desainer bentuk yang baik (dibandingkan dengan menggunakan .Net).
Namun, IronPython berjalan di. Net dan Anda ada dua IDE dengan desainer Formulir untuk dipilih: Visual Studio dan SharpDevelop. Sebenarnya Tools Python untuk Visual Studio dapat digunakan untuk CPython dan juga IronPython, yang cukup rapi meskipun saya belum mencobanya ...
sumber
Ini benar-benar tergantung pada apa yang Anda maksud dengan "pilihan buruk".
Jika yang Anda maksud aplikasi di mana menggunakan Python sangat sulit, maka ada relatif sedikit: yang utama yang muncul di pikiran dan belum disebutkan adalah kode yang membutuhkan tingkat ketelitian yang tinggi di mana bahasa dengan sistem tipe canggih (Haskell, bahasa yang diketik dengan dependen) ) adalah pilihan yang lebih baik.
Jika yang Anda maksud aplikasi di mana Python adalah sub-optimal (yaitu, ada pilihan yang lebih baik) maka ada lebih banyak tetapi mereka juga lebih subjektif. Sebagai contoh, dalam pengalaman saya yang diakui terbatas, bekerja pada kompiler dan juru bahasa jauh lebih mudah dengan tipe data aljabar, pencocokan pola dan fitur yang lebih fungsional daripada yang dimiliki Python. Namun, daftar aplikasi yang lengkap seperti ini tidak mungkin karena mereka bervariasi per orang.
sumber
Ini ideal untuk menulis sesuatu dengan cepat karena kemampuannya yang ekspresif dan berbagai pustaka pendukung.
Pengecekan tipe dinamis dan kurangnya deklarasi variabel eksplisit membuatnya menjadi pilihan yang buruk untuk proyek besar yang melibatkan ratusan ribu, atau bahkan jutaan baris kode. Hal yang sama berlaku untuk sistem kritis misi atau keselamatan kritis. Dalam sistem avionik, misalnya, akan sama sekali tidak dapat diterima untuk sistem gagal karena kesalahan yang bisa ditangkap pada waktu kompilasi.
sumber
Yah, sama seperti Anda, saya juga baru mulai dengan Python. Tetapi bagi saya dalam konteks pembelajaran mesin dan ilmu data.
Saya juga baru saja memperoleh semua pengetahuan baru di Java 8 dan perpustakaan baru yang berorientasi aliran.
Saya benar-benar menyukai nuansa mengalir dari perpustakaan Java 8 stream yang baru, dan seberapa dekat rasanya saya berhutang pada perpustakaan percikan Apache. Ketika saya masuk ke Python, saya mengharapkan hal yang sama dan lebih.
Saya memang melihat lebih banyak. Tapi jauh lebih sedikit. Dokumentasi yang buruk, meskipun ada banyak; tidak ada fluiditas, dan pada kenyataannya saya dibiarkan menebak apakah suatu metode sedang memerintah objek baru, atau beroperasi pada ini; tidak ada yang dekat dengan peta / kurangi dll. Saya terkejut kecewa.
Namun sejak awal, saya tidak memiliki harapan besar akan betapa mudahnya belajar bahasa. Saya ternyata benar: tidak konsisten, tidak intuitif, sulit dipelajari. Tapi itu hanya pengalaman saya menjadi cukup baik dalam segala hal seperti Java.
sumber