Apa maksud dari python lambat

Butuh beberapa dekade bagi komunitas pemrograman untuk menghargai Python. Tapi itu telah booming sejak awal 2010-an – akhirnya melampaui C, C #, Java, dan JavaScript dalam popularitas.

Tapi sampai kapan tren ini akan berlanjut? Kapan Python akhirnya akan digantikan oleh bahasa lain dan mengapa?

Untuk memberikan tanggal kedaluwarsa yang tepat untuk Python akan menjadi spekulasi yang sangat banyak sehingga bisa dianggap sebagai fiksi ilmiah. Sebagai gantinya, saya akan mengevaluasi kebajikan yang saat ini mendorong popularitas Python dan kelemahan yang akan menghancurkannya di masa depan.

Apa yang membuat Python populer saat ini?

Keberhasilan Python tercermin dalam tren Stack Overflow, yang mengukur jumlah tag dalam postingan di platform. Mengingat ukuran StackOverflow, ini adalah indikator popularitas bahasa yang cukup bagus.

Cuplikan tag dalam berbagai bahasa pemrograman di StackOverflow.

Sementara R telah stabil dalam beberapa tahun terakhir dan banyak bahasa lain terus menurun, pertumbuhan Python tampaknya tak terbendung. Hampir 14% dari semua pertanyaan StackOverflow ditandai dengan “Python”, dan trennya meningkat. Dan ada beberapa alasan.

Ini sudah tua

Python telah ada sejak tahun 1990-an. Itu tidak hanya berarti ia punya banyak waktu untuk tumbuh. Itu juga telah memperoleh komunitas yang besar dan mendukung.

Jadi, jika Anda memiliki masalah pemrograman dengan Python, kemungkinan besar Anda dapat menyelesaikannya dengan satu pencarian Google. Cukup sederhana karena seseorang telah menemukan masalah Anda dan menulis sesuatu yang bermanfaat tentangnya.

Ini ramah pemula

Bukan hanya fakta bahwa itu sudah ada selama beberapa dekade dan memberi programmer waktu untuk membuat tutorial yang brilian. Selain itu, sintaks Python sangat mudah dibaca.

Tidak perlu menentukan tipe data untuk memulai. Anda cukup mendeklarasikan sebuah variabel; Python akan mengerti dari konteks apakah itu bilangan bulat, nilai float, nilai Boolean, atau yang lainnya. Ini adalah keuntungan besar bagi pemula. Jika Anda pernah harus memprogram dalam C ++, Anda tahu betapa frustasinya program Anda gagal dikompilasi karena Anda menukar float dengan integer.

Dan jika Anda pernah membaca kode Python dan C ++ secara berdampingan, Anda akan tahu betapa mudahnya memahami Python. Meskipun C ++ dirancang dengan mempertimbangkan bahasa Inggris, ini cukup sulit dibaca jika dibandingkan dengan kode Python.

Ini serbaguna

Karena Python telah ada begitu lama, pengembang telah membuat paket untuk setiap tujuan. Saat ini Anda dapat menemukan paket untuk hampir semua hal.

Apakah Anda ingin mengolah bilangan, vektor, dan matriks? NumPy adalah tipe Anda.Apakah Anda ingin melakukan perhitungan untuk teknologi dan rekayasa? Gunakan SciPy.Apakah Anda ingin menjadi besar dalam manipulasi dan analisis data? Beri panda kesempatan.

Apakah Anda ingin memulai dengan kecerdasan buatan? Mengapa tidak menggunakan Scikit-Learn?

Apa pun tugas aritmatika yang ingin Anda tangani, kemungkinan besar ada paket Python untuk itu. Ini membuat Python tetap mutakhir, seperti yang ditunjukkan oleh peningkatan pembelajaran mesin selama beberapa tahun terakhir.

Kontra Python – dan Apakah Mereka Akan Mematikan

