Volapük: A Cautionary Tale for Language Communities - <AUTHOR> https://tonyarcieri.com/volapuk-a-cautionary-tale-for-any-language-community <comment><USER3> He mentions Lojban[0] but ironically fails to note that Lojban itself is a fork of Loglan[1].

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](https://mw.lojban.org/papri/Lojban) [1] [https://en.wikipedia.org/wiki/Loglan](https://en.wikipedia.org/wiki/Loglan)

<comment><USER4> Which makes me think that the lesson of this story is not "avoid forking at all costs", but that building anything universal is a fragile endeavor. Anybody can just come along and obsolete your status with respect to that goal. As for being forgotten, it seems inevitable, if universality is your only selling point.

</comment></comment><comment><USER5> One of my favorite things I've learned during my time studying Esperanto is the word "volapukaĵo", which is constructed from "volapuk" as the root and means "nonsense".

"Tio estas volapukaĵo al mi" is the Esperanto equivalent of "It's all Greek to me!"

<comment><USER6> I've heard it claimed that there's an analogous verb volapuki 'to babble, talk nonsense' (but never seen someone use it).

<comment><USER7> Esperanto is very flexible about transforming verbs/nouns/adjectives into one another, so probably.

Adjective would be volapuka (nonsensical)?

Adverb would be volapuke (nonsensically?)

</comment></comment></comment><comment><USER8> > lesson to be learned here: any language is only as strong as its community

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.

<comment><USER9> > 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.

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).

<comment><USER10> > > 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.

> 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-...](http://www.duden.de/sprachwissen/sprachratgeber/beugung-von- nachbar)). 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.

<comment><USER6> > 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).

I was never taught about such verbs and am glad to know about them, but I think you have a typo in your example; the mistaken dative form should be "dem Verstorbenen", not "den Verstorbenen".

<comment><USER10> > I was never taught about such verbs and am glad to know about them

As I said: Most of the verbs requiring a genitive object are erudite and sometimes sound old-fashioned. The most important ones are

verb + genitive object: bedürfen, erwehren (old-fashioned; you normally rather use "er wehrte sich gegen den Angriff" instead of "er erwehrte sich des Angriffs"), gedenken

verb + genitive object + accusative object: anklagen, beschuldigen, bezichtigen (a little old-fashioned), überführen, verdächtigen, zeihen (old- fashioned)

Pro tip: If you really want to write German texts that are supposed to sound ancient (for example when you write fantasy literature) combine verbs requiring genitive objects with the outdated genitives (mein, dein, sein, ihr) instead of (meiner, deiner, seiner, ihrer) of the personal pronouns (ich, du, er/es, sie (singular and plural)). For example:

"doch bei dem Ringe soll er mein gedenken" (I would translate this very loosely with "if he sees the ring he shall commemorate me")

