Yeni programlama dillerinin benimsenmesini ya da benimsemesini sağlayan nedir? [kapalı]


12

Gerçekten bazı yeni programlama dillerinin neden yaygın olarak kabul edildiğine, diğerlerinin ise nispeten niş kaldığına odaklanmak istiyorum. Belirli kullanım durumları, geriye dönük uyumluluk veya bazı yeni özellikler, basit veya karmaşık uygulama zorluğu gibi şeyleri bilmek istiyorum. Özel örnekler takdir edilecektir, ancak burada "ana akım" veya "niş" tam tanımına yetişmeyelim.



2
Şans ve kurumsal destek büyük bir faktördür. steve-yegge.blogspot.com/2007/02/next-big-language.html
İş

3
Bu forum için uygun bir soru değil
Ryan

Birincisi, bu bir forum değil. Ve ikincisi için bence bu, öznel bir sorunun yönergelerine oldukça uygun.
DeadMG

1
Bir programlama dilinin benimsenmesi, onu kullanan hipsterin miktarı ile ters orantılıdır.

Yanıtlar:


18

Eğer birisi gerçekten bilseydi, çok zengin insanlar olurdu.

Dedi ki, benim tahminim:

Kullanılabilirlik

BASIC, ilk çıktığında (hepsi?) PC'lerle birlikte gelen korkunç küçük bir dildir. Apple II (birçok lise için varsayılan bilgisayar) ve ATARI 400/800 (ilk süper ucuz ev bilgisayarı) BASIC ile birlikte geldi.

UNIX makineniz (AT&T sistemi V veya Berkeley's) varsa, C'ye sahiptiniz. Makineyi programlamak istiyorsanız, bunu kullanmak zorundaydınız.

DÜZENLEME : 'net'in ortaya çıkışı ve yaygınlığı ile bu gereksinim şuna dönüşür:

  1. Yeni bir kopyayı kaç tane Linux dağıtımı paketler ve güncelliğini ne kadar iyi tutarlar? Üçüncü taraf kitaplıkları da benzer şekilde yüklenebilir mi?
  2. Windows'a (XP | Vista | 7,8 ...) kolayca kurulabilir mi?
  3. Mac / iOS platformları kapsam dahilinde mi?
  4. Eski Unix'e zarar vermeden kurulabilir mi?
  5. Ve yüklendikten sonra, üçüncü taraf kitaplıklara erişmek ne kadar kolay ve kolayca yükseltilebilir mi?

Geçiş Kolaylığı

Java burada iyi bir örnek. C programlamayı biliyorsan, Java çok ileriye doğru bir sıçrama değildi ve yine de C'nin eksik olduğu ve C ++ 'nın temiz bir şekilde sağlayamadığı birçok özellik verdi.

Açık nedenlerden dolayı C ++, C'den kolay bir adımdı ve yönetime "geliştirilmiş" bir C olarak satmak kolaydı. C ++, mevcut eski C kodu tabanının çoğuyla geriye dönük olarak uyumlu olma avantajına sahipti.

Perl, tek bir pakette C, awk, sed ve diğer Unix yardımcı programlarının bir birleşimiydi. Görünüşünden önce, çoğu sistem uygulaması, her şeyi tatmin edici olmayan bir şekilde birbirine yapıştıran kabuk komut dosyaları aracılığıyla yapıldı. C-benzeri bir dilin veri yapıları ve kontrolü ile her şeyi bir süreç altına almak bir nimettir.

İhtiyacı Karşılar

C, makineye özgü, bakımı zor montaj dünyasında takılmadan montaja yakın verimlilikler üretmenize izin verdiği için kalktı.

FORTRAN, makinenin detaylarında kaybolmak zorunda kalmadan matematiksel fikirlerin koda kolayca tercüme edilmesine izin verdi.

Aynı şekilde LISP ve sembolik manipülasyon için.

Python "daha iyi" bir Perl ihtiyacından doğdu. (Burada önyargılıyım, bu yüzden daha fazlasını söylemeyeceğim.)

PHP aslında web için BASIC idi - varsayılan olarak birçok web sunucusuna kuruldu ve yararlı bir şeyi hızlı bir şekilde kesmek kolaydı.

Savunuculuk, Kullanıcı Tabanı, Katkıda Bulunan Kod

Kabul edelim, Haskell, geliştiricilerinin ve kullanıcı tabanının yorulmak bilmeyen savunuculuğu olmasaydı, üretim dışı bir dil için olduğu kadar popüler bir yerde olmazdı.

Birçok dilde, dilin yaratıcılarının arkasında kült bir kişilik vardır ve hepimiz onların kim olduklarını biliyoruz.

FORTRAN'ın köklü ve denetlenmiş matematik kodu setleri vardır; Java ve web / sistem entegrasyonu / MVC sistemleri için aynı; Perl ve CPAN için aynı; aynı T E X ve belge yönetimi için; vb.

Bu Faktörü

Bazı nedenlerden dolayı, bazı diller , eskisine yeterince kafa sallayan , kolay ya da ihtiyaç duyulan bir şekilde , doğru miktarda yeni gibi görünüyor. Yani, kendi vakasını yapar. Ve bunun nasıl olduğunu kim bilebilir?


Her neyse, bazıları neden bunu yaptığım için en iyi tahminim. Neden bazıları gelmiyor ... iyi, eğer yukarıdaki kriterleri karşılamıyorlarsa, muhtemelen bu yüzden başarısız oldular.


1
Kriterlerinizin çoğunda belirleyici faktör kurumsal desteğidir . Java, örneğin geçiş kolaylığı için puan almış olabilir, ancak yıllarca, dünya hakimiyet planlarının bir parçası olarak milyonlarca insanı üflemek isteyen biri olmadan, ne fark yaratacağı açık değildir. Yani, haklısın, çok zenginler bunun cevabını biliyor :-)
jaybee

4
@jaybee - dil yaratıcılarının kurumsal desteğinin mutlaka yardımcı olduğundan emin değilim. Fortran ve C'ye IBM / ATT'den gelenler özellikle yardımcı olmadı. Oracle bağlantısı Java'ya aktif olarak zarar veriyor gibi görünüyor. Basic, Perl, Python, Ruby vb. Kullanıcı / müşteri için dahili şirket desteği önemlidir, ancak bu her yerde her yerde bulunur.
Martin Beckett

1
@Martin Beckett: bir noktanız olabilir. Yine de, her türlü gezegen kritik bir kütleye ulaşmak için bir dil için hizalanması gerekebilse de, bu gezegenleri sıraya sokmanın "modern" yolunun nakit yakmak olduğunu düşünüyorum. Örneğin Mark, Haskell'i örnek olarak kullanıyor - harika, vokal bir kullanıcı tabanına sahip olabilir, ancak GHC onlar için birçok argüman kazanır. GHC gibi derleyiciler paraya mal olur.
jaybee

@jaybee - çok şans var. Ancak havalı yeni web dilleri için, içerik oluşturucunun / erken benimseyen kişinin pazarlama becerisi iyi olabilir.
Martin Beckett

11

Diller popüler hale gelir, çünkü ihtiyaç duyulan bir alanda mevcut dillere göre avantajları vardır.

Java

  • Otomatik bellek yönetimi (C ++ ve C ile karşılaştırın)
  • Diş oluşturmaya yönelik dil / API
  • Sanal bir makinede çalışır (bu, geliştiricilerin uygulamayı Linux / Unix üzerinde değişiklik yapmadan test etmek ve dağıtmak için geliştirme makinelerinde kullanabileceği anlamına gelir).
  • Ağ programlama, daha önce en popüler olan dillerden (C ++ ve C) çok daha kolay ve Internet popüler olmaya başladığında Java yayınlandı.

PHP

  • Web geliştirmeyi kolaylaştırın
  • MySQL veritabanlarına bağlanmak için yerleşik destek
  • Derleme gerekmez ve komut dosyalarını doğrudan HTML dosyalarınıza eklemek kolaydı.

JavaScript

  • Sadece web tarayıcıları için dil.
  • Web tarayıcıları daha çok ince istemciler (web uygulamaları) olarak kullanılmaktadır.
  • Mobil kod - kurulumu kolay ve kurulum gerektirmez

Objective-C

  • Mac OS X ortamı ve iPhone için dil . Ve iPhone büyük bir başarı elde etti.

Yakut

  • Bir web çerçevesi olan Ruby on Rails ile birlikte, MVC ile büyük ölçekli web geliştirmeyi çok daha kolay hale getirdi.

C #

  • Son on yılda Windows ortamlarının dili . Hemen hemen tüm Microsoft API'lerinin Winforms ve WPF ve WCF gibi C # ile kullanımı kolaydır.

ActionScript

  • Sadece medya internette içerik ve JavaScript başedemeyeceğibir şeyler için çok büyük bir başarı elde etti Addobe Flash / Flex, dil.

Erlang

  • Eşzamanlılık ve Hata toleransı - Erlang, eşzamanlılık ve çerçevelere hataya dayanıklı sistemler yapmak için benzersiz bir modele sahipti. Telekom endüstrisi için faydalı olmaya başlamış, daha sonra açık kaynaklı ve hata toleransı gerektiren büyük internet şirketlerinden ilgi görmüştür.

1
Erlang'ın eşzamanlılık modeli benzersiz değil, çirkin zorunlu diller tarafından kullanılan modelden farklı :). Scala aynı tiptedir. Benzer şekilde Clojure ve Haskell de STM'de uzmanlaşmıştır.
alternatif

4
@mathepic: Doğru, ancak tüm bu diller Erlang'dan daha yeni. Bu yüzden başlangıçta Erlang için benzersizdi - listelediğim neredeyse tüm dil özellikleri gibi. İyi fikirler çalmaya değer.
Jonas

1
C # .net dilidir. Windows aslında c ++ ile yazılmış sanıyordum. Bu konuda yanlış mıyım? C # 'ın, insanların zaten bildiği bir dili (C), güçlü, kullanımı kolay ve geliştiricilerin ihtiyaçlarını ve gerçek kullanımı dikkate alan bir editör aracıyla güçlü uygulamalar geliştirmeyi kolaylaştıran yeni bir çerçeveyle kullanarak popüler hale geldiğini söyleyebilirim.
SoylentGray

1
@Chad C #, C ile bir ilgisi yok
alternatif

1
@mathepic - C, C ++ ve C # programlama üzerinde çalıştım. C # hala isimlendirmeye kadar c köklerini koruduğunu söyleyebilirim. C'nin ötesine geçtiği için bu dilden faydalanmadığı anlamına gelmez.
SoylentGray

5

Alaycı olacağım: para ve bununla birlikte gelme, pazarlama.

C # 'ın Microsoft, Java tarafından Oracle ve Apple tarafından Objective C tarafından desteklenmesi tesadüf değildir. Sadece Google'ın Go şu ana kadar gerçekten kaldırılmadı.

Elbette para tek sebep değil, derin ceplere sahip olmanız, dilinizi piyasaya sürmenize yardımcı olur.


Kabul etmeli ve genişletmeliyiz: Buzzwords, yönetimsel çekicilik, büyük isimler, heyecan verici ses özellikleri. Kabul etmezseniz, size sadece bir isim vereceğim: COBOL.
SF.

1
C # ve Obj-C tarafından "zorunlu" olarak desteklenmiyor. Windows uygulamalarını yalnızca MSFT tarafından sağlanan API'lerle c ++ 'da programlamak zordur ve en azından elma mobil platformlarında sadece AFAIK'e obj-C izin verilir. Öte yandan Oracle'ın Android üreticilerini dava etmesi Java'ya zarar verebilir
Martin Beckett

1
@Martin - Büyük ölçüde doğru WRT Obj-C. Teknik olarak, uygulamaları yazmak için diğer dilleri kullanmak için Appcelerator Ttanium gibi şeyleri kullanabilirsiniz, ancak yine de dağıtım için Obj-C'ye dönüştürülür (ve hatta bunu elde etmek için bir kavga oldu). Apple hemen hemen her şeyi yasaklayacak (PhoneGap bile ince bir çizgide yürüdü).
Shauna

3

Bir yandan pazarlama, daha kesin sunumlar, bloglar vs. Son olarak, ancak en önemlisi, düşük giriş engeline sahip olmaktır - örnekler, iyi belgeler, sorunsuz kurulum, iyi topluluk ve destek, canlı gelişim.


1

Hemen hemen tüm diller, hayatlarının çok erken saatlerinde kullanarak önemsiz, gerçek dünya problem çözme programlarına sahipti.

Unix C'de yazılmıştır, C çok genç ve gelişmekte olan Unix'teki araçlar da öyle.

Anaconda (RedHat'ın kurulum programı) Python gençken Python'da yazıldı ve bugünün popülaritesine sahip değildi.

Bunlar elle hatırlayabildiğim şeyler. Bu liste, biçimlendirici yıllarından kalan dillerin her birine dokunabilir.

Daha sonra, üniversitelerde büyük çapta benimsenmesi bir dilin ömrüne yardımcı olabilir. Java, üniversitelerde öğretim dili olarak oldukça popülerdir. Bir dereceye kadar, Lisp ve Lisp lehçeleri de bu statünün tadını çıkarır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.