Announcement

Collapse
No announcement yet.

I wonder if a programming language could be "Crowdsourced".

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • I wonder if a programming language could be "Crowdsourced".

    I think about this from time to time. A good number of programming languages are either developed by individuals (Larry Wall & Perl come to mind, or Bjarne Stroustrup and C++, as examples), small groups of people (K&R C, developed at Bell Labs, as an example), or large teams of people within corporations or other entities (C#, for instance).

    But with the power of the Internet, I have been curious if a programming language could actually be "crowdsourced".

    I mean, the computer programming and software engineering community is large and passionate, with a wide variety of different languages being used for a wide variety of purposes.

    So what would happen if you got a C#, PHP, Python, and maybe a COBOL programmer all working together to create a language?

    Or maybe a Java, Perl, and C++ programmer?

    Do you think something like that would work? I mean, almost all languages have their strengths and weaknesses, and all somewhat have a "lineage" or were "purpose built" at the time to serve a need, and have evolved since then.
    Skilled programmers aren't cheap. Cheap programmers aren't skilled.

  • #2
    Quoth mjr View Post

    But with the power of the Internet, I have been curious if a programming language could actually be "crowdsourced".

    ...
    So what would happen if you got a C#, PHP, Python, and maybe a COBOL programmer all working together to create a language?

    Or maybe a Java, Perl, and C++ programmer?
    You're describing two very different cases there. Certainly the Power of The Internet could let a handful of far-flung experts collaborate on a language design, to good effect. They could even take suggestions from the public, as long as the experts were careful to about judging them and integrating them into the language.

    But actual crowdsourcing, with random people empowered to change the language? That sounds like doom, DOOOM I tell you! Actually designing a new language (as opposed to sticking a new parsing layer onto C, Tcl, etc) takes serious theoretical chops to make sure the language is coherent and reliably implementable.

    Consider the first programming language, FORTRAN, which was designed before most of the theory in question was developed in the first place -- and it turned out that the original definition of FORTRAN cannot be parsed as a context-free grammar. Or a context-sensitive grammar, or even, as I heard it, any categorizable grammar at all! (IIRC, any FORTRAN parser needs to not only look at what the code says, but decide what it's trying to do, before it can even move on to compiling.)

    Other potential hazards could be undefined areas that can be handled only by extending the language beyond the spec (hello PASCAL, and goodbye portability). Or language constructs that are ambiguous, because of overloading or because some of the cases have no definition or conflicting definitions, Or constructs that might be consistent, but certainly don't mean what any human programmer would think they do. Or a "convenient shorthand" that unexpectedly produces exponential or worse behavior at runtime.

    To avoid all those things, you need expertise at the top of the design team, backed by governance to make sure the experts do get their way.

    Comment


    • #3
      They called *IT* Ada...
      I am not an a**hole. I am a hemorrhoid. I irritate a**holes!
      Procrastination: Forward planning to insure there is something to do tomorrow.
      Derails threads faster than a pocket nuke.

      Comment


      • #4
        No, Ada wasn't crowdsourced, it was developed by military contract. I'm not sure which would be worse...
        Fool me once, shame on you. Fool me twice, you speak with the Fraud department. -- CrazedClerkthe2nd
        OW! Rolled my eyes too hard, saw my brain. -- Seanette
        she seems to top me in crazy, and I'm enough crazy for my family. -- Cooper
        Yes, I am evil. What's your point? -- Jester

        Comment


        • #5
          I'm absolutely certain that a language designed by defense contractors would be worse than a crowd-sourced one....

          In some ways, Python is crowd-sourced. It follows more of the open-source model, though. There are core dev, and a group of people that generally make the decisions about whether a piece of code is accepted into the official repository or not.
          “There are two novels that can change a bookish fourteen-year old’s life: The Lord of the Rings and Atlas Shrugged.
          One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes, leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world.
          The other, of course, involves orcs." -- John Rogers

          Comment


          • #6
            Quoth Nunavut Pants View Post
            I'm absolutely certain that a language designed by defense contractors would be worse than a crowd-sourced one....
            Or we might end up with VALGOL...
            Skilled programmers aren't cheap. Cheap programmers aren't skilled.

            Comment


            • #7
              As long as it has the necessary bureaucrat control structures:

              IF {exp} MAYBE {statement} WHATEVER {statement}

              GO NEAR {location}

              COME FROM {wtf}
              I am not an a**hole. I am a hemorrhoid. I irritate a**holes!
              Procrastination: Forward planning to insure there is something to do tomorrow.
              Derails threads faster than a pocket nuke.

              Comment


              • #8
                Quoth Mental_Mouse View Post
                You're describing two very different cases there. Certainly the Power of The Internet could let a handful of far-flung experts collaborate on a language design, to good effect. They could even take suggestions from the public, as long as the experts were careful to about judging them and integrating them into the language.

                To avoid all those things, you need expertise at the top of the design team, backed by governance to make sure the experts do get their way.
                Perhaps "crowdsource" wasn't the right word. It's probably more appropriate to say "community developed".

                And I was thinking that before an aspect is committed to the language, it would be put to a vote. And I was thinking either a supermajority or 75% majority before it would be added.

                And there would also be RFC periods, and so forth.

                For instance, if someone had an idea for variable declarations, they could post it, refine it, get RFC (Request for comments), and then have a vote on the idea.

                As an example, let's say someone decides to say that variables (like integers) should be defined thusly:

                define myVar as integer

                and further, they state that you can also do this:

                define myVar as integer set to 0

                or:

                define myVar as integer
                set myVar to 0

                Then the community (remember, this is all software engineers) could comment and vote on the idea.
                Skilled programmers aren't cheap. Cheap programmers aren't skilled.

                Comment


                • #9
                  Of course, there's now this option: NSFW!
                  I am not an a**hole. I am a hemorrhoid. I irritate a**holes!
                  Procrastination: Forward planning to insure there is something to do tomorrow.
                  Derails threads faster than a pocket nuke.

                  Comment


                  • #10
                    Quoth mjr View Post
                    Perhaps "crowdsource" wasn't the right word. It's probably more appropriate to say "community developed".

                    And I was thinking that before an aspect is committed to the language, it would be put to a vote. And I was thinking either a supermajority or 75% majority before it would be added.

                    And there would also be RFC periods, and so forth.

                    Then the community (remember, this is all software engineers) could comment and vote on the idea.
                    Just because it's "all software engineers" doesn't mean they have any clue about language design. Allowing voting among a basically uncontrolled "community" to add features is fundamentally risky -- f'rex, you'd likely get combinations of features each of which could easily be implemented separately, but requiring mechanisms that conflicted with each other.

                    Even more formal working groups can have politics -- while I don't remember details offhand, IIRC C++ wound up with a particular feature which could only be easily implemented by a particular style of compiler... due to a push by the working-group members whose company happened to produce that sort of compiler. With an open community, that sort of thing could get really out of hand.

                    Comment

                    Working...
                    X