Apa yang mendorong adopsi, atau tidak, bahasa pemrograman baru? [Tutup]

12

Saya benar-benar ingin fokus pada mengapa beberapa bahasa pemrograman baru diadopsi dalam arus utama, dan yang lain tetap relatif niche. Saya ingin tahu tentang hal-hal seperti kasus penggunaan khusus, kompatibilitas mundur, atau beberapa fitur baru, kesulitan implementasi yang sederhana atau kompleks. Contoh spesifik akan dihargai, tetapi jangan terjebak pada definisi yang tepat dari "arus utama" atau "niche" di sini.

DeadMG
sumber
2
Peluang dan dukungan perusahaan adalah faktor besar. steve-yegge.blogspot.com/2007/02/next-big-language.html
Pekerjaan
3
Bukan pertanyaan yang cocok untuk forum ini
Ryan
Nah, untuk yang satu ini bukan forum. Dan untuk dua, saya pikir ini cukup sesuai dengan pedoman untuk pertanyaan subjektif.
DeadMG
1
Adopsi bahasa pemrograman berbanding terbalik dengan jumlah hipsters yang menggunakannya.

Jawaban:

18

Jika ada yang benar-benar tahu, mereka akan menjadi orang yang sangat kaya.

Yang mengatakan, inilah tebakan saya:

Ketersediaan

BASIC adalah bahasa kecil yang mengerikan yang datang dengan (semua?) PC ketika mereka pertama kali keluar. Apple II (komputer default untuk banyak sekolah menengah), dan ATARI 400/800 (komputer rumah super murah pertama) keduanya datang dengan BASIC.

Jika Anda memiliki mesin UNIX (baik sistem AT&T V atau Berkeley), Anda memiliki C. Jika Anda ingin memprogram mesin tersebut, itulah yang harus Anda gunakan.

EDIT : Dengan munculnya dan keberadaan 'jaring', persyaratan ini berubah menjadi:

  1. Berapa banyak distribusi Linux yang mengemas salinan terbaru dan seberapa baik mereka memperbaruinya? Apakah perpustakaan pihak ketiga juga tersedia untuk diinstal?
  2. Apakah mudah dipasang di Windows (XP | Vista | 7,8 ...)?
  3. Apakah platform Mac / iOS dicakup?
  4. Bisakah itu diinstal tanpa gangguan pada warisan Unix?
  5. Dan setelah diinstal, seberapa mudah mengakses perpustakaan pihak ketiga, dan dapatkah ditingkatkan dengan mudah?

Kemudahan Transisi

Java adalah contoh yang bagus di sini. Jika Anda tahu pemrograman C, Java bukan lompatan jauh ke depan, namun memberikan banyak fitur yang kurang C dan C ++ gagal menyediakannya dengan bersih.

C ++ karena alasan yang jelas adalah langkah maju yang mudah dari C, dan mudah untuk menjual kepada manajemen sebagai "peningkatan" C. C ++ memiliki manfaat tambahan karena kompatibel dengan banyak basis kode C warisan yang ada.

Perl adalah penggabungan dari C, awk, sed, dan utilitas Unix lainnya semua dalam satu bundel. Sebelum kemunculannya, sebagian besar administrasi sistem dilakukan melalui skrip shell yang menempelkan semuanya dengan cara yang tidak memuaskan. Membawa semuanya dalam satu proses dengan struktur data dan kontrol bahasa seperti-C adalah anugerah.

Mengisi Kebutuhan

C lepas landas karena memungkinkan Anda menghasilkan efisiensi hampir-ke-rakitan tanpa terjebak di dunia perakitan khusus-mesin yang sulit dipertahankan.

FORTRAN lepas landas karena memungkinkan untuk menerjemahkan ide-ide matematika ke dalam kode dengan mudah tanpa harus tersesat dalam detail mesin.

Demikian juga untuk LISP dan manipulasi simbolik.

Python tumbuh dari perlunya Perl "lebih baik". (Saya bias di sini, jadi saya tidak akan mengatakan lebih banyak.)

PHP pada dasarnya adalah BASIC untuk web - itu diinstal secara default pada banyak server web, dan mudah untuk meretas bersama sesuatu yang berguna dengan cepat.

Advokasi, Basis Pengguna, Kode Kontribusi

Mari kita hadapi itu, Haskell tidak akan sepopuler apa pun untuk bahasa yang tidak diproduksi jika bukan karena advokasi yang tak kenal lelah dari pengembang dan basis pengguna.

Banyak bahasa memiliki kultus kepribadian di belakang pencipta bahasa, dan kita semua tahu siapa mereka.