Berdasarkan diskusi sebelumnya, Anda dapat membayangkan bahwa Python akan tetap berada di puncak untuk waktu yang lama. Tetapi seperti teknologi apa pun, Python memiliki kelemahan. Saya akan membahas kesalahan utama satu per satu dan menilai apakah itu fatal atau tidak.

kecepatan

Python lambat. Jadi sangat lambat. Rata-rata, Python membawa Anda 2-10 kali lebih lama untuk menyelesaikan tugas daripada bahasa lainnya.

Ada beberapa alasan untuk itu. Salah satunya adalah bahwa itu diketik secara dinamis – ingat bahwa Anda tidak perlu menentukan tipe data seperti dalam bahasa lain. Ini berarti bahwa banyak memori diperlukan karena program harus menyediakan ruang yang cukup untuk setiap variabel agar dapat bekerja dalam kasus apa pun. Dan banyak konsumsi memori berarti banyak waktu komputasi.

Alasan lainnya adalah Python hanya dapat melakukan satu tugas dalam satu waktu. Ini adalah urutan tipe data yang fleksibel – Python perlu memastikan bahwa setiap variabel hanya memiliki satu tipe data, dan proses paralel dapat mengacaukannya.

Sebagai perbandingan, browser web rata-rata Anda dapat menjalankan selusin utas berbeda pada saat yang bersamaan. Dan masih ada beberapa teori lainnya.

Tetapi pada akhirnya, tidak ada masalah kecepatan yang penting. Komputer dan server menjadi sangat murah sehingga kita berbicara tentang sepersekian detik. Dan pengguna akhir tidak peduli apakah aplikasi mereka dimuat dalam 0,001 atau 0,01 detik.

cakupan

Awalnya, Python memiliki rentang dinamis. Pada dasarnya, ini berarti bahwa untuk mengevaluasi ekspresi, kompiler pertama-tama mencari blok saat ini dan kemudian secara berurutan semua fungsi panggilan.

Masalah dengan pelingkupan dinamis adalah bahwa setiap ekspresi harus diuji dalam setiap konteks yang memungkinkan – yang membosankan. Karena alasan inilah sebagian besar bahasa pemrograman modern menggunakan pelingkupan statis.

Python mencoba beralih ke pelingkupan statis tetapi mengacaukannya. Biasanya area dalam – misalnya fungsi di dalam fungsi – dapat melihat dan mengubah area luar. Dalam Python, area dalam hanya dapat melihat area luar, tetapi tidak dapat mengubahnya. Hal ini menyebabkan banyak kebingungan.

lambda

Terlepas dari semua fleksibilitas dalam Python, penggunaan lambdas agak membatasi. Lambdas hanya bisa berupa ekspresi dan bukan pernyataan dengan Python.

Di sisi lain, deklarasi variabel dan pernyataan selalu pernyataan. Ini berarti bahwa Lambdas tidak dapat digunakan untuk mereka.

Perbedaan antara ekspresi dan instruksi ini cukup arbitrer dan tidak terjadi dalam bahasa lain.

Spasi membuat kode lebih mudah dibaca tetapi kurang dapat dipelihara. Foto oleh Irvan Smith di Unsplash

Spasi

Dalam Python, Anda menggunakan spasi dan lekukan untuk menunjukkan tingkat kode yang berbeda. Ini membuatnya menarik secara visual dan dapat dipahami secara intuitif.

Bahasa lain, seperti C ++, lebih mengandalkan kurung kurawal dan titik koma. Meskipun ini mungkin tidak menarik secara visual dan ramah bagi pemula, ini membuat kode lebih mudah untuk dipelihara. Ini jauh lebih berguna untuk proyek yang lebih besar.

Bahasa yang lebih baru seperti Haskell memecahkan masalah ini: Mereka menggunakan spasi, tetapi menawarkan sintaks alternatif bagi mereka yang ingin melakukannya tanpa spasi.

Pengembangan seluler

