Tech Predictions: 2007 Edition

So, in what's become an ongoing tradition, this is the time of year when I peer into the patented Ted Neward Crystal Ball (TM) (operators are standing by!), see what it tells me about technology trends and ideas for the coming year, and report them to you. The usual disclaimers apply, meaning I'm not getting any sort of endorsement deals to mention anybody's technology here, I'm not speaking for anybody but myself in this, and so on.

Follow-up on the Java Generics post

A number of folks emailed me with comments and ideas following the post on Java5's generics model. In no particular order... John Spurlock wrote, Interesting scenario, I wasn't able to come up with a warning-free solution either - but had some fun trying. I wonder if your compiler of choice makes a difference? I seem to remember Eclipse's JDT compiler having subtle differences from Sun's in regards to edge-case generics/casting scenarios (Sun's being more strict and giving more warnings).

Java5, generics, and "just not quite there"

So an attendee comes up to me at one of the past NFJS shows, with this challenge: The implementation does not know what parametrized Iterable class will be used. The Iterable class will need to know what class it contains. Interfaces are passed to the factory and it calls a lookup to identify (or create) the implementing class. Can this be done without causing a compile warning? // usage: Seq<Item> items = factory.createBean(null, Seq.class, Item.class); // interface: public abstract <T> T getBean(String localName, Class<T> javaClass, Type… typeArguments); // impl: public <T> T createBean(String localName, Class<T> javaClass, Type… typeArguments) { Resource resource = createResource(localName); Collection<STRING> rdfTypes = findRdfTypes(javaClass); for (String rdfType : rdfTypes) { addStatement(resource, RDF.TYPE, createResource(rdfType)); } T bean = rdfBeanFactory.createBean(this, resource, rdfTypes, javaClass); if (typeArguments != null && bean instanceof RdfParameterizedBean) ((RdfParameterizedBean)bean).setActualTypeArguments(typeArguments); return bean; } – Some ideas I have tried.

"What is Java Software?" You'd think they know by now...

While looking to download the Java5 JDK from Sun, I ran across this on the home page of What is Java Software? Java software allows you to run applications called "applets" that are written in the Java programming language. These applets allow you to play online games, chat with people around the world, calculate your mortgage interest, and view images in 3D. Corporations also use applets for intranet applications and e-business solutions.

Blog changes

Because of all the referrer and Trackback/Pingback spam, I’ve had to disable Trackback and Pingback (hopefully just temporarily, at least until I can get my dasBlog upgraded). Dunno if that makes anybody else sad, but I’m bummed at not being able to see peoples’ comments and reactions to my posts. Thus, for the time being, if you respond (positively or negatively) to something I say, and would really like a reaction (again, positive or negative), please either drop me an email or just post a comment here.

Windows Vista has RTM'ed

… which, normally, would be a source of much excitement. So I pull down the Vista bits, fire up VMWare (not that I don’t trust it yet, it’s just that… well.. you know… it is a 1.0 release and all, and besides, I do all my work now in VMWare images, and…), and sort through the whole “Vista doesn’t like the VMWare CD emulation problem” (by mounting the ISO on the host using Daemon-Tools, so that to VMWare it looks like a real DVD).

Java/.NET Interop discussions..

… are currently under way at The ServerSide Interoperability Blog, and at the InfoQ Java/.NET portal. I’ll try to post more on the subject here, but for now, enjoy.

Welcome to Borders' Microsoft Days...

If you're a Microsoftie and you're in the Redmond area this week, swing by the Borders in the Redmond Town Center, where they're having their "Microsoft Days" experience--everything a Microsoftie buys (whether for themselves or for their significant other, hint hint, guys) is 15% off. Why the advertisement? Two reasons: one, because I love supporting the local causes, and two, because I'm going to be there Friday night on a panel discussion with several .NET notables, including Bill Vaughn (the original SQL Server curmudgeon), Harry "I Got Your Architecture Right Here, Baby" Pierson, contributor to the "VB6 Migration Guide" book Keith Pleas, and possibly (if we can drag them out of the p & p "war room") agile afficionados Peter Provost and Brad Wilson.

Kudos to APress...

So I'm in Borders tonight, looking around, and I happen to see one of APress's latest titles, "Practical OCaml". Several things go through my mind at once: WOW. OCaml. A book on OCaml. Not even a "Programming Languages 101" textbook, but a practical one, even. Like, a book, copywrit this year, on OCaml. Gotta buy it--not just because it's another of those Dead Languages I like to explore, but because F# is a dead-ringer for OCaml, and I'm really interested in seeing where we can go with F# these days.

New column goes live

The folks over at MSDN asked me to author a series of articles based around the theme of the "Pragmatic Architecture" talk I've given in a couple of locales recently, and the first article ("Layering") has gone up, along with the introduction to the series. Feedback is, of course, welcome, through either blog comments or through more traditional channels. By the way, here's an interesting challenge for those of you who think you're up for it--who are the two members of "the group" spotted by the author during the intro?