Apa bahasa alami yang memiliki keunggulan dalam hal pemrograman? [Tutup]


21

Relativitas linguistik adalah gagasan bahwa bahasa membentuk cara kita berpikir. Pertanyaan saya adalah, berapa banyak, dan sejauh mana, ini berlaku untuk pemrograman?

  • Apakah beberapa bahasa asli dan alami lebih cocok untuk berpikir tentang pemrograman daripada yang lain? Misalnya, dapatkah hal-hal berikut dinyatakan lebih ringkas dalam bahasa non-Inggris? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
  • Apakah programmer yang berbicara bahasa Cina melihat pemrograman dalam lensa yang sangat berbeda dari programmer yang berbahasa Inggris, atau apakah perbedaannya menghilang ketika keduanya tenggelam dalam subjek?
  • Apakah beberapa bahasa dan domain pemrograman lebih mudah dipikirkan dalam satu bahasa atau lainnya. Misalnya, apakah lebih mudah untuk grok Ruby jika Anda orang Jepang karena pembuat Ruby adalah orang Jepang?

Perhatikan bahwa pertanyaan ini tidak berfokus pada "bagaimana bahasa pemrograman memengaruhi cara orang berpikir tentang pemrograman", melainkan "bagaimana bahasa alami memengaruhi cara orang berpikir tentang pemrograman".

Untuk menghindarinya, satu bahasa yang jelas memiliki keunggulan pragmatis adalah bahasa Inggris . Saya pikir keuntungan memiliki sedikit hubungannya dengan bahasa pemrograman memilih kata kunci Inggris seperti if, for, while, dan do, seperti musisi yang tidak berbicara bahasa Italia tidak tersandung oleh kata-kata seperti forte . Ini lebih berkaitan dengan komunikasi ide dengan programmer lain, karena bahasa Inggris adalah bahasa pergaulan akhir-akhir ini, setidaknya di dunia pemrograman. Misalnya, untuk mengajukan pertanyaan di StackOverflow, Anda benar-benar perlu tahu bahasa Inggris dan mengetahuinya dengan cukup baik jika Anda menginginkan jawaban yang baik. Walaupun ini kedengarannya seperti sikap imperialis, itu benar dalam praktiknya.

Selain itu, bagaimana sifat intrinsik bahasa memengaruhi cara pemrogram yang berbicara tentang struktur data, algoritme, dll.? Apakah ada bahasa tertentu yang ringkas ketika berbicara tentang logika dan pemrograman, yang memungkinkan penutur asli bahasa tersebut untuk berpikir lebih cepat?


2
Anda dapat menyatakan itu dengan sangat sederhana untuk setiap programmer yang kompeten. Implement quick sort.
Josh K

Jawaban:


3

Ah, hipotesis Sapir-Whorf vs. hipotesis Chomsky Deep Structure ...

Pemrograman adalah matematika. Matematika adalah filosofi terapan. Pertanyaannya kemudian menjadi, bahasa alami mana yang bisa menggambarkan konsep matematika tanpa menggaruk kepala secara signifikan. Dengan kata lain, bahasa mana yang dapat menangani metafisika Aristotelian dengan mudah?

Bahasa 'biadab' pepatah mungkin memiliki kesulitan awal mengekspresikan abstraksi orde pertama yang diperlukan. Namun- bagaimanapun! - manusia dapat mempelajari kata-kata baru, dan konsep baru. Bahasa Yunani Kuno tidak dimulai dengan istilah filosofis; mereka harus ditemukan dan kemudian diangkut ke bahasa lain.

Mempertimbangkan bahwa matematika itu universal, saya mendalilkan bahwa hipotesis kuat Sapir-Whorf adalah salah.


"Matematika adalah filosofi terapan" Jelaskan?
Frank Shearar

1
@ Frank: Secara historis, itulah masalahnya. Ketika Anda melakukan sepintas melihat 'dasar matematika', itu menjadi sangat jelas bahwa itu secara filosofis didasarkan. Misalnya, seluruh argumen intuitionist.
Paul Nathan

Saya tidak akan berdebat bahwa beberapa pertanyaan matematika bersifat filosofis, seperti yang Anda katakan. Sepertinya saya jauh dari itu untuk mengatakan bahwa "Matematika adalah filsafat terapan".
Frank Shearar

@ Frank: baik, jika dasar-dasar matematika adalah filosofis, maka akan terlihat bahwa apa yang berasal dari dasar juga filosofis. Tidak? Iya nih?
Paul Nathan

1
@ Frank: Mengerikan, ya? Beberapa mayor seni liberal terkikik dari latte-nya sekarang, saya yakin. :)
Paul Nathan

13

Saya tidak tahu bahwa bahasa alami tertentu cocok untuk pemrograman yang lebih baik (kecuali mungkin Latin?). Saya tahu bahwa mengetahui lebih dari satu bahasa cukup kuat.

Dijkstra mengatakan dalam salah satu wawancara terakhirnya (sebagaimana dicetak ulang dalam CACM Vol. 53 No. 8, hal. 44):

Ada perbedaan besar antara orang yang satu bahasa dan seseorang yang setidaknya tahu bahasa kedua dengan baik, karena itu membuat Anda lebih sadar tentang struktur bahasa secara umum. Anda akan menemukan bahwa konstruksi tertentu dalam satu bahasa yang tidak dapat Anda terjemahkan.


6

Bahasa Turki adalah bahasa yang sangat menarik karena memiliki aturan ketat tanpa pengecualian (yang saya ketahui), hampir sepenuhnya bebas-redundan, tidak memiliki gender gramatikal, dan kata-kata dapat mengekspresikan sebanyak kalimat dalam bahasa Inggris.

Di masa lalu "Çekoslovakyalılaştıramadıklarımızdan mısınız?" yang berarti "Apakah Anda salah satu dari orang-orang yang tidak dapat kita buat menyerupai dari Cekoslowakia?" sangat populer dan diterima sebagai kata terpanjang dalam bahasa Turki. Namun, sufiks pertanyaan (mısınız dalam kasus ini) ditulis secara terpisah, jadi meskipun satu kata, sepertinya dua kata saat kata itu ditulis. Juga, versi yang lebih panjang dari kata ini dapat dibuat dengan mudah, seperti "Çekoslovakyalılaştırabildiklerimizden miydiniz?". Karena alasan ini, kata itu kehilangan popularitasnya, tetapi kata itu tetap populer di Turki.

berbicara dalam bahasa Turki membuat saya berpikir tentang apa yang ingin saya capai, informasi apa yang ingin saya sampaikan, dan lebih sedikit tentang kata-kata apa yang digunakan.

sunting
Tentu saja Turki memiliki kata-kata untuk mewakili jenis kelamin biologis. Tapi itu tidak memiliki pemisahan menjadi dia - dalam bahasa Turki "o".

Atau dalam bahasa Spanyol Anda akan mengatakan "profesor / profesora" dan dalam bahasa Jerman "Lehrer / Lehrerin". Di Turki Anda harus menggunakan kata-kata tambahan untuk menunjukkan jenis kelamin - mirip dengan bahasa Inggris.
Dalam bahasa Turki guru adalah öğretmen. Untuk menunjukkan seorang guru wanita Anda akan mengatakan "kadın öğretmen" - guru wanita. Namun terlepas dari bahasa Jerman, di mana - jika tidak di feminisasi dengan menambahkan "-in" - standarnya adalah laki-laki, öğretmen tidak memiliki jenis kelamin, karena tidak ada.

Hal lain yang tidak tersedia dalam bahasa Turki adalah artikel seperti "el / la", "the", "der / die / das" - karena biasanya hanya informasi yang sudah tersedia berdasarkan konteksnya.
Tetapi ada kata-kata untuk mengekspresikan "ini", "este / esta", "diese / dieses / diese", misalnya "bu".
Ini adalah informasi tambahan, karena menunjuk pada objek tertentu.


1
Tanpa seks gramatikal, dari mana asal orang Turki kecil? (Ngomong-ngomong, ketika saya melihat pertanyaan itu tetapi sebelum melihat ke sini, saya memikirkan bahasa Turki. Walaupun saya tidak berbicara, saya pernah mendengar tentang seberapa teraturnya itu.)
Randall Schulz

Rupanya sintaks Smalltalk adalah lebih dekat ke Turki daripada ke Bahasa Inggris: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar

@ Frank Shearer: waktu untuk belajar smalltalk!
VikingoS mengatakan Reinstate Monica

@ Randall Schulz: U mendapatkan saya;) Saya selalu mencampuradukkan istilah seks dan gender ...
VikingoS mengatakan Reinstate Monica

Saya pernah mendengar bahasa Sansekerta dimaksudkan sebagai yang paling seperti bahasa komputer menurut beberapa penelitian, Anda dapat google itu. Saya tidak yakin seberapa benar itu bisa terjadi, tetapi karena bahasa Sanskerta tidak pernah lepas landas sebagai bahasa yang diucapkan mainstream dan juga karena digunakan di kalangan akademisi untuk studi teknis waktu itu kemungkinan tidak seperti bahasa lisan alami saat ini. Bahasa Turki terdengar sangat manis di telinga saya (hanya secara aura) tetapi jika semuanya dan bahasa Sansekerta berbicara seperti bahasa pemrograman anak laki-laki itu akan sangat membosankan. Hal terakhir yang ingin saya dengar ketika ditanya: "apakah laki-laki atau perempuan?" adalah "ya".
nawfal

2

Saya pikir itu lebih mungkin bahwa bahasa pemrograman yang Anda gunakan akan membentuk cara Anda berpikir tentang masalah, variabel dan nama kelas, dll, hanya karakter yang mewakili sesuatu. Meskipun sangat mungkin bahwa programmer dalam budaya yang berbeda berpikir tentang pemrograman secara berbeda karena bahasa lisan mereka dan cara mereka belajar.


1

Menurut pendapat saya, bahasa alami tidak masalah (atau paling tidak seharusnya tidak berarti) sama sekali ketika berbicara tentang metode atau ide yang Anda coba sadari dengan kode Anda.

Seperti yang Anda katakan sendiri, ketika bekerja dengan kode itu sendiri dan menulis dokumentasi tentang kode bahasa Inggris adalah yang paling tepat. Tetapi karena kode itu sendiri hanyalah sebuah kerajinan tangan , kekuatan sebenarnya dari seorang programmer / ilmuwan komputer terletak di atas bahwa dengan ide, algoritma dan hal-hal semacam itu - dan kemudian, bahasa yang dijelaskan hal-hal itu sama sekali tidak penting untuk konten yang sebenarnya.


0

Ini adalah topik yang saya sangat tertarik pada suatu waktu, oleh karena itu kesedihan saya yang lebih besar (sekarang), bahwa saya tidak dapat menemukan penanda yang saya miliki saat itu.

Saya memang menyimpan tautan yang saya temui kemarin, Apakah Berbagai Bahasa Berbeda dengan Kenyataan yang Berbeda? yang agak menyinggung itu (baca komentar juga). Ada yang menarik.

Bagaimanapun ...


-1

Bahasa Inggris sebenarnya cukup efisien dan ringkas. Penerjemahan ke sebagian besar bahasa akan membuat gagasan lebih lama diekspresikan .

Secara umum juga diterima bahwa tidak ada bahasa alami primitif . Semua bahasa alami yang digunakan aktif memiliki tingkat ekspresi yang sama. Bukan berarti ide tidak dibentuk oleh bahasa, tetapi saya tidak berpikir bahasa alami adalah pengaruh besar.


Saya menemukan bahwa bahasa Mandarin mungkin adalah bahasa yang paling singkat yang pernah saya temui, baik ketika ditulis maupun diucapkan. Panjang terjemahan biasanya hanya setengah dari bahasa Inggris.
Jon Purdy

4
Tetapi bukankah kompleksitas simbol lebih tinggi?
Joeri Sebrechts

Bahasa Tionghoa adalah APL dari bahasa lisan yang Anda maksud? :)
nawfal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.