1. 5
  1.  

  2. 2

    Would you crowd source design of an everyday object? Reaching a quorum means having an average solution, pretty much by definition. I think that languages should be designed by a small group of people, which ensures a strong vision and consistency. It’s interesting, though, to see a radically different approach being explored.

    1. 2

      So in this case, from what I’ve seen, they’re not so much having an average design, so much as verifying that their design choices are actually effectively understood, and changing them if they aren’t. It’s certainly not going to come up with something radical, but it might be an interesting way to make radical ideas more easy to understand.

      1. 2

        COBOL, Visual Basic 6, and PHP are the closest things to that where design was for average user. Lots of code was certainly written. The problems the languages brought are inescapable for many due to the legacy code effect. That’s a warning sign to get the foundations right upfront in case your language is successful enough people get stuck with it.

        Also, one can assess what was achieved with prior work using metrics like code conciseness, compile speed, run speed, whether it’s statically analyzable, and so on. Also, prior studies on these comparing languages on productivity and defects. At least one person saying they’re involved in Quorum project rejected that when I brought it up on HN. I’m not sure how far one can get on a good language if not designing for balancing those metrics from the beginning using prior work as a guide. As shown by their studies, they will probably come up with some good evidence on usability or productivity of specific mechanisms, though. That’s the value I see in the project.

        1. 3

          I would say Go is a language designed to be good on average.

          1. 2

            I would say that, more specifically, Go is designed to raise the floor for programmers of a certain type, with no real thought given to raising their ceiling, or for how it would be received by programmers who aren’t C/Python people. Which is fine, of course, and I’m sure some acceptable software will be written with it. But it doesn’t have much appeal otherwise, as far as I’m concerned.

            1. 2

              Rob Pike’s talk From Parallel to Concurrent discusses the target audience for Go.

              The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

              (Edited to name the Go language explicitly)

            2. 2

              It started with Oberon-2 per Pike which is a family of languages designed for educating the masses. They added other stuff to make it more practical and C-like. So, that would make sense.

              1. 1

                I intended to reply to a different comment so I have removed the text that was here.

          2. 1

            I had a friend visit over to learn programming few days ago. That made me finally realize what’s wrong with Quorum.

            I was teaching basics of Java: variables, types, conditionals, constants, methods. I showed the friend how to think about programming by writing a naive Fibonacci function from its definition, discussed properties of the produced code and such. And after few minutes prompted him to do the same exercise with the factorial function.

            I told him to not care about java’s syntax and write down the ideas first. The code he ended up writing was something like:

            static public void factorial() {
                if n = 0 then factorial = 1
                if n = 1 then factorial = 1
                else if n=2 then factorial * factorial - 1
            }
            

            Well.. You see some obvious BASIC influence there. There are other influences of languages commonly used for training people.

            I then helped him by rewriting these concepts to actual Java and left him the recursive part of the code left to figure out on himself. Again discussing what is going on there.

            The problem is that practically there is no human being on the Earth who has not been learning some programming before. If you ask their opinion with A/B tests then they tend to pick patterns that are familiar to them.

            What’s familiar for today’s people is not going to be that for tomorrow people.

            1. 1

              If I understood correctly they tried to design a language according to the research on usuability of existent programming language

              1. 1

                As I understand it, the design effort is ongoing, in that they are still doing studies on different features and the syntax for them.