Python ne zaman değiştirilecek?

Python neden geleceğin programlama dili değil?

Yazar | Rhea Moutafis

Çevirmen | Crescent Moon, sorumlu editör | Guo Rui

Üretildi | CSDN (ID: CSDNnews)

Aşağıdaki çeviridir:

Python'un programlama topluluğu tarafından takdir edilmesi onlarca yıl sürdü. Python 2010'dan beri gelişti ve sonunda C, C #, Java ve JavaScript'i geçti.

Ama bu eğilim ne kadar sürecek? Python ne zaman başka dillerle değiştirilecek? Değiştirilme sebebi nedir?

Python'un tam olarak ne zaman ortadan kaldırıldığı konusunda birçok spekülasyon var ve bilim kurgu gibi geçmişte kaldı. Bu yazıda Python'un yaygınlaşmasına katkıda bulunan avantajları ve gelecekte düşmesine neden olacak zayıflıkları tartışacağım.

Python'un popülaritesine katkıda bulunan faktörler

Stack Overflow'un geliştirme trendi sayesinde Python'un başarısı hakkında fikir edinebilirsiniz. StackOverflow'un ölçeğini göz önünde bulundurarak, bunu programlama dillerinin popülerliğinin iyi bir göstergesi olarak görebiliriz.

Son birkaç yılda, R dilinin gelişimi istikrarlı bir durumda olmasına ve diğer birçok programlama dili istikrarlı bir şekilde azalmaya başlamasına rağmen, Python'un büyümesi durdurulamaz görünüyor. Tüm StackOverflow soruları arasında, "python" etiketine sahip olanlar% 14'ü oluşturdu ve bu eğilim hala artıyor. Bunun için birçok nedeni vardır.

Python eski bir dildir

Python 90'larda çıktı. Bu sadece Python'un büyümek için yeterli zamanı olduğu anlamına gelmez, aynı zamanda geniş bir destek topluluğuna da sahiptir.

Bu nedenle, Python'da programlama yaparken herhangi bir sorunla karşılaşırsanız, cevabı çevrimiçi arama yaparak alabilirsiniz. Çünkü her zaman bu sorunla daha önce karşılaşmış ve bununla ilgili bazı yararlı bilgiler yazmış biri olacaktır.

Yeni başlayanlar için çok arkadaş canlısı

Python'un yeni başlayanlar için dostça olmasının nedeni sadece onlarca yıldır ortalıkta olması, programcılara mükemmel öğreticiler yazmaları için yeterli zaman vermesi değil, aynı zamanda Python'un sözdiziminin anlaşılmasının çok kolay olmasıdır.

Öncelikle veri tipini belirlemenize gerek yoktur. Yalnızca bir değişken bildirmeniz gerekir ve Python, değişkenin bir tamsayı, kayan nokta sayısı, boole veya bağlama göre başka bir tür olup olmadığını belirler. Yeni başlayanlar için bu çok büyük bir avantaj. C ++ programlama deneyimini daha önce kullandıysanız, sadece kayan noktalı sayıları yanlışlıkla tamsayı olarak tanımladığınız için programın derleyememesinin ne kadar rahatsız edici olduğunu anlayacaksınız.

Ek olarak, Python ve C ++ kodunu karşılaştırırken, Python'un ne kadar kolay anlaşıldığını görmek zor değil. C ++ İngilizce düşünülerek tasarlanmış olsa da, Python koduna kıyasla C ++ kodunu okumak hala oldukça zordur.

Birçok kullanım alanı var

Python uzun süredir var olduğundan, geliştiriciler bunun için çeşitli paketler geliştirdiler. Günümüzde hangi sorunla karşılaşırsanız karşılaşın, ilgili yazılım paketini bulabilirsiniz.

  • Sayıları, vektörleri ve matrisleri işlemek mi istiyorsunuz? Ardından NumPy'yi deneyin.

  • Teknik ve mühendislik hesaplamaları yapmak ister misiniz? Sonra SciPy'yi deneyin.

  • Büyük veriyi manipüle etmek ve analiz etmek mi istiyorsunuz? Ardından Pandaları deneyin.

  • Yapay zeka öğrenmek ister misiniz? Neden Scikit-Learn'ü denemiyorsunuz?

Yapmanız gereken bilgi işlem görevi ne olursa olsun, ilgili Python yazılım paketini bulabilirsiniz. Son birkaç yılda makine öğreniminin hızlı gelişimi nedeniyle, Python zamanın gelişiminin ön saflarında yer aldı.

Python'un eksiklikleri, bu eksiklikler ölümcül mü?

Yukarıdaki tartışma sayesinde, Python'un geliştirilmesinin uzun bir süre durdurulamaz olacağını hayal edebilirsiniz. Ancak Python tüm teknolojilerin kaderinden kaçamaz ve kendi zayıf yönlerine de sahiptir. Ardından, Python'un başlıca kusurlarını tek tek tanıtacağım ve bu kusurların ölümcül olup olmadığını değerlendireceğim.

hız

