Or maybe it's better lesson is that no one tries to force the direction of the language. English is a bastard language, no one "controls", even as much as our grammar school teachers try to force us to use the proper form. I always find it interesting that many people who learn English as a second language often understand and know the formal rules of the language better than those of us who've spoken it natively.
The examples that the OP point out are top down choices made by "leaders" of the community. Those leaders may have created the original programming language, but then fail to realize that it is not they that control it, it is the community. And communities often don't want to be forced in one direction or another. What they like is for things to be grass roots, everyone in the community recognizes the issue, a proposal is put forward, and everyone then agrees and progress is made.
This is one reason that I'm enjoying Rust's process, example: try!(..) was a macro based bandaid over the unwieldy nature of the strong error Result type in the language, it's usage has created code which is ugly and verbose. Enter Swift with its ? syntax and everyone recognizes that this is a less verbose and cleaner way to represent the same concept. So Rust is in the process of adopting ? (It's in nightly now I believe). I don't think there is much controversy here, and the community recognizes the importance of adopting this language change (I read through the RFC and don't remember anyone against it, just differences on the scope of its meaning).
In English there have been similar things, and the controllers have always tried to stop their usage, "ain't" is a great example of that. English teachers across the US have always tried to stop its usage as a fake low class word, but it's just too good and they ain't going to stop it.
A true bottoms-up-controlled programming language would have to allow users to redefine keywords and grammar, then allow users to drift the language over time. Eventually you'll have multiple subgroups (accents) and one person's compiler might choke on the line `if x ain't 3`
I believe that's true for any natural language. To a native speaker, its rules are so natural (almost as breathing) that they hardly ever think about it. Frequently they don't even realize there's a question of picking the right form, because their brain does that job for them.
It's always the foreign learners who have to memorize these rules (which are never "natural" to them).
For those who also missed it: We don't say "red big apple". We say "big red apple". There's a set of rules that govern this that we learn naturally but people learning English as a second language have to remember.
> I believe that's true for any natural language. To a native speaker, its rules are so natural (almost as breathing) that they hardly ever think about it. Frequently they don't even realize there's a question of picking the right form, because their brain does that job for them.
I personally rather think that most other languages have a much more complicated grammar than English. So many people learning English as second language are much more used to think of languages in terms of grammar. I, for example, also think of German (my native language) a lot in terms of grammar - OK, the reason might also be that I'm a really mathematical-minded person and heard some lectures about natural language processing (NLP), which further trained me in this kind of thinking (but I also remember that I already did so at the end of primary school).
I can say that some of the more obscure grammar rules of German are also not completely natural to many German speakers. But since in Germany at least in more educated circles there is a culture that using wrong grammar (as a native speaker) leaves a bad impression, you better know some rules to be able to explain why something was right or wrong. To give a common class examples, where a wrong dative instead of a correct genitive is used:
"dem Nachbar sein Sohn" (wrong, since for ownership you have to use a genitive and not a dative; roughly translated with "the neighbour his son"). Correct is "des Nachbars Sohn" ("the neighbour's son"; but this form sounds rather educated in German in opposite to English)
If you want to sound less stilted than "des Nachbars Sohn", you use "der Sohn des Nachbars" (Remark: if you want to troll Germans, ask them whether "der Sohn des Nachbars" or "der Sohn des Nachbarn" is correct. Answer is: both are, cf. http://www.duden.de/sprachwissen/sprachratgeber/beugung-von-...). This uses the correct genitive. Less educated people again use a wrong dative combined with "von": "der Sohn von dem Nachbarn", which is somewhere between very colloquial and wrong, because for ownership you use genitive (both examples would be translated with "the son of the neighbour" in English, but the distinction between these two constructions can't be expressed in English).
Another problem is that there exist some verbs that have a genitive object (these often sound very educated), among these is "gedenken" ("to commemorate"). Because these verbs are not used so often, many less educated people use them wrongly with a dative (which appears more natural, but is wrong). For example "ich gedenke den Verstorbenen" is wrong; correct is "ich gedenke der Verstorbenen" ("I commemorate the deceased", where this grammatical subtlety again cannot be expressed in English).
TLDR: I rather see two reasons: 1. Other languages have a more complicated grammar than English, so that native speakers of other languages think more in terms of grammar. 2. At least in Germany in educated circles there is a culture that using wrong grammar leaves a bad impression. So you better know the rules why something is right or wrong.
I'd read through it again. I see various people raising fundamental objections to adding the ? syntax for at least the following reasons:
- Not visually distinctive enough (easy to miss)
- Too visually distinctive (noisy, ugly)
- Unnecessary, try! is fine
- Prevents using the ? symbol for something else
- Should have a normal exception system instead (i.e. early return is implied on every call)
- Should have monadic bind syntax instead, like Haskell's do
Which is fine; when you invite everyone to express their opinion, you get a /lot/ of opinions. There was still a pretty broad consensus in favor.
The RFC: https://github.com/rust-lang/rfcs/pull/243
(note for anyone using 'search in page': the issue page hides hundreds of comments in the middle unless you click a button, which even then only reveals 200 at a time; search for "not shown")
It's nice to not see something stagnate.
It was language of books, used mainly in Orthodox churches, like Latin in Western Europe, but now it is spoken by hundreds of millions.
[1]: https://en.wikipedia.org/wiki/Revival_of_the_Hebrew_language
Russian is a bit like Sanskrit, a compilation of certain features of dialects spoken in different areas, so that the mix is mutually intelligible across them, without precisely matching any.
The longer explanation:
There is three kinds of "Russians". Rus`, Rusyns, Russians.
Rus` lived at Baltic Sea. Rus` means "red". They were warriors, i.e. their life was to fight, trade, and collect taxes. Their native language is unknown (probably, Old Norse). At times of Great Epidemic, they left their city (now known as Old Russa, Старая Русса) and "concurred" South and started to govern it, so territory of current Ukraine got name "Rus`". Slavish colonists at these territories got name "Rusyns" (русины) (see below). At time of expansion of Rus`, North people was concurred and paid taxes to Rus` (Лаврентеевская летопись, ст 4. об. «А вот другие народы, дающие дань Руси: чудь, меря, весь, мурома, черемисы, мордва, пермь, печера, ямь, литва, зимигола, корсь, нарова, ливонцы, - эти говорят на своих языках, они - потомство Иафета, живущее в северных странах.»). They got name "Russish" (русские). This was time of "Great Rus`", so North Russians are also known as "Great Russians" (Великоросы), while South Russians (Slavs) are also known as "Little (Core) Russians" (Малоросы).
Summary:
* Rus` - possibly warriors union or Varangians, native language (probably): Old Norse.
* Rusyns (Ukrainians) - Slavish colonists governed by Rus`, native language: Slavish.
* Russish (Russians) - native Europeans, native language: many, probably Finno-Ugric and others.
https://en.wikipedia.org/wiki/Rus'_peoplehttps://en.wikipedia.org/wiki/Varangians
https://en.wikipedia.org/wiki/Staraya_Russa
https://en.wikipedia.org/wiki/Ruthenia
https://en.wikipedia.org/wiki/Rus'_%28name%29#From_Rus.27_to...
https://en.wikipedia.org/wiki/Finno-Ugric_peoples
NOTE: -in, -yn, -an means "he/she" (modified "он" - "he"), -yny, -iny, -any, -ini, etc. - "they" (modified "они" - they) ("y" as in lynx). So Rysyn (русин) means "he is Rus`", Rysyny (русини) means "they are (people of) Rus`". Russians means "they are Russia", "россияне", but selfname of Russians is Russish ("русские").
Moreover, Russia is Greek name of Rus`, given by Catherine II (born in Prussia) to Moscovia, because Russia was used at West as name of past parts of Great Russia. Nikolai Kostomarov wrote something like "LOL, we are Russians now" at time of rename (ДЂло въ томъ, что названіе Руси укрЂпилось издревле за южнорусскимъ народомъ. Названіе не возникаетъ безъ факта. Нельзя навязать народу ни съ того, ни съ сего какое-нибудь имя. Это могло приходить въ голову только такимъ мудрецамъ, противъ которыхъ мы недавно писали (1) и которые намъ сообщили прекурьёзную новость, какъ Екатерина II, высочайшимъ повелЂніемъ, даровала Московскому народу имя Русскаго и запретила ему употреблять древнее свое имя — Московитяне.)
"Tio estas volapukaĵo al mi" is the Esperanto equivalent of "It's all Greek to me!"
Adjective would be volapuka (nonsensical)?
Adverb would be volapuke (nonsensically?)
I found this funny, because that's basically what English is.
https://en.wikipedia.org/wiki/File:Origins_of_English_PieCha...
> The only basis of the Esperanto language binding on all Esperantists, which no one has the right to change, is the little work Foundation of Esperanto. If anyone deviates from the rules and models given in the said work, he can never justify himself with the words "thus desires or advises the author of Esperanto".
https://en.wikipedia.org/wiki/Modern_evolution_of_Esperanto
Changing the language too much is "kontraŭ fundamento"
https://en.wikipedia.org/wiki/Interlingua
(The weirdest thing for me about it as a Latin and Portuguese speaker is that adjectives aren't inflected for number, so you have phrases like "servicios tangibile" and "contributiones actual", which sound kind of bizarre throughout the Romance milieu, where the adjectives would have to be pluralized too.)
You can see some sample texts at
or for example
http://www.interlingua.com/libros/
Interlingua is very Latin and Romance-heavy, so if your experience is more with German, it may not feel as familiar, but it's almost sure to be easier than Volapük for anyone familiar with multiple European languages. :-)
It came about because the late Dr. James Cooke Brown, inventor of Loglan, tried to keep tight control over its development by claiming intellectual property rights over it. However, Brown did not move fast enough toward finalizing, formalizing and documenting the language to satisfy some of the enthusiastic and inventive community that had formed around it.
A group of those enthusiasts kept the basic concepts and syntax of Loglan (which they deemed not copyrightable) and created a new basic vocabulary to replace the words that Brown or the Loglan Institute could claim ownership of. (Reminiscent of the IP disputes over APIs versus implementations.) The result was Lojban, which continues to have a small community and a collection of translated documents and tutorials.
[0] https://mw.lojban.org/papri/Lojban [1] https://en.wikipedia.org/wiki/Loglan
Later German became the language of the philosophers and scientists and English the language of the practical engineering.
English was not or is not gradually becoming a universal language, but suddenly after the US of A won the WWII(and everybody else lost, for example British lost their empire).
After the war the US banned all scientific knowledge in German, and forced the use of English. Remember they took half the scientists of Germany with them(that later created their space program), the other half were taken by the Russians.
In (inland)Europe we used to measure height of a plane over ground in meters before and during WWII. Kilometers for horizontal distance. When (North)Americans won it became the ruler of the world and imposed horizontal distance in miles, and height in feet.
I speak several languages because I love to travel and it is completely different when you speak the native language. It is not a good idea or polite to only speak one language thinking that people should talk your language because it is "universal", which usually means your country has intelligent nuclear weapons and drones that can draw any other country on their knees(or so you believe).
What I mean is that any empire will end, like any other empire has ended in the past, and things change over time.
I believe the Universal language of the future will be machines translating with small delay and helping people learn other languages much faster.
What's not polite is being prejudiced against an entire continent of people you've never met. If I happen to ask whether you speak English, I'm probably just trying to find the cheese aisle.
"Contrarily, major schisms or breakdowns in the relationships and development of a language and its community are big warning signs that should make you think twice about the future of a language."
Related reading includes "The Lisp Curse":
http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
And note that "Why Lisp Did Not and Never Will Gain Enough Traction" offers this alternative explanation:
"Since there is so little pre choice, the glue that is supposed to hold a community together is too weak to draw enough people that would build up a momentum."
http://kresimirbojcic.com/2012/08/14/why-lisp-did-not-and-ne...
There is definitely something to be said about how easy it is to get things done in Lisp: 'Making Scheme object-oriented is a sophomore homework assignment. On the other hand, adding object orientation to C requires the programming chops of Bjarne Stroustrup' (from The Lisp Curse).
Maybe a nitpick, but Esperanto (which essentially replaced Volapuk) is estimated to have around 2 to 10 million speakers and is generally considered to be the most common constructed language now [1].
If a community lacks reasoning, that is the real issue, not major battles, which might just means there is in fact a valid reasoning to split the community.
Keeping a community together just for the sake of doing so is a recipe for failure.
http://s8.zetaboards.com/Slovianski/forum/38184/
I prefer merging y and i, for example (although I don't always follow it myself, I experiment a lot)
For me forking was a necessity since the perl5 community was not able to come up with any improvement at all since the author left 15 years ago. It rather managed to erode the codebase and the management (the perl5 "asshole" problem). "Faith" into the developers capabilities is a now a mandatory code of conduct point, even if the said devs did nothing to prove their capabilities in the last 15 years. Using religious arguments to hold people together might have worked in the middle ages and in a post-modern community. (perl is one, go figure).
On the contrary the perl 6 and perl 5 leaders are making cynical jokes about their future, to the end that a new backend or a new fork will make the language and the community stronger. (https://youtu.be/gmmVGPdcItM 2016 - "The Ongoing Disaster That Is Perl 5" - Ricardo Signes) Which is of course wrong. We don't need Volapük and the Kerckhoff fork to show this.
There are many bad examples in the BSD land, the latest DragonflyBSD, and many more on debian forks.
Now to the arguments why to fork:
* perl5 argues that forking (experiments) are good, and if successful will lead to "stealing" the good parts.
This never happened so far with perl5. They rather blocked competing forks to submit bugfixes and discuss critical failures upstream. While the forks manage to enhance security, performance and add many wanted features (which were not added in the last 15 years since they were designed by perl6), upstream did nothing. It didn't even merge the security fixes.
If a community is that broken, it needs to fork to be able to survive.
However with parrot, the perl6 backend, it worked fine. The unfriendly fork (MoarVM) eventually replaced parrot, using a much simpler architecture. This was an easy fork, because they could simply replace it upstream. No need to persuade the community to switch over.
* If a product is broken beyond repair, make a new one. People will switch eventually.
Do people use better ssl libraries over openssl? Some do, but most don't. E.g for perl there's not a single TLS library binding other than to OpenSSL/NetSSLeay. No boringssl, no libressl, no PolarSSL (mbed TLS), no NSS. For crypto no libsodium.
Did HHVM survive? Well, the php devs eventually got off its ass and made an ever better version with PHP7. They didn't steal much, they rather re-architectured the whole mess. This is the best example of a successful fork which strengthened everybody. Pressure. The GCC fork under schmorp to use the new intel Pentium intrinsics was also eventually successful.
I cannot say much about Python 3, only that the inherent VM problems where not solved at all and only the forks (pypy, Graal, mypy) are able to overcome that technical debt partially. ruby has it's number of forks but is still paying for it's ruby on rails meta-architecture disaster.