Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

October 26 2011

Developer Week in Review: These things always happen in threes

Fall is being coy this year in the Northeast. We've been having on and off spells of very mild, almost summer-like weather over the last few weeks. That trend seems to be finally ending, alas, as there is possible snow forecasted for the weekend in New Hampshire. As the old joke goes, if you don't like the weather here, just wait five minutes.

The fall also brings hunting to the area. The annual moose season just concluded (you need to enter a special lottery to get a moose permit), but deer season is just about to open. My son and I won't be participating this year, but we recently purchased the appropriate tools of the trade, a shotgun to hunt in southern NH (where you can't hunt deer with a rifle) and a Mosin Nagant 91/30 for the rest of the state. The later is probably overkill, but my son saved up his pennies to buy it, being a student of both WWII and all things Soviet. Hopefully, he won't dislocate his shoulder firing it ...

Meanwhile, in the wider world ...

John McCarthy: 1927-2011

It's been a sad month for the computer industry, with the deaths of Steve Jobs and Dennis Ritchie already fact. Less well known, but equally influential, AI pioneer and LISP creator John McCarthy passed away on Sunday. McCarthy was involved in the creation of two of the preeminent AI research facilities in the world, at MIT and Stanford, and he is generally credited with coining the term "artificial intelligence."

LISP has had its periods of popularity, peaking in the 1980s, but it's never been a mainstream language in the way that C, FORTRAN, BASIC or Java was. What people tend to forget is just how old LISP really is. Only FORTRAN, COBOL and ALGOL are older then LISP, which came on the scene in 1958. Many of the concepts we take for granted today, such as closures, first saw light in LISP. It also lives in the hearts of Emacs and AutoCAD, among others, and LISP is the language used in much of the groundbreaking artificial intelligence work.

On a side note, when I first met my wife and told her I was involved in the AI field, she gave me a truly strange look. She had a BA in animal science, you see, and in that field "AI" stands for artificial insemination.

Velocity Europe, being held Nov. 8-9 in Berlin, will bring together the web operations and performance communities for two days of critical training, best practices, and case studies.

Save 20% on registration with the code RADAR20

Someone finally admits the dirty truth about the GPL

If you listen to Richard Stallman, the GPL is all about being a coercive force that will eventually drive all software to be free (as in freedom.) Those of us who watch such things have noticed that it has a paradoxical effect, however. Companies like MySQL (now Oracle) use it the same way that drug dealers offer free samples to new customers. "The first one's free, but you'll be back for more." In other words, they get you hooked by offering a GPL version, but cash in when you want to use their product for commercial purposes because the GPL is too dangerous for most companies.

Now, python developer Zed Shaw has brought the GPL's dirty little secret into the light of day. In a particularly NSFW rant, Shaw explains why he chooses to use the GPL these days. In short, it's because he's sick of developers at companies getting to be heroes by using his stuff and getting the glory. "I use the GPL to keep you honest. You now have to tell your bosses you're using my gear. And it will scare the piss out of them." He goes on to say that he's using the GPL as a stick to force companies to pay him to use his software.

This goes right to the very core of the debate about what free/open software should be about. Is it a tool to make all software free? Is it a way to allow "good" people (i.e., non-commercial users) to have access while punishing "bad" people (professional developers)? Personally, I'm thrilled that Southwest Airlines uses a Java library I created for another client years ago and open sourced, but evidently some people (especially those who aren't getting paid to maintain open-source projects by a day job) want to get paid for their efforts.

I find the logic a bit questionable. I don't see a lot of difference between a free software developer who holds corporate users' feet to the fire and a commercial software developer. Sure, it still allows hobbyists and educational users to use the software for free, but it's actually acting to discourage companies from getting involved in FL/OSS by encouraging the wrong model. When companies use open-source software in their products, they are more likely to contribute back to the project and to open source other non-critical code they produce. If they are paying a developer for it, they are much less likely to contribute back.

The Steve Jobs movie: I predict lots of people walking and talking

With the Steve Jobs biography currently sitting at the top of Amazon's bestseller list, Sony Pictures is wasting no time getting a film adaptation underway. The current buzz is that Aaron Sorkin, creator of the West Wing and winner of the Academy Award for his adaptation of "The Social Network," is on the short list to write the screenplay.

