Live data from Hacker News

Non-English-based programming languages

en.wikipedia.org

41–50 of 81 posts

Re: Non-English-based programming languages

#41
I think that English words tend to be very short; so in English one has to type less - having concise commands is an important feature for a programming language;

I don't know if it is an urban legend: I read that in English the length of a words is shorter than in Japanese; so in WW2 the English language was better for shouting out orders - less time for communication means more time for action;

Re: Non-English-based programming languages

#42
post #38

I think it's an awful idea. Let's take Cyrillic languages, Ukrainian/Russian as an example. * Alphabet has 33+ letters, so there is no space left for programmer's favorite symbols on layout: @#$^&{}[]|~` . Yep. * In Math variables' names traditionally are Latin/Greek letters, Cyrillic is used only when teaching kids. Again: switching layout all the time? No, thanks. * Words are simply much longer. And I mean much. In…

I have 104 keys on my keyboard and 4 of them are modifiers. The English alphabet isn't the Latin/Greek alphabet either. And I am absolutely astounded that Russians apparently have never invented the concept of an abbreviation or contraction.

One does wonder how soviets ever managed to program their computers.

Re: Non-English-based programming languages

#43
post #17

Earlier quoted context omitted.

But it`s much easier to create new words in english. Like transform a verb in a noum, or adjective, etc I`m a native portuguese speaker, and think that romantic languages can be more "emotional" than english. But its amazing how a new idea can be expressed so easilly in English.

I'd contend the opposite, being fluent in German, English and having strong knowledge of Latin. German and Latin can create new words or ideas much easier than English can. English creates them 'easier' by wholesale importing them. Take the concept of 'karma', there is no word for this in English. In German this word is schicksal. This concept doesn't exist in English at all other than the Hindi import.

English does like to import words wholesale, and I agree that German conjunctions and the fact you can often create new words by combining two different words (my favourite: "scheinheilig"="apparently+holy"=hypocrite) makes it easy to create new words in German (and other Germanic languages).

That said, your example is not a very good one. "Schicksal" can be translated as "fate", "fortune", "destiny" and "lot". Not just "karma".

Re: Non-English-based programming languages

#44
post #38

I think it's an awful idea. Let's take Cyrillic languages, Ukrainian/Russian as an example. * Alphabet has 33+ letters, so there is no space left for programmer's favorite symbols on layout: @#$^&{}[]|~` . Yep. * In Math variables' names traditionally are Latin/Greek letters, Cyrillic is used only when teaching kids. Again: switching layout all the time? No, thanks. * Words are simply much longer. And I mean much. In…

Sorry, but the thing about the layout is BS. I code with a german layout. You have the use the Alt-Gr modifier a lot, but in the end it's not harder to use than a shift key.

Re: Non-English-based programming languages

#45
post #38

I think it's an awful idea. Let's take Cyrillic languages, Ukrainian/Russian as an example. * Alphabet has 33+ letters, so there is no space left for programmer's favorite symbols on layout: @#$^&{}[]|~` . Yep. * In Math variables' names traditionally are Latin/Greek letters, Cyrillic is used only when teaching kids. Again: switching layout all the time? No, thanks. * Words are simply much longer. And I mean much. In…

I have 104 keys on my keyboard and 4 of them are modifiers. The English alphabet isn't the Latin/Greek alphabet either. And I am absolutely astounded that Russians apparently have never invented the concept of an abbreviation or contraction. One does wonder how soviets ever managed to program their computers.

> I have 104 keys on my keyboard and 4 of them are modifiers.

Yep, that's one way. But it make things harder. If you set up Alt to use as English layout modifier to type {} you need to press two modifiers now: Alt + Shift. However I agree it's not the main issue.

> The English alphabet isn't the Latin/Greek alphabet either.

At least it's Latin.

> And I am absolutely astounded that Russians apparently have never invented the concept of an abbreviation or contraction.

Of course such things do exist.. they just don't work very well. English's short words is a relatively distinctive feature which it has developed being a mix of Latin/French/Germanic. For Russian words usually are complex. Var - переменная - prefix пере- + root мен. Yes, you can contract it to `перем.` But it also sounds like contraction of `перемещенная` which is `moved` or `перемещать` which is `move` or `переменный’ which is `variable(meaning: alternating)` and so forth.

Re: Non-English-based programming languages

#46
post #44
post #38

I think it's an awful idea. Let's take Cyrillic languages, Ukrainian/Russian as an example. * Alphabet has 33+ letters, so there is no space left for programmer's favorite symbols on layout: @#$^&{}[]|~` . Yep. * In Math variables' names traditionally are Latin/Greek letters, Cyrillic is used only when teaching kids. Again: switching layout all the time? No, thanks. * Words are simply much longer. And I mean much. In…

Sorry, but the thing about the layout is BS. I code with a german layout. You have the use the Alt-Gr modifier a lot, but in the end it's not harder to use than a shift key.

