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?
sumber
Implement quick sort
.Jawaban:
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.
sumber
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):
sumber
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.
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.
sumber
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.
sumber
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.
sumber
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 ...
sumber
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.
sumber