Daha hızlı Python programlama: Bu geliştiriciler Pyston'ı nasıl oluşturdu ve bundan sonra nereye gidiyor?

Python uygulaması Pyston, web uygulamaları için programlama dilinin kodunu hızlandırmayı amaçlar. Yaratıcı Kevin Modzelewski, TechRepublic'e projenin bir sonraki adımının nereye gittiğini söylüyor.

<a href="https://www.techrepublic.com/a/hub/i/2021/06/03/1130ef3e-48cf-4d60-8b86-ca6a6d9bf51f/python-code-developer-programming.jpg" target=" _blank" data-component="modalEnlargeImage" data-headline="

Geliştirme ekibine göre Pyston, Python'dan en az %30 daha hızlı.

" data-credit="Resim: Getty / nikkimeel">python-code-developer-programming.jpg

Geliştirme ekibine göre Pyston, Python'dan en az %30 daha hızlı.

Resim: Getty / nikkimeel

Kevin Modzelewski ve Dropbox'taki meslektaşları 2014'te Pyston'ı yaratmaya başladıklarında, çok basit bir amaçları vardı: kodun kendisini daha hızlı hale getirerek Python kodunu Dropbox sunucularında çalıştırma maliyetlerini düşürmek.

Modzelewski TechRepublic'e "Katlanarak büyüyorduk, bu yüzden sunucu maliyetimiz katlanarak büyüyordu" dedi. "Python'u daha hızlı çalıştırabilseydik, Python'u çalıştırmak için daha az para harcardık."

Okunması gereken geliştirici içeriği

Orijinal maliyet azaltma girişimi Dropbox'ta şirketten uzaklaştığında Modzelewski için daha büyük bir projeye çığ gibi düştü.
piton

2017 yılında ve Pyston projesini iptal etti.

Dil üzerinde çalışırken, geliştirici topluluğu arasında daha hızlı Python için güçlü bir talep olduğunu fark etmişti ve daha küçük uygulamalarda performansı artırmak için birçok araç varken, büyük, iş mantığı tipi uygulamalar için tasarlanmış hiçbir araç yoktu. Dropbox gibi.

Modzelewski, "Python'u daha hızlı çalıştırmanıza yardımcı olacak pek çok araç var, ancak Dropbox'ın kullanım durumuna uygun hiçbir araç yoktu" diyor.

"Bu, Python pazarının çok para harcandığı, ancak yardım için çok fazla aracın geliştirilmediği bir alandı. Hizmet verilmedi."

Bugün için hızlı ileri ve Python artık 2.2 sürümündeve Modzelewski ve diğer geliştirici Marius Wachtler ile birlikte şimdi projeyi kurucu ortaklar olarak yönetiyor. En son uygulama, Python 3.8.8'e göre %30'luk bir performans iyileştirmesi vaat ediyor ve önemli bir avantaj, geliştiricilerin Python uygulamalarını Pyston'a bırakıp kodlarını yeniden yazmak zorunda kalmadan devam edebilmeleridir. Aynı zamanda Modzelewski ve diğer geliştiricilerin yaklaşık yedi yıl önce Dropbox için yaptıklarından "tamamen ayrı bir şey".

Modzelewski, "Normal Python yerine sadece Pyston'a girebilmenizi ve başka bir şey yapmanıza gerek kalmamanızı çok istiyoruz" diyor.

"Başladığımız zaman, Dropbox'ın kod tabanı milyonlarca kod satırıydı. Ve bunu gerçekten makul bir şekilde başka bir dile yeniden yazamaz veya her şeye açıklama ekleyemezsiniz."

Pyston'ın başlangıçtaki amacı, programlama dilinin performansını, aşağıdakiler gibi geleneksel sistem dilleriyle karşılaştırılabilir olanlara itebilecek bir Python uygulaması oluşturmaktı.
C++

.

Bu, CPython'un daha az kullanılan bazı özelliklerinin (hata ayıklama kontrolleri gibi) kaldırılması ve yürütme hızlarını artırmak için JavaScript, C# ve Java'da kullanılanlar gibi tam zamanında (JIT) tekniklerinin kullanılması anlamına gelir.

GÖRMEK: Öğrenilecek en iyi programlama dilleri ve en kötüsü (TechRepublic Premium)

Yine de yıllar içinde Python'a o kadar çok özellik eklendi ki, neyin önemli olduğunu ve neyin atlanabileceğini söylemek zordu, diyor Modzelewski: "Kendimi Python hakkında oldukça bilgili görüyorum ve bilmediğim birkaç özellik vardı. ta ki bunları kendim uygulamak zorunda kalana kadar. 'Bunu hiç duymadım, hiç okumadım, hiç kimsenin kullandığını duymadım' dedim."

Hangi özelliklerin geliştiriciler için yararlı olduğunu ve hangilerinin yararlı olmadığını anlamanın tek yolu, bunları kaldırmaya başlamak ve ardından geri bildirim beklemekti. "Bazılarını kaldırmaya başlamak istedik, böylece insanlardan 'Hey, aslında bu özelliği kullanıyorum ve siz kaldırdınız' diyen geri bildirim almaya başlayabiliriz." Modzelewski diyor.