You may call my opinion BS but it is harder due to the fact that additional letters take space off the symbols. Examples (assuming you use AltGr)

    Symbol; English; Russian
    , ; , ; Shift + .
    [ ; [ ; AltGr + х
    { ; Shift + [ ; AltGr + Shift + х
See pattern? Though I agree with you - it's not a dealbreaker.

Re: Non-English-based programming languages

#47
post #38

I think it's an awful idea. Let's take Cyrillic languages, Ukrainian/Russian as an example. * Alphabet has 33+ letters, so there is no space left for programmer's favorite symbols on layout: @#$^&{}[]|~` . Yep. * In Math variables' names traditionally are Latin/Greek letters, Cyrillic is used only when teaching kids. Again: switching layout all the time? No, thanks. * Words are simply much longer. And I mean much. In…

I have 104 keys on my keyboard and 4 of them are modifiers. The English alphabet isn't the Latin/Greek alphabet either. And I am absolutely astounded that Russians apparently have never invented the concept of an abbreviation or contraction. One does wonder how soviets ever managed to program their computers.

As an aside, if you (the reader, not Avshalom) haven't read much Russian literature, Russian is the language where you take the first syllable of every word in a long phrase and you make a new word:

Министерство здравоохранения => Минздрав (Ministry of Health => Minheal)

Министерство юстиции => Минюст (Ministry of Justice => Minjust)

etc, etc. As a foreigner, I found that quite peculiar though it doesn't seem to be as common now as it was before but it's still noticeable in everyday life.

Re: Non-English-based programming languages

#48
I wonder how programming language based on fusional natural languages with cases could work.

Some ideas (warning - long and useless read):

- everything is an expression

- expressions have Cases. Default case (without postfixes) is Source Case

- cases are like roles for parts of expression in given complex expression context (allow us to change order of arguments in expressions without named parameters for example, and to overload functions/macros depending on Cases of the supplied arguments)

- you can define pre-, -post, and -in- fixes that work like macros/functions

- you can use pre/post fixes to tag expression with cases in the context of an expression

- you can use 1-arg functions/macros as pre and postfixes, or as regular functions

- you can use 2-arg functions/macros as infixes or as regular functions

- more than 2arg functions can only be used as regular functions

- you can overload functions/macros depending on case of args

- you can define your own cases

Example:

    % %1 %2 etc are unamed arguments in
            macro/function definitions,
            like in lambdas in clojure
    
    "-" is used in pre/in/post fixed macros
        definitions to mark where the base
        identifier goes

    %-! is 1arg macro that defines variable of name %. 

Example:

    a!
    foobar!

    %-a is postfix macro that tags variable %
        with Target case
    %-i tags with Helper case
    %-p tags with PositiveConditional case
    %-n tags with NegativeConditional case

    %1a=%2 is infix 2arg macro that assigns to
           variable %1 (must be in Target case)
           value %2 (in Source case).
Can be used as regular macro:

    = %1a %2

 or equivalently

    = %2 %1a
We can also overload = to be equality operator if both args are in Source case

    %1=%2

 works with regular macro too:

    = %1 %2

 or

    = %2 %1
We can overload binary operators with 3rd and 4th args in PositiveConditional and NegativeConditional cases and we don't need IFs :)

This also allows us to write if with only else clause in the form:

    > x 0 (OUTPUTa="X SMALLER THAN 0!!!")n

    %1-;-%2 is infix macro that evaluates in sequence.
            It's overloaded for all cases, especially
            for %1a-;-%2a

    # is python-style comment

 Example code to calculate real roots of quadratic equation:

   a! b! c! delta!           # definitions of variables
   = INPUT aa ba ca          # overloaded = macro with
                             # many targets (a b c in Target case)
                             # and one source
                             # to easily fetch many items from input
   deltaa=((b^2)-4*a*c)      # precedence will be a problem
                             # to define generally

    = delta 0                # overloaded = equality test with
                             # 3rd arg being positive conditional case
                             # and 4th being negative conditional case
      (
        = OUTPUTa "x0=" (-b/(2*a)) # overloaded = macro with one target
                                   # and many sources - will join the sources
      )p                           
      (> delta 0
         (
           = OUTPUTa "x0=" (-b-sqrt(delta))/(2*a);
           = OUTPUTa "x1=" (-b+sqrt(delta))/(2*a)
         )p
      )n

Re: Non-English-based programming languages

#49
post #46
post #44

Earlier quoted context omitted.

Sorry, but the thing about the layout is BS. I code with a german layout. You have the use the Alt-Gr modifier a lot, but in the end it's not harder to use than a shift key.

You may call my opinion BS but it is harder due to the fact that additional letters take space off the symbols. Examples (assuming you use AltGr) Symbol; English; Russian , ; , ; Shift + . [ ; [ ; AltGr + х { ; Shift + [ ; AltGr + Shift + х See pattern? Though I agree with you - it's not a dealbreaker.

Ok, two modifiers are proably more annoying. Is the Alt-Gr plane not big enough? I have serveral Symbols there that i never ever need, like ðæł¶ŧ←↓→øħħ̣ĸ . Are there essential Cyrillic characters?

Re: Non-English-based programming languages

#50

Earlier quoted context omitted.

I have 104 keys on my keyboard and 4 of them are modifiers. The English alphabet isn't the Latin/Greek alphabet either. And I am absolutely astounded that Russians apparently have never invented the concept of an abbreviation or contraction. One does wonder how soviets ever managed to program their computers.

As an aside, if you (the reader, not Avshalom) haven't read much Russian literature, Russian is the language where you take the first syllable of every word in a long phrase and you make a new word: Министерство здравоохранения => Минздрав (Ministry of Health => Minheal) Министерство юстиции => Минюст (Ministry of Justice => Minjust) etc, etc. As a foreigner, I found that quite peculiar though it doesn't seem to be a…

Don't worry it seems peculiar even for native like me :-) It's a bit less common now as it feels like Soviet era attribute (think Orwell's новояз (newspeak))
Post reply on HN