Python yavaştır, çok çok yavaştır. Ortalama olarak, Python ile bir görevi tamamlamak için gereken süre, diğer dillerin 2-10 katıdır.

Bunun için birçok nedeni vardır. Bunlardan biri, Python'un dinamik olarak yazılmış olmasıdır, diğer diller gibi veri türlerini belirtmenize gerek olmadığını unutmayın. Bu, bellek tüketiminin çok büyük olduğu anlamına gelir, çünkü her durumda programın her değişken için yeterli alanı ayırması gerekir. Büyük miktarda bellek kullanımı, çok fazla bilgi işlem süresi tüketmelidir.

Diğer bir neden de Python'un bir seferde yalnızca bir görevi gerçekleştirebilmesidir. Bu, esnek veri türlerinin sonucudur.Python, her değişkenin yalnızca bir veri türüne sahip olmasını sağlamalıdır ve bu noktada paralel işlemlerde sorunlar olabilir.

Bunun aksine, normal bir web tarayıcısı bir seferde bir düzine farklı iş parçacığı çalıştırabilir. Elbette ilgili başka faktörler de var.

Ama sonuçta, tüm hız sorunları önemli değil. Bilgisayarların ve sunucuların fiyatları gün geçtikçe düştüğü için, biz sadece bir saniyeden daha kısa bir sürede bahsediyoruz. Son kullanıcılar, uygulamalarının yüklenmesinin 0,001 saniye mi yoksa 0,01 saniye mi sürdüğünü umursamıyor.

Aralık

Başlangıçta Python dinamik kapsamdı. Bu temelde, ifadeyi değerlendirmek için, derleyicinin önce mevcut bloğu araştırması ve ardından tüm çağıran işlevleri sırayla araştırması gerektiği anlamına gelir.

Dinamik kapsamla ilgili sorun, her ifadenin tüm bağlamlarda test edilmesinin gerekmesidir ki bu külfetli bir durumdur. Çoğu modern programlama dilinin statik kapsam kullanmasının nedeni budur.

Python, statik kapsama geçmeye çalıştı, ancak her şey karıştı. Genellikle, dahili kapsamlar (işlevlerdeki işlevler gibi) harici kapsamları görüntüleyebilir ve değiştirebilir. Python'da iç kapsam yalnızca dış kapsamı görebilir, ancak değiştirilemez. Bu çok fazla kafa karışıklığına neden oldu.

Lambdas

Python çok esnek olmasına rağmen, Lambdas kullanımının hala belirli sınırlamaları vardır. Lambda yalnızca Python'da bir ifade olabilir, bir ifade değil.

Öte yandan, değişken bildirimler ve ifadeler her zaman ifadelerdir, yani Lambda'yı kullanamazlar.

Python'da, ifadeler ve ifadeler arasındaki ayrım oldukça gelişigüzeldir ve bu, başka hiçbir programlama dilinin sahip olmadığı bir sorundur.

boş

Python'da, farklı kod düzeylerini belirtmek için boşluk ve girinti kullanmanız gerekir. Bu format görsel olarak çekici ve anlaşılması kolaydır.

Diğer programlama dilleri (C ++ gibi) parantezlere ve noktalı virgüllere dayanır. Bu görsel olarak çekici ve yeni başlayanlar için dostça olmasa da, kodun sürdürülebilirliğini artırabilir. Büyük projelerde bu yaklaşım daha uygundur.

Haskell gibi gelişmekte olan programlama dilleri bu sorunu çözer: Boşluğa güvenirler, ancak aynı zamanda boşluktan kaçınmak isteyenler için başka bir sözdizimi sağlarlar.

Mobil geliştirme

Masaüstü bilgisayarlardan akıllı telefonlara geçişe tanık olduk ve mobil yazılım oluşturmak için güçlü dillere ihtiyacımız olduğu açık.

Ancak Python kullanılarak geliştirilmiş çok fazla mobil uygulama bulunmamaktadır. Bu, Python'un mobil uygulamalar geliştiremeyeceği anlamına gelmez, Kivy adlı bir Python paketini deneyebilirsiniz.

Ancak, Python'un tasarımı mobil cihazlar olarak düşünülmedi. Bu nedenle, Python temel görevleri yerine getirebilse bile, özellikle mobil uygulama geliştirme için oluşturulmuş bir dil seçsek iyi olur. Mobil programlama için yaygın olarak kullanılan diller şunlardır: React Native, Flutter, Iconic ve Cordova.

Açık olmamız gereken şey, dizüstü ve masaüstü bilgisayarların uzun yıllardır ortalıkta olduğu. Bununla birlikte, mobil cihazların kullanımı masaüstü cihazları geride bıraktığından, Python öğrenmenin deneyimli bir çok yönlü geliştirici olmak için yeterli olmadığını kesinlikle söyleyebiliriz.

Çalışma hatası

Python'un önce derlenip sonra çalıştırılmasına gerek yoktur. Bunun yerine, her çalıştırıldığında derlenecek, böylece tüm programlama hataları çalışma zamanında görüntülenecektir. Bu, performans düşüşüne, zaman kaybına ve çok sayıda teste yol açar.