It would be interesting to see how Sorkin would tackle Jobs' story, full and complex as it is. One approach might be to leave out the '80s, already covered to some degree in "Pirates of Silicon Valley," and concentrate instead on his youth and the last 15 years of his life. One can only hope that the technological details are not hopelessly mangled in an attempt to make it accessible.

Got news?

Please send tips and leads here.


June 28 2011

Clojure: Lisp meets Java, with a side of Erlang

ClojureClojure seems to be the hot new language of the moment, attracting both Java developers and hackers who remember Lisp with fond memories. To see what all the buzz was about, I talked to Stuart Sierra (@stuartsierra), a Clojure developer and author of "Practical Clojure." Sierra will be speaking about Clojure in next month's OSCON Java track.

What is Clojure? How does it differ from functional languages like Erlang?

Stuart SierraStuart Sierra: Clojure is a new programming language that runs on the Java Virtual Machine. It's in the Lisp family of languages and it's a general purpose language, but it emphasizes a functional programming style with tools to manage shared state in large multi-threaded programs.

It's similar to Erlang with its emphasis on functional programming, but whereas Erlang is designed for systems distributed across many machines, Clojure focuses on many threads within a single machine. Erlang is trying to solve the very difficult problem of making everything parellelizable across multiple machines. Clojure is doing something different. It's trying to make sure that many threads in the same machine can safely share state.

How similar is Clojure to the syntax of traditional Lisp-like languages?

Stuart Sierra: Clojure is probably a little bit closer to Common Lisp than Scheme in style. It would not be particularly difficult for someone with Lisp experience to pick it up, although they would have to learn about some of the differences in the syntax. Clojure has a little bit more syntax than Common Lisp or Scheme, so it's actually a little easier to read and it has fewer parentheses than Lisp-like languages typically do. We've done examples where we put Java code and the equivalent Clojure code side-by-side and there are the same number or fewer parenthesis in the Clojure code because it's so much shorter.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. (This event is co-located with OSCON.)

Save 20% on registration with the code OS11RAD

Some developers have a visceral negative reaction to Lisp. Why do you think that is?

Stuart Sierra: I think the problem people often have with Lisp is based on first encountering it in an academic setting, and the particular Lisp language they were using was designed for academic purposes. Scheme, in particular, came out of academia, and that focus has often made it more difficult to use for real-world applications. Clojure, on the other hand, is a very pragmatic language. It was designed by a career programmer, Rich Hickey, who wanted to solve real problems that he had with other programming languages. So if you can get over the initial similarities with Lisps that you might have seen before, I think you'll find that Clojure is a very productive language to work with.

Is Clojure being used in large-scale production?

Stuart Sierra: Yes, there are many "success stories" listed on the Clojure website and more on our wiki. I work for a company, Relevance, that does consulting for enterprise software, and we've had several client projects written in Clojure that have been quite successful. It's also been used in production by Akamai, financial companies, big data companies that are doing large data processing, and in a variety of other places.

The Java Virtual Machine (JVM) seems to be the language platform of choice for developing languages. What makes the JVM so attractive, and how does Clojure leverage it?

Stuart Sierra: The JVM makes an excellent platform for language development, and that's why we've seen so many new languages show up. It's actually much better as a target for languages than some lower-level assembly-type languages for the simple reason that it provides a way for all of those different languages to interoperate. So now you can have Clojure code, JRuby code, Scala code and Java code all making use of the same libraries and all calling back and forth to one another. So a Java method call in Clojure looks like a Clojure function call, but you're calling a Java method call by name. That compiles to a normal Java method call that has all of the performance benefits that the JVM can provide. You can define classes in Clojure that will be available to Java programs and accessible to Java programmers through the standard calling conventions that they're used to. All of Clojure's built-in data types implement the standard Java collection interfaces, so they can be passed directly into Java code without changes.

What's the IDE situation for Clojure?

Stuart Sierra: IDE support is evolving. There are plug-ins available now in varying states of sophistication for all of the major IDEs: Eclipse, IntelliJ, NetBeans. A lot of people are also using Emacs or another sophisticated text editor with good support for writing Lisp-like languages.


Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!