it-swarm.dev

Neden bu kadar çok programlama dili var? Neden hala yeni diller oluşturuluyor?

Neden bu kadar çok programlama dili var?

Peki, diğer dillerin zaten mevcut olmasına rağmen birinden programlama dilleri yaratmasını isteyen nedir?

51
Moshe

Programlama dilleri gelişir

Yeni programlama dilleri genellikle mevcut dillerden öğrenir ve özellikleri yeni bir şekilde ekler, kaldırır ve birleştirir. nesne yönelimli ve fonksiyonel ve birçok modern gibi birkaç farklı paradigma vardır. diller her ikisinden de özellikleri karıştırmaya çalışır.

Çözülmesi gereken yeni sorunlar da var, örn. çok çekirdekli işlemcilerin artışı. Bunun en yaygın çözümü iş parçacıklarıydı, ancak bazı programlama dilleri eşzamanlılık sorununu farklı bir şekilde çözmeye çalışır; Aktör Modeli. Bakınız Erlang - Eşzamanlı Dünya için Yazılım

37
Jonas

Bu bir döngüdür. Yeni bir dil başlatıyorsunuz ve öncüllerinizdeki tüm kötü sözdiziminden ve kötü seçimlerden kurtulmakta özgürsünüz. Sürüm 1'de, dil harika görünüyor çünkü bu bagajların hiçbirine sahip değil ve işi hallediyor. Daha sonra, yeni sürümlerde, işe yaramayabilecek özellikleri denemeye başlarsınız veya sözdiziminizin biraz kludgey olmasına neden olan diğer yeni dillerden özellikler getirirsiniz. Bakın ve birkaç sürümden sonra, dilinizin artık değiştirdiğiniz dil kadar karmaşık olduğunu, aptal sözdizimi sorunları ve eski bagaj ile fark ediyorsunuz. Ve aniden, yeni bir dil oluşturduysanız, bunların hepsini düzeltebileceğinizi fark edersiniz ...

23
RationalGeek

Aynı nedenden dolayı çekiçler, tornavidalar, el testereleri, şerit testereler, matkaplar, kazayağı ve diğer birçok araç vardır: her dil her iş için mükemmel değildir. Bazı diller belirli sorunlu alanları hedefler: R özellikle istatistiksel analiz için iyidir, C özellikle işletim sistemi çekirdekleri yazmak için iyidir, Haskell özellikle matematik ağırlıklı veya finansal hesaplamalar için iyidir, Erlang özellikle eşzamanlı programlamada iyidir, vb.

Ayrıca, gömleklerin farklı renklerle geldiği aynı nedenden dolayı: bazı insanlar bir dilin diğerine göre "stilini" severler.

Ve elbette, birçok programcı yeni bir dil icat etmeyi, sadece ne olduğunu görmeyi veya belki de diller hakkında biraz bilgiye sahip oldukları ve bir kaşıntı çizmek veya bazı fikirleri denemek istedikleri için eğlenceli buluyor.

11
mipadi

Çünkü hepsi berbat (bir şekilde).

Şu anda, doğal sorunları tanımlamak için yaklaşık 5000 dil oluşturduk ve bunların hiçbiri program yazmak için mevcut değil (bir örnek "İngilizce" olacaktır).

Birisi, doğal bir dilde bir cümlede ifade edebileceğiniz şeyleri ifade edebilecek bir programlama dili yaratmanın yolunu bulana kadar gelmeye devam edecektir.

8
Aaron Digulla

Yeni bir dil oluşturmak için önemli bir motivasyon, mevcut dillerden daha iyi bir şey elde etmektir. Ve her zaman iyileştirme için yer olduğu için, her zaman yeni diller olacaktır.

Ticari çıkarlar başka bir büyük nedendir. Şirketlerin ve geliştiricilerin platformlarını tercih etmeleri için Microsoft'un her ihtiyaç için bir dil sunabilmelerinin önemli olduğuna inanıyorum.

6
Carlos

Eski Kod. Yeni bir dile başlarsanız, eski bir dili değiştirdiğinizde tüm şikayetleri dinlemeniz/dikkate almanız gerekmez. Herkes yeni uygulamanın daha iyi olduğunu kabul etse bile, eski kodu kıramaz. Ve orada çok eski kod var.

6
JeffO

çünkü yeni diller oluşturmak eğlencelidir gerçek bir kullanımları olmasa bile

