windows, personal comments edit

I wrote a couple of days ago about having to re-image my work machine. Got an interesting email from a fellow named David Groves about an application that may be the answer to my issues: HyperOS. Looks like it’s sort of a cross between ghosting and multi-OS booting where you can have several copies/versions of Windows running on one machine and easily back up/switch between them.

I’ve considered running my development environment in a virtual machine but I’ve never wanted to incur that overhead. Even with all the optimizations in the world, with the hardware I’m using the overhead of a VM makes it noticeably slower than running natively and I need more speed, not less. This HyperOS application looks like it gives you the best of all worlds. Maybe I should try it out.

personal comments edit

Perhaps once every six to twelve months I end up flattening my work computer and getting the IT folks to drop a fresh, clean image on it. I install, uninstall, re-install, and generally mess around with the thing, so after a time it really starts running slow and unreliably.

This time, my problem ended up being that I installed Notepad++ (which I’m not linking to so no one falls into the same hole I did). Turns out if you use the menus in Notepad++ to associated document types with it, it deletes the old document type and creates one central type in the registry that it associates with the document extension. So if you associate XML, LOG, CONFIG, and TXT with Notepad++, they all become “Notepad ++ Documents” and if you change one to do something, all of them change.

This is particularly troublesome in the case of “BAT” - batch scripts. I associated “BAT” with Notepad++ and it removed the ability to execute batch scripts because “BAT” became a “Notepad++ Document.” I futzed around with the registry and trying to recover from backup, but it was no use. Time to re-image.

I got the machine re-imaged on Friday at around 2:00p. I was up until 1:45a Saturday re-installing everything that wasn’t included in the image. After final tally, there were over 45 applications, utilities, and other tools I installed. And that didn’t count doing things like checking out the source to all the stuff I have to build.

But, hey, it’s running totally fast now. Hehehehe…

web, css, javascript comments edit

I realize I’m probably the last to get on the boat with this one, but I came across the Yahoo! UI Library this morning and it’s pretty cool stuff. It’s an open-source set of UI components for creating rich web applications. Items I know I’ve had to write that are included:

They have a lot of other neat stuff, too, like menu controls, treeviews, animation libraries… it’s pretty slick. I’m going to have to play around with this and see how it works. It looks promising.

net comments edit

I was talking to Stu this weekend a bit about the recent release of .NET 3.0 and all the things it professes to do. They’ve added some huge features to .NET and they even offer some free online training on it.

But here’s the deal: I do most of my work in .NET 1.1 right now. Financial institutions are slow to adopt new technology and there really wasn’t any super-pressing need to convert to .NET 2.0 when it was released. Granted, we’ll be moving to .NET 2.0 soon and do some work with it for internal tools, but production work still gets done in .NET 1.1.

For the .NET 2.0 stuff, it was pretty easy for me to grasp. They added a few new programming constructs, a few of the things I commonly do in ASP.NET are easier, and the rest of the stuff, for the most part, felt like they just solidified a good existing framework.

For .NET 3.0, it’s a new situation. There are whole gigantic architectural additions that have been added. Windows Presentation Foundation, Windows Workflow Foundation, Windows Communication Foundation… valuable stuff, but not trivial in size. Reading through some of the doc and examples, it doesn’t look like it’s super trivial in implementation in many cases, either.

I know a lot of pretty decent developers, but some fairly key .NET 1.1 concepts still escape them. Databinding is a concept I hear a lot of confusion over. Reflection is another one that stymies folks. Academically, they sort of “get it,” but when the rubber meets the road, it’s still pretty confusing to them.

Which brings us to the question: Is .NET becoming too complicated? Previously these large foundation-style blocks seemed to live as “Application Blocks” that the Pattens and Practices group put out. (Which, in my opinion, many times were far, far more complex than the 80% case will need.) You could fairly safely ignore these huge blocks and still be pretty sure you could write a good .NET app. Now they’re part of the framework, so they’re a lot harder to ignore. Was that a good decision?

Back in college, we wrote some simple Windows apps in C++. As such, I had a peripheral interest in seeing how the various class libraries grew up. I can still read the code I wrote for those apps. It makes sense. Have you written a Windows app in C++ recently? Tried to read the code for it?

I’m afraid that’s what’s happening to .NET. New features needed? Sure. I mean, who can question the value of a whole workflow foundation built right into the framework? But the complexity of these things will be such that you’ll have a difficult time finding anyone competent in all of it. Developers will be forced to specialize because there won’t be enough time in the day to keep up with all of the latest developments.

The people I feel afraid for are the developers coming out of school today. Or the developers who will hit the job market five years from now. I’ve been in on .NET from the ground floor, so there’s a lot of background knowledge I take for granted that I’ve gained as I’ve worked in it and been present for these latest developments. I can’t imagine what it will be like coming in at square one right now, trying to write a “Hello World” app in C# and then figuring out where to go from there.

The learning curve is only getting steeper, and it’s just like what happened with C++. They’re great new features, but are they worth it?