(from the opera "Lohengrin" by Richard Wagner: [http://www.rwagner.net/libretti/lohengrin/e-lohen-a3s3.html](http://www.rwagner.net/libretti/lohengrin/e-lohen-a3s3.html))

> the mistaken dative form should be "dem Verstorbenen", not "den > Verstorbenen".

sbmassey explained it correctly. If you are really interested:

"der Verstorbenen" (genitive): either (female & singular) or plural

"dem Verstorbenen" (dative): (male & singular)

"den Verstorbenen" (dative)": plural

<comment><USER6> Thanks for the examples!

I was taking "deceased" as singular rather than plural (although it could have been either) so I parsed "den Verstorbenen" as the accusative singular rather than dative plural.

</comment></comment></comment></comment></comment></comment><comment><USER11> Russian (Russish, русский) language is example of success of artificial language.

It was language of books, used mainly in Orthodox churches, like Latin in Western Europe, but now it is spoken by hundreds of millions.

<comment><USER12> What language the Russians spoke at that time then?

<comment><USER11> Russians (Great Russians, Russish, русские, великоросы) were speaking their own native languages. For example, Putin is Uyghur. He is Russian and his native language is Russian, but Russian is not native language for Uyghurs.

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'_people](https://en.wikipedia.org/wiki/Rus'_people)

[https://en.wikipedia.org/wiki/Varangians](https://en.wikipedia.org/wiki/Varangians)

[https://en.wikipedia.org/wiki/Staraya_Russa](https://en.wikipedia.org/wiki/Staraya_Russa)

[https://en.wikipedia.org/wiki/Ruthenia](https://en.wikipedia.org/wiki/Ruthenia)

[https://en.wikipedia.org/wiki/Rus'_%28name%29#From_Rus.27_to...](https://en.wikipedia.org/wiki/Rus'_%28name%29#From_Rus.27_to_Russia)

[https://en.wikipedia.org/wiki/Finno- Ugric_peoples](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, высочайшимъ повелЂніемъ, даровала Московскому народу имя Русскаго и запретила ему употреблять древнее свое имя — Московитяне.)

<comment><USER13> -in is actually a a possessive suffix

мамин (mamin) - mother's кошкин дом (koshkin dom) - "Cat's house"

it also refers to people

болгарин (bolgarin) - Bulgarian боярин (boyarin) - <USER2>

the etymology of Rus is from Scandinavia, see Fin. Ruotsi "Sweden", Ruotsalainen "Swede"

<comment><USER14> And what is the etymology of Moscow, Yauza, and Oka, Volga and rivers... ?

<comment><USER13> Moscow comes from the locative на Москви (na Moskvi), while the original form is *Москы. It's using the locative because the hydronym (name of the river) is older than the name of the city. So the city comes from the name of the river.

Further, Lith. mazgóti "wash, splash", Latin mergō "dive"

Yauza probably from ya- and -(v)uz (vyazat' \- to tie, bind, knit, uzel - knot) so maybe something like "the river that ties"

There are several etymologies for Oka, it probably has a form of oko (eye) in it, maybe from a Baltic source.

Volga has the same root as vlaga, vologa - "wetness"

<comment><USER11> I 90% sure that "Volga" means "(Vol) ... (Ga) Water/River", "Oka" means "(O) ... (Ka) Water/River", "Moskva" means "(Mos) ... (Kva) Water/River" in native language of people lived there, because "Kvas" means "Water".

<comment><USER13> kvas comes from kvasit' \- to make sour

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> > Volapük was a hybrid of English, German, and French

I found this funny, because that's basically what English is.

<comment><USER15> English is more of a mongrel than that even, there are substantial additions from Latin and Greek as well.

[https://en.wikipedia.org/wiki/File:Origins_of_English_PieCha...](https://en.wikipedia.org/wiki/File:Origins_of_English_PieChart.svg)

<comment><USER16> Name any (natural) language that's "pure". English is hardly unique in that respect.

<comment><USER17> No languages are pure, although some languages in modern times have official national bodies trying to keep them as 'pure' as possible (like French), they're still not 'pure' in any way.

But English is especially hybrid. Some think that contributed to it's global popularity as a second language, but I think it's probably more just a coincidence that England and then the U.S. were such global powers, and not related to characteristics of English.

<comment><USER18> > I think it's probably more just a coincidence that England and then the U.S. > were such global powers, and not related to characteristics of English

... and if you want to argue otherwise, you will have to explain why russian had such good linguistic characteristics in east-europe between 1945 and 1989, and not so much since then :)

</comment></comment></comment></comment></comment><comment><USER19> Esperanto seems to have learned its lesson and made itself un-changable, but forkable.

> 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](https://en.wikipedia.org/wiki/Modern_evolution_of_Esperanto)

Changing the language too much is "kontraŭ fundamento"

<comment><USER20> I have seen complaints about "aeroporto" vs. "flugaveno" (?) though.

<comment> D-Coder "Flughaveno" (flight-port). Similarly "flugmaŝino" (flight-machine) has generally disappeared for "aviadilo" (sort of "aviation-er"). Some of the vocabulary has drifted with technological and social changes. For example "svati," to matchmake, this has pretty much disappeared. But the grammar has changed very little.

</comment></comment></comment><comment><USER21> > there was another constructed language which once claimed nearly a million > followers, making it the most popular constructed language of all time

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].

[1]: [https://en.wikipedia.org/wiki/Esperanto](https://en.wikipedia.org/wiki/Esperanto)

</comment><comment><USER22> Fall of languages is not bad thing. For example, without the fall of Volapük, it's very possible that Esperanto would not have taken off, since much of the early growth of Esperanto was a result of Volapük speakers looking for a new constructed language.

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.

</comment><comment><USER23> Language home page: [http://volapük.com/](http://volapük.com/)

<comment><USER24> I'm fluent in English, know a fair bit of German and some very basic French and I can't understand any Volapük. If Europe's ever going to speak the same language it's going to be through the languages growing closer, eliminating different spellings of existing loanwords and creating new ones that are universal. None of the knowledge I have of European languages carry over to Volapük, at least in terms of vocabulary. That, to me, looks like a mistake on Volapük's part.

<comment><USER6> You would probably have a very different experience with Interlingua.

[https://en.wikipedia.org/wiki/Interlingua](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

[http://www.interlingua.com/](http://www.interlingua.com/)

or for example

[http://www.interlingua.com/libros/](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. :-)

<comment><USER25> > 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. :-)

Well, if at least one of those multiple European languages is a Romance tongue, sure. But if someone speaks fluent Manx, English, Icelandic and Norwegian, he'll probably have more than a little trouble with it …

<comment><USER6> It would definitely be quite a bit harder, but all of those languages will have had some degree of Latin and Romance borrowing so they'll still confer at least a little benefit.

</comment></comment></comment></comment></comment><comment><USER26> Well, there's also the fact that Volapuk is rather hideous and imports most of the worst features of its source languages wholesale. Nouns and pronouns inflect into multiple cases (genetive, dative, accusative...), verbs have literally thousands of conjugations, gender is retained, etc. Even Esperanto is often accused of Latin bias, but Volapuk takes this to a whole new (well, old) level.

</comment><comment><USER27> At the time Latin was as universal in Europe as English is today. The Eulers and Newtons and Descartes spoke latin, in fact you can read it, today: [https://en.wikipedia.org/wiki/Philosophi%C3%A6_Naturalis_Pri...](https://en.wikipedia.org/wiki/Philosophi%C3%A6_Naturalis_Principia_Mathematica)

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.

<comment><USER28> > 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'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.

</comment></comment><comment><USER29> This is certainly relevant for Lisp programmers:

"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](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...](http://kresimirbojcic.com/2012/08/14/why-lisp-did-not-and-never-will- gain-enough-traction.html)

<comment><USER25> Those are definitely some interesting ideas, but I'm uncertain to what extent they're actually true. I think that Common Lisp really _does_ make choices for its programmers, and asks that they develop in a fashion such that their code can easily live with others (notably, the places where it doesn't — e.g. the common readtable — are nowadays regarded as mistakes). One of my several issues with Scheme is that historically it has made so few choices ('you have lists — develop whatever data structures you need!' & 'you have call/cc — develop whatever control structures you need!'). But that's a problem of Scheme (less so, in recent years), not of Lisp or the closely-related (to Scheme) Racket.

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).

</comment></comment><comment><USER13> But as an author of the Slovianski pan-Slavic language, I don't feel like this is a bad thing. Everyone who contributes on the forum has their own dialect:

[http://s8.zetaboards.com/Slovianski/forum/38184/](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)

</comment><comment><USER30> Citing the perl 6 fork leading to the decline of the whole language(s) is very interesting. What the author doesn't know is that not only perl6 forked off, also 4 other perl5 forks appeared during the last year, which is a strong sign of an already dying community and language. I'm one of the forkers (cperl).

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](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.</comment>


Engineering as a profession? - <AUTHOR> <comment><USER2> Engineering can be a lifelong profession, but the longer you spend trying to be a good engineer the more likely you are to work for someone who just Doesn't Get It. Once a company gets to be a certain size, especially if the people in charge aren't technically skilled, politics and perception trumps physical laws; an engineer who can't make the case for a solution on technical grounds (this is the cleanest way to solve the problem) or on business grounds (this is the cheapest way to solve the problem, and we save $200K a year by doing it this way over the way we originally thought of) but on political grounds (this is neither clean nor cheap, but it uses this buzzword-compliant tech and will increase your budget by $1.5M and require 2 people to support) is not likely to be a happy engineer.

</comment><comment><USER3> Isn't plan B start another company? Are you sure you want to be an entrepreneur in the first place or just getting caught up in startups school hype. Ask yourself if this is what you want to do for the rest of your life and don't dabble in it if your heart says otherwise..

<comment><AUTHOR> I prefer the lawfirm model of business: steady growth, repeat business over the years. Of course, no one becomes a billionaire this way but one can do pretty well. Would this qualify as a startup, as defined by startup school?

<comment><USER4> Doubtful, this is your traditional consulting model. I've been in consulting now for 10+ years. It's a good business and definitely beats the pants out of a corporate job, but it's no software startup. Consulting is essentially a relationship business, not a technology business.

<comment><AUTHOR> I'm cool with consulting. As you point out, it's relationship-based, which means that it probably doesn't obsolete as quickly as a business based solely on technology.

In your business, have you been able to take the IP you developed and create your own product?

<comment><USER4> I learned a couple things from a few similar projects, and realized there was a gap in the market for a particular product. The firm I was with (and some others who approach it in a similar fashion) all did custom development for this particular business problem.

Nothing in the world wrong with consulting, that's for sure. It's just not scalable. I'm still completely amazed at how big the Big 4, Sapient, and a few others have gotten.

</comment></comment></comment></comment></comment><comment><USER5> I'm reminded of the quote that goes something like "don't let your schooling get in the way of your education."

The reason I think this applies is because engineering isn't really like what is taught in schools. It's probably the best you can do with 1 professor for 200 students.

But to answer the question, I would definitely be interested in doing engineering as a profession. Really I want to always be doing what interests me.

I like how Woz described it in his interview from "Founders at Work". He says that he loved working at HP and he wanted to work there for life. I'd want to find something like that.

</comment><comment><AUTHOR> With all the startup school buzz, everyone seems to want to be an entrepreneur. The idea is: make a bunch of money, retire and become a VC.

What's the plan 'B' if a startup fails (or multiple ones do)? Does anyone here view engineering as a lifelong profession?

<comment><USER6> I certainly view hacking as a lifelong profession. The reason I started a startup was not so I didn't have to work, but so I could work on what I wanted-- particularly unprofitable stuff like programming languages.

<comment><AUTHOR> No doubt, hacking is a way of life.

What I wonder is if Bell Labs were still in its heyday, would you have been an entrepreneur? When AT&T; was a monopoly, they provided exactly the kind of unprofitable environment that geeks love (and they had the spare cash for them to buy toys, too!). Think of the programming languages you could have developed!

Google has some of its spirit and has hired some of their best, but I don't think anything today is the same _sigh_

I believe in their hearts of hearts geeks would prefer a Bell Labs environment over a startup any day. The kids who are starting web-based companies are only entrepreneurs due to the misfortune of not having such opportunities.

</comment></comment></comment><comment><USER7> There's nothing that says you can't start a startup to employ yourself as an engineer.</comment>


Show HN: HTML5 grid-drawing tool for UI designers - <AUTHOR> http://www.neatgrid.com

<comment><USER2> A number of years ago I build a grid drawing tool as a jQuery plugin, it's still available here: <http://gridbuilder.kilianvalkhof.com/> Might be useful to other people developing locally/designing in the browser like I do.

</comment><comment><AUTHOR> NeatGrid is a simple HTML5 canvas application for UI designers to easily create pixel-perfect grids in the browser. I created it over the weekend to scratch my own itch. If you happen to have the same need to draw grids, please give it a whirl. Cheers!

<comment><USER3> Can you explain how canvas generates a PNG on the client side?

<comment><AUTHOR> First call canvas.toDataURL() to get a base-64 encoded string for the image [1], then open a new window with that data URL [2].

[1] [http://www.w3.org/TR/html5/the-canvas-element.html#dom- canva...](http://www.w3.org/TR/html5/the-canvas-element.html#dom-canvas- todataurl)

[2] <http://en.wikipedia.org/wiki/Data_Url>

<comment><USER4> Alternatively, you may also set window.location.href = data_URL. That brings up the "save as" dialog window directly.

Nice work, BTW! One nitpick: the link icon looks like a resistor. It's not obvious what it's supposed to do, although once I figured it out, I find it very handy.

</comment></comment></comment></comment><comment><USER5> That's pretty cool, although it took me a minute or two to see where the download button was (I was confused I couldn't right click and save as) but I guess thats canvas for you

<comment><AUTHOR> Thanks for the quick feedback! I've just moved the download button to a more prominent location.

</comment></comment><comment><USER6> Why images? Wouldn't HTML/CSS be more useful?</comment>


Pitfalls of self-guided science (2004) - <AUTHOR> http://pubs.acs.org/cen/books/8232/8232books.html <comment><USER2> This really speaks to a lack of infrastructure for people who are interested in scientific topics beyond the generalist level provided for in US schools. If there had been a legitimate and clear pipeline for him as a teenager to be mentored by a nuclear engineer, none of this would've happened.

I had a friend with similar proclivities and eccentricities who was fortunate enough to have a father that worked at Oak Ridge National Laboratory. His studies were directed and safe, he was able to visit the lab on a regular basis, and he ended up going to MIT and becoming a nuclear engineer. It's entirely an issue of access, and a lot of times you literally have to be born into it, which seems like an inefficient system.

</comment><comment><USER3> and the "pitfalls of university-guided science" : the profiteering , monopoly on knowledge, textbook cartels, underpaid TA's teaching instead of profs, unfair grading systems, unfair advantages to athletes. I could go on.

Not to say university is the only way to study science, but its the "official" way.

</comment><comment><USER4> "Silverstein's book is a stark reminder that a vivid imagination is not sufficient to create a real scientific breakthrough, though sometimes it can initiate one. In the end, knowledge is needed, and that comes about, I have found, only through education, study," ... the means, the opportunity, the mentors and peers, the right attitude to "fit in", huge amounts of luck in a byzantine selection process, an otherwise impeccable history, the willpower to strike a balance between obsequiousness and bravado, the timing to align an original method or idea with the work of your mentors, allowing them to co-opt your work for profit and personal gain, looking good in a suit, family connections ... "and lots of experience."

</comment><comment><USER5> Interesting perspective on that story; thanks for sharing!</comment>


An Introduction to Erlang, and Concurrency in Erlang - <AUTHOR> http://the-bath-not-taken.barendt.com/2010/12/21/introduction-to-erlang-for-the-cleveland-python-users-group-clepy/

<comment><AUTHOR> I was an attendee for this session of ClePy (Cleveland Python); the docs linked in the article are extremely clear and useful.

Here are direct links (FTA):

Lab1: <http://nickbarendt.files.wordpress.com/2010/12/lab1.pdf>

Lab2: <http://nickbarendt.files.wordpress.com/2010/12/lab2.pdf>

The related code is all available here:

<https://github.com/nbarendt/ErlangIntro/>

Having an entire room full of developers to bounce didactic ideas off of was extremely valuable; I encourage anyone comfortable with the subject to share a similar class with their local developer groups. Sometimes all you need is that little extra push to lower the barrier of entry and gain some momentum in learning a new language.

(Great Lakes beer helps, too.)</comment>


IncludeOS: Getting somewhere - <AUTHOR> https://github.com/hioa-cs/IncludeOS/releases/tag/v0.8.0 <comment><USER2> Why would I want to "include" an OS in my code? Not rolling, genuinely curious as to the specific needs.</comment>


A community driven emacs fork – combining features from both emacs and vim - <AUTHOR> http://spacemacs.org/ <comment><USER2> It's not a fork. Just a well thought emacs.d</comment>


12 Tools To Decrease Website Load Times - <AUTHOR> http://www.dailyartisan.com/news/12-tools-to-increase-website-speed/ <comment><USER2> wrong title imho; seems to me it's a list of monitoring & testing tools than tools which actually decrease website load times.

(i was expecting thing like gzip, use of cdns, memcache, js compressors etc)

</comment><comment><USER3> 13\. Don't use Rails.

<comment><USER4> You're kidding right? with all the innovation I've been hearing about Ruby, you would think Rails might get a speed boost...

<comment><USER3> Yes, I was kidding.

</comment></comment></comment><comment><USER5> Wow, how did they miss FireBug?

<comment><USER6> Might I suggest you do more then skim the big red words and instead read the paragraphs below said big red words before commenting. The first thing on the list is YSlow, followed by the text"…which makes use of the popular web development tool, Firebug…"

Also, I'm partial to Safari/WebKit's Web Inspector. But thats just me.</comment></comment>


China using drones to spray "disinfectants" over population - <AUTHOR> https://www.dailymail.co.uk/news/article-7952119/Drones-repurposed-spray-disinfectant-villages-cities-China-hit-coronavirus.html <comment><USER2> Why did you "quote" disinfectants?

This is an editorialized title by the submitter</comment>


Ask HN: Preferred database/application diagram tool? - <AUTHOR> My previous team was in a Microsoft shop and Visio was pretty good for drawing up an ERD or mapping out an application's infrastructure. My current team is primarily Mac and Linux, with a preference for OSS but not opposed to paying for software or SaaS where it makes sense. Databases and infrastructure mapping are the biggest needs, but mind mapping would be a bonus. Any recommendations? <comment><USER2> MySQL Workbench. I'm actually looking for a web based one that I can integrate with. The best I've found has been [https://gojs.net/latest/samples/entityRelationship.html](https://gojs.net/latest/samples/entityRelationship.html).

</comment><comment><USER3> Lucidchard worked pretty well for me: [https://www.lucidchart.com/](https://www.lucidchart.com/)</comment>


Where to Live - <AUTHOR> https://simonsarris.substack.com/p/where-to-live <comment><USER2> > While it is easy for city dwellers to call everyone else unsophisticated, it > is plain to everyone else that people who spend their lives as city dwellers > tend to collect neuroses.

One of the best quotes of the article.</comment>


Why I Miss BASIC - <AUTHOR> http://citizenscientistsleague.com/2013/01/21/citizen-science-musings-why-i-miss-basic/ <comment><USER2> _It seems to me, from my admittedly limited perspective, that there aren't many tools for just messing around on the computer._

Processing. Scratch. Hackety Hack. KidsRuby. Python. Microsoft Small Basic. Numerous JS tutorial and sandbox sites. There's quite a lot, to be fair.

I think the problem, if any, is there are too many and none is particularly prominent, versus in the 1980s when BASIC was basically the one thing beginners could rally around.

<comment><USER3> Indeed. Everyone who owned a particular model of computer had the same BASIC and could swap programs/listings.

Also, it was immediately available from when the computer was switched on (which took seconds).

Nowadays I think all sorts of packages have to be installed and it's too complicated for beginners. People who write instructions are usually hampered by the _curse of knowledge_.

</comment></comment><comment><USER4> My first computer was a shoulder-busting Compaq Deskpro Portable running Windows 3.1 (64KB RAM, 40MB hard drive, 5.25" floppy drive). I cut my teeth on GW-BASIC after a family friend gave me a programming book.

What I loved about it - and miss in today's crop of programming languages - was the extremely low barrier to entry.

Creating interactive programs with graphics and sounds was dead-easy. The syntax was extremely simple, and it didn't require yards of boilerplate, importing libraries, switching among DSLs, or learning difficult paradigms to write a working program.

It was at least partially my early and quick success at making the computer do stuff that inspired me eventually to jump to other languages with more complex paradigms and tooling. (Obligatory Dijkstra quote notwithstanding.)

<comment><USER5> Isn't Ruby and Python just as easy for simple programs?

I don't remember Basic or even Pascal being great aside from being easy to learn and very simple.

<comment><USER4> Python is my day-to-day programming language and I love writing in it, but out of the box there's no comparison to:

        10 CLS
        20 SCREEN 8
        30 LOCATE 10,34
        40 COLOR 2,3
        50 PRINT "Ryan McGreal"
        60 LOCATE 11,35
        70 COLOR 1,3
        80 PRINT "is Awesome"

With Python, you would need to download and install something like PyGame, which means learning how to install and import modules, the basics of OOP, interacting with an API, and so on.

<comment><USER6> This isn't a longing for BASIC, it's a longing for a time when the entire display could be addressed using simple x,y coordinates. Maybe more accurately, it's a longing for BASIC as a metaphor; longing for the simplicity of the past.

Personally, I wouldn't trade today's computing environment for the environment we had in the days of BASIC, even at the expense of a higher barrier of entry.

<comment><USER4> I don't miss BASIC as a simple production language, I miss it as a simple _first_ language. (Sorry if I didn't make that clear in my earlier post.) We often create sandboxes with most of the complexity abstracted away for people to get their first introduction to a complex system, and BASIC filled this role nicely 30 years ago.

I'm not saying we need to bring BASIC back, but rather that we need a first language that is as simple to learn and use as BASIC was.

After all, the metaphor of putting things into a rectangle using x and y coordinates is no different from the way we position elements on a web page today.

<comment><USER7> And I'm saying bring it back.

Perhaps we just need to admit that BASIC is perfect for this task instead of inventing a whole new language.

Are we as a group ashamed to admit that this language, clumsy at it was, was a perfectly usable gateway to bigger things?

<comment><USER4> BASIC has some deeply aggravating misfeatures and missing features that would be easy to fix without significantly expanding the scope of the language, e.g. better data types like native lists and dicts, and easier support for functions and procedure calls (fixed IIRC in QBASIC).

<comment><USER7> Do we really need lists, dicts, and funcs to let a 10 year-old kid do this?

        50 PRINT "Ryan McGreal"
        80 PRINT "is Awesome"

<comment><USER4> No, but BASIC would make a better gateway drug to more powerful languages if it allowed kids to get exposed to those things.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Took BASIC in high school and used it on a co-op assignment during college. I was at a company called New Venture Gear that manufactured 4 wheel drive systems for Chrysler and GM.

I was given the task of generating graphs of test data for an electronically variable transfer case. I had to use Lotus 123 for this and initially wrote a BASIC program to format the data so it could be imported into 123. Then I wrote these macros to generate 80 line charts, each displaying 8 different variables. Each line had its own color but it wasn't easy to follow the behavior of the system.

Then it occurred to me that I could graphically display the data using BASIC. I created an overhead image of the vehicle with four wheels, an engine and a drive shaft to the front end.

Whenever a rear wheel lost traction, I flashed that wheel. When power was sent to the front end, the front driveshaft lit up. The engine speed was represented with a bar graph.

The overall effect was great. You could see the vehicle turn, the engine rev, a wheel start to slip and power going to the front end. And then the rear wheel would stop slipping.

You could vary the speed and even run it backwards. And it ran in a loop.

When I showed it my bosses, they didn't seem to get it at first, but soon they were having me demo it to GM. And they took it to the test track with them, allowing them to instantly review a test instead of waiting weeks for a graph.

One thing I did not account for was the steering direction. I had data for the steering rack, not the wheels. The rack moves to the left when the wheels are turned to the right. So the replay of each test was turning in the wrong direction!

This also helped me get my first job after college. I devoted the second page of my resume to an "example of innovation" and told this story.

</comment><comment><USER9> The website seems pretty well boned at the moment.

Google text cache: [http://webcache.googleusercontent.com/search?q=cache:wu2ErRW...](http://webcache.googleusercontent.com/search?q=cache:wu2ErRWpBl8J:citizenscientistsleague.com/2013/01/21/citizen- science-musings-why-i-miss-basic/&hl=en&tbo=d&gl=us&strip=1)

</comment><comment><USER10> We all miss BASIC until we actually go back and use it, at which point it starts to hurt us. This usually happens the moment we want an array and have to frig around with DIM.

The notable exception to this is Acorn ARM BBC BASIC which is quite surprisingly awesome compared to most dialects of BASIC and features everything you'd expect in a normal language.

<comment><USER11> Even though the first language I learned back in 1986 was Logo (BASIC was the second), and since then have delivered production code in assembler, Pascal, COBOL, C, C++, JavaScript, Java and C#. Today Visual Basic.NET is my favourite language, and I program in it every day. Other than REDIM and REDIM PRESERVE, how do you need to "frig around with DIM"?

</comment></comment><comment><USER12> Yup, I remember how easy it was to just get started on programming with BASIC. Just fire up the computer and start typing. Learn as you go. Few years later, programming in C for DOS was also much easier than nowadays. I could make simple graphical games in C in a couple of days as a kid, and nowadays I'm not even sure where to start. Just setting up the environment in most languages requires a CS degree. Kids have it hard these days.

<comment><USER13> HTML5 is a beginner programmer's best friend! Nest a html, body and script tags, slap something like this inside, and off you go:

      canvas = document.createElement("canvas");
      canvas.width = 320;
      canvas.height = 480;
      canvas.style.background = "#F0F";
      context = canvas.getContext("2d");
      document.body.appendChild(canvas);

      playerX = 100;
      playerY = 100;
      keyboard = [];
      window.onkeydown = function(e) {keyboard[e.keyCode]=true};
      window.onkeyup   = function(e) {keyboard[e.keyCode]=false};

      setInterval(function() {
          if (keyboard[37]) playerX--;
          if (keyboard[39]) playerX++;
          if (keyboard[38]) playerY--;
          if (keyboard[40]) playerY++;

          context.clearRect(0, 0, canvas.width, canvas.height);
          context.fillStyle = "#0F0";
          context.fillRect(playerX, playerY, 20, 20);
      }, 16);

<comment><USER14> The beginning programmer me from more than a decade ago would have run away, screaming.

<comment><USER15> Really? Because I remember typing hundreds of lines into terrible keyboards for not much more result than this, and then hoping, hoping, hoping that nothing went wrong when saving it to cassette tape, or I'd have to type it all in again.

If kids today are not getting sucked into programming, then in my opinion the reason is more to do with all the things online competing with programming for their time.

<comment><USER14> Oh, sure. Things used to take a lot of code back then and heck, I've written hundreds, if not thousands of lines of crappy beginner's code while learning, be it BASIC, Turbo Pascal or later VB¹. The point you make about so many things competing for at-the-computer time may be valid, indeed.

But still, thinking back I remember disliking Delphi compared to VB because I thought it to be too complicated. "Why do I need a class just to have a window? And what's all that stuff I don't know from Pascal? Eek! Back to VB."

In retrospect that sounds silly, but when you're a beginner with no formal education in the field the priorities are perhaps different. At least they were for me. I ended up writing Object Pascal code years later and learned a lot more languages, but I guess most of my initial fiddling and writing fun things was with QB and TP. No forced OOP, not too many concepts to learn before starting (I stayed away from PEEK and POKE because I didn't understand what they did). Javascript doesn't really feel like a beginner-friendly language to me, actually. To grasp that snippet above you have to figure out at least parts of the DOM and events. I probably wouldn't have done that back then.

______

¹ Yes, I already had hard drives in my day. The one time I sat at a computer with a cassette tape drive was when I was three and my father never let me use it again afterwards – randomly mashing buttons was not very appreciated, I guess.

</comment></comment></comment></comment></comment><comment><USER16> I learned programming in TI-BASIC for the TI-83+ graphing calculator. I did like how it made it easy to asking the user for input and displaying output on the next line, but it also let you display text anywhere on the screen, or draw points on a graph to show the user pictures.

One of my programming project ideas is reproducing the TI-83's functions (like Output, Menu, and GetKey) in JavaScript, and then making a site where people can write for that simple, familiar platform, but in a modern language like JavaScript (or CoffeeScript). You would be using JavaScript to control a 96x64 virtual black-and-white screen. So you could write your TI-BASIC program in a more powerful language, using a full-size keyboard to type much faster, and afterwards share the program on the web where others can run it in the browser.

Maybe most would-be programmers wouldn't like TI-BASIC as much as I did for learning programming, and that tool wouldn't solve the problem in the article. But at least that tool would be a great stepping stone for people who already know TI-BASIC to learn modern programming. I wish that tool had existed when I started learning programming on the desktop.

</comment><comment><USER17> "If you needed to evaluate a slightly complex math expression, a few lines of code would give you an answer."

Folks, he wants "GNU Octave", probably compiled for windows, not Scala. Even if he's literally asking for is "a programming language" what he's trying to do is along the lines of octave / mathematica / wolfram alpha.

Octave has tolerable language/scripting abilities, its not only a mere REPL.

Startup lesson: analyze what the user is actually trying to do, not what the user claims to want. He can claim to want fuzzy bunnies or a punch card deck, but he needs GNU Octave.

</comment><comment><USER18> BASIC was the first comp sci language that I had to learn in school. I don't remember much of it, but all I remember was that I hated it, was frightened of it and in corollary ended up being frightened of coding in general. This was until I discovered Python a couple of years back. Now every problem that gets thrown at me, I end up thinking in terms of code. I admit to not being good at coding but now I really enjoy it.

The reason for hatred could have been my mindset when I first learnt BASIC, maybe the teacher, maybe the general environment, etc.

But I keep asking myself how would I have perceived things if the first language I had learnt was "something like" Python. (Python wasn't prevalent back then)

<comment><USER19> Python, Ruby and perhaps even PHP are the true modern heirs of BASIC. They have a rock bottom barrier to entry, yet the power they give you, compared the the BASIC of old is off the scale.

As for graphics? There's Pygame and Pyglet on the Python side, and I'm sure there are similar projects for Ruby. Any of those will give you easy access to very powerful capabilities. Then there's RaspberryPi. There has never been a better time to get into programming, or hacking with computers in general, than now. But then, that's always been true.

</comment></comment><comment><USER20> I'm writing a REPL-based IDE for Gambit Scheme called Glass Table[0]. One of my inspirations was how easy it was to type in -- and change -- BASIC programs right inside the interpreter. And our fancy, advanced Lisp environments can't even give us this much? Even a SLIME-based workflow consists of typing a program into an editor and then submitting it to the REPL; why can't the REPL simply remember your program instead and save it out when instructed to?

My belief is that interaction with a computer should be simple, and should take the form of a conversation. Computers are not like other machines because we can converse with them; we can ask questions and get meaningful answers. It was a revelation that came to me when I was five years old, poking at my Commodore VIC-20 -- in BASIC.

[0] <http://github.com/bitwize/glasstable>

</comment><comment><USER21> There's something very BASIC like about Lua without it seeming to have the rough edges of BASIC.

Recently started doing some Lua after 20+ years of C based languages and I'm really enjoying it.

<comment><USER6> I'm introducing my niece to programming using Computercraft; a plugin for Minecraft that provides programmable blocks in the Minecraft world. Lua is the language used to program the blocks, and it works wonderfully.

<http://www.computercraft.info>

</comment></comment><comment><USER22> Freebasic [1] is a modern cross-platform BASIC compiler and it's really rather good with lots of ported libraries. I often use it when I need to knock up a little graphics demo or something really quickly. I'm starting to use Python more for that sort of thing now, but you can't beat BASIC's lack of overhead, especially for graphics.

[1] <http://www.freebasic.net/>

</comment><comment><USER23> There are so many programming languages and scripting languages to choose as well as calculation packages (matrix like ocateve and matlab or symbolic packages or symbolic packages and I do not even know what others there are). The only problem nowadays is finding the best for you at a given time, but this is actually just plenty of choice and having choices has always been considered a Good Thing.

I feel it is just nostalgia that is the writer's problem, not that there are no good packages/languages any more.

</comment><comment><USER24> _Why I Miss BASIC_

Might try a Kickstarter. Somebody wants to replace "Run Revolution" with an OS version and is asking 350K pounds. Ha!

Seriously. There is a LOT of demand floating around. KISS. And ask less than 350K.

</comment><comment><USER25> BASIC still exists.

</comment><comment><USER26> At one time, I was paid to maintain code like this...

        1 on error goto 700

never again.

<comment><USER20> On Error Resume Next is your friend! Makes all those pesky errors go away!

<comment><USER26> I don't think BBX had that in 1996.

</comment></comment></comment><comment><USER27> You can always download AutoIT</comment>