FORTRAN memiliki sejumlah besar kode matematika yang telah ditetapkan dan diperiksa; sama untuk Java dan web / sistem-integrasi / sistem-MVC; sama untuk Perl dan CPAN; sama untuk T E X dan manajemen dokumen; dll.

The Ini Factor

Untuk beberapa alasan, beberapa bahasa tampaknya memiliki jumlah yang baru , dengan anggukan yang cukup untuk yang lama , dengan cara yang membuatnya tampak mudah atau dibutuhkan. Artinya, ia membuat kasusnya sendiri. Dan siapa yang tahu bagaimana ini terjadi?


Ngomong-ngomong, itulah tebakan terbaik saya mengapa beberapa orang berhasil. Adapun mengapa beberapa tidak ... well, jika mereka tidak memenuhi kriteria di atas, itu mungkin mengapa mereka gagal.

unpythonic
sumber
1
Faktor penentu dalam sebagian besar kriteria Anda adalah dukungan perusahaan . Jawa mungkin memberi skor untuk, misalnya, kemudahan transisi, tetapi tanpa seseorang yang mau meledakkan jutaan di atasnya, tahun demi tahun, sebagai bagian dari rencana dominasi dunia mereka, tidak jelas perbedaan apa yang akan terjadi. Jadi, Anda benar, orang yang sangat kaya tahu jawabannya :-)
jaybee
4
@ Jaybee - tidak yakin bahwa dukungan perusahaan oleh pembuat bahasa tentu membantu. Fortran dan C tidak terlalu terbantu dengan datangnya dari IBM / ATT. Tautan Oracle tampaknya secara aktif merusak Java. Basic, Perl, Python, Ruby dll semua tidak memiliki korporasi di belakang mereka. Dukungan internal perusahaan pada pengguna / pelanggan itu penting tetapi setelah itu menjadi lama ada di mana-mana.
Martin Beckett
1
@ Martin Beckett: Anda mungkin ada benarnya. Saya berpikir bahwa meskipun semua jenis planet mungkin perlu disejajarkan agar suatu bahasa dapat mencapai massa kritis, cara "modern" untuk menggerakkan planet-planet itu menjadi barisan adalah membakar uang. Misalnya Mark menggunakan Haskell sebagai contoh - mungkin memiliki basis pengguna yang hebat dan vokal tetapi GHC memenangkan banyak argumen untuk mereka. Kompiler seperti GHC membutuhkan biaya.
jaybee
@ Jaybee - ada banyak keberuntungan. Tetapi untuk bahasa web baru yang keren itu mungkin keterampilan pemasaran pembuatnya / pengadopsi awal itulah yang penting.
Martin Beckett
11

Bahasa menjadi populer karena mereka memiliki keunggulan dibandingkan bahasa yang ada di daerah yang dibutuhkan.

Jawa

  • Manajemen memori otomatis (bandingkan dengan C ++ dan C)
  • Bahasa / API bawaan Threading
  • Berjalan pada mesin virtual (itu berarti pengembang dapat menggunakan Windows pada mesin pengembangan untuk menguji dan menggunakan aplikasi tanpa modifikasi pada Linux / Unix).
  • Pemrograman jaringan jauh lebih mudah daripada dalam bahasa yang paling populer sebelumnya (C ++ dan C) dan Java dirilis ketika Internet mulai menjadi populer.

PHP

  • Membuat pengembangan web menjadi mudah
  • Dukungan bawaan untuk menghubungkan ke database MySQL
  • Tidak diperlukan kompilasi dan mudah untuk memasukkan skrip ke dalam file HTML Anda.

JavaScript

  • Satu- satunya bahasa untuk browser web.
  • Browser web semakin banyak digunakan sebagai thin client (aplikasi web).
  • Kode seluler - mudah digunakan dan tidak ada pemasangan

Objektif-C

  • Bahasa untuk lingkungan Mac OS X dan iPhone. Dan iPhone telah sukses besar.

Rubi

  • Bersama dengan Ruby on Rails - kerangka kerja web, membuat pengembangan web skala besar jauh lebih mudah dengan MVC.

C #

  • Bahasa untuk lingkungan Windows sepuluh tahun terakhir. Hampir semua Microsoft API mudah digunakan dengan C # misalnya Winforms dan WPF dan WCF.

ActionScript

  • Satu- satunya bahasa untuk Addobe Flash / Flex, yang telah sukses besar untuk konten media di Internet dan hal-hal yang tidak bisa ditangani oleh JavaScript.

Erlang

  • Toleransi Concurrency & Fault - Erlang memiliki model unik untuk melakukan concurrency dan kerangka kerja sistem toleran kesalahan. Mulai berguna untuk industri telekomunikasi, kemudian bersumber terbuka dan mendapatkan minat dari perusahaan internet besar yang juga membutuhkan toleransi kesalahan.
