So people learn to use those in their native language which is great.
But if they need to use the same software with a different language setting, because they move or work abroad, they have to relearn all those function names, which sucks...
And, most annoyingly, their thousands and decimal separators. That has tripped me up countless times.
100,991 vs 100.991.
shivers
10 drucken 'Hallo, Welt!" 20 gehe zu 10
-o3
Obviously we would translate the name of the command itself, and the language would be implied
riesenschlange main.pyRelease date is 1st of april though
I'm assuming that you simply didn't read past the first paragraph? (That's fine, I bet we all do that way too often here) I mean, I have a hard time believing that you really can't tell that a post that states that everybody uses FORTRAN isn't serious.
I care because HN has a way of ruining satire and sarcasm this way. These are only the delightful stylistic devices that they are when you don't say that it's satire (resp sarcasm). I truly wish we'd all "/s" a little less, not more :-)
https://www.youtube.com/watch?v=3m5qxZm_JqM
Invariably, someone replies with a comment like "People should be aware that this is not actually an Australian senator, it is the comedian John Clarke impersonating one."
Every. Single. Time.
As if it wouldn't be obvious after watching the first few minutes of the video!
What ever happened to the fun of not realizing something is satire until you're partway into it?
(also, hey skrebbel! :)
Yes and no. Here on HN I see it everyday: good on-topic jokes get downvoted.
I suspect this happens because when people are in "HN mode" there comes a sort of earnestness into their state that makes it hard to detect other tonalities.
P.S. I needed the FORTRAN bit until it dawned on me…
Or even carefully qualified statements! I think folks here drop "most" and "typically" and similar words as they read. You have to write poorly, qualifying everything three times and disavowing a bunch of stuff you obviously aren't saying or even implying anyway, to make sure you don't get a bunch of pointless comments.
Yeah, I've noticed that when I get sarcastic or snarky, it's very often an invitation to being downvoted. I can't tell if it's because people don't get the sarcasm or snarkiness, get it but are offended that I'm using it at all (especially without an "/s"), or are offended that I'm being snarky about [insert sacred technolibertarian cow here]. :)
That said, if you feel like `/s` is ruining the sarcasm for you, the solution is pretty simple. GreaseMonkey [0] should be able to remove it very easily, while adding it would be _a bit_ more challenging.
[0] https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/
True. I'm sometimes a source for similarly controversial statements. However, the following line should suffice to indicate the facetiousness of the post:
> This is the same reason that everyone uses FORTRAN.
Everyone does not use FORTRAN, and in fact it is so uncommonly used that it is ridiculous anyone would think otherwise. There are probably quite a lot of people in this industry who've never even heard of FORTRAN.
This is a common form of sarcasm in English, to counter an argument (programming languages should be English-only because there'd be too much fragmentation otherwise) by presenting the same argument in the context of something obviously untrue (that's why everyone uses FORTRAN).
> ...and when writing, people do make mistakes.
Maybe he meant Python, who knows? If only there was a way to signal you are being sarcastic to avoid misunderstandings. Oh wait... /s
That zinger didn't tip it off to you?
“Learning a new language” as in programming language, sits in the days-to-months range, while “learning a new language” as in Arabic takes months-to-years, so you’re building a much, much deeper chasm for others to cross and contribute, even though the source code remains English-based.
You can already see this happening with some open source libraries coming from China, where the documentation and all discussion being in ZH already completely blocks foreign contribution.
However, I have heard people say that all software everywhere should be written in English, including things like personal projects and internal tools for companies in non-anglophone countries. I think that's kind of ridiculous.
Best-case is still engligh, though; working in another language is like doing science in American units. It works fine as long as you stay localized, but if you need to hire foreign devs to supplement your team, good luck (see the infamous Mars rover crash.)
What if the people you want to understand aren't English speakers?
I'm not opposed to people developing tools in their native languages, but let's not pretend like projects that use this language aren't going to be completely isolated from most of the rest of the world.
For better or for worse, the world has settled on English as the lingua franca for business.
I feel there is a point you want to make, but am not sure what it is.
Ironic that in order to say this, you used a latin phrase that translates to "language of the Frankish people".
> The term lingua franca derives from Mediterranean Lingua Franca, the pidgin language that people around the Levant and the eastern Mediterranean Sea used as the main language of commerce and diplomacy from late medieval times, especially during the Renaissance era, to the 18th century. At that time, Italian-speakers dominated seaborne commerce in the port cities of the Ottoman Empire and a simplified version of Italian, including many loan words from Greek, Old French, Portuguese, Occitan, and Spanish as well as Arabic and Turkish came to be widely used as the "lingua franca" (in the generic sense) of the region.
> In Lingua Franca (the specific language), lingua means a language, as in Portuguese and Italian, and franca is related to phrankoi in Greek and faranji in Arabic as well as the equivalent Italian. In all three cases, the literal sense is "Frankish", leading to the direct translation: "language of the Franks". During the late Byzantine Empire, "Franks" was a term that applied to all Western Europeans.
There are 800 million Chinese internet users almost all are mobile only. Those that work as professional developers are expected to work insane hours that are unlikely to leave much time for public works after 9 to 9 6 days a week.
What's that supposed to imply? Just Googled "number of software developers in China" and "number of software developers in the world". Got 5.79 mil (2017) and 23 mil (2018) as answers. Not sure how accurate but can't be that far off.
> Those that work as professional developers are expected to work insane hours that are unlikely to leave much time for public works after 9 to 9 6 days a week.
I didn't pay too much attention to that story, but having talked to a few software developer friends in China myself, I'm inclined to say it may be a widespread problem but probably not universal. Whether that's true or not, I certainly see a fair share of popular open source projects coming from China these days, not one in five of course, but given their relative isolation and my inherent U.S./Western bias the number that caught my eyes are still quite impressive.
Not to mention there are a lot of corporate open source in China as well. In fact, just like in the U.S., a good chunk of high profile open source projects are corporate-developed or corporate-backed.
Moreover, whether one in five is accurate wasn't even the point of my post.
>You can already see this happening with some open source libraries coming from China, where the documentation and all discussion being in ZH already completely blocks foreign contribution.
You
>Given that one in five person on the planet speaks Chinese as their first language, lack of “foreign” contribution will probably work out okay for them.
The point is you are using number of native speakers as a proxy for the population of developers being sufficient to support development.
First thing is the single most popular l1 language in China manderin is more like 1 in 8 humans, next the distribution of talent is nothing like distribution of speakers. It looks a lot more like the distribution of wealth because access to computers during formative years or indeed at all is of substantial importance.
There are of course still many Chinese developers of substance. But because highly educated developers in China are both a smaller portion of the population and likely to speak English starting a manderin only software project would mean choosing between only Chinese developers and Chinese devs and the rest of the planet as well.
Wrong in this context.
1. People who speak other dialects like Cantonese overwhelmingly use the same written language, so there's no barrier in written communication;
2. AFAIK Mandarin is the mandatory teaching language in Mainland Chinese schools, so even if you want to be pedantic I'd say 1 in 5 has native or bilingual proficiency in Mandarin.
> starting a manderin only software project would mean choosing between only Chinese developers and Chinese devs and the rest of the planet as well.
First, there's no such thing as a "mandarin-only software project", you use Chinese the written language as explained above.
Secondly, it's still a reasonable choice if the author finds the alternative mentally draining, or the primary audience does. No point in global-proofing your project if the primary audience need to spend extra time and energy to communicate worse. I don't necessarily advocate for it, but I don't pretend that every project on earth has the obligation to make it convenient for me to contribute.
That’s not how it works. Programming proficiency isn’t randomly distributed across the population.
So what's wrong if the language also is not in English? Can you not imagine that some projects don't care whether you specifically can contribute or not?
It's not the first language not in English actually, WLanguage for example from WinDev can be written in English, French or Chinese.
How do you think non-english speakers read documentation in english?
That English has become the lingua franca [1] of the world is a recent development. If we would like people to read our documentation, it is reasonable to expect that we should do our best to learn how to read theirs, too.
It does bring to mind that Mathematics isn't really done in 'english', it's a pidgin of latin and arabic symbols (and like most or all pidgins, has some whole-cloth inventions).
Instead of making most people learn a new language, should everyone have to learn a new language? Like they used to teach college in Latin in Europe?
The problem is that the only programming language I know of that tried to be its own language-language was APL and thoughts of coding in that give me nightmares.
UML tried to remove some of the english and fared better than APL but that's a wide chasm to cross and they too ended up at the bottom of it.
We are very, very slowly replacing some text in programming languages with more symbols, and with more parsers accepting Unicode characters for string literals we also should have access to the entire panoply of mathematical and scientific symbols (I'd really love proper multiply, not, and exponents to start, then maybe we can talk about sigma for some reduce operations) but the tipping point into "let's go ahead and remove the rest of the english" seems so far off that I'll probably never see it.
Have you ever actually tried learning APL, or are you just trolling?
數字 = 23
運行 = True
假 = False
整數=int
輸入=input
印出=print
while 運行:
猜測 = 整數(輸入('輸入一個數字: '))
if 猜測 == 數字:
印出('恭喜, 你猜對了.')
運行 = 假 # 這會讓循環語句結束
elif 猜測 < 數字:
印出('錯了, 數字再大一點.')
else:
印出('錯了, 數字再小一點.')
else:
印出('循環語句結束')
印出('結束')
See:http://reganmian.net/blog/2008/11/21/chinese-python-translat...
Latin from https://metacpan.org/pod/release/DCONWAY/Lingua-Romana-Perli... :
use Lingua::Romana::Perligata;
adnota Illud Cribrum Eratothenis
maximum tum val inquementum tum biguttam tum stadium egresso scribe.
da meo maximo vestibulo perlegementum.
maximum comementum tum novumversum egresso scribe.
meis listis conscribementa II tum maximum da.
dum damentum nexto listis decapitamentum fac
sic
lista sic hoc tum nextum recidementum cis vannementa listis da.
dictum sic deinde cis tum biguttam tum stadium tum cum nextum
comementum tum novumversum scribe egresso.
cis
Klington from https://metacpan.org/pod/Lingua::tlhInganHol::yIghun : use Lingua::tlhInganHol::yIghun;
<<'u' nuqneH!\n>> tIghItlh!
{
wa' yIQong!
Dotlh 'oH yIHoH yInob
qoj <mIw Sambe'> 'oH yIHegh jay'!
<Qapla'!\n> yIghItlh!
} jaghmey tIqel!https://elangocheran.com/2014/10/30/exploring-programming-in...
Although I started the above project around the same time as Ramsey started his project in the original link (CLisp in Arabic), they were two entirely independent things. Ramsey's project is a 100% translation, whereas my project scales to other natural languages but is not a 100% translation.
Tim and I worked on trying to make programming in other languages easier as a means to help more kids learn programming, and learn FP the Lisp way, which we explain as more natural.
So, if you want to translate a lisp into another language you have to resort to macros.
* (symbol-function 'if)
#<CLOSURE (:SPECIAL IF) {1000C5084B}>
SBCL refuses to set that value to an alias: * (setf (symbol-function 'foo) (symbol-function 'if))
#<THREAD "main thread" RUNNING {10005205B3}>:
#<CLOSURE (:SPECIAL IF) {1000C5084B}> is not acceptable to (SETF SYMBOL-FUNCTION)
Trying this with regular functions works as intended: * (setf (symbol-function 'bar) (symbol-function 'mapcar))
#<FUNCTION MAPCAR>
* (bar #'1+ '(1 2 3))
(2 3 4)
Special forms are, well, special and a lot of the regular parts of lisp doesn't work with them.I expected specials to work in this case, but apparently not.
Variables may also have to be done with macros, because you want an assignment to a translated variable name to appear in the original variable. Some Lisp dialects perhaps allow a variable cell to have a binding to two or more symbols which could do the same thing.
You cannot read tons of code written in the 1C language [0] unless you know Russian, but I don't think it's a loss for you or for Russians because it's a scripting language used by a suit of enterprise software dealing mostly with ever changing Russian accounting standards and tax code [1].
At the same time it's economically effective to use Russian language because it lowers the entry barrier into 1C programming and allows domain experts to understand some of the code.
P.S. Yes, I didn't bother to read the second paragraph :)
I'd rather move on to the next comment.
I only downvote when I see some comment that goes against the rules, I do not think that it is my task to punish those who do not read a comment or do not get a joke.
Our comments, however, clearly go against the guidelines:
> Please don't comment on whether someone read an article.
> Please don't comment about the voting on comments. It never does any good, and it makes boring reading.
Good times!
"Fortran is not, of course, outdated, and it’s not at all complex. In fact, it has grown into these myths exactly because it is that good at what it does."
Just wanted to share some positive FORTRAN vibes...
That's an unnecessary slight
http://fortranwiki.org/fortran/show/HomePage is worth a check!
Multiple languages for developers is kind of a fringe case for functionality seen more in importers and fantranslaters.
This is why I program exclusively in Piet
You could make the argument that English is the "lingua franca" but the phrase itself demonstrates just how ephemeral that is. I've lived in places before where a generation ago Russian was taught as a "lingua franca". Nowadays you would be hard-pressed to find anybody with a good understanding of Russian (good enough to understand technical documentation) there, even amongst ethnic Russians.
Different programming languages are created try to solve limitations in existing programming langs.
Writing it in a different ascii character set isn't solving any technical issue - it's solving an accessibility issue, but compounding the problem of compatibility tremendously.
Obviously there is a efficient middle ground between accessibility and compatibility.
It's great for more people to be able to code. It's also great to be able to read code written by someone else across the world.
There is both pain and wisdom in standardization.
"Any software problem" includes these two extremely common problems, neither of which has anything to do with Turing completeness:
* It needs to do something fast
* It needs to be written quickly
Execution speed is clearly not the reason why multiple programming languages exist, because assembly is as fast or faster than high-level languages. Rather we use programming languages because they are easy to understand and reason about, allowing us to work quickly, among other things. The usability of a language is impacted by things like whether it has automatic memory management, or whether it uses functions instead of gotos, but also by the vocabulary it uses. Consequently, I see the vocabulary of a language as not particularly different from those other attributes.
Even if that is true, here or in the other art projects, the purpose is to evoke some aort of response, to capture attention and to provoke discussion.
And by this measure and judging firom the comments here this has been a resounding success :)
The person you are responding to is not being serious. it is a joke.
I can't read the code written at my desk a week ago and understand what it does.
The bigger deal is standard lib classes and functions. An English speaker can guess for the names of things they want whereas a nonspeaker would have to remember them explicitly
I don't get why you have to be a certified engineer to build a bridge, but you can be some bloke with a 2 weekend course in python to program medical computers, avionics, train scheduling systems and other stuff that kills people when it breaks.
Non native speaker btw.
I'm also going to submit a patch to GCC that will require the user to solve a differential equation before their code will compile.
> 1. good programming is probably beyond the intellectual abilities of today's "average programmer"
2. to do, hic et nunc, the job well with today's army of practitioners, many of whom have been lured into a profession beyond their intellectual abilities, is an insoluble problem
3. our only hope is that, by revealing the intellectual contents of programming, we will make the subject attracting the type of students it deserves, so that a next generation of better qualified programmers may gradually replace the current one.
Whoops, proved my own point.
The only way to have as little bugs as possible is to have as little software as possible.
https://aviation.stackexchange.com/questions/2566/what-is-th...
[0] https://www.worldatlas.com/articles/the-world-s-most-popular...
I also think you're conflating ASCII with the Latin Script. ASCII is easy to type and read, but anything outside of that range probably presents just as many burdens as say Tamil or Korean. The majority of Latin script languages however, are not limited to ASCII (for example é,ü, or €, which I ironically had to switch to a CJK Input method to type) making your "~70%" closer to whatever the population of native English speakers is.
The "let's make things marginally easy for the majority at the expense robustness in a way where the benefits don't even approach the drawbacks" attitude is how we get things like NodeJS where we have people writing desktop apps in JS b/c the webdevs are more familiar with it at the expense of everyone running massive, slow, and vulnerable apps with 900 different libraries all downloaded from shady sources.
True, you got me, I should have said just ASCII. For the most part though languages use the ASCII set + additional characters rather than replacing or removing characters entirely. so it's still 70%-ish not just English.
I don't see how that's a problem with Arabic specifically. The same would happen if you switched to typing English in Dvorak.
I think of myself as eclectic taster of the many fine cultures worldwide and since I just got python to print Hello World in the console I'm moving on to learning Swahili. It should take about a week. It's all just different languages anyway.
1. All code should be written in English, and no one should ever use any other language in programming.
2. All code should be written in local languages, and no one should should ever use a common language for collaboration.
I say "theoretical" because I've never heard anyone argue anything like the latter point, which you are satirizing here. On the other hand, there are people in this thread who seem to be arguing the former, which I find nearly as ridiculous.
> If you can't do it in FORTRAN, do it in assembly language. If you can't do it in assembly language, it isn't worth doing.
For anyone who does not know what Lojban is: https://en.wikipedia.org/wiki/Lojban#Applications would be a great starting point. :)
What about humans who like to think in a language whose idioms, history, etc match their culture?
Heck, human languages even adapt to the climate (e.g. warmer areas having more vowel sounds, cold areas optimizing for shorter/less open mouth exposed to cold air, etc).
Plus there is some naivety in the idea that humans need or want a "logical and unambiguous structure". We need it for some things (math, STEM), but we seek more freedom to be ambiguous in other things -- and in fact it can be essential to the very civilization to be able to be so (for diplomatic reasons, civility, psychological, etc).
From the second link:
> The only thing that characterizes a logical language, like LojbanLanguage, is that it's unambiguous from a structural standpoint. It seems that Lojban is just as expressive as any other human language, with the same capacity for overstatement, understatement, irony, metaphor, simile, pun, etc. A lot of famous works of fiction have been translated into Lojban by enthusiasts.
Your concerns have been brought up and explained in part by the two links above, and in the Wikipedia article I linked to. Allow me to quote some parts from it:
> The removal of grammatical ambiguity from modification [...] seems to heighten creative exploration of word combination. [...] Other areas of possible benefit are (surprisingly in a 'logical' language) emotional expression. Lojban has a fully developed set of metalinguistic and emotional attitude indicators that supplant much of the baggage of aspect and mood found in natural languages, but most clearly separate indicative statements from the emotional communication associated with those statements. This might lead to freer expression and consideration of ideas, since stating an idea can be distinguished from supporting that idea. The set of possible indicators is also large enough to provide specificity and clarity of emotions that is difficult in natural languages.
> The language was built to attempt to remove some limits on human thought; these limits are not understood, so that the tendency is to try to remove restrictions whenever we find the language structure gets in our way. You definitely can talk nonsense in Lojban.
Anyway, you can decide to be ambiguous if you wish to do so, it is perfectly possible. Do not worry, it will not turn our society into something similar to the movie Equilibrium. I think the word "logic" makes people jump to similar conclusions.
I would put "/s" here, but when I say there are HN readers who really need to lighten the hell up sometimes, I am not remotely being sarcastic.
And the original, first high level programming language plankalkül also had nothing to do with english.
I think this is probably why it is neither useful nor intended to useful other than as an "exercise".
While this language doesn't seem to be geared towards introducing people to computer science, all the languages based on English require someone to learn that script, that language and some of its culture first before being able to use it.
And in much of the world people don't regularly start learning English (or a latin script for that matter) in elementary school. A language based on Arabic (or Chinese, Korean, etc) could help with introducing computer science in school before the students master English at the necessary level...
You're just saying "Everyone should use Chrome, otherwise the web would be balkanized". Or, taking it to the extreme, "every book in the world should be written in English".
>I should be able to read code written anywhere in the world and understand what it does
You are, but no one promised "without any effort". Almost every developer of not English-speaking origin put that effort, why shouldn't you?
>You wouldn't be able to contribute to an open source project unless it happened to be written in a language that you knew
You've just described the status quo.
This is the same reason that everyone uses FORTRAN. Can you imagine if people went off and created their own "programming languages" instead? You wouldn't be able to contribute to an open source project unless it happened to be written in a language that you knew. There would be so much duplication of effort: someone would write a library for Foo Language, and someone else would do the same thing for Bar language. Job postings would ask for "Foo Developers," and you wouldn't be able to just work anywhere. Fortunately, programmers collectively decided to all use the same language. Let's not go back on that decision.