Optimizasyona yönelik bu agresif yaklaşım, Pyston'ın CPython'a göre önemli performans iyileştirmeleri elde etmesine izin verdi. %30 resmi olarak lanse edilen rakam olsa da Modzelewski, Pyston'ın Pyston geliştiricilerinin gerçekte nasıl deneyimleyebileceğini daha iyi yansıtan daha gerçekçi performans kriterleri kullanması nedeniyle bunun muhafazakar bir tahmin olduğunu öne sürüyor.

"Performansı diğer projelerden oldukça farklı şekilde ölçüyoruz, bu nedenle %30'umuz doğrudan karşılaştırılabilir değil. Performansı diğer insanların yaptığı gibi ölçecek olsaydık, sayımız daha yüksek olurdu" diyor.

"Bazen bunu yapmalı mıyız diye düşünüyoruz? "Daha fazla yüzde" daha hızlı olmak kulağa daha iyi geliyor. Ancak performansı, kullanıcılarımızın gerçekte nasıl deneyimleyebileceğine benzer şekilde ölçmeye çalışıyoruz ve bu da bize daha düşük bir sayı veriyor ve bu da %30 bizim için."

Python yaratıcısı Guido van Rossum, Python'u "büyük ve yavaş" olarak adlandırdı. mobil uygulama geliştirmede alımını engelledi ve web tarayıcıları içinde. Dil, öncelikli olarak veri bilimi ve makine öğrenimi ile arka uç web hizmetlerine yönelik olmaya devam ediyor – buna öncelikle JavaScript ve giderek artan bir şekilde Microsoft'un TypeScript üst kümesi hakim oluyor.

GÖRMEK: Python dünyayı yiyor: Bir geliştiricinin yan projesi nasıl gezegendeki en sıcak programlama dili oldu? (TechRepublic kapak hikayesi PDF)

Bu arada Pyston, özellikle web uygulamalarını hedefliyor. Python kodunu hızlandırmak için 'rakip' Pyton uygulaması PyPy gibi birçok araç olsa da, Modzelewski bunların bağımlılık sayısı nedeniyle web uygulamaları için iyi çalışma eğiliminde olmadığını açıklıyor.

Pyston'ın hedeflediği pazardaki bu boşluktur. "Python web uygulamalarını, yani bir şirketin sunucularında çalışan bileşenleri kastediyorum, hızlandırmanın en iyi yolu olmaya çalışıyoruz" diye ekliyor.

Daha hızlı, daha agresif bir Python

Guido van Rossum, Python'un gelecek sürümlerinde performans sorunlarını çözme sözü verdi ve cesurca söz verdi. Python 3.11'de dilin hızını ikiye katlayın, 2022'de alfa öncesi sürüm için planlanan üç Python dalından biri.

Modzelewski, Python ve Pyston'ın başarmaya çalıştıkları şeyde benzerlikler olduğunu söylüyor, ancak Python'un yeni sürümlerinde herhangi bir hız iyileştirmesinin Pyston'a çevrilmeyeceğini belirtiyor; Ekip daha yeni Python kodlarından bazılarını geri taşırken, Python 3.8 sürümünü hedeflemeye devam edecek.

Ne olursa olsun, Modzelewski, Pyston'ın rekabetçi olmaya devam edebileceğine inanıyor. "Yapacağımız şeyler konusunda (Python'dan) çok daha agresif davrandık" diyor ve Pyston'ın JIT derleyicisinin sahip olduğu araçlar açısından bir avantaj sunduğunu belirtiyor.

"Bir araya getirecekleri şeylerde kendilerini kısıtlıyorlar."

GÖRMEK: İşe alım kiti: Python geliştiricisi (TechRepublic Premium)

Şu anda bu alanda Pyston'ı kaç geliştiricinin kullandığını kesin olarak bilmenin bir yolu yok. Proje açıkça, birçoğu hataları bildirmek veya sadece nasıl devam ettiklerini bildirmek için Pyston Discord kanalına girecek olan hevesli ve adanmış kullanıcılardan oluşan bir takipçi kitlesine sahip.

Modzelewski, projenin birincil amacının insanların değer kazanacağı bir şey inşa etmek olduğunu söylüyor. "Bence bu alanda inanılmaz derecede teknik olarak ilginç, entelektüel olarak çok ilginç bir şey inşa etmek gerçekten çok kolay, ancak kullanıcılar için kullanışlı bir ürün değil. ve bence bunu yapıyoruz."

Pyston hala büyüme aşamasında. Daha sonra ekip, Python'un çoklu okuma ile ilgili sorunlarını çözebileceğini umuyor – tek bir kod setinin birkaç işlem çekirdeği arasında bölündüğü bir teknik – Modzelewski bunun dilin hemen yol haritasında olmadığını belirtiyor.

"Bence uzun vadede, gerçekten takasların kabul edilmesinin yeterince kolay olduğu, birçok insanın bizi kullanacağı bir şey olmak istiyoruz. Dışarıda çoğu insanın normalde kullanmadığı çok sayıda özel Python optimizasyon aracı var, " diyor.

"Projeyle ilgili hayalim, bunun sadece bir tür standart tavsiye olması: 'Hey, Pyston'ı da kullanabilirsiniz.'"

Ayrıca bkz.

Source link

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*