back to article Behold, the world's most popular programming language – and it is...wait, er, YAML?!?

The world's most popular programming language, according to devops biz Datree.io at least, it not Java, JavaScript, nor Python. Rather, it's YAML, a recursive acronym for "YAML Ain't Markup Language." That's stretching the definition of "programming language" given that YAML, a superset of JSON with little tolerance for tabs, …

Silver badge

Re: Makes me pine for the days of XML...

The problem is not XML per se; The issue was that every bell end and his mutt, trying to use it for things it was never a good fit for; Case in point config files. Yes I'm looking at you SUN.

Transferring data between complex systems in a machine portable fashion, yes. As a config file for ${foo}? oh dear god no :(

2
0
Reply
Silver badge

Yet another

markup language is how I heard it described until very recently. Example:

http://yaml.org/spec/history/2001-12-10.html

The recursive acronym stuff is borrowed in my memory.

As the "ain't a markup language" disturbed me, I looked it up, and indeed in a rewrite of history that's frighteningly complete, it seems that indeed that's now what it's called even on the "official" website, insofar as there can be such a thing for something that originally open and that old news.

What's next? YACC moving from "yet another compiler compiler" to the less imaginative "YACC ain't a compiler compiler"?

In looking around, I even found reference to how YAML had been changed to become a proper subset of JSON (not the other way around) which of course is comparatively a johnny come lately by comparison.

I think I'm becoming glad I don't do this stuff for a living anymore. Learning everything there is to know once is hard enough. When you rewrite history it becomes that much harder, and for what?

33
0
Reply
Silver badge
Pint

Re: Yet another

...beer for the Truth, DCFusor

4
0
Reply

Re: until very recently

@DCFusor, @Alister

YAML might have started as Yet Another Markup Language but unless they are being completely revisionist it's been YAML Ain't Markup Language since 2004 at the latest (http://yaml.org/spec/1.0/), and certainly was when I first encountered it in around 2006 (2007?). I guess we're all getting older because that feels like "very recently" (@DCFusor) to me too!

2
0
Reply
Silver badge

Re: Yet another

"markup language is how I heard it described until very recently. Example:

http://yaml.org/spec/history/2001-12-10.html"

2001 is recent? Nearly two decades ago?

I know what you mean, but I guess you are getting older than you thought without realising it. Next thing you know, you'll be having a conversation with a colleague that makes a reference to something for your teenage years and they'll look at you blankly. Then they'll try to diplomatically point out they weren't actually born then.

(I know because I did it the other day!)

3
0
Reply
Silver badge

Re: until very recently

@PerlyKing

Dear gods is it that old?

I was just looking at it only the other day thinking "stupid new-fangled rubbish"...

Now I really feel old and grumpy.

:(

3
0
Reply
Silver badge
Windows

Re: Yet another

2001 is recent? Nearly two decades ago?

Oh my, is it really? It only seems like five minutes ago that 2001 was the bright shiny future we were all looking forward to.

The icon is for grumpy old bastard...

1
0
Reply
Silver badge

Re: Yet another

Yes, as far as I'm concerned, everything after 2000 is "recent". For me, everything that isn't happened before it. If I'll still be alive in 2040, I promise to revise that statement - not until then.

1
0
Reply

.docx is the most popular and robust programming language

It's used to configure and control Human Runtime Containers, and is capable of advanced instruction including loops and subroutines.

A completed .docx full of rambling flowery prose (the technical term is called "Bullshit") is called either a "Memo" or "Press Release". It is important to name Subroutines using Buzzwords to avoid Namespace Collisions with actual meaningful human language.

It has the advantage that a Human Runtime Container can parse even badly written code within a .docx, but there is a danger that a badly formatted .docx created by a C level human operative may cause the Human Runtime Container to suffer a Bullshit Overflow Exception.

48
0
Reply

Re: .docx is the most popular and robust programming language

Wish I could upvote you more than once and add a beer icon in the mobile version of the comments. My thoughts exactly.

4
0
Reply
Silver badge
Thumb Down

Presence in github

Well I know at least seven projects that don't have a sniff of it. Two have quite a lot of XML

2
0
Reply

Proppa language bruv

Mark up is fir mark up, programming languages are for programming. Does it store structured data? Its markup. Is it a Turing complete language that can process data? Then its a programming language.

Can you imagine learning to program and reading this nonsense? I can program with mark up bruv innnit!

8
2
Reply
Anonymous Coward

Re: Proppa language bruv

Then where do you place xml with xslt?

2
0
Reply

Re: Proppa language bruv

A markup language used to describe a piss poor document transformation language?

8
1
Reply
JLV
Silver badge

Re: Proppa language bruv

as far away from me as possible. xslt has the dubious distinction of making regexes seem limpid.

I am sure it’s useful, in some contexts. but it’s part of xml sad slide from, relative, simplicity into the swamps of xml schemas, SOAP and generally over-engineeredcomplicated Java-ness.

There’s a reason a lot of this stuff is getting superseded by lighter solutions, at least on greenfield projects.

12
1
Reply

Re: Proppa language bruv

Where do you place ASCII with C?

1
1
Reply
Silver badge
Headmaster

Re: Proppa language bruv

ASCII is the programming language, C is the markup language used to make the ASCII in your IDE change colours.

Right guys?

2
1
Reply
Anonymous Coward

Re: Proppa language bruv

Xslt is Turing complete

0
0
Reply
Silver badge

Re: Proppa language bruv

Xslt is Turing complete

Rule 110 is Turing-complete. Turing-completeness is a useful concept in computer science, and possibly useful if you're aiming at a formal definition of "programming language". It's not useful for deciding what's a practical programming language, any more than the Imitation Game is useful for determining in practice what machines might be artificially intelligent.

But then arguments over whether X is a programming language are rarely illuminating or productive. They're mostly an opportunity for programmers to demonstrate a little basic CS knowledge and pontificate.

0
0
Reply
Silver badge

Ah, I remember the good old days when first tinkering with Symfony and you had to use YAML for everything. Writing the YAML files manually, God help you if you put a tab in your YAML. It'd knacker the whole thing. For months all I heard were my fellow developers smashing the space bar four times for most of the day.

2
0
Reply
Silver badge

Any language where the amount and flavour of whitespace is significant should be strangled at birth. Sorry python folk, but it's just not on. Braces are useful for more than holding up your trousers

39
6
Reply
Silver badge
Pint

Whitespace

"Any language where the amount and flavour of whitespace is significant should be strangled at birth. Sorry python folk, but it's just not on. Braces are useful for more than holding up your trousers"

Upvote and pint.

19
4
Reply
Silver badge

Any language where the amount and flavour of whitespace is significant should be strangled at birth.

Because…

3
9
Reply
Silver badge

Re: Whitespace

Markup for display needs to be able to handle white space intelligently. Coding for white space by using alternative markup characters in place of the white space itself is just a little bit mental. Every page markup language seems to have its own touch of the moon, I have never met a really clean one.

2
0
Reply
Silver badge

Re: Whitespace

Python has plenty of brackets () [] {}. They can be, and frequently are nested. And of course they have to be properly matched. It just eliminates a few of the outermost brackets that clutter up other languages.

I'd hate to read the code created by those who object to the use of whitespace to block code.

On second thought, I have -- from time to time -- read code created by those who don't use whitespace for blocking. Figuring it out is not much fun.

7
5
Reply
Silver badge

Re: Whitespace

"I'd hate to read the code created by those who object to the use of whitespace to block code."

Are there many such people outside of an obfuscated code contest? That's an entirely different thing from preferring flexibility in the use of whitespace, rather than have its use forced by the language. I find Python quite irritating to write, but you probably wouldn't have trouble reading my C code.

16
2
Reply

The ghost of John Backus would like a quiet word

"Any language where the amount and flavour of whitespace is significant should be strangled at birth."

Except FORTRAN, of course.

2
1
Reply
Silver badge

Re: Whitespace

@HieronymousBloggs

Exactly so : the problem with python is not that you can use whitespace, but that it has to be used in a particular way.

This means that instead of the written structure being a tool that allows you to use layout to improve readability, you're forced into a restrictive use of whitespace as syntax - all in the name of clarity.

As a coding standard, with the ability to break it where another layout would be better, indentation is fine. As syntax, what can I say ? Fortran maybe had an excuse. Python doesn't.

2
3
Reply
Silver badge

“the good old days”

As a Perl programmer, I've been using YAML since .. forever, it seems. It's "interesting" (for low values, and all) that it's suddenly trendy.

I don't think it's a good language for user-editable config files, though, unless they're quite simple. For a start, I don't think users should be forced to look up syntax rules. Also, I like a config file format that allows comments so that you (or another user) can use to understand what's going on. YAML can have embedded comments, but if you slurp the file and then regenerate a new copy, those comments get lost. Compare this with simple key-value files that you can "source" in bash/sh (so regenerating or updating is just a case of changing specific KEY= lines, and passing everything else, including comments, through) and it's just needlessly adding complexity.

Where YAML shines for me, though, is when it comes to working with complicated data structures. A typical programming task for me is to collect data from some mix of sources (eg, web pages) and pull out salient information for later processing. If I was doing this in a project, my manager would probably ask me to document a schema, create some databases and so on. However, usually I don't know in advance what these schemas might be, so my scripts just evolve, adding new data fields and even entirely new structures as I go. I often add "pointers" (cross-references) from one structure to another. At the end of if, I can just dump all of these structures into a single YAML file.

Later on, I can write a second script that reads that YAML file and creates something more refined out of it, eg, turning it into a proper database, with referential integrity and all that stuff. Or, this being Perl, I can keep the YAML file as a first-class data/object storage format, even embedding it into a library file if I want to. If I ever decide that I want to switch languages, eg writing a C or Python application, I can either use the YAML import features of that language or write a simple code generator to, eg, output a set of literal C structs or whatever.

In summary, YAML is good for sloppy/fast development cycles with quite complex, loosely-defined data schemas, but if it becomes important to impose more structure (eg populating/updating a database with a more rigid schema, or embedding it into some other bit of code), then YAML is still a good stepping stone. Less end user, more rapid development aid.

2
0
Reply
Silver badge

Re: The ghost of John Backus would like a quiet word

FORTRAN doesn't have significant whitespace.

It has significant character columns. Different thing. All "card based" languages are likely to have that since the first few characters usually were reserved for the card sort order ordinal (line number). FORTRAN also uses Hollerith characters if memory serves.

4
0
Reply
Silver badge

Re: Whitespace

I write quite a lot of Python and can cope with it. I have in my time written shit loads of asp pages in a several languages and the thought of trying to write Python asp pages is enough to drive me to drink.

0
0
Reply
Orv
Silver badge

Re: Whitespace

To me the problem with Python (and significant whitespace in general) is that whitespace characters are by nature invisible, and a lot of editor tooling assumes they aren't significant. Anyone who's ever dealt with a Makefile where someone accidentally put a space where a tab should go knows this can only lead to tears.

1
0
Reply
Silver badge
Trollface

Because…

Whitespace can't been "seen" or distinguished from each other at a glance by a meatsack programmer.

A Silent But Deadly fart cannot be "heard" by someone in the vicinity.

In both cases, the outcome stinks

1
0
Reply

How long have you been waiting to shoehorn that into a comment?

Especially as decent text editors have an option to display whitespace in some way.

1
0
Reply
Silver badge

Re: The ghost of John Backus would like a quiet word

Besides, Backus, as one of the true pioneers of programming languages and compilers, can be excused for not getting every design decision right!

0
0
Reply
Silver badge

Re: Whitespace

Are there many such people outside of an obfuscated code contest? That's an entirely different thing from preferring flexibility in the use of whitespace, rather than have its use forced by the language.

Not really, Python's use of whitespace makes it unambiguous This is big plus when reading code even if it is an unwelcome challenge from those coming from different conventions.

The compiler doesn't care whether brackets or whitespace are used for structure so the arguments are really those of personal preference or possibly psychometrics of people reading code. Haven't seen any of these recently but I seem to remember that they favoured whitespace for structure.

Whatever, if you don't like Python because of the whitespace then it's your loss as it's becoming the first computer language for a whole generation of non-programmers. Is this merely a coincidence?

2
0
Reply
Silver badge

Re: Whitespace

"Whatever, if you don't like Python because of the whitespace then it's your loss as it's becoming the first computer language for a whole generation of non-programmers. Is this merely a coincidence?"

I think it's a good language for teaching non-programmers to program. That doesn't mean I have to like it for more advanced work.

Ease of use by non-techies has a downside. There are many programmers now who have never developed the mental discipline required for managing memory themselves, and have a problem when they have to write in a low level language like C.

There's a reason why many embedded devices have crap software - the programmers have never learned the necessary skills.

2
0
Reply
Silver badge

Re: Whitespace

There's a reason why many embedded devices have crap software - the programmers have never learned the necessary skills.

That, and the fact that managers have often pushed for features and releases and not given a shit about quality or security.

0
0
Reply
Silver badge

Re: Whitespace

I think it's a good language for teaching non-programmers to program. That doesn't mean I have to like it for more advanced work.

This seems to be common a misconception here. It's actually very suited for advanced work with the relevant performance sections offloaded to C, C++, etc. People are starting to move from Matlab to Python not just because of the licence costs but because they're getting the same performance with the features they want. YMMV, of course.

There's a reason why many embedded devices have crap software - the programmers have never learned the necessary skills.

That, and the fact that managers have often pushed for features and releases and not given a shit about quality or security.

1
0
Reply
Anonymous Coward

Modern version of an ancient question.....

....and a useless question at that!

"How many angels can dance on the point of a pin?"

Haven't we got better things to discuss?

2
2
Reply
Silver badge

Re: Modern version of an ancient question.....

A discussion is exactly as worthwhile as the participants make it.

If the outcome is irrelevant (who cares if python lives or dies, anyway ?) it makes very little difference.

If it is relevant (how much worse will we be off after the brexiteers have had their wicked way?) it's pretty unlikely that anyone able to affect the outcome is going to be involved.

1
2
Reply
Anonymous Coward

These "popular" programming languages need to be put into different categories:

1. Compiled

2. Scripting / Interpretated

3. Others

The ones that matter are in Compiled (C++, C#, Java, etc)

Then you have the likes of Javascript, Python, etc in Scripting

Then "not a programming language" in Others (HTML, CSS, XML, YAML, JSON, etc)

10
5
Reply
Bronze badge

Of the "ones that matter" 2 of the three were originally compiled to bytecode *then* interpreted.

JavaScript and Python (and php etc) can be (and often are) JITed in the same way.

Not a good enough differentiator.

If you had said "Statically Typed" then you would be on firmer ground.

But then we have the likes of TypeScript , and a type hinting system for python 3.5+ so that doesn't hold water either.

Either way you are wrong about saying only one set of them matter.

0
0
Reply
Silver badge

"Popular" as in...?

The most popular in the sense of "widely used"?

Or in the sense of "well liked"?

There must be a huge difference.

12
0
Reply
Silver badge

It's popular in the sense that Datree.io talks about it a lot and now they've found a way to get talked about as well.

A ridiculous way, but hey, there's no such thing as bad publicity, right ?

1
0
Reply

Re: "Popular" as in...?

Nah, popular as in 'Datree.io make the most money from getting management eejits to blow their budgets on consultancy about it'.

If you've got some budget left I've got this London Bridge I could sell you ...

4
0
Reply
Gold badge

"but hey, there's no such thing as bad publicity, right ?"

I dunno. The only thing I know about datree.io are that they are a bunch of clueless morons who know jack-shit about IT and shouldn't be trusted within a bargepole's length of a computer keyboard. Is that bad publicity?

3
0
Reply
Anonymous Coward

If YAML is a programming language...

... then so is Excel. I'm am going to declare that Excel is the most popular programming language.

13
0
Reply

Re: If YAML is a programming language...

Hm... you can embed visual basic...

0
0
Reply
Silver badge

Re: If YAML is a programming language...

Yes spreadsheets are tools that perform data manipulation and transformations including some iterative and statistical operations. Some more elaborate spreadsheets embed traditional programming languages to do heavy lifting -- VB for Excel, Python for OpenOffice. So yes, Excel might qualify as a widely used programming language. So does SQL I suppose.

I find that thought depressing.

Thanks for starting my day off wrong.

1
0
Reply

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2018