Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I discovered a fascinating book once. It was written for English speakers, and explained certain Japanese words. There were, I believe, about thirty chapters, each covering ONE Japanese word: introducing the cultural background needed to truly understand the word; explaining all of its rich, subtle meanings... an attempt to teach the idea the word truly represented. The thesis is that many important single words simply have no direct, concise translation, to an English word or phrase.

Most mainstream programming languages today - from C, to Python, to Perl, to Java, to Javascript and Lisp [0] - were created by someone who was at least fluent in English - if not having that as their native language - and who "grew up" as an engineer by working with and studying other such languages. I wonder what kind of influence that has had on their design. Consider the if/then/else idiom that most programming languages have; or the while loop, or perhaps even the common OOP concept of classes (sets) and instance objects (members of a set).

Soon, if not already, there will start emerging higher-level, general-purpose programming languages that are conceived, designed, implemented and evolved by someone (or a group) that cannot read or write English, but has been fluent their whole life in Mandarin - someone who is a product of Chinese culture. Or Hindi, and India. Or Tagalog, and the Philippines. Some language and culture vastly different from that of the Germanic and Romance tongues, like English.

I wonder what those computer languages will be like. Obviously there must be similarities; it's still going to have to run on some hardware derived from von Neumann architecture, almost certainly. And it's difficult for me to imagine the subroutine / function call abstraction not being present in some form or another. But then, the only natural language I know well is English. Perhaps there are alternative forms I have not imagined yet.

The linked article describes an important start, I think. Even if it's technically just a different keyword / identifier mapping, perhaps it will start the gears turning in native Chinese speakers' minds.

[0] I consider Ruby a current "mainstream" language like Perl/Lisp/etc., since it was derived from the other languages mentioned - see this post by Matz: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/...

Edit: fixed a few typos.



Was the book you saw perhaps this: http://www.amazon.com/Dictionary-Basic-Japanese-Grammar/dp/4...

That book more than any other helped really solidify my japanese, precisely because it did what you say: it functioned as a foundation reference to the core of the language.

As for people with very basic modes of thought that are so different that their expression of logical statements would be different... Logic is logic. Its english grammar is a thin abstraction over its mathematical form, so I would be surprised if non-english-conceived programming languages would be dramatically different (aside from syntactic ordering perhaps).

Actually writing that sentence forced me to think of one such way a Japanese-inspired programming language might differ dramatically: since the subject of each verb is often left unstated in conversational japanese, you might have primitives that set the current 'variable context' and then all messages after that yet before the next 'variable context' change would go to that variable. something like:

foo(a, b, c){ talk_to(a) bar(b, c)

bar would implicitly actually be bar(a,b,c) (or a.bar(b,c) if you prefer).

This example seems pointless, but there might be other worthwhile ones.


What would be interesting is to take someone out of a non-technical and very 'foreign' culture, like the Maasai, and have them help derive a programmatic problem solving methodology.

For example, give them a set of known classical programming problems and see what methods they use to arrive at a solution.

I'm not sure this would bear much fruit, but it might still be interesting.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: