Sponsored Link •
A collection of miscellaneous observations and my "Best Of" awards.
As Anil Hemrajani noted, Rails configuration files are actually ruby files. They even end with a .rb extension. So they can include any code you need to handle dynamic configuration. That's pretty cool.
Ruby is nice because (as Anil also noted) the same language can be used either for a serious OO application or for a simple script. That makes one language to learn, with many possible applications.
But that dual-use capability is rapidly becoming the only reason left for preferring Ruby over Scala. There was the ability to create DSLs, but Scala seems to be all over that one with functional composition. And the real killer app was Rails, but the Scala's Lift framework looks like serious competition on that front. (See the resources.) That leaves my favorite build language, Rake. And the ability to write simple scripts. And of course, there is the small matter of dynamic typing. But do I really need that, if the language is as flexible as Scala?
The award for Loudest Applause at a non-keynote session goes to Todd Fast, from Sun. His talk centered on the long tail of user-constructed applications. But that summary doesn't do justice to the masterful way he deconstructed the space. The main points were:
Platforms like FaceBook, MySpace, Ning, and Meebo provide high levels of abstraction in their application models, making it easy for non-programmers to do stuff.
OpenSocial provides a common API people can use to write such applications
Social networking applications grow virally. Your friends use it. They tell their friends...
An application can take off very fast--to the tune of 250 thousand users a day. And they can drop off just as rapidly, as people turn their attention to other things. So maybe "disposable apps" are the wave of the future (eventually).
20% of earth's population is on the web today. Approximately a seventh of them are doing social networking. So the potential is huge.
Clay Shirke identified the Cognitive surplus that will likely produce the long tail apps. That surplus is pretty huge, when you consider that approximately 100 million hours of human thought went in Wikipedia, but 200 billion hours are spent watching TV every year--that's the equivalent of 2,000 wikipedia projects per year. Given a proliferation of higher-level application models that anyone can use, there is the potential for explosive growth in the application domain.
Another really good session was given by Dean Allemang, author of Semantic Web for the Working Ontologist. (See Resources.) It was the best explanation I've seen yet of RDF and its potential applications. The key points:
RDF is basically subject/predicate/object -- like a basic sentence, where the predicate is the verb that links the subject and the object.
In the semantic web, the subjects are URIs.
In effect, each triplet identifies a cell in a gigantic table.
The cells are joined by subject-URIs to create "rows". (They could conceivably be jointed by joined by predicates to create "columns", as well.)
OWL equivalences can be used to map locally-desirable nomenclature into a common ontology. (The Dublin Core is a standard ontology that was created to catalog library contents. One of the 15 standard items it defines is "creator". The namespace is "dc", so "dc:creator" specifies that entry in their ontology. Using OWL equivalences it becomes possible to map book:author and play:playwright to dc:creator--so the common meaning is identified while separate terminology is maintained.
That's a really big point. As Allemang pointed out, the idea is not to somehow get everyone to agree on one big giant vocabulary. (Good luck.) Instead, The idea is be able to identify the vocabulary someone is using, map terms that mean the same thing and distinguish terms that mean something different. Namespaces do the distinguishing, and equivalences allow for mapping.
Once the mappings are defined, it becomes possible to do searches and interesting mashups--all of which help to enable "long tail" applications.
The award for Best Service goes to the entire staff of the Moscone Convention Center, who were unfailingly as helpful as they could possibly be.
The award for Best Swag goes to Oracle, who gave out tickets to see IronMan. (A fact I discovered only just too late!) They even included coupons for drinks and snacks.
The award for Coldest Venue for a rock concert goes to Yerba Buena Gardens, where SmashMouth gave a show for a freezing conference crowd. (There should have been more dancing, so we could stay warm!)
The award for Best New Technology may just have to go to Scala. Although it's not exactly new, it certainly provides the majority of features that are near and dear to a Rubyist's heart. Then there is its static typing, which does eliminate a whole class of runtime errors, while also making it easier to write a refactoring IDE. And mostly, I get the idea that things just seem to work. I'll have to join the Scala list to confirm that one. (You can get an amazing sense of things by lurking for a week or so.) If it's as solid as it appears to be, and Lift is as cool as it looks, it just may take home the award.
Well, that's all for this year. See you again in 2009!
Have an opinion? Be the first to post a comment about this weblog entry.
|Eric Armstrong has been programming and writing professionally since before there were personal computers. His production experience includes artificial intelligence (AI) programs, system libraries, real-time programs, and business applications in a variety of languages. He works as a writer and software consultant in the San Francisco Bay Area. He wrote The JBuilder2 Bible and authored the Java/XML programming tutorial available at http://java.sun.com. Eric is also involved in efforts to design knowledge-based collaboration systems.|