Saat kita melihat transisi dari desktop ke smartphone, jelas bahwa kita membutuhkan bahasa yang kuat untuk mengembangkan perangkat lunak seluler.

Tetapi tidak banyak aplikasi seluler yang dikembangkan dengan Python. Itu tidak berarti tidak bisa – ada paket Python bernama Kivy untuk tujuan itu.

Tetapi Python tidak dirancang untuk perangkat seluler. Meskipun dapat menghasilkan hasil yang lumayan untuk tugas-tugas dasar, yang terbaik adalah menggunakan bahasa yang dirancang untuk pengembangan aplikasi seluler. Beberapa framework pemrograman populer untuk perangkat seluler adalah React Native, Flutter, Iconic, dan Cordova.

Agar jelas, laptop dan komputer desktop harus ada selama bertahun-tahun. Tetapi karena seluler telah lama melampaui lalu lintas desktop, dapat dikatakan bahwa belajar Python tidak cukup untuk menjadi pengembang serba bisa yang terampil.

Kesalahan waktu proses

Skrip Python tidak terlebih dahulu dikompilasi dan kemudian dieksekusi. Sebaliknya, ia mengkompilasi setiap kali Anda menjalankannya, sehingga kesalahan pengkodean apa pun akan muncul dengan sendirinya saat dijalankan. Ini menghasilkan kinerja yang buruk, pengeluaran waktu, dan kebutuhan akan banyak tes. Berapa banyak tes.

Ini bagus untuk pemula karena pengujian mengajarkan mereka banyak hal. Tetapi pengembang berpengalaman yang perlu men-debug program kompleks dengan Python salah. Kurangnya kinerja ini adalah faktor terbesar yang menetapkan stempel waktu untuk Python.

Apa yang bisa diganti Python di masa depan – dan kapan?

Ada beberapa pesaing baru di pasar bahasa pemrograman:

  • Rust menawarkan keamanan yang sama dengan Python – tidak ada variabel yang dapat ditimpa secara tidak sengaja. Tapi itu memecahkan masalah kinerja dengan konsep kepemilikan dan peminjaman. Ini juga menjadi bahasa pemrograman paling populer dalam beberapa tahun terakhir, menurut StackOverflow Insights.
  • Go sangat bagus untuk pemula seperti Python. Dan ini sangat sederhana sehingga lebih mudah untuk memelihara kodenya. Fun Point: Pengembang Go adalah beberapa programmer dengan bayaran tertinggi di luar sana.
  • Julia adalah bahasa yang sangat baru yang bersaing langsung dengan Python. Ini menutup celah dalam perhitungan teknis skala besar: Biasanya orang akan menggunakan Python atau Matlab dan menambal semuanya dengan pustaka C ++ yang dibutuhkan dalam skala besar. Sekarang Anda dapat menggunakan Julia alih-alih menyulap dua bahasa.

Meskipun ada bahasa lain di luar sana, Rust, Go, dan Julia adalah yang memperbaiki patch Python yang lemah. Semua bahasa ini dicirikan oleh teknologi masa depan, terutama dalam kecerdasan buatan. Pangsa pasar mereka masih kecil, yang tercermin dalam jumlah tag StackOverflow, tetapi trennya jelas untuk semuanya: ke atas.

Cuplikan tag dalam berbagai bahasa pemrograman di StackOverflow.

Mengingat popularitas Python di mana-mana, itu pasti akan menjadi setengah dekade, mungkin secara keseluruhan, sebelum salah satu bahasa baru ini menggantikannya.

Manakah dari bahasa itu – Rust, Go, Julia atau bahasa baru di masa depan – saat ini sulit untuk dikatakan. Tetapi mengingat masalah kinerja yang mendasar bagi arsitektur Python, seseorang pasti akan menggantikannya.

Artikel ini ditulis oleh Rhea Moutafis dan awalnya diterbitkan di Dalam perjalanan menuju ilmu data. Anda bisa membacanya Sini.

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA