Follow

@kensanata It goes further, most programming languages are based on English grammar as well. Even assembly language usually has verb-subject syntax.

This is one of the reasons that led me to create Haku, my Japanese programming language that I have been posting about recently: what happens if we use a different language with a different writing system and a different grammar?

· · Web · 3 · 3 · 4

@wim_v12e Assembly language and English has verb-object syntax, not verb-subject syntax, but your point still stands. Japanese is stack based, that’s pretty awesome.

@kensanata

@Sandra

Sorry, of course, that was a stupid mistake.

Of course one could argue that in the OO paradigm, the order is object.verb.
But then typically additional arguments go after the verb: object.verb(arg1,arg2).

In my Haku language, functions can be verbs, nouns or adjectives. And it is possible to turn the verbs into nouns and nouns into verbs. And even have adjectival verbs.

@kensanata

@wim_v12e @kensanata Isn't this also the reason why Ruby has such extraordinary syntax? I was also based on a SOV language, no?

@deshipu

Yes indeed. But the grammar in Ruby is mostly OO-style. I once wrote a transliteration tool from Ruby to C++, and it did not need a full parser, mostly just simple syntax transformations.
The block syntax is probably the clearest example of the SOV influence, or more precisely, in Japanese, topic-action:

"With this thing, do something"

@kensanata

@wim_v12e @kensanata Most object-orientated languages use subject-verb.

And, re @Sandra 's point, I think they really are subject-verb rather than object-verb (the object, in the programming sense of the word, does the action) so why don't we call them subject-orientated languages?

@edavies

The language mentioned was asm.

call printline dec c call printc ld hl,line4

Those are VPs complete with O.

Similarly, objects in OOP are data structures that carry their own code for what can be done to them. Get, set, print… They’re all objects that get called and manipulated and bossed around. A language like CLOS makes this clearer, with the syntax (method object) instead object.method().

It’s at least as often beer.drink() as it is barPatron.drink(), and even in the latter case the patron is like a puppet being forced to drink by the real subjects pulled strings. The programmer.

@wim_v12e @kensanata

@Sandra @edavies @kensanata @wim_v12e

And then there are meta object oriented languages that have an even looser coupling between objects and code, such as CLOS. There this distinction between object/subject does not make a lot of sense as any method may use it in any way they please.
@Sandra

Oh, my apologies, you are completely right and I agree with you.



@edavies @kensanata @wim_v12e

@ckeen @Sandra @edavies @kensanata

Purely from a Japanese perspective, the whole SOV terminology does not really work very well anyway. Japanese works with topics rather than subject/objects, and even the distinction between a verb, a noun and an adjective is not very strong. Personally I think about it as

<list of topics> <list of subtopics assisting in the action> <action>

And in Haku I use this pattern to express binding a function call to a variable.

Sign in to participate in the conversation
Octodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!