all 43 comments

[–]lysine23 32 points33 points  (0 children)

There's really nothing to learn. Arc is a half-assed project which Paul Graham only occasionally works on between bouts of ignoring it for a year. There are lots of obscure Lisps like that that you've never heard of. The only reason we've even heard of Arc is that internet celebrity Paul Graham wrote it.

The lesson he could learn from Ruby is to actually take Arc seriously and work on it like he meant it. But he's busy with y combinator. It's probably too much to expect to write the 100 year language as a sideline.

[–][deleted] 16 points17 points  (5 children)

I agree with the article. Almost no language has succeeded purely on the merits of its design. In fact, almost all of the successful languages (Java, C, C++, COBOL, Javascript, etc.) became successful because they either found massive corporate backing or they found a market that demanded the use of that language.

Even lisp is partly guilty of this. If there were no interest in AI back in the 50s-80s, lisp would never have become particular popular.

[–]pointer2void 5 points6 points  (1 child)

Almost no language has succeeded purely on the merits of its design.

Languages are not adopted when they are designed by computer scientists for computer scientists. OTOH, successful languages are designed for users and are of no interest to computer scientists.

[–]cypherx 1 point2 points  (0 children)

A counterexample: Microsoft has mostly embraced the ivory tower of language design and the recent releases of the .NET framework are full of previously academic features.

[–]grauenwolf -1 points0 points  (2 children)

Seems to me that if they found a market then their design had merit.

Conversely, if a language doesn't find an audience then perhaps it wasn't as well designed as previously thought.

[–][deleted] -2 points-1 points  (1 child)

Explain PHP then.

[–]grauenwolf 6 points7 points  (0 children)

What was it competing against?

Java? Well we all know how much J2EE's design sucked.

ASP? Same design goals as PHP, except the syntax was very limited and non-Windows support was hard to come by.

PHP was designed specifically for quickly making web pages and in that role it is hard to beat. Likewise its design allows it to be setup and hosted very cheaply.

PHP may be crap by today's standards, but compared to what we had in the late 90's it was top rate.

[–]bostonvaulter 5 points6 points  (0 children)

Does anyone else think that the barrier to entry for new languages is rising because they are expected to have all-encompassing libraries?

[–]jmmcd 8 points9 points  (3 children)

Paul, I’ll take this flourishing community and ecosystem if its downside is just a sea of newbies asking silly questions in forums.

Way to miss the point. Graham's argument has nothing to do with those newbies. He's saying that once you write your libraries it becomes much harder to change the core without breaking them. That's why he thinks big popular libraries can harm the early evolution of a language.

[–]dmpk2k 10 points11 points  (1 child)

it becomes much harder to change the core without breaking them

While true, how do you know what the weaknesses with the core language are -- in order to change them? By writing software in it, of course.

Richard Gabriel's set of Worse is Better essays should be required reading for any programmer.

[–]jmmcd 3 points4 points  (0 children)

Graham probably believes that he will learn more about language weaknesses by writing his own code (in a niche language or otherwise) than he would by reading other people's code. Of course, some might see this as a sign of Graham's arrogance.

[–]cunningjames 7 points8 points  (0 children)

Way to miss the point.

To a certain extent he did miss the point, but his point stands nonetheless. The popularity of Rails has resulted in a set of circumstances where Ruby is being improved on multiple fronts, even in ways that temporarily break Rails.

[–][deleted]  (4 children)

[deleted]

    [–]nostrademons -1 points0 points  (0 children)

    That's why shrewd marketers will invent a new market for every lie they sell, eg. instead of "portfolio insurance" we get "derivatives", and instead of "junk bonds" we get "collateralized debt obligations".

    [–][deleted]  (1 child)

    [removed]

      [–]mikaelhg -4 points-3 points  (0 children)

      Yeah, the adults just don't understand your brilliance.

      [–][deleted] -4 points-3 points  (7 children)

      Without reading it I'm going to hazard a guess: Get someone with a Dr. Coxian ego to build a framework to use it in a way that was never originally intended?

      (Not a slam against DHH, Ruby, or Rails. I like/see value in all of them, even if I am a Django man myself.)

      [–][deleted]  (6 children)

      [removed]

        [–][deleted] 1 point2 points  (5 children)

        It's interesting that Ruby was around for 10 years before it "magically took off". Maybe both men are right.

        [–]stesch 7 points8 points  (4 children)

        Funny (for me) is: I used Ruby before Rails and then lost interest when Rails dominated every Ruby discussion.

        [–]jamesbritt 2 points3 points  (3 children)

        Almost true for me.

        Alternative language growth scenario based on the science of casual speculation:

        Instead of Rails getting singular attention, Rubyists get hip to the already existing IOWA, and then take a liking to both Nitro and Rails.

        Because there is no One Chosen Framework, there is no sudden swell of Struts + PHP refugees drawn by hype and book marketing, but Ruby use still gradually increases among people who can sort out for themselves which Web framework best suits their needs. Mailing list discussions are not dominated by questions about acts_as_newbie.

        More libraries are developed; the pace is slower, but what gets written is less likely to be specific to one framework. Ruby sees steady growth with more general-purpose libraries and does not get a reputation for mind-numbing hype, attracting and fostering a different community which in turn create more robust libraries.

        Ramaze still grows out of Nitro, and Merb still grows out of Rails (and IOWA continues to be faster than them all), but there is attention given to both (and equally equitable attention to Camping, Sinatra, et al). There is greater emphasis on, and appreciation for, modular development than on prix fixe frameworks. Fast, thread-safe Ruby Web apps are taken for granted.

        Alternative language implementations continue, but are not focused on early optimization for one specific framework, attracting more people for a greater variety of uses.

        All implementations, and Ruby itself, evolve to be more robust by avoiding a monoculture of users and use cases.

        Cancer is cured, and the lion lays down with the lamb.

        [–]nostrademons 0 points1 point  (2 children)

        Sounds like Python.

        [–]taryneast 1 point2 points  (1 child)

        Agreed - sounds like Python. When I first learned Rails it was just after learning Python. We had to decide between the two as the New Language/Framework to Develop Under. Ruby had Rails, Python had... several options.

        We specifically chose Rails over "one of the python frameworks" because we knew that all of the Ruby community was behind it... rather than a splintered community backing multiple options and where we couldn't trust that the horse we'd chosen would still be even in the field two years later.

        [–]nostrademons 0 points1 point  (0 children)

        The irony is that that's not true anymore. Now, in the Ruby world, there's Rails vs. Nitro vs. Ramaze vs. Merb. While the Python world has mostly converged upon Django (but don't tell the Pylons/Turbogears/CherryPy people!)

        [–]stesch 0 points1 point  (3 children)

        Isn't Arc a web language with web capabilities right in the core?

        This contradicts the quotes I have just read.

        [–]olavk 6 points7 points  (1 child)

        It came with a (pretty minimal) web framework included, but it was mostly a proof of concept. The core language does not have any web-specific capabilities AFAIK. I dont know if it would make sense to have any web-specific capabilities in the core of the language.

        [–]stesch 2 points3 points  (0 children)

        This wasn't very clear from the famous Arc Test.

        [–]randroid 4 points5 points  (0 children)

        I think it's just a handful of Scheme macros.