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, …

  1. Anonymous Coward
    Anonymous Coward

    "Everything is becoming YAML-fied," he said. "Git is the new gateway between development and production. Everything is going from a committer into production. And all of those tools are being configured using YAML."

    Well, the moment that everything goes to some new buzzword, that's a sure sign that the end is near and it's likely to be irrelevant in the near future.

    1. Glen 1

      I keep hearing about this "internet" thing. It'll never catch on...

      1. chivo243 Silver badge

        @Glen 1

        I heard some kid talking about personal mobile phones, pffft, has to be a fad...

    2. bombastic bob Silver badge
      WTF?

      everything YAML-fied? [just, no]

      Well the last 10+ years of software development has gone the way of "the bandwagon" so it's no surprise that something like *THIS* has become "the new bandwagon"

      Meanwhile, REAL development is done on REAL operating systems with REAL tools using REAL languages and no "bandwagon". See TIOBE index which has been very accurate for a very, very long time.

      /me points out that Micro-shaft tries to get everyone on THEIR bandwagon every couple of years, and then re-invents it into something else "new, shiny" and apparently abandons devs in their wake...

      I can think of a bunch of stuff - windows scripting host, ".Not", C-pound, ActiveX, Silverlight, WinRT, UWP, yotta yotta yotta moving targets all. VB was *especially* a 'moving target' from 1.0. And when nobody (but a few) jumps on the bandwagon, they move on to "yet another new, shiny" over, and over, and over, and over, and over. "Here's the new version / replacement technology, get hot patching your stuff to use it, more work for YOU, no backward compatibility, you're welcome, 'new, shiny'"

      I'd put YAML in the same category as all of THAT. *NOT* using it, adopting it, or even making it an option. I don't like JSON either. XML is tolerable, if it's not over-complicated [like the standard makes it - CDATA? Really?].

      1. Glen 1

        Re: everything YAML-fied? [just, no]

        JSON > XML

      2. Long John Brass
        IT Angle

        Re: everything YAML-fied? [just, no]

        Remember back in the day when "expert" systems and 4-GLs would render programmers obsolete?

        Hahaha good times :)

        Oh no I've run over by the hype-train! Never mind here comes the Magic Bus :/

      3. Potemkine! Silver badge

        Re: everything YAML-fied? [just, no]

        VB was *especially* a 'moving target' from 1.0.

        VB isn't and never was a programing language! I even wonder if it can be consider a language...

        1. Potemkine! Silver badge
          Trollface

          Re: everything YAML-fied? [just, no]

          VB isn't and never was a programing language! I even wonder if it can be consider a language...

          2 thumbs up & 13 thumbs down

          For the moment, 2 real developers and 13 believing they are, still counting....

      4. Anonymous Coward
        Anonymous Coward

        Re: everything YAML-fied? [just, no]

        > *NOT* using it, adopting it, or even making it an option. I don't like JSON either. XML is tolerable

        In other words, XML is the only one you are more or less familiar with.

        I get that. I had the same reticence when a FOSS project I was working on moved its over-the-wire serialisation to something called JSON back in the day when everyone, myself included, were drooling over XML which, to be fair, was itself a significant improvement over the previous state of affairs. Anyway, I wasn't happy about it, especially since the JSON parser itself had to be written from scratch (in C, without malloc). I was so glad that we didn't take the easy route of going with what we liked when I saw the results. Today the protocol is orders of magnitude more expressive but it's still using the same parser and serialiser and remains, as far as I am aware, fully backwards compatible.

        Horses for courses, even if it means getting out of your comfort zone.

    3. Anonymous Coward
      Anonymous Coward

      > some new buzzword

      I was using YAML twelve years ago, and it wasn't new back then.

  2. Anonymous Coward
    Anonymous Coward

    RedNotebook

    I came across YAML recently, while investigating the RedNotebook journal application, which uses it to store its monthly data files. I was able to convert an old home-brewed journal database that had been started in MS Access and later converted to Libre Office Base, into RedNotebook files using Python YAML bindings.

    1. Anonymous Coward
      Anonymous Coward

      Re: RedNotebook

      > I was able to convert an old home-brewed journal database that had been started in MS Access and later converted to Libre Office Base, into RedNotebook files using Python YAML bindings.

      Yep, YAML is extremely expressive while terse and easy to use (until you get into the subject of custom tags anyway) and well suited for loosely structured data.

  3. Anonymous Coward
    Facepalm

    HTML-only calculator?

    Yeah, right. Tens of thousands of lines of HTML to just display pre-canned screens depending on a few characters of input? It's as much a calculator as a dictionary is a novel.

    1. Glen 1

      Re: HTML-only calculator?

      A look up table is how many ALUs operate. I'll allow it.

      1. bombastic bob Silver badge
        Meh

        Re: HTML-only calculator?

        ALUs are supposed to be efficient, so they do things efficiently [and if that means a lookup table, sure, whatever works].

        shoehorning a "programming language" into doing something because you can, maybe something for bragging rights in an online forum, but no REAL WORLD usefulness. I can't imagine the bandwidth requirement for downloading such an abomination... and I doubt it's pure HTML, it would probably have at least SOME javascript in it [that doesn't make it any better, probably makes it WORSE]

        in any case, I'm sure YAML is similarly "unfit for purpose" and shouldn't be called "popular" nor "a programming language".

        1. Glen 1

          Re: HTML-only calculator?

          YAML is just a way of representing markup in a way that you don't have to worry about matching closing brackets/braces.

          It *is* fit for the purpose of being a markup language (Yet Another Markup Language). Shoe horning it into other purposes, or calling it a programming language is stretching things beyond reasonable-ness.

          Just because YOU haven't heard of it, doesn't make it useless. There's more on heaven and earth etc

          1. T. F. M. Reader

            No and yes [Was: HTML-only calculator?]

            @Glen 1: YAML is just a way of representing markup in a way that you don't have to worry about matching closing brackets/braces.

            But you do have to worry about whitespace, right? That's progress all right.

            [Aside: before anyone says editors support proper indentation so whitespace is easy - editors also highlight unmatched brackets/braces/parentheses.]

            NB: this is not to knock YAML at all (see below). But relying on whitespace instead of visible grouping symbols is not a core advantage.

            And now to the positive part. To this old-timer programs and data are one and the same, configuration is data and thus an integral part of the program, and just about any project will use a number of languages and tools, each used where it's best fit for the purpose. With this mindset I am perfectly willing to consider YAML and JSON and their ilk "programming languages" that are used for describing data in arguably better ways (for readability, serialization, portability, etc.) than what is available in "real" programming languages that are in turn much better suited for describing procedures and algorithms. It looks perfectly natural to me to describe data in JSON and algorithms in python. Or whatever.

            YAML, JSON, python, C, bash, and F# are all tools of the trade, and if a SW engineer writes N lines of python and M>>N lines of YAML (feel free to count files rather than lines, or whatever measure you deem most appropriate) as a part of his project then he does more YAML than python, and that's perfectly fine with me.

            A possibly enlightening example is Google's protobuf that is also a portable serializaton format, can easily be used for configuration, looks a bit similar to JSON (at a stretch), and is compiled into "real" data structures - classes with methods and everything else - in a multitude of programming languages that you can look at as (quite human-readable, albeit less so than the original protobuf) code in your favourite programming language. Once you look at how it works you may be more open to the idea that writing such stuff is programming.

            1. Michael H.F. Wilkinson Silver badge

              Re: No and yes [Was: HTML-only calculator?]

              The border between a mark-up language and a programming language can be vague. Maybe a sensible definition of what is a programming language or not is whether it is Turing complete. If it does not allow you to write loops, I doubt it is.

              Curiously, in this sense, LaTeX is a programming language, as the ifthen package provides quite neat while and for loops, and the calc package sufficient numerical manipulation to be Turing complete. I would not want to implement anything other than LaTeX docs, packages, or class files with these features, however.

              1. Crypto Monad Silver badge

                Re: No and yes [Was: HTML-only calculator?]

                LISP is a programming language, and LISP is written in S-expressions; YAML is comparable to S-expressions.

                Sadly, there are a bunch of programming languages which are indeed programmed in YAML. Two examples are Ansible and OpenStack Mistral. They are both excellent examples of Greenspun's Tenth Rule.

                But that doesn't make YAML itself a programming language.

                1. JLV

                  Re: No and yes [Was: HTML-only calculator?]

                  Ansible is configuration management software. Not a full-on programming language.

                  In the context of config management, I’d take a declarative approach, as allowed by YAML, over programmatic configuration any day.

                  YMMV, but I’ve sweated out both Chef and Ansible and Ansible just maps way more closely and naturally to a BASH command you’d be typing in manually.

                  This is just about my perceived ease of writing, not things like scaling, speed or idempotence.

              2. Michael Wojcik Silver badge

                Re: No and yes [Was: HTML-only calculator?]

                Maybe a sensible definition of what is a programming language or not is whether it is Turing complete.

                Turing-completeness is certainly often appealed to when attempting to define "programming language" (or at least when arguing over whether some specific language is or isn't one). And it might be sensible to look to it if you want a formal definition of a programming language.

                Many people, however, will be far more interested in practical arguments for whether some language should be considered a programming language. And a great many things are Turing-complete without even vaguely resembling programming languages.

                Untyped lambda calculus is Turing-complete. Now, to some, ULC might look something like a bare-bones functional programming language, but it's not what most practicing programmers would consider a practical example of one.

                The esoteric language Unlambda has no lambda (abstraction) operator; it makes do with the S and K combinators. That's a very alien sort of programming language. But it's Turing-complete.

                XSLT is Turing-complete. The video game Dwarf Fortress is Turing-complete. Rule 110 is Turing-complete: a TC machine which can be specified in its entirety by a couple of sentences and the decimal number 110.

                If it does not allow you to write loops, I doubt it is.

                You doubt it is Turing-complete, or you doubt it's a programming language?

                "Write loops" is under-specified. Many TC languages provide "loops" solely by recursion. YAML has a reference mechanism; I haven't looked to see if circular references are specifically disallowed, but if not that's a trivial recursion mechanism. And for that matter YAML may well have a simpler iteration mechanism - I've never looked at the YAML spec.

                Minimally, I believe you can't have a TC language if it doesn't offer an unbounded iteration mechanism of some sort. That might appear as primitive abstraction and application operations (e.g. lambda calculus) or a simple conditional branch (e.g. subtract-and-branch-if-zero) or perhaps something else. But yes, you could lump those all into "some way to write loops", provided your understanding of "loop" is sufficiently broad.

            2. Glen 1

              Re: No and yes [Was: HTML-only calculator?]

              >But you do have to worry about whitespace, right? That's progress all right.

              I shall be more specific:

              The white space you have to worry about is on the same line as the markup, not somewhere further down the page where it's easy to confuse the nesting level.

              The resulting errors tell you *something* is wrong, but the computer doesn't know what you mean, so places the error message where it runs out of pairs which might be nowhere near where the missing/extra brace is.

              See also: "statement expected", "unexpected statement", "file is not valid JSON"

              Unless you're a super human who has never had to play hunt the missing/extra brace?

          2. PerlyKing
            FAIL

            Miss the point much?

            @Glen 1 - "It *is* fit for the purpose of being a markup language (Yet Another Markup Language)"

            Er - as the third line of the yaml.org home page (and the article itself) states:

            YAML: YAML Ain't Markup Language

            The next paragraph explains:

            What It Is: YAML is a human friendly data serialization standard for all programming languages.

            My personal opinion is that it is more human-friendly than machine-friendly, as I always get tied up in knots when I try to use it. I find JSON easier to understand.

            1. Reaps

              Re: Miss the point much?

              "What It Is: YAML is a human friendly data serialization standard for all programming languages."

              Who ever wrote that was taking the piss...

            2. Alister

              Re: Miss the point much?

              @PerlyKing

              Just because yaml.org have tried to rewrite history doesn't make it true.

              When it was first introduced, YAML was indeed Yet Another Markup Language, and not the pretentious self referential bollocks they are now claiming in an effort to make it a look like legitimate programming language.

        2. steelpillow Silver badge
          Boffin

          HTML-only calculator? I don't think so

          Looking at the calc code (y'all did that before sounding off about it, right?), it comprises 21,351 lines, of which all but 15 are HTML. The remainder are CSS, there is no active javascript. So yes, it's just one giant boilerplate lookup table. But something active has to be in there to select which boilerplate, and that uses the CSS display property. This is the core feature that makes it "look" smart even though it isn't really. So the calculator is not in fact written in pure HTML, it is written in HTML+CSS, with the smarts all being in the CSS.

          CSS does have some more sophisticated semi-programmatic features, such as the var () function, so it it possible that the code could be much reduced. But AFAIK that could only shrink the amount of boilerplate and bury it deeper, CSS cannot provide true programmability.

          1. Anonymous Coward
            Anonymous Coward

            Re: HTML-only calculator? I don't think so

            Anchor links are a HTML feature, not CSS.

            It doesn't require CSS at all.

          2. Fuzz

            Re: HTML-only calculator? I don't think so

            The CSS is only for appearance, it makes a bunch of links look like a picture of a calculator.

            Each button is a link which takes you to an index on the page. You can scroll up and down the individual screens.

            I'm just annoyed that every signle screen has the same spelling mistake.

            1. Anonymous Coward
              Anonymous Coward

              Re: HTML-only calculator? I don't think so

              > The CSS is only for appearance, it makes a bunch of links look like a picture of a calculator.

              You could ditch the CSS *completely*, and the fundamental technique would still work in pure HTML (e.g. creating the calculators using monospace ("tt"-formatted) ASCII art would still preserve the illusion).

              Not that this makes it clever or "proves" anything meaningful about HTML, obviously.

              Quite the opposite- the red herring of CSS cleverness (and people's assumption that something smart was going on) seems to have obfuscated the fact that... yeah, it really *is* that obvious and simple a trick- just a load of static HTML pre-calculated to cover every case with the appropriate intra-document links. Duh!

              Nothing in there that couldn't be done in a "choose your own adventure" book. (#) Any intelligence or programmability was in the process used to *create* the HTML, and by the user (unwittingly) following the links.

              Also makes bleeding obvious why it can only handle single digits and single-step calculations! The number of combinations to pre-calculate (and the length of the document) would quickly grow to ludicrous- and unworkable- numbers otherwise, and I guess the whole thing could be compared to a state machine.

              (#) Albeit that "Single-Digit Calculator" would be the most boring "choose your own adventure" ever.

            2. steelpillow Silver badge

              Re: HTML-only calculator? I don't think so

              "The CSS is only for appearance, it makes a bunch of links look like a picture of a calculator."

              Wrong. You evidently didn't try cutting out the CSS between the <style> tags and seeing how the pure HTML actually renders. Try it now. Then eat your words. The key is whether or not the shit is *displayed*, and that is in the CSS attributes.

        3. Anonymous Coward
          Anonymous Coward

          Re: HTML-only calculator?

          It is pure html, it does, etc:

          a href='#1' 1 /a

          at #1 it does:

          a href='#1*' * /a

          etc

    2. Dominic Shields

      Re: HTML-only calculator?

      I thought it a particularly nice touch that only single digits are allowed, like maybe that is trying to tell us something?

    3. Japhy Ryder

      Re: HTML-only calculator?

      23 lines of HTML, actually, plus 77 of CSS3 and a single line JSON config. Life w/o JavaScript. Refreshing. https://gist.github.com/tsironis/1622077

  4. Alister

    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

    <Cough> Bollocks </cough>

    Oh, I'm sorry, did I type that out loud?

    1. SVV

      Come on now, if world famous devops biz Datree.io says it's so, how can we mere mortals dare to doubt it?

      Next you'll be telling me that bullish.it were wrong to tell me that the next big language trend was INTERCAL!

    2. JLV

      Had you ever heard of devops biz Datree.io before?

      No? well now you have.

      Cynical, moi?

  5. cookieMonster Silver badge

    Go, a scripting language??

    Nope !!

    It's a compiled language.

    1. theModge

      Re: Go, a scripting language??

      I thought that as I scrolled past: you can compile it for quite a few different platforms now, a scripting language it is not.

    2. Anonymous Coward
      Anonymous Coward

      Re: Go, a scripting language??

      @cookieMonster

      Compiled vs Interpreted is not the correct axis to split languages when determining scripting vs programming.

      Scripting languages talk to the software, Programming languages talk to the hardware.

      1. Glen 1

        Re: Go, a scripting language??

        >Scripting languages talk to the software, Programming languages talk to the hardware.

        I like that comparison, but it starts to fall down if you use an operating system....

        Se also: RPython

        1. Anonymous Coward
          Anonymous Coward

          Re: Go, a scripting language??

          @glen1 I don't see what an operating system has to do with it.

          So if you can address memory and produce/consume exact binaries you can talk to hardware.

          So python with FFI can meet this definition. C natively meets it, Java with JNI meets it, Go/Cgo meets it.

          RPython seems like a translator from python to C, not sure if you cite this for or against.

  6. eldakka
    WTF?

    If YAML is a programming language, then so is my httpd.conf, or my .csv I use to script installations of middleware software. Or the .ini-like file I use to dynamically build the runtime environment of all the various Java appservers my organisation runs.

    1. Adam 1

      And apparently the most popular language is markdown, with all those readme.md source code files all over GitHub.

  7. J27

    Disappointed

    Article title should be "Datree.io doesn't know what a programming language is.". I've never heard of this website before and now I think it's run by idiots.

    1. jh27

      Re: Disappointed

      You *think* it is run by idiots, or you *know*?

  8. Jusme
    Meh

    Makes me pine for the days of XML...

    yaml, bastard sibling of python. Love-children of the scented chip-fat smoking brigade.

    They're the the sort of "languages" I'd invent as a kid to solve a particular problem. Full of inconsistencies and hacks to make them more generally useful. Unfortunately they'll probably take over the world by sheer weight of numbers.

    Now please vacate my lawn, it's getting dark.

    1. Charlie Clark Silver badge

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

      Which problems did XML actually solve? And which ones did it create?

      1. Orv Silver badge

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

        XML proved handily that it's possible to make something verbose and inefficient for computers without actually making it human-readable.

      2. John Gamble
        Boffin

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

        "Which problems did XML actually solve? And which ones did it create?"

        I like a good cynical comment as much as the next guy, but XML is the go-to structure for highly complex formats that have to be communicated between systems, and it works exceedingly well for that, provided the data definition was designed well in the first place. Which, yes, is dependent upon the skills of the designer (not necessarily a coder, although it helps).

        So it creates no more problems than that found in most computing standards..

        For small configuration files that were slightly more complex than an INI file, XML certainly looked like too much, but I feel that was overreaction (it's not hard to simplify the tagging), and in any event it became irrelevant when JSON appeared on the scene.

        YAML, the format that isn't terribly readable, and fragile to boot, just wasn't a good idea.

        1. Ken Hagan Gold badge

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

          "XML is the go-to structure for highly complex formats that have to be communicated between systems, and it works exceedingly well for that, provided the data definition was designed well in the first place."

          Glurk! The effort that you spent shoe-horning your highly complex data definition into an XML format could have been spent with a parser generator, yielding a much more readable language that solves your particular problem (in an easily extensible way, since we can all read grammars, right?). XML is an attempt to create a format that can represent all such complex data formats at once. It is, therefore, always overkill and always less readable (both by humans and by machines) than a properly designed language.

          1. Long John Brass

            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 :(

  9. DCFusor

    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?

    1. steelpillow Silver badge
      Pint

      Re: Yet another

      ...beer for the Truth, DCFusor

    2. PerlyKing

      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!

      1. Alister

        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. John Brown (no body) 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!)

      1. Alister
        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. DropBear

          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.

  10. Shady

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

    1. Joe W Silver badge

      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.

  11. Will Godfrey 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

  12. EN1R0PY

    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!

    1. Anonymous Coward
      Anonymous Coward

      Re: Proppa language bruv

      Then where do you place xml with xslt?

      1. Anonymous Coward
        Anonymous Coward

        Re: Proppa language bruv

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

        1. Anonymous Coward
          Anonymous Coward

          Re: Proppa language bruv

          Xslt is Turing complete

          1. Michael Wojcik 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.

      2. JLV

        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.

      3. Sam Liddicott

        Re: Proppa language bruv

        Where do you place ASCII with C?

        1. Anonymous Coward
          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?

  13. wolfetone 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.

    1. Androgynous Cupboard 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

      1. HieronymusBloggs
        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.

        1. steelpillow 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. vtcodger 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.

          1. HieronymusBloggs

            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.

            1. Adrian 4

              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.

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

            2. Charlie Clark 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?

              1. HieronymusBloggs

                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.

                1. Charlie Clark 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.

                2. Charlie Clark 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.

          2. Tom 7

            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.

      2. Charlie Clark Silver badge

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

        Because…

        1. Fruit and Nutcase 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. Eeep !

            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.

      3. David Harper 1

        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.

        1. Stevie

          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.

          1. MacroRodent

            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!

    2. Frumious Bandersnatch

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

  14. Anonymous Coward
    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?

    1. Adrian 4

      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.

  15. Anonymous Coward
    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)

    1. Glen 1

      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.

  16. Anonymous Coward
    Anonymous Coward

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

    1. Pascal Monett 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. Ken Hagan 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?

    2. Anonymous Coward
      Anonymous Coward

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

  17. Anonymous Coward
    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.

    1. Joe W Silver badge

      Re: If YAML is a programming language...

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

    2. vtcodger 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.

  18. Loyal Commenter Silver badge

    Is it Turing Complete?

    Nope? Move along...

  19. Buzzword

    One argument in YAML's favour: a good DIFF

    When you're comparing the latest version with the previous version, YAML changes tend to be restricted to one line. By contrast in JSON, appending an item to an array means adding a comma to the previous line, so your DIFF highlights two lines as having changed.

    1. Loyal Commenter Silver badge

      Re: One argument in YAML's favour: a good DIFF

      In JSON, whitespace is irrelevant, so you could put the comma on the same line as your new item. Not that I'd recommend doing it, but it would be valid JSON.

      On balance, whether it shows as one line or two in a diff isn't the highest thing on most programmers' agendas.

    2. Ken Hagan Gold badge

      Re: One argument in YAML's favour: a good DIFF

      Doesn't JSON allow you to put a comma after the final entry in a list, precisely to avoid this problem? Quite a few languages allow this, for this reason, in at least some contexts.

      1. Buzzword

        Re: One argument in YAML's favour: a good DIFF

        No. JavaScript allows trailing commas, but JSON doesn't.

  20. Adrian 4

    Stackoverflow

    Isn't it just as meaningless to measure popularity by the number of calls for help you have with it ?

    Something might score high on that scale just because it isn't very good.

    All these folks need to smarten up and start counting using some metrics that actually mean something, rather than those that are easy to count. If you have to use a proxy, at least prove that it models the real thing reasonably well.

  21. Anonymous Coward
    Anonymous Coward

    Rule One of DevOps

    Here's the only markup masquerading as a programming language you ever need in these circumstances:

    (Reg.article.title).contains 'Devops'

    {It's Marketing Hype regurgitated as 'News'} >> ignore

    else

    {Might be worth reading}

  22. steelpillow Silver badge
    Unhappy

    Turning Turing?

    So what was once Yet Another Markup Language now Ain't Markup Language but has become a programming language.

    How long before the next iteration is made Turing complete and the first YAML code-injection attack appears? >sigh<

  23. MacroRodent

    Apples and oranges comparison

    Or maybe even an apples and lampreys comparison. You could just as well argue ASCII text files are the largest programming language of them all. A static data syntax is not a programming language at all.

    1. doublelayer Silver badge

      Re: Apples and oranges comparison

      I think we can make a case for machine code as the most popular programming language. It can be written to be fully Turing complete, can store data, can do anything you like to that data, and is used if not written by every single programmer. It is also the most popular programming language used by people who don't write code professionally or at all, and is present on every running computer in the world. Every github project eventually turns into or relies on something else that is in the form of machine code, and all questions on stack overflow can be reduced to asking how to get machine code to produce a specific result. I hope you will agree with my analysis, which I performed after several months of tedious but, I'm sure you'll agree, tremendously vital research. I'm off to reserve a something.io address and send out my press release.

  24. Anonymous Coward
    Anonymous Coward

    "there's a proof-of-concept HTML-only calculator – so there's precedence for Datree's delusion."

    I was intrigued, so I looked at the source.

    It's a series of links to pre-written pages which show the result.

    This is the same as a book index:

    1x1: p2.1

    1x2: p2.2

    1x3: p2.3

    page 2:

    1: 1

    2: 2

    3: 3

    etc.

  25. Anonymal coward

    I thought this nonsense was over...

    Haven't the Code Wars been well and truly buried these past 20 years? No? For anyone else thinking of making claims like "<thingy> is the largest/widest/most indented language", go look through https://esolangs.org/wiki/Main_Page and then just stay there...

  26. CloudWrangler

    At least one language uses yaml

    The article forgot that there is one infrastructure programming language that uses yaml: Ansible. Given that it has flow control, supports looping and parses like a language, I'd call it a language. An ansible playbook is not just a config file.

    1. Anonymous Coward
      Anonymous Coward

      Re: At least one language uses yaml

      An ansible playbook IS just a config file though.

      Ansible is written in Python. All the flow control & loops happen in python. YAML has no concept of loops. It's literally just a config file.

  27. Rich 2 Silver badge
    Go

    Popular?

    Popular does not equal useful though.

    If you want to limit the list to useful, then that would be C, C++, (oh, go on then....) java, Fortran, assembler. I'm sure there's a couple of other too.

    You might even find the odd shell script useful, or even (gawd help us) Perl, but these are hacky scripting languages and while definitely useful, not really what I would categorise as a genuine programming language for making stuff work.

    Notably absent from my list would by Python. I don't feel the need to elucidate.

    1. Julz
      Coat

      Re: Popular?

      I like Perl.

      I'll get my coat, the one with the Camel in the pocket...

  28. juice

    YAML my camel

    When all is said and done, YAML and JSON are simply a serialised chunk of data: to use them, you feed said data through an interpreter to convert the stored data structures into something which is compatible with whatever system the interpreter is running on.

    Does that make YAML a programming language? Not to my mind: it's certainly a language, but it's one you use to describe data, not the operations which will be performed on the data.

    Is it Friday yet? This feels like it should be a pub discussion...

  29. Spanners Silver badge
    Go

    What about...

    Batch Files? Loops, labels and structured data. Perhaps a scripting language but I once came across a shareware compiler for it (Turbobat).

    Works on all versions of Windows with the added advantage of being completely TechnoSnob proof!

  30. HmmmYes

    Is YAML a programmign lanaguge?

    DOnt know, dont care.

    YAML is *not* XML, and thats all I care about.

  31. Anonymous Coward
    Anonymous Coward

    a little known fact, YAML stands for 'Yours or mine, lover?'

    yaml developers are known to get more ass than a toilet seat.

  32. Jason Bloomberg Silver badge
    Joke

    It's bollocks isn't it

    LOL - YAML a programming language!

    Perhaps they meant YAML++

  33. Chris Parsons

    BAL

    Why can't everyone just write in assembler? I used to...

    1. Anonymous Coward
      Anonymous Coward

      Re: BAL

      Assembler?? The proper way is directly in binary (or hex) machine code (preferrably entered into the machine via front panel switches)

  34. Stevie

    Bah!

    I'd bet real money that in the world as a whole there's more Cobol than YAML, counted any way you choose.

    8o)

  35. arctic_haze

    Speaking of programming language definitions

    I like the definition of R language saying simply that "R is an open source implementation of S".

  36. Anonymous Coward
    Anonymous Coward

    El Reg just keeps getting weirder by the day

    And the comments section shows it has been largely deserted by those who actually write software and build things, myself included.

    Anyway, this article was just bizarre.

    IRC and nowadays ActivityPub-powered "communities" are a great way to exchange information, learn things and collaborate with fellow tinkerers in a positive atmosphere. I recommend anyone with the interest and motivation to give them a try.

  37. Steve Davies 3 Silver badge

    GitHub private repo's?

    Therein lies a big problem.

    Lots of us who had private repos have moved them from GitHub the moment that the MS takeover was announced.

    Mine has gone. It had more than 400 files in it and not a bit of YAML in sight. No JSON either and just a few lines of XML.

    A load of hot air if you ask me. I wonder how many of those YAML files were simply slightly modified copies of those publised on any of the more reputable code help sites such as StackOverflow?

  38. imanidiot Silver badge
    Facepalm

    YAML aint markup language

    YAML ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup languag eain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language

    YAML ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language ain't markup language

    It's just turtles all the way down..

    Whomever came up with this recursive acronym deserves a swift kick to the family jewels.

    1. DropBear
      Trollface

      Re: YAML aint markup language

      Is that a valid proof that YAML is in effect identical to ZAML (or VAML or WAML...) considering their meaningful* part will never resolve to anything that isn't identical regardless of amount of recursion...?

      * which makes comparisons with 1.3333... =/= 2.3333... rather unfair considering "1" and "2" are very much meaningful parts of those numbers

  39. John Styles

    The most popular kind of cheese is baked-beans.

  40. Anonymous Coward
    Trollface

    ...BREAKING NEWS...

    'DevOps' article on The Register attracts more than two comments. Misleading clickbait title suspected. Film at 11.

  41. Anonymous Coward
    Anonymous Coward

    "according to devops biz Datree.io"

    Is there a source for this claim?

    I've looked on Datree.io and various Google searches and can't find any reference to the actual data that seems to be the basis of this article

  42. shalini01

    XML Tutorial - Stoodq.com

    Along with XML Tutorials I can try this as well and I think it's a great option.

  43. Law

    "of course it's not an actual programming language where you can write loops and stuff."

    So... not a programming language at all then...

    But what do I know, I'm just getting old. I thought yaml was "yet another markup language" - I've been thinking of it that for what felt like just a couple of years. When I seriously thought about it, and remembered where I worked when I started using it, I realised it's been well over a decade.

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

Other stories you might like