No Fluff Just Stuff Tampa — Day Three
Originally posted 2010-04-19 15:44:08
I started the day plopping down for breakfast at the same table with Nate Schutta and chatting him up about various technology questions and issues. I then went to his talk: jQuery: Ajax Made Easy. I think I would have chosen a different title for the talk — something like jQuery: An Overview, with Some Comparisons to Other JavaScript Libraries. It was a good talk, though, and stressed the importance of using a library. The only way to do JavaScript \”wrong,\” he said, is not to use a library. He talked about the paradox of choice that all the JavaScript libraries puts us in, and explained why jQuery is a great choice. Here are some other highlights:
- They kept track of how much effort IE6 compatibility cost them on a project: 20%. I take this to mean that the project would have completed 20% sooner if they hadn’t had to support IE6. They also had to reduce the feature set.
- jQuery makes UI effects easy, but proceed with caution. Just because you can doesn’t mean you should. <blink>, anyone? UI effects are the seasoning, not the entree.
- People have traditionally learned JavaScript through google –> cut –> paste. This is a bad way to learn a language.
- Lazy programmers are better programmers because they don’t write everything from scratch.
- JS libraries have \”flavors\”: Prototype has a Ruby programming flavor, whereas jQuery has a web designer flavor.
- jQuery does CSS selectors the best.
- Always follow the principle of least surprise.
I then went to Jeff Brown’s Compile Time and Runtime Metaprogramming with Groovy. Loved it. I didn’t take a lot of notes — I was too busy typing in the code as he wrote it to help me learn this stuff better. He went through metaClass and methodMissing and @Delegate and I don’t remember what else. He pointed out the flexibility and power of the JVM to support all this metaprogramming. It was really neat and compelling stuff.
I then went to Ken Sipe’s Enter the Gradle. Build technologies always interest me, and Ant (which we currently use) is showing its age. I’ve looked into Maven enough to figure out that while everyone loves it conceptually, only some love it in practice. I’m on the side of not loving it in practice (from what little practice I have with it). In my naivete, Gradle reminds me of Rake (which is praise indeed), and I’m happy to see the build file done in code, not XML. I’m happy to see most anything not in XML.
The final session I went to was Pratik Patel’s Easy Mobile Development Without Native Code. I incorrectly assumed it was about mobile optimization of websites — yes, I know what happens when you assume — but it was still very interesting. It was about technologies that allow you to write these apps in HTML, CSS, and JavaScript (at this point you’re probably assuming it’s about mobile optimization of websites, too!), but the HTML, CSS, and JavaScript are deployed to the device, not served by a web server. The presentation covered three options:
With the fuss around the recent changes to Apple’s 3.3.1 policy, people feel a little leery about using these non-Objective-C technologies, but their sites assure us that they’re Apple-approved. During the talk I downloaded PhoneGap, built and installed it, created an app, and ran the app in the iPhone simulator. By golly, it worked! Not sure how much I’ll pursue this, but good to know.
NFJS puts on a terrific show. The speakers are terrific, the food is good and plentiful, and the technologies are timely. The themes I took from the conference are:
- Java as a platform — the JVM — is sound and viable.
- Java as a language is slipping in its ability to address today’s problems.
- Object-oriented programming is slipping in its ability to address today’s problems.
- The future includes large data sets and multiple cores.
- Functional languages, dynamic or otherwise, address the problems of today and the future.
As long as they keep the vendors out and the talent in, they’ve got a winning formula. Can’t wait for next year’s NFJS!