Yeni başlayanlar için bu mutlaka kötü bir şey değildir çünkü test etmek onlara çok fazla bilgi öğretebilir. Ancak deneyimli geliştiriciler için karmaşık programlarda hata ayıklamak için Python kullanmak zorunda kalmak bir baş ağrısıdır. Python ile ilgili en büyük problem performans eksikliği.

Python ne zaman değiştirilecek?

Günümüzde, programlama dili pazarında yeni rekabet güçleri ortaya çıktı:

  • Rust, Python ile aynı güvenliği sağlar - yanlışlıkla herhangi bir değişkenin üzerine yazmaz. Ancak verimlilik sorununu sahiplik ve borçlanma kavramı üzerinden çözer. StackOverflow Insights'a göre Rust, son yılların en popüler programlama dilidir.

  • Go, yeni başlayanlar için Python kadar iyidir. Dilin kendisi çok basittir ve kodun bakımı daha kolaydır. Ayrıca, Go geliştiricilerinin piyasadaki en yüksek ücretli programcılar arasında olması ilginçtir.

  • Julia, Python ile kafa kafaya rekabet edebilecek çok yeni bir dildir. Julia, büyük ölçekli teknik hesaplamadaki boşluğu dolduruyor: Geçmişte, insanların genellikle kod yazmak için Python veya Matlab kullanması ve ardından tüm programı yamamak için C ++ kitaplığını kullanması gerekir, çünkü C ++ kitaplığı büyük ölçekli için gereklidir. Günümüzde insanlar iki dil arasında mücadele etmek zorunda kalmadan Julia'yı kullanabilirler.

Piyasada başka diller olmasına rağmen, Rust, Go ve Julia Python'un zayıflıklarını telafi edebilir. Tüm bu diller, en tipik olanı yapay zeka olan yeni teknolojilerde olağanüstü performansa sahiptir. StackOverflow verilerine göre pazar payları hala küçük olsa da, bu dillerin gelişimi net bir artış eğilimi gösteriyor.

Günümüzde Python her yerde ve Python'un yeni dillerle değiştirildiğini görmemiz beş yıl veya daha uzun sürecek.

Şimdilik, hangi dilin Python, Rust, Go, Julia veya diğer yeni dillerin yerini alabileceğini belirlemek zor. Bununla birlikte, Python mimarisindeki en temel performans sorunları göz önüne alındığında, sonunda başkaları tarafından değiştirilecektir.

Orijinal: https://towardsdatascience.com/why-python-is-not-the-programming-language-of-the-future-30ddc5339b66

Bu makale bir CSDN çevirisidir, lütfen yeniden basımın kaynağını belirtin.

Sıcak makale önerisi

"Hey Siri" nin arkasındaki siyah teknoloji ortaya çıktı!

Terminal öykünücüsü büyük bir PK, kimi seçersiniz?

Programcının tekerlekleri yapması için doğru duruş

Temel programlama bilgisi gerçekten mucizevi bir beceri mi?

Kubernetes'te PaaS benzeri basit bir platform kurmak çok kolay!

Megvii ikili şube ağı BBN'den bahsediyor: Uzun kuyruklu gerçek dünya görevinin üstesinden gelmek | CVPR 2020 Oral

2020'de herkesin bildiği bu 20 kripto borsası nasıl gidiyor?

Geçtiğimiz 15 yılda, bulut bilişim devrimini gerçekte ne tetikledi?
önceki
"Hey Siri" nin arkasındaki siyah teknoloji ortaya çıktı
Sonraki
Terminal öykünücüsü büyük PK, kimi seçersiniz?
Endüstriyel İnterneti iyice anlamanıza yardımcı olacak 11 soru
Bilgisayar korsanları "öldürmek için bıçak ödünç alırlar", Alibaba'nın 14 yıllık deneyimi size DDoS saldırılarına karşı nasıl savunma yapacağınızı öğretecek
C dili en ciddi güvenlik açıklarına sahiptir ve PHP en savunmasız olanıdır.Programcılar nasıl kod yazmalıdır?
Alibaba Cloud uzmanları size BT mimarisini nasıl yeniden şekillendireceğinizi öğretiyor
Luckin Coffee 2,2 milyarlık sahte işlemi açığa çıkarıyor ve Uygulama İLK 1'i geri alıyor
Programcıların bilmesi gereken 89 temel işletim sistemi kavramı
Yazdığım kod değil, ama ...
İnternetin babasına yeni bir taç teşhisi kondu, bir efsane: Google'ın başkan yardımcısı ve NASA'da misafir bilim insanı olarak görev yaptı
Google, Büyük Ölçekli Ölçeklendirilebilir Kapsamlı Güçlendirmeli Öğrenim için Yeni Bir Mimari olan SEED RL Kaynaklarını Açıyor
Kız arkadaşım yüksek matematik öğreniyor, onun için bir yığın ile bir hesap makinesi yazmak için 15 dakika harcadım | Güç Projesi
Şok! İş parçacığını bu şekilde sonlandırmak hizmetin çökmesine neden olur mu?
To Top