Mengapa seseorang mengembangkan bahasanya sendiri untuk menggunakannya hanya di dalam perusahaan itu ketika Anda memiliki XY bahasa lain yang dapat membantu Anda dengan perpustakaan, logika, dll.? Bukankah itu jauh lebih sederhana untuk mengikuti arus dengan hal lain daripada mengembangkan bahasa Anda sendiri?
programming-languages
Josip Ivic
sumber
sumber
Jawaban:
Jauh lebih mudah untuk dipahami ketika Anda menyadari bahwa itu seringkali merupakan hasil dari proses yang panjang dan bukan seseorang yang hanya mengatakan "kami ingin membuat bahasa baru".
Biasanya dimulai dengan gagasan bahwa beberapa masalah dapat diselesaikan dengan menggunakan bahasa khusus domain sederhana. Tujuannya adalah agar non-pakar menggunakan bahasa ini, sehingga sederhana dan seringkali tidak memiliki fitur seperti pengetikan dan modul yang kuat.
Sejauh ini baik. Tapi kemudian, orang mulai memukul masalah yang tidak bisa diselesaikan oleh bahasa. Jadi "fitur" baru ditambahkan secara perlahan untuk menyelesaikan masalah tersebut. Dan karena prosesnya lambat dan fitur-fiturnya jarang, tidak ada motivasi untuk merancang fitur-fitur baru itu dengan benar, selama masalahnya terpecahkan.
Seiring waktu, bahasa baru memperoleh fitur yang mengubahnya dari bahasa khusus domain sederhana menjadi bahasa tujuan "umum" yang kompleks, sering kali dengan semantik yang saling bertentangan, membingungkan, dan aturan sintaksis yang sulit diikuti.
Dan pada saat orang-orang menyadari bahwa mereka menciptakan binatang buas sebesar itu, sudah terlambat untuk membunuhnya dan menggantinya dengan bahasa yang dirancang dengan baik.
Ada beberapa bahasa yang berkembang seperti ini yang tidak terikat kepada perusahaan tertentu batuk JavaScript batuk PHP batuk .
sumber
Tentu, tetapi untuk mengikutinya sampai akhir yang tidak masuk akal, kita semua akan menulis semuanya dalam pertemuan jika tidak ada yang mengembangkan bahasa baru.
Terkadang tidak ada aliran. Bahasa baru muncul karena seseorang memiliki gatal untuk menggaruk, apakah itu hobi bahasa yang hanya ingin menciptakan sesuatu yang baru atau perusahaan dengan kebutuhan yang tidak terpenuhi oleh apa yang sudah ada.
Inilah yang terjadi ketika John Backus mengusulkan Sistem Penerjemahan Formula Matematika IBM pada tahun 1953. Dia menginginkan cara yang lebih mudah bagi pengguna ilmiah untuk menentukan rumus matematika daripada dengan menuliskannya dalam perakitan. Produk berpemilik itu menjadi bahasa pemrograman pertama yang bukan perakitan, dan Anda tahu itu Fortran.
Di mana Fortran adalah orang pertama yang menempuh rute itu, Erlang cukup banyak menjadi anak poster untuk itu. Ericsson ingin meningkatkan cara perangkat lunak untuk sakelar teleponnya dikembangkan dan menemukan bahasa untuk membuat prototipe dengan fitur-fitur khusus untuk apa yang mereka butuhkan. Ketika saya pertama kali menjelajahinya, takeaway saya adalah itu dikembangkan oleh orang-orang dengan masalah nyata untuk dipecahkan yang tidak akan dilayani dengan baik oleh bahasa lain yang tersedia pada tahun 1986. Erlang tetap menjadi produk in-house yang dipatenkan seperti produk Anda kolega bertemu sampai bersumber terbuka lebih dari satu dekade kemudian, dan sekarang bahasa utama.
Baik Go dan Scala adalah bahasa yang relatif muda dalam skema besar hal, dan sangat mungkin bahwa bahasa yang digunakan di perusahaan kolega Anda mendahului keduanya. Apa yang perlu dia lakukan adalah bertanya tentang sejarahnya, mengapa itu ada dan mengapa terus digunakan.
Saya menghabiskan dekade antara tahun 2003 dan 2013 bekerja untuk sebuah perusahaan yang banyak menggunakan lingkungan khusus industri yang mencakup bahasanya sendiri yang berakar pada akhir 1970-an. Sementara beberapa bahasa yang lebih baru mungkin merupakan pengganti yang lebih cocok (dan kaitannya dengan mereka dicangkokkan seiring waktu), industri itu memiliki investasi yang cukup besar di dalamnya dan sejumlah besar kode yang telah terbukti bahwa tidak ada kasus bisnis yang baik untuk beralih ke sesuatu yang lain.
sumber
Saya pernah melihat ini sebelumnya. Itu tidak pernah bekerja dengan baik. Beberapa orang memiliki kompleks "tidak ditemukan di sini". Ini biasanya menyebabkan perusahaan berlarian menciptakan kembali roda.
Pikirkan tentang itu. Bahasa baru ini mungkin rusak sepanjang waktu. Antara parser, compiler, VM, linker, apa pun ... Sekarang ada ribuan bug yang orang-orang akan buang waktu debugging dengan masalah acak. Semua untuk apa yang mereka pikir mereka butuhkan yang tidak dimiliki bahasa lain.
C / C ++ digunakan untuk menulis sistem operasi seperti, Anda tahu, semuanya. Namun seseorang berpikir mereka membutuhkan sesuatu yang berbeda.
sumber