Ezoterik bir programlama dili (bazen esolang'a kısaltılır), bilgisayar programlama dili tasarımının sınırlarını, bir kavram kanıtı olarak veya bir şaka olarak test etmek için tasarlanmış bir programlama dilidir.

4
jk.

Bir programlama dili oluşturmak oldukça eğlencelidir. Daha önceki gereksinimlerle sınırlı olmadığınız için saf yaratıcı çalışmaya yakın. Daha önce uygulamak o kadar da zor değil, çünkü her zaman C'ye derleyebilir ve ilk etapta bir derleyici yazıyorsanız yeterli performans için C kodunu derleyebilirsiniz.

Tabii ki, çoğumuz düşündüğümüzden daha az iyi fikirlere sahibiz, bu yüzden çoğu zaman hayal kırıklığı yaratıyor veya orijinal tasarımcıdan başka kimse tarafından sevilmiyorlar.

Bildiğiniz herhangi bir programlama dilini düşünün. Sevmediğin birkaç şeyi kolayca bulabilirsin, değil mi? Muhtemelen bunların nasıl düzeltilebileceğine dair fikirleriniz var. Sadece biraz daha fazla itici güçle, derleyici oluşturma hakkında çok şey bildiğinizi varsayarsak (ve birçok insan bunu yapar), kendi tasarımınızı tasarlamaya ve hatta uygulamaya başlayabilirsiniz.

3
David Thornley

Hızlı Kısa Yanıt

Tekerleği Yeniden Keşfetmek ... Mevcut trend nedir ...

Sıkıcı Uzun Cevap

Birçok kişi "eski programcılar için yeni bir benzer dil" in "yeni programcılar için yeni bir dil" olduğunu unutuyor.

Bunun için ne demek istiyorum?

Eh, "birkaç yıl" programcıları için Java veya C # mevcut Cobol, (OO/Yordamsal) Temel, C/C++ için ek bir programlama dili olabilirken, “yeni” programcılar için = Java veya C # yeni dillerken, Cobol, (OO/Yordam) Temel, C/C++ onlar için mevcut değildir, bu nedenle tekerleği yeniden keşfetmek ortak bir şey haline gelir ...

Ve teknolojide yeni bir trend varsa, insanlar web için ecmascript/javascript ve fonksiyonel programlama gibi bu eğilime dayanan yeni bir programlama dili yapabilirler ...

Şerefe.

2
umlcat

yeni programlama dilleri, birçok farklı nedenden dolayı, çoğunlukla yeni programlama paradigması nedeniyle veya donanımdaki ilerlemeler nedeniyle, çoklu görev gibi yeni donanım özelliklerinden yararlanmak için yeni bir dil oluşturur.

benim durumumda, özel nedenlerden dolayı genellikle küçük derleyiciler (yeni bir programlama dili ile) yapıyorum. oyunların bir bölümünü yaparsam ve özellikle oyun geliştirme için yapılan bir programlama dilinin daha küçük kod ve daha hızlı geliştirme ile sonuçlanacağına inanıyorum. ve sonunda diğer genel amaçlı programlama için de kullanılabileceği ortaya çıktı.

Programlama dilleri oluşturan çoğu insanın akılda belirli bir amacı olduğunu düşünüyorum, başından beri genel amaçlı olarak bunları oluşturanlar var. ama çoğu değil.

Bu arada, çok fazla programlama dili olduğunu düşünüyorum, ancak yüzlerce yeni dil her zaman ortaya çıkacak. bazıları eğlenceli, bazıları niş bir amaç, bir okul projesi olarak veya yüzlerce başka nedenden dolayı. er ya da geç yeni bir tane popüler olacak. Asla bitmeyecek.

1
Sergio Fernandez

Birkaç neden var, çoğu insan var olanın bazı problemleri çözmeyi kolaylaştırmadığını düşünüyor. Bazıları sadece eğlence veya akademik ilgi içindir.

Bence mükemmel dili nasıl tasarladığınız konusunun henüz çözülmediği (ve asla çözülemeyeceği) konusunda sağlam bir argüman var. Dolayısıyla, insanlar harika bir dili neyin yaratacağı konusunda yeni fikirlere sahip oldukları sürece denemeye devam edecektir. Bu denemelerin bazıları Erlang gibi havalı yeni alanları haritalayacak ve bazıları flop yapacak, ancak floptan bir şey öğrenildiği sürece de sorun yok.

0
Zachary K

Aynı nedenden ötürü <whatever> çok fazla var ve biz yeni <whatever>

Örneğin, bir düzine PHP MVC çerçeveleri), ancak insanlar her zaman belirli ihtiyaçları karşılamak, başka bir takıma bağımlı olmaktan kaçınmak veya sadece daha iyi bir şey yaratmak ve denemek için yenilerini oluşturacaklardır. Aynı şey temelde her tür alet veya uygulama için de geçerlidir.

Çok iyi bir şey, bence herkes için bir kazan-kazan.

0
Fosco

Üniversiteler birçok programlama diline katkıda bulunur ve Ericsson (Erlang = Ericsson dili), Bell Labs (B ve C dilleri), Google (Birkaç ay önceki Go dili) gibi çok büyük şirketler de katkıda bulunur. Üniversite araştırmalarının bir parçası olarak yazılanların çoğu fazla kullanılmamaktadır. Bununla birlikte, dikkate değer birkaç istisna vardır. Kendi dilinizi/derleyicinizi yazmak, CS Teorisi veya ilgili disiplinleri okuyan kişilerin doktora tezleri için iyi bir konu oluşturduğunu düşünüyorum. Python), tek bir fikir etrafında çeşitli programcıların ortak çevrimiçi çabalarından doğan ilk dillerden biri.

0
ixtmixilix