Mengapa tidak ada lagi bahasa pemrograman multi-bahasa alami?

9

Apakah ada bahasa pemrograman yang tersedia dan dapat dikembangkan dalam lebih dari satu bahasa alami?

Misalnya, versi bahasa Inggris dengan do..whileloop, versi Spanyol dengan hacer..mientasloop, versi Perancis dengan a faire..pendantdan versi Belanda dengan a doe..terwijl.

Satu-satunya 'bahasa pemrograman' yang dapat saya pikirkan tentang implementasi semacam ini adalah Microsoft VBA.

Pertanyaan bonus: Mengapa ada begitu sedikit bahasa pemrograman yang datang dalam berbagai bahasa?

Martijn Burger
sumber
12
Bahasa Inggris adalah Lingua Franca dari sebagian besar bahasa pemrograman, baik atau buruk.
Robert Harvey
13
That's a reason why the languages are in English, not why there are no other languages, for example no "Java Indonesian" or "C++ Swahili"- Karena program Java Indonesia Anda hanya dapat dikelola oleh programmer Indonesia.
Robert Harvey
5
@DavidArno topik ini telah dipukuli sampai mati di Apakah orang-orang di negara-negara non-berbahasa Inggris kode dalam bahasa Inggris? dan beberapa pertanyaan yang terkait dengannya
nyamuk
8
@ MartijnBurger menerjemahkan kata kunci adalah "masalah kecil", dibandingkan dengan menerjemahkan perpustakaan standar , yang merupakan "tugas besar". Dan itu juga yang akan menyebabkan masalah interoperabilitas. Java tidak bergantung pada ejaan kata kunci setelah dikompilasi; tetapi itu tergantung pada ejaan nama paket, kelas, dan metode.
Dan Getz
3
@DanGetz masih ada masalah di Jawa (dan kemungkinan besar bahasa lain) bahwa kata kunci dicadangkan. Saya tidak bisa mendefinisikan bidang seperti String for;di Jawa karena itu akan menjadi simbol yang diekspor di kelas. Dan itu berarti saya tidak bisa menyebutkan nama bidang doekarena itu dalam versi Belanda dan public class Deer { String buck; String doe; }tidak akan memiliki doebidang yang dapat diakses. Semua kata kunci dicadangkan kata-kata di Jawa. Hal-hal buruk akan terjadi pada bidang yang bertentangan dengan kata kunci dalam bahasa lain.

Jawaban:

21

Nama-nama fungsi dalam rumus Excel dilokalkan, di mana Anda dapat menggunakan kata-kata bahasa Inggris atau setara lokal.

Ini telah menyebabkan kemunculan spreadsheet yang tak terhitung jumlahnya saat Anda bergerak melintasi kawasan dan bahasa pengguna. Ini juga menyulitkan untuk mencari informasi tentang fungsionalitas, karena dokumentasi lokal dilokalkan dan tidak menyebutkan nama-nama dalam bahasa Inggris, dan sebaliknya, bertanya pada SO dengan nama lokal Anda pada dasarnya tidak berarti bagi kebanyakan pembaca.

Kata kunci harus dilihat sebagai monikers buram, yang kebetulan menyelaraskan dengan makna kata-kata bahasa Inggris yang digunakan untuk mengejanya. Ada banyak programmer yang tidak berbahasa Inggris di luar sana yang tidak tahu apa arti setengah kata kunci mereka.

Lars Viklund
sumber
5
Mengejutkan bahwa jawaban ini adalah satu-satunya tempat di mana kata "Excel" muncul, dianggap sebagai kegagalan epik formula yang diterjemahkan. Kedua argumen tersebut valid dan sangat kuat: spreadsheet pecah , dan versi lokal memecah komunitas. Ini tidak termasuk upaya vendor untuk menerjemahkan dokumen dan program (penyusun) sendiri.
1
Mengapa begitu sulit untuk menerjemahkan kata kunci dalam skrip? Tentunya mereka seharusnya relatif mudah diurai karena mereka sudah dirawat secara khusus.
SuperBiasedMan
Selain itu, Excel sebenarnya bukan sistem pemrograman bahasa alami , karena Excel tidak menerjemahkan struktur kalimat bahasa Inggris ke dalam program yang dapat dieksekusi.
Anderson Green
16

