Yegge, Clojure, and Arc
blog.fogus.me
blog.fogus.me
Imagine how ridiculous this was to read while taking a break from working on HN, surrounded by windows full of Arc source I was in the middle of editing.
A lot of people seem to feel that a language isn't real unless the designer is talking to them every day. But that's not the only way languages happen. Nor possibly the best way. I feel like you get better ideas if you think in units of occasional essays rather than a stream of tweets. It seems likely the same will be true with language design.
The point of footnotes is that their content is not worth interrupting the flow of the main text. It should be safe for the reader to leave them for later, or skip them altogether.
There are comments to this effect in the blog's site too, and the author felt the need for the footnote. Thus, it's not just HN bias.
That's laughable. The JVM will play as big a role in 2109 as horse-drawn carriages do today. Clojure doesn't even try to be a 100 year language.
More and more, I'm getting the feeling that wondering what kind of language we'll use in 100 years is kind of like people a century ago ago wondering what breed of horse people will ride today.
These two languages are "still actively used" in very different senses. The mathematical idea at the heart of Lisp is still around, but those don't time out. And Fortran is alive in the sense that there is something called Fortran, but it probably has less in common with Fortran I than with other more recent languages.
http://www.paulgraham.com/history.html
If Java survives till 2109, it would probably be in the latter sense. Curiously enough, the fact that it is so popular in big, hidebound industries tends to make that likelier. It's tomorrow's legacy software.
2019's only 10 years away though, and 10 years is relatively short in programming language terms. 10 years ago, the languages commonly used in industry were C++, Java, VB, Perl, and PHP. Today, substitute various ECMAScript variants for VB and Python/Ruby for PHP & Perl, but it's basically the same.
I suspect you're right on Java surviving as a legacy language.
While I'm not sure (and really don't care) if Java or the JVM will survive for an extended period of time, I do find it interesting to note that programming languages seem to be comparatively resilient to change relative to everything else in computing. While the FORTRAN in that photo looks odd, it's still a comparatively small gap between it and FORTRAN from 40 years later than if we were to compare the operating systems, applications or user interfaces from similar time spans. I can still figure out what it's supposed to do. I'd be completely lost if you put me on a batch terminal or a VAX/VMS prompt.
The last really transformational idea in programming languages hit the world the same year I was born -- in 1980 -- with Smalltalk. There are a lot of variations on the themes of functional, imperative, and object oriented languages, and I expect new metaphors will evolve, but it's interesting seeing that really, now for at least the last almost 30 years, we've basically been remixing ideas.
And that's where I'd revisit Java for a moment -- perhaps the only transformational change that it brought to the table was the use of a formalized VM in a widely popular language. Even if Java's VM doesn't survive, I'm pretty sure that's a notion that we'll still have in programming environments for many decades out.
Edit: it's an interesting enough question that I posted it separately: http://news.ycombinator.com/item?id=470927.
I expect the CPU architecture landscape to change most radically as the lines become indistinguishably blurry between telephones, computers and entertainment consoles.
x86 isn't Intel's highest volume ISA by a couple of orders of magnitude - 8051 is.
I suspect that x86 is behind several other microcontrollers.
Suffice to say, over the last 2-3 years I've seen a lot less of the "let's build a large J2EE project". There are also a lot of large Java platforms out there (e.g. Internet Banking platforms) that are no longer under active development - maintenance and feature enhancements only.
Organisations that once had large Java engineering rooms seem to be breaking them up.
The biggest influence is outsourcing and offshoring. To an extend, big corporates don't really care about the underlying tech - they outsource to (say) Infosys and it's up to them how they actually implement it... and as a result, this varies greatly. The big outsourcers are still dominated by Java and C# (which C# gaining ground). The smaller vendors are much more varied, with Ruby and Python starting to feature a lot.
In terms of new technology, there is a focus on things like Process Automation, Business Rules Engines, etc. I worked on a large imaging/workflow project recently that was almost entirely Ajax + Process Engine + Business Rules Engine.... (Admittedly, Java did underpin most of these components).
Clojure, Scala, Groovy, JRuby, JPython etc all are moving in interesting directions and Java is too mired in backwards compatibility and politics to do anything truly interesting.
Java the language is very much closer to legacy then it is to innovation for sure.
Much like the average college essay or, dare I say it, mass media story.
The central point, even if not popular here, seems valid:
Arc seemed like it might be the Lisp family's answer to developing web apps, but didn't hit the ground with quite the maturity that some were hoping, and now it's looking like Clojure is emerging as an interesting leader in that world.
Paul of course might have some more Arc-iness coming down the pipe, but having played with and read some of the source of both Arc and Clojure, as of the currently available releases, Clojure feels like it's less rough around the edges.
"Adding powerful namespacing coupled with the fact that it’s built on top of the JVM dispels the questions and gripes aimed at Arc from the start."
That's the real meat. The rest is mostly anecdotes and humor, but it's cute writing.
Being built on top the JVM gives you access to libraries - is this the meat? If so, I think most people already knew that. I think the "Ipso Facto therefore Clojure will be the 100 year language, not Arc" is a bit of a leap given all that.
I don't think the Author needs to justify anything - I don't need to agree with him - I'm just saying I got no real content out of this article.
You're right, probably taking it too seriously, but I'm of the view that even something lighthearted has to have some content (in fact, that's where humour is at it's peak).
I just couldn't resist the opportunity to by cynical about the media... sorry about that!
So here's to trying.
Still, I'll admit that only time will tell. Both languages are still quite young, and it is hardly uncommon for languages to develop slowly in obscurity before rising to prominence. Maybe it will gain traction, maybe it won't, but either way I think we will benefit from the increase in competition and the ideas that are generated in its creation.
[Edit: and nobody forbids me from using clojure, which is a great way to deal with tones both nice libraries and legacy applications.]