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;
Non-English-based programming languages
41–50 of 81 posts
Re: Non-English-based programming languages
#42I 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…
One does wonder how soviets ever managed to program their computers.
Re: Non-English-based programming languages
#43Earlier 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.
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
#44I 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…
Re: Non-English-based programming languages
#45I 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.
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
#46I 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.
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
#47I 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.
Министерство здравоохранения => Минздрав (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
#48Some 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
)nRe: Non-English-based programming languages
#49Earlier 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.
Re: Non-English-based programming languages
#50Earlier 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…