Pada abad sebelumnya, terutama pada 1960-1970-an, mereka telah beberapa bahasa pemrograman berbasis non-Inggris. Di Prancis, kami memiliki PAF & LSE dengan kata kunci yang tampak seperti Prancis. WW2 Jerman memiliki Plankalküll oleh K.Zuze. Di Uni Soviet, A.Ershov merancang beberapa bahasa (misalnya Rapira ) dengan kata kunci Rusia. IIRC PAF (dirancang & diimplementasikan oleh almarhum ayah saya ketika saya masih bayi - awal 1960-an) juga dapat dijual dengan kata kunci yang terlihat seperti bahasa Inggris (atau yang tampak Rusia, atau yang tampak Jerman). Dan beberapa bahasa, misalnya APL , tidak memiliki kata kunci sama sekali. Bahasa lain ( PL / I ) tidak disediakankata kunci. Dan Anda dapat mendefinisikan kembali kata kunci dengan teknik preprosesor (misalnya hari ini, dalam C, #define si if& #define sinon elseuntuk siswa Prancis ....; trik berbasis makro yang serupa mungkin dilakukan di PL / I atau bahkan Common Lisp).

Tapi ITUsebagian besar dikembangkan di negara berbahasa Inggris (AS). Jadi bahasa pemrograman dan implementasinya memiliki spesifikasi dan dokumentasi bahasa Inggris dan kata kunci bahasa Inggris. Oleh karena itu, setiap pengembang harus dapat membaca bahasa Inggris teknis, dan tidak ada nilai tambah untuk "melokalisasi" bahasa pemrograman (dan bahkan, melakukan hal itu membuat menggunakan perangkat lunak lain lebih sulit, seperti dijawab di tempat lain). Dominasi teknis dan ekonomi saat ini dari negara-negara berbahasa Inggris mengharuskan semua insinyur untuk membaca bahasa Inggris hari ini (saya yakin bahwa bahkan insinyur perangkat lunak Korea Utara, Cina, atau Iran dapat membaca dokumentasi dalam bahasa Inggris dan membaca kode dengan kata kunci dan pengidentifikasi bahasa Inggris) . Jadi tidak ada lagi nilai tambah yang cukup untuk "melokalisasi" bahasa pemrograman (kecuali mungkin untuk mengajarkan pemrograman dasar kepada anak-anak sekolah menengah).

Juga, bahasa Inggris memiliki banyak kata kunci pendek (bandingkan sinondalam bahasa Prancis dengan elsebahasa Inggris, atau mettredalam bahasa Prancis dengan putbahasa Inggris), jadi ada sedikit keuntungan dalam menggunakan kata kunci dalam bahasa Inggris ....

Mungkin dalam satu abad, Cina mungkin menjadi negara TI yang dominan dan beberapa bahasa pemrograman berbasis Cina mungkin berkembang. Kami tidak tahu apa yang akan terjadi kemudian ....

PS. Dominasi bahasa Inggris tidak khusus untuk IT. Bahkan jika Inggris meninggalkan Uni Eropa - skenario Brexit - , bahasa EC resmi de-facto akan tetap bahasa Inggris (yang kemudian tidak akan menjadi bahasa negara anggota UE) dan proyek TIK H2020 ditulis dalam bahasa Inggris.

Basile Starynkevitch
sumber
Jangan lupa Plankalküll !
Erik Eidt
Terima kasih. Jangan bingung dengan
Kalkulasi
Saya tidak tahu, tapi saya membatalkannya, jadi sekarang (sayangnya) netral. Saya menemukan itu menjadi jawaban yang bagus.
Mawg mengatakan mengembalikan Monica
5
Bahasa Inggris adalah salah satu dari dua bahasa resmi Republik Irlandia, yang merupakan anggota UE.
Matius Flynn
9

Ada alasan yang sangat bagus bahwa bahasa pemrograman profesional tidak diterjemahkan.

1) Usaha: Ini akan menjadi tugas yang sangat besar untuk menerjemahkan bahasa modern. Ambil Java - itu akan menjadi tugas kecil untuk menerjemahkan 50 atau lebih kata kunci, tetapi Anda juga perlu menerjemahkan perpustakaan standar penuh yang terdiri dari ribuan kelas dan metode dan dokumentasi terkait.

