Mengapa ada begitu banyak bahasa pemrograman?
Dan apa yang mendorong seseorang untuk membuat bahasa pemrograman terlepas dari kenyataan bahwa bahasa lain sudah ada?
Mengapa ada begitu banyak bahasa pemrograman?
Dan apa yang mendorong seseorang untuk membuat bahasa pemrograman terlepas dari kenyataan bahwa bahasa lain sudah ada?
Jawaban:
Bahasa pemrograman baru sering belajar dari bahasa yang ada dan menambah, menghapus, dan menggabungkan fitur dengan cara baru. Ada beberapa paradigma yang berbeda seperti berorientasi objek dan fungsional dan banyak bahasa modern mencoba untuk menggabungkan fitur dari keduanya.
Ada juga masalah baru yang perlu dipecahkan, misalnya peningkatan CPU multi-core. Solusi paling umum untuk itu adalah utas, tetapi beberapa bahasa pemrograman mencoba untuk memecahkan masalah konkurensi dengan cara yang berbeda misalnya Model Aktor. Lihat Erlang - Perangkat Lunak untuk Dunia Serentak
Itu adalah sebuah siklus. Anda memulai bahasa baru, dan Anda bebas untuk menjauh dari semua sintaksis buruk dan pilihan buruk dari para pendahulu Anda. Dalam versi 1, bahasanya tampak hebat karena tidak memiliki bagasi apa pun, dan menyelesaikan pekerjaan. Kemudian, dalam versi yang lebih baru, Anda mulai bereksperimen dengan fitur yang mungkin tidak berhasil, atau Anda membawa fitur dari bahasa lain yang lebih baru yang menyebabkan sintaksis Anda sedikit kludgey. Lihatlah, setelah beberapa versi lagi, Anda menyadari bahwa bahasa Anda sekarang sama rumitnya dengan yang Anda ganti, dengan masalah sintaksis yang konyol dan warisan bawaan. Dan tiba-tiba, Anda menyadari bahwa jika Anda membuat bahasa baru , Anda dapat memperbaiki semua itu ...
Untuk alasan yang sama ada palu, obeng, gergaji tangan, gergaji pita, jackhammers, linggis, dan sejumlah alat lainnya: tidak setiap bahasa sempurna untuk setiap tugas. Beberapa bahasa ditargetkan pada domain masalah tertentu: R sangat baik untuk analisis statistik, C sangat baik untuk menulis kernel sistem operasi, Haskell sangat baik untuk perhitungan matematika atau keuangan, Erlang sangat baik dalam pemrograman bersamaan, dll.
Juga, untuk alasan yang sama bahwa kemeja datang dalam berbagai warna: beberapa orang hanya menyukai "gaya" dari satu bahasa ke bahasa lain.
Dan, tentu saja, banyak programmer merasa senang untuk menciptakan bahasa baru, hanya untuk melihat apa yang terjadi, atau mungkin karena mereka memiliki pengetahuan tentang bahasa dan ingin menghilangkan rasa gatal, atau mencoba beberapa ide.
Karena mereka semua payah (dengan satu atau lain cara).
Saat ini, kami telah membuat sekitar 5.000 bahasa untuk menggambarkan masalah alam dan tidak ada satupun dari mereka yang tersedia untuk menulis program (contohnya adalah "Bahasa Inggris").
Sampai seseorang menemukan cara untuk membuat bahasa pemrograman yang dapat mengekspresikan apa yang dapat Anda ungkapkan dalam kalimat dalam bahasa alami, mereka akan terus berdatangan.
Jelas satu motivasi penting untuk menciptakan bahasa baru adalah untuk mencapai sesuatu yang lebih baik daripada bahasa yang sudah ada. Dan karena selalu ada ruang untuk perbaikan, akan selalu ada bahasa baru.
Kepentingan komersial adalah alasan besar lainnya. Saya percaya penting bagi Microsoft misalnya bahwa mereka dapat menawarkan bahasa untuk setiap kebutuhan sehingga perusahaan dan pengembang lebih menyukai platform mereka.
Kode Warisan. Jika Anda memulai bahasa baru, Anda tidak harus mendengarkan / mempertimbangkan semua keluhan saat Anda mengubah bahasa lama. Bahkan jika semua orang setuju bahwa implementasi baru lebih baik, itu tidak dapat merusak kode lama. Dan ada banyak kode lama di luar sana.
karena itu menyenangkan untuk membuat bahasa baru bahkan jika mereka tidak memiliki kegunaan nyata
Bahasa pemrograman esoterik (terkadang disingkat menjadi esolang) adalah bahasa pemrograman yang dirancang untuk menguji batas-batas desain bahasa pemrograman komputer, sebagai bukti konsep, atau sebagai lelucon.
Membuat bahasa pemrograman agak menyenangkan. Sangat dekat dengan karya kreatif murni, karena Anda tidak terbatas pada persyaratan sebelumnya. Ini tidak sulit untuk diimplementasikan lagi, karena Anda selalu dapat mengkompilasi ke C dan mengkompilasi kode C untuk kinerja yang memadai jika Anda menulis kompiler di tempat pertama.
Tentu saja, kebanyakan dari kita memiliki ide-ide bagus yang lebih sedikit daripada yang kita pikirkan, sehingga mereka sering mengecewakan, atau tidak dicintai oleh orang lain selain perancang asli.
Pikirkan tentang bahasa pemrograman yang Anda tahu. Anda dapat dengan mudah menemukan beberapa hal yang tidak Anda sukai, bukan? Anda mungkin memiliki ide bagaimana hal itu dapat diperbaiki. Hanya dengan sedikit dorongan, dengan asumsi Anda tahu banyak tentang pembangunan kompiler (dan banyak orang melakukannya), Anda mungkin mulai merancang dan bahkan menerapkan sendiri.
Jawaban Singkat Cepat
Reinventing The Wheel ... Apa tren saat ini ...
Jawaban Panjang Yang Membosankan
Banyak orang lupa bahwa "bahasa baru lain yang serupa untuk pemrogram lama" adalah "bahasa baru yang jelas untuk pemrogram baru".
Apa yang saya maksud untuk itu?
Nah, untuk programmer "beberapa tahun", Java atau C # dapat menjadi bahasa pemrograman tambahan untuk Cobol yang ada, (OO / Prosedural) Dasar, C / C ++, sedangkan untuk programmer "baru", Java atau C # adalah bahasa baru, sedangkan Cobol, (OO / Prosedural) Dasar, C / C ++ tidak ada untuk mereka, jadi menciptakan kembali roda menjadi hal yang umum ...
Dan, jika ada tren baru dalam teknologi, orang dapat membuat bahasa pemrograman baru berdasarkan tren itu, seperti ecmascript / javascript untuk web dan pemrograman fungsional ...
Tepuk tangan.
bahasa pemrograman baru dibangun karena berbagai alasan, sebagian besar karena ada paradigma pemrograman baru, atau karena kemajuan orang perangkat keras membuat bahasa baru untuk mengambil keuntungan dari fitur perangkat keras baru seperti multitasking, dll.
dalam kasus saya, saya biasanya membangun kompiler kecil (dengan bahasa pemrograman baru), untuk alasan khusus. jika saya membuat banyak game, dan saya percaya bahwa bahasa pemrograman yang khusus dibuat untuk pengembangan game akan menghasilkan kode lebih cepat lebih kecil dan pengembangan lebih cepat berbalik, maka saya membangunnya. dan pada akhirnya ternyata itu juga dapat digunakan untuk pemrograman tujuan umum lainnya.
Saya pikir sebagian besar orang yang membuat bahasa pemrograman memiliki tujuan tertentu dalam pikiran, ada orang yang menciptakannya untuk tujuan umum sejak awal. tetapi kebanyakan tidak.
Omong-omong, saya pikir ada terlalu banyak bahasa pemrograman, tetapi ratusan yang baru akan selalu keluar. beberapa karena kegembiraan, beberapa karena tujuan khusus, sebagai proyek sekolah, atau karena ratusan alasan lainnya. dan cepat atau lambat yang baru akan menjadi populer. Tidak akan pernah berakhir.
Untuk alasan yang sama, ada begitu banyak <apa saja> dan kami terus membuat <apa saja> baru
Ada selusin kerangka kerja PHP MVC, misalnya, tetapi orang akan selalu membuat yang baru untuk memenuhi kebutuhan spesifik, untuk menghindari ketergantungan pada beberapa tim lain, atau hanya untuk mencoba dan menciptakan sesuatu yang lebih baik. Hal yang sama berlaku pada dasarnya setiap jenis alat atau aplikasi.
Itu adalah hal yang sangat baik, cukup banyak win-win untuk semua orang menurut saya.
Universitas berkontribusi banyak bahasa pemrograman, dan begitu juga perusahaan yang sangat besar seperti Ericsson (Erlang = bahasa Ericsson), Bell Labs (bahasa B dan C), Google (Bahasa Go beberapa bulan sebelumnya). Banyak dari yang ditulis sebagai bagian dari riset universitas tidak banyak digunakan. Ada beberapa pengecualian penting. Saya kira menulis bahasa Anda sendiri / kompiler membuat topik yang bagus untuk tesis PhD orang yang mempelajari Teori CS atau disiplin ilmu terkait. Itu mengejutkan saya bahwa Python adalah salah satu bahasa pertama yang lahir dari upaya online kolaboratif berbagai programmer di sekitar satu ide.
Ada beberapa alasan, kebanyakan karena orang berpikir bahwa apa yang ada tidak membuatnya mudah untuk menyelesaikan sejumlah masalah. Beberapa hanya untuk bersenang-senang atau untuk kepentingan akademis.
Saya pikir ada argumen kuat bahwa masalah bagaimana Anda mendesain bahasa yang sempurna belum terpecahkan (dan mungkin tidak akan pernah). Jadi, selama orang memiliki ide-ide baru tentang apa yang akan membuat bahasa yang hebat, orang akan terus berusaha. Beberapa dari percobaan tersebut akan memetakan ruang baru yang keren seperti Erlang dan beberapa akan gagal, tetapi selama ada sesuatu yang dipelajari dari kegagalan itu juga OK.
Seperti yang dinyatakan sebelumnya, bahasa mencoba menargetkan tugas tertentu tertentu dan bahasa baru mungkin menargetkan area baru. Bahasa-bahasa ini dapat mengambil fitur dari bahasa lain yang saat ini keluar.
Alasan lain untuk bahasa baru adalah mencoba menggabungkan banyak tugas yang berbeda dan menjadi bahasa pilihan untuk berbagai kebutuhan. Beberapa dari bahasa ini mencoba menjadi bahasa yang mencakup semua yang akan selalu Anda gunakan, tidak peduli apa pun kebutuhan Anda.
Saya belajar di kelas bahasa pemrograman saya bahwa kebanyakan bahasa diciptakan untuk menghilangkan rasa gatal. Sebagian besar bahasa diciptakan untuk dapat mengekspresikan beberapa set algoritma yang lebih baik. Misalnya, bahasa fungsional diciptakan untuk memberikan algoritma rekursif ruang yang lebih ekspresif.
Bertanya mengapa ada begitu banyak bahasa seperti bertanya mengapa C ++ 0x? :)
Plus, semakin banyak bahasa yang Anda tahu, Anda bisa menjadi lebih ekspresif - ini benar dalam pemrograman dan bahasa alami!