Jonas
sumber
1
Model konkurensi Erlang tidak unik, hanya berbeda dari yang digunakan oleh bahasa imperatif jelek :). Scala memiliki tipe yang sama. Demikian pula, Clojure dan Haskell berspesialisasi dalam STM.
alternatif
4
@mathepic: Benar, tetapi semua bahasa itu lebih baru dari Erlang. Jadi itu unik untuk Erlang di awal - karena dengan hampir semua fitur lagu yang saya daftarkan. Ide bagus layak dicuri.
Jonas
1
C # adalah bahasa .net. Saya pikir windows sebenarnya ditulis dalam c ++. Apakah saya salah dalam hal ini? Saya akan mengatakan C # menjadi populer dengan memanfaatkan bahasa yang sudah dikenal orang (C) dengan kerangka kerja baru yang membuat pengembangan aplikasi yang kuat menjadi lebih mudah dengan alat editor yang kuat, mudah digunakan, dan memperhitungkan kebutuhan pengembang dan penggunaan aktual.
SoylentGray
1
@Chad C # tidak ada hubungannya dengan C
alternatif
1
@ mathepic - Saya telah bekerja pada pemrograman C, C ++ dan C #. Saya dapat mengatakan bahwa C # Masih mempertahankan akarnya sejauh nomenklatur. Memang sudah melampaui C itu tidak berarti bahwa itu tidak memanfaatkan bahasa.
SoylentGray
5

Saya akan menjadi sinis: uang dan datang dengan itu, pemasaran.

Bukan kebetulan bahwa C # didukung oleh Microsoft, Java oleh Oracle dan Objective C oleh Apple. Hanya Google's Go yang belum benar-benar terangkat sejauh ini.

Tentu saja uang bukan satu-satunya alasan tetapi memiliki kantong yang dalam pasti membantu menempatkan bahasa Anda di pasar.

Carra
sumber
Harus menyetujui dan memperluas: Buzzwords, daya tarik manajerial, nama besar, fitur yang terdengar menarik. Jika Anda tidak setuju, saya hanya akan memberi Anda satu nama: COBOL.
SF.
1
C # dan Obj-C tidak terlalu didukung sebagai "diamanatkan" oleh. Sulit untuk memprogram aplikasi windows dalam c ++ dengan hanya apis yang disediakan MSFT, dan AFAIK hanya obj-C yang diizinkan pada setidaknya platform seluler Apple. Di lain pihak, tuntutan Oracle terhadap pembuat Android dapat membahayakan Java
Martin Beckett
1
@ Martin - Anda sebagian besar benar, WRT Obj-C. Secara teknis, Anda dapat menggunakan hal-hal seperti Appcelerator Ttanium untuk menggunakan bahasa lain untuk menulis aplikasi, tetapi masih dapat dikonversi ke Obj-C untuk penyebaran (dan itu adalah perjuangan bagi mereka untuk mendapatkan hal itu). Apple akan melarang hampir semua hal lain (bahkan PhoneGap telah berjalan dengan baik).
Shauna
3

Di satu sisi itu adalah pemasaran, lebih tepatnya presentasi, blog, dll. Penting untuk memiliki fitur yang dapat dihubungkan oleh programmer utama dan melihat manfaat dari apa yang mereka ketahui (Java vs. C ++ - pengumpul sampah vs. manajemen memori). Terakhir, namun tidak kalah pentingnya adalah memiliki penghalang masuk yang rendah - contoh, dokumentasi yang baik, pemasangan yang lancar, komunitas dan dukungan yang baik, pengembangan yang bersemangat.

Gabriel Ščerbák
sumber
1

Hampir semua bahasa memiliki program penyelesaian masalah non-sepele, dunia nyata yang ditulis menggunakan mereka sangat awal dalam kehidupan mereka.

Unix ditulis dalam C, begitu juga alat di Unix, ketika C masih sangat muda dan berkembang.

Anaconda (program pemasang RedHat) ditulis dalam Python ketika Python masih muda dan tidak memiliki popularitas saat ini.

Ini adalah apa yang dapat saya ingat dari diserahkan. Daftar ini dapat menyentuh masing-masing bahasa yang telah bertahan bertahun-tahun pembentukannya.

Kemudian, adopsi skala besar di universitas dapat membantu umur panjang bahasa. Java sangat populer di universitas sebagai bahasa pengajar. Hingga taraf tertentu, Lisp dan dialek Lisp juga menikmati status ini.

vpit3833
sumber