2) Kompatibilitas: Bahkan jika perpustakaan bahasa dasar dan standar diterjemahkan, Anda masih tidak dapat menggunakan perpustakaan pihak ketiga dan kode yang tidak diterjemahkan. Perpustakaan dan kode pihak ketiga adalah bagian utama dari apa yang membuat bahasa menarik dan bermanfaat. Dengan versi terjemahan, setiap bahasa harus memulai ekosistem untuk setiap terjemahan dari awal. Semua orang akan lebih buruk.

3) Programmer perlu tahu bahasa Inggris. Banyak standar seperti HTTP, CSS, HTML tetap menggunakan bahasa Inggris untuk pengidentifikasi. Ini tidak dapat diterjemahkan karena kata-kata dimasukkan ke dalam standar.

Karena programmer tetap harus tahu bahasa Inggris, hanya akan ada kekurangan dan tidak ada manfaat untuk membuat versi terjemahan dari bahasa pemrograman.

Oleh karena itu, untuk bahasa yang ditujukan untuk programmer biasa dan bukan programmer profesional, mungkin masuk akal untuk membuat versi terjemahan. Ini adalah kasus untuk VBA dan saya percaya AppleScript juga ada dalam versi terjemahan.

JacquesB
sumber
5

Saya tidak tahu bahasa lain kecuali mungkin beberapa versi BASIC esoterik yang benar-benar tua, yang cenderung mendapat banyak bantuan aneh, jadi saya akan tetap berpegang pada pertanyaan bonus: mengapa ada begitu sedikit bahasa pemrograman yang diterjemahkan:

Saya percaya bahwa ini hanyalah sebuah kompleksitas tambahan yang kompiler dan pelaksana perpustakaan tidak melihat kebutuhan yang besar. Inilah beberapa alasan yang berkontribusi dalam pendapat saya.

  • Anda akan membatasi audiens kode Anda jika Anda tidak menggunakan bahasa "universal". Tentu, tidak semua orang tahu bahasa Inggris, tetapi hal yang sama berlaku untuk setiap bahasa.
  • Kata kunci kata tunggal tidak harus kata tunggal dalam semua bahasa yang menyulitkan penguraian. Saya tidak pernah memeriksa tetapi saya bisa membayangkan ada cukup banyak casing khusus untuk menangani jenis multi-kata tunggal c ++ "panjang".
  • Jika Anda mulai menerjemahkan kata kunci, apakah Anda juga akan mempertimbangkan lokal, dan bagaimana angka diformat? Misalnya, koma versus periode sebagai pemisah desimal. Atau mengharuskan kata benda Jerman dikapitalisasi?
  • Sebagian besar teks dalam program yang diberikan adalah variabel, metode, dan nama kelas, belum lagi komentar. Walaupun pasti ada perpustakaan yang ditulis dalam bahasa lain, harus mempertahankan terjemahan kode sumber dari semua perpustakaan untuk melayani semua pengguna akan menjadi beban besar bagi sebagian besar pengembang, belum lagi kompleksitas tambahan dalam diskusi seputar kode tersebut.
  • Compiler harus memahami semua bahasa yang diimplementasikan. Mungkin bahkan beberapa bahasa dalam file yang sama. Suatu prestasi kecil untuk sebuah komputer tentu saja, tetapi tetap bekerja ekstra. Mungkin Anda akhirnya harus berurusan dengan kata kunci yang sama yang berarti hal-hal yang berbeda dalam bahasa yang berbeda, atau istilah-istilah yang terlalu ambigu untuk dibaca dengan baik.
  • (ok, berpendapat) Tentunya sebagian besar orang yang harus berurusan dengan dokumen MS Office yang diprogram dan diformat dalam berbagai bahasa akan menolak gagasan tersebut karena tidak sepadan dengan masalahnya.

Secara pribadi saya akan senang jika kita dapat bekerja dengan kode dengan cara yang lebih terstruktur, dalam editor yang benar-benar memahami kode seperti apa itu, pernyataan, instruksi, dll. Yang akan memungkinkan kita untuk melakukan banyak hal menarik , bahkan mungkin mendukung terjemahan otomatis. Bagi siapa pun yang bertanya-tanya tentang apa yang saya bicarakan, lihat gambar Smalltalk dan peramban refactoring, dan bayangkan akan jadi apa jadinya jika traksi semakin banyak.

axl
sumber
3

Jika Anda memiliki bahasa yang didefinisikan dalam istilah "tag simbolik" pada satu tingkat dan "penanda tag permukaan" di sisi lain, dengan pemetaan yang didefinisikan dengan baik di antara mereka, itu pasti akan mungkin.

Bayangkan sebuah bahasa di mana Anda memiliki if, while... do, switchdan semua kata kunci lain yang didefinisikan (entah bagaimana) dalam standar, Anda dapat mengirimkan pustaka sistem dalam "format tokenized", dengan kode lokal yang ditulis dalam bentuk non-tokenized. Kemudian kompiler yang sebenarnya bekerja pada lapisan tokenized dan mungkin semuanya baik.

Namun, ini bukan keseluruhan cerita. Anda masih akan berakhir dalam situasi di mana Anda memiliki perpustakaan yang berasal dari suatu tempat yang bukan "perpustakaan standar", dihubungkan oleh nama fungsi. Dan mereka tidak akan memiliki pemetaan kanonik antara bahasa dan akan membutuhkan terjemahan ke bahasa lokal agar dapat digunakan dengan baik, atau Anda berakhir dengan kesalahan bahasa dalam kode sumber Anda.

Vatine
sumber
2

Semua jawaban yang diberikan adalah jawaban yang bagus, tetapi saya akan tetap memberikan dua sen.

Pada awal komputasi , dominasi teknis, budaya, dan ekonomi AS dan Inggris menjadikannya logis apa saja bahasa paling sukses yang dibuat menggunakan kata-kata bahasa Inggris.

Kemudian, ketika perangkat lunak menjadi sebuah industri , itu juga menjadi upaya global. Bukan rahasia lagi bahwa ada lebih sedikit programmer daripada yang dibutuhkan, sehingga perusahaan perangkat lunak, dan perusahaan yang mendefinisikan industri seperti IBM, mulai merekrut programmer dari seluruh penjuru dunia: Rusia, Pakistan, India, Prancis, Jerman, Israel, dll. sebagian besar untuk memprogram dalam bahasa yang sudah sukses secara global yang sudah ada yang berbasis bahasa Inggris dan juga menciptakan bahasa baru, dan untuk itu sumber yang berbeda dari programmer bahasa umum yang sudah ada adalah lebih baik daripada bahasa lain.

Baru-baru ini gerakan open source dan perangkat lunak bebas menjadikan penciptaan perangkat lunak sebagai upaya yang bahkan lebih global daripada sebelumnya. Beberapa proyek perangkat lunak terbuka, termasuk beberapa platform pemrograman, bahasa dan kerangka kerja adalah proyek besar yang melibatkan ratusan kolaborator.

Bahasa apa yang akan digunakan seseorang dari Israel untuk berkolaborasi dengan seseorang dari Sri Lanka? Kemungkinan besar mereka tidak berbicara atau bahkan membaca bahasa ibu satu sama lain. Jadi bahasa Inggris datang untuk menyelamatkan.

Suka atau tidak, bahasa Inggris adalah bahasa dari upaya global . Dan bukan karena Amerika mendorongnya tetapi karena dunia menariknya.

Mengutip Jay Walker :

Bahasa ibu Anda adalah bahasa yang paling sering Anda gunakan setiap hari, dan akan selalu menjadi pusat dari hati dan otak Anda, tetapi dengan bahasa Inggris Anda adalah bagian dari percakapan yang lebih luas.

Lihat video, "English Mania" .

Intinya:

Bahasa pemrograman yang menggunakan bahasa yang berbeda akan terus ada dan akan terus ditemukan (seperti Scratch berbasis grafis-token), tetapi setidaknya di masa mendatang te he akan relatif sedikit.

Tulains Córdova
sumber
-2

Bahasa Inggris juga merupakan bahasa "bebas aksen", juga Anda tidak memiliki karakter aneh yang memerlukan penyandian berbeda dari ASCII. Saya orang Italia dan kadang-kadang saya menghadapi kesalahan penyandian jika saya menggunakan tata letak keyboard Italia atau karakter beraksen seperti àèéìòù. Selain itu "lain" diterjemahkan dalam "altrimenti", "dalam" adalah "dentro" ... itu akan membuat frustrasi.

JoulinRouge
sumber
9
Ini adalah alasan melingkar - ASCII menjadi charset standar karena bahasa Inggris adalah lingua franca komputasi.
JacquesB