Saitama adlı üyeden alıntı: mesajı görüntüle

Mojo, Python'un kullanılabilirliğini C'nin performansı ile birleştiren yenilikçi bir programlama dilidir. Geliştiricilerin hem hızlı hem de okunması kolay kod yazmasına olanak tanıdığı için Yapay Zeka (AI) geliştirme için tercih edilen dil olmayı hedeflemektedir.

İşte bazı kilit noktalar

Modular, tüm yapay zeka yığınının programlama zorluklarını ele almak için tasarlanmış yeni bir programlama dilidir.
Mojo'nun hızlandırıcıları ve diğer heterojen sistemleri hedefleyebilen yenilikçi ve ölçeklenebilir bir programlama modeli olması amaçlanmıştır.
Mojo, Python ekosistemi üzerine inşa edilmiştir, bu da onu yaygın olarak kullanılabilir ve kullanımı kolay hale getirir.
Neden Mojo olarak adlandırılıyor?
Mojo "sihirli çekicilik" veya "sihirli güç" anlamına gelir. Bu isim, yapay zekada her yerde bulunan hızlandırıcılar ve diğer heterojen sistemler için yenilikçi programlama modelleri de dahil olmak üzere Python'a sihir getiren bir dil için uygundur.

Python ailesinin bir üyesi olan Mojo
Mojo, Python ekosistemi ile tamamen uyumlu olacak şekilde tasarlanmış yeni bir programlama dilidir.

Öngörülebilir düşük seviye performans ve düşük seviye kontrol sağlayacaktır.
Geliştiricilerin kod alt kümelerini hızlandırıcılara dağıtmasına olanak tanıyacaktır.
Parçalanmış bir yazılım ekosistemi yaratmayacaktır.
Diğer dillerden öğrenilen derslerden faydalanacaktır.
Python'un bir üst kümesi olacak ve mevcut Python programlarıyla uyumlu olacaktır.
Güvenli ve yüksek performanslı sistem düzeyinde kod geliştirmek için yeni araçlar sağlayacaktır.
Geliştiricilerin statik ve dinamik tipleme arasında seçim yapmasına olanak tanıyacaktır.

Python'un Faydaları:


Python, makine öğrenimi ve sayısız diğer alanda baskın bir güçtür.

Python'un öğrenilmesi kolaydır, önemli bir programcı grubu tarafından bilinir, harika bir topluluğa sahiptir, çok sayıda değerli pakete sahiptir ve çok çeşitli harika araçlara sahiptir.

Python, dinamik programlama özellikleri sayesinde güzel ve etkileyici API'lerin geliştirilmesini destekler.

TensorFlow ve PyTorch gibi makine öğrenimi çerçeveleri, Python'u C++'da uygulanan yüksek performanslı çalışma zamanlarına bir ön uç olarak kullanır.

Modular için Python, API yüzey yığınının ayrılmaz bir parçasıdır.

Modular ekibi, Python ekosistemindeki insanların Mojo ile amaçlarının Python ile rekabet etmek değil, onu bir sonraki seviyeye taşımak - tamamlamak olduğunu görmelerini istiyor.

Python Uyumluluğu

Mojo'nun Python ekosistemi ile tamamen uyumlu olması amaçlanmıştır. İki tür uyumluluk vardır: içe aktarma uyumluluğu ve geçiş uyumluluğu.

Mojo, birlikte çalışabilirlik için CPython kullandığından Python ile %100 import uyumludur. Ancak, Mojo henüz Python ile tam uyumlu değildir.

Python ve Mojo söz konusu olduğunda, Mojo'nun doğrudan CPython çalışma zamanı ile çalışması ve kodun kendisini derlemek zorunda kalmadan CPython sınıfları ve nesneleriyle entegre olmak için benzer desteğe sahip olması beklenir.

Bu, mevcut kodun geniş ekosistemiyle eklenti uyumluluğu sağlar ve Mojo'ya artımlı geçişin artımlı kazançlar sağladığı artımlı bir geçiş yaklaşımını destekler.

Python ile ilgili sorunlar

Python, düşük temel performans ve Python'u tek iş parçacıklı hale getiren küresel yorumlayıcı kilitleme (GIL) gibi bazı iyi bilinen sorunlara sahiptir. Bu sorunlar özellikle yüksek performans ve çok iş parçacıklı yeteneklerin sıklıkla gerekli olduğu yapay zeka alanında etkilidir.

Bu sorunları ele almanın bir yolu, Python ve C/C++'ın bir kombinasyonu kullanılarak oluşturulan hibrit kütüphaneler kullanmaktır. Ancak hibrit kütüphaneler oluşturmak karmaşıktır ve hem Python hem de C/C++ bilgisi gerektirir. Bu, büyük çerçevelerin geliştirilmesini zorlaştırabilir ve kullanılabilirlik sorunlarına yol açabilir.

Buna ek olarak, Python ve C/C++ kodunun iki dünyasıyla aynı anda uğraşmak zorunda kalma sorunu, hata ayıklayıcıların ve diğer araçların kullanımını zorlaştırabilir. Bu durum özellikle CUDA (Compute Unified Device Architecture) gibi hızlandırıcıları kullanması gereken yapay zeka geliştiricileri için sorun teşkil etmektedir.



CUDA (Compute Unified Device Architecture), kendine özgü sorunları ve sınırlamaları olan özel bir programlama dilidir.

Yapay zeka dünyası donanımda büyük miktarda yenilik gördü ve sonuç olarak karmaşıklık kontrolden çıktı. Şu anda hızlandırıcılar için sınırlı programlama sistemleri (OpenCL, Sycl, OneAPI, vb.) oluşturmaya yönelik çeşitli girişimler var.

Ancak bu sistemlerin hiçbiri, sektöre ciddi zarar veren araçlar ve ekosistemdeki temel parçalanmayı ele almıyor. Mojo, sistem programlama ve yapay zeka geliştirme için kullanılabilecek birleşik bir dil sağlayarak bu sorunları ele almayı amaçlamaktadır.

Mojo henüz geliştirme aşamasında, ancak yapay zeka endüstrisinde devrim yaratma potansiyeline sahip.

Mobil ve sunucu dağıtımları:
Python ekosistemi için bir başka zorluk da dağıtımdır. Bağımlılıkların nasıl kontrol edileceği, mühürlü derlenmiş "a.out" dosyalarının nasıl dağıtılacağı ve çoklu iş parçacığı ve performansın nasıl geliştirileceği de dahil olmak üzere bunun birçok yönü vardır.

Python alt kümesi ve diğer Python benzeri diller:
PyTorch projesindeki TorchScript gibi dağıtılabilir Python oluşturmak için birçok girişimde bulunulmuştur.



Bu diller kullanışlıdır çünkü genellikle düşük bağımlılıkta dağıtım çözümleri ve bazen de yüksek performans sağlarlar. Python benzeri bir sözdizimi kullanırlar, bu da onları öğrenmeyi yeni bir dilden daha kolay hale getirir.

Ancak, bu diller yaygın olarak benimsenmemiştir çünkü:

Python ekosistemi ile birlikte çalışmaz
iyi araçlara sahip değiller (örneğin hata ayıklayıcılar)
Python'daki uygunsuz davranışları tek taraflı olarak değiştirerek uyumluluğu bozar ve ekosistemi daha da parçalar
Bu yaklaşımlarla ilgili zorluk, Python'un bir zayıflığını ele almaya çalışmaları, ancak Python'un güçlü olduğu konularda iyi olmamalarıdır.

En iyi ihtimalle, C ve C++'a yeni alternatifler sağlayabilirler, ancak Python'un dinamik kullanım durumlarını ele almadan "iki dünya sorununu" çözemezler.

Bu yaklaşım, geçişi zorlaştıran veya imkansız kılan parçalanmalara ve uyumsuzluklara yol açmaktadır.
bende yeni yazılım öğrenmeye başladım python’dan başlayıp ilerlemek istiyorum ama çok geç kaldığımı sanıyorum