Fresh on the heals of the CAB debate comes Acropolis.
Ayende has posted about it, as have a few other people. Here’s my take (in homage to Dream Theater, who released a new album this week, this post will be broken down into multiple movements).
Part I: Annoyance
Initially I was annoyed. Only slightly, but still annoyed. After all, as Ayende points out here, Frameworks require a higher adoption cost. We’ve invested in CAB; it would be annoying if Microsoft came out with something that competed against it.
But then I read Glenn Block’s excellent post about Acropolis. Acropolis is a WPF Framework. We’re not developing for WPF, we’re developing for WinForms. This doesn’t affect us (although I still feel a twinge of pain for the folks who have invested in a WPF adapter for CAB).
And by “affect us” I mean: we don’t have to feel an annoying itch in the back of our heads that causes us to sit down and research the technology to determine if it’s worthwhile for us to switch to it, or continue down our current path. This is perhaps the most annoying thing about what we do as developers: we invest in technology to solve our problems, and no sooner do we feel like we finally have the reigns of a giant dragon firmly in our grasp, the monster under our control, then it rears up, throws us off and spews fire, turning us into an ashen corpse. We’re bombarded with new widgets, gizmos, gadgets and things every day. Like Rocky says, it’s a bit overwhelming at times, especially when what you’re really trying to do every day is address business concerns.
Part II: Indifference
My second reaction after reading the Acropolis descriptions and blog posts was: I don’t really care.
Like Ayende, I don’t have a fondness for tools that mask XML as a programming language.
Sidebar.Start() Several years ago someone asked me what I thought of this “XML thing”. It was in conjunction with another question, which was, “How would you make the web experience more like a desktop experience?” My answer to the latter question was, “I’d rewrite browsers so they interpret real code (not just Javascript) so that we programmers can actually write useful apps with a browser as our application shell.” Then XML landed along with XAML and instantly we all saw that the opposite was happening: desktops were going to be more like browsers, and we’d all end up writing markup. I wanted to puke. Such is life. Sidebar.End()
I read on some blog comments that people already see Acropolis as an attempt at a .NET RAD tool. I’m not sure if that’s an accurate or fair comparison (I simply don’t know enough about it yet), but to me it seems a lot more like trying to VisualBasic-ize .NET and application development.
One of the most popular questions that aspiring programmers ask is always, “What language should I learn first?” And my answer to that is almost always, “Anything except VB”. I just feel like it hides too many details, and as a beginner you have to learn the details first. You’ve got to know what’s going on underneath the hood before you can be a racing crew chief. My concern with Acropolis is that it’s attempting to create a cookie-cutter solution to something that can’t be solved with cookie cutters. Are application developers going to end up making bad choices because of a tool that allows them to drag and drop an enterprise application?
Part III: Intrigue
On the one hand, I like the idea of evolving tools. I said as much last week. I like the idea of something like Acropolis, because maybe it’s a step in the evolutionary chain. Maybe it’s one tiny step closer toward Star Trek, where I can start worrying about more high level concerns.
I imagine a future where developers don’t have to spend their time writing skeletal code or wiring up events; where we can just tell the computer “hey, when the user clicks this button I expect X, Y and Z to happen.” And under the covers I expect proven patterns, practices and programming constructs to handle the code in a way that developer could instantly understand if they were to open up the guts to it and look. Just like I can look at a coworker’s code and know what’s going on, I’d expect to be able to look at any code generated by an abstraction layer and understand what’s going on.
But am I going to understand the XML spaghetti that Acropolis spits out? Hell, every time I run across an XML feed from Google instead of an actual web page I hit the back button as fast as if the offending image were capable of giving me rabies.
I just really don’t like writing code without code. It seems like there’s a whole mess of problems that could crop up. At least with a real programming language I have one degree of security: the compiler. At least there’s one checkpoint it has to get through; one test it has to pass before it gets to my unit tests.
Part IV: Acceptance
Acropolis is here; what does it do for me? The only thing I’m really concerned about is our current project, and as such the only thing I really care about is CAB. Does Acropolis affect us in any way? No.
As Glenn Block said, there are no plans for any more SCSF released. There’s no more new CAB. But that doesn’t really bother me for two reasons:
- CAB is pretty stable. It’s two year’s old. We feel like we have a pretty good grasp on it; we’ve invested the time and effort; we’re married to it. CAB might not be the best wife – she might frown when we watch too many sports events, or pitch a fit when we forget to take out the garbage – but she’s good enough.
- Glenn and Co. started the SCSF Contrib site, so people who are married to CAB, like us, can contribute to the CAB and extend it. If the CAB is important to people then it should continue to see people downloading it, using it, asking questions about it and extending it.
There’s nothing really missing from the CAB from our perspective. It’s a Framework that does what we need it to do. Anything it doesn’t do we can accomplish through other means (and as previously debated, some folks feel it does too much already). We can extend it where we need to; we can get stuff done. So not seeing any more updates from SCSF doesn’t bother me at all. I’m fine with that.
The other thing is this: we’re currently running Windows XP on all our workstations. There’s no imminent upgrade where I work and I suspect this is the situation for a lot of businesses. If all our workstations were Vista then maybe I’d have some research to do and a decision to make, but I don’t.
Part V: Closure
Acropolis might end up being a great Framework with some really neat tools to implement it with. Then again it might be XML Hell. I don’t know. But I’ll say this: I don’t think anyone currently using the CAB should feel one bit bad about this. If you’ve invested in the CAB and feel like it’s giving you what you need, then keep using it. That’s what we’re doing.
If/When Vista becomes the primary desktop in our environment and we feel the need to start developing in WPF, then we’ll do what we always do: research the available options, ask people’s opinions, and make a decision. But for us that time hasn’t come.
sklett says:
Chris, I agree with most points, but the main issue that bothers me is the community and user base shrinking. I think CAB is still young enough and hasn’t experienced wide spread adoption to the point where the user base will continue to support it.
I don’t mean to be negative. I rely heavily on the discussion forums (as you all have noticed
to work out problems, get advice and share ideas. I’m the only developer in my company and I don’t have any other resources to bounce ideas, get help, etc. – if the activity and involvement by users begins to diminish it will make things harder for me and make me feel that I’m holding onto something old and deprecated.
I hope you are correct and that people continue to use it, I really do.
With all that said, will you please answer my damn “Actions” post already! :0)
June 7, 2007, 8:11 amSavij says:
Chris,
Nice article! I kind of agree with the above poster. I don’t see CAB making it in the long haul. I’m glad it’s here now, as it’s solved lots of problems for me, and I plan on continuing to use it, but it’s already two years old and is a dead end technology. I have already found things in CAB that bug the hell out of me, but overall it fits right now. I don’t think the adoption rate is going to increase any time soon. If P&P gave up on it’s development, I think we eventually will as well.
Thanks again for a good article!
-Savij
http://www.savij.com
P.S. the above blog has some good CAB articles and fixes – Enjoy!
June 7, 2007, 10:34 amjtenney says:
I agree with sklett’s point about CAB’s strength is in the sense of community behind it. I too am the only developer that has invested in CAB at our workplace. I chose it primarily for a clean way of composing multiple application modules and I’d say it’s cost me about 2-3 weeks of schedule dedicated to the ramp-up on the infrastructure. I’m finally at a point where I’m working on my business modules almost exclusively and I can say I’m comfortable with CAB/SCSF and portions of EntLib.
The additional point I’ll make is that I learned a lot about patterns and practices in the last month thanks to you and other experts on the SCSF forum/blogs as well as the CAB/SCSF/EntLib source code, documentation and examples. Based upon what little I’ve seen from Acropolis, I doubt if my development skills would benefit the same way.
June 7, 2007, 10:50 amSteve says:
Good post Chris, you are spot on.. CAB/SCSF are already both stable and well done guidance frameworks and no doubt they will still be useful long after the fanfare dies down. Besides, it is open source, and as you point out, the real value lies in learning the patterns and not just learning the framework.
Thanks alot for all the great examples you have posted thus far, some of your posts really helped boost my understanding when I was just starting out.
June 8, 2007, 2:41 pmAcropolis, CAB, WPF, and the future - Fear and Loathing says:
[...] Acropolis, CAB, WPF, and the future “Acropolis, the future of Smart Client” So sayeth Glenn Block, product lead for the Smart Client Software Factory [...]
June 11, 2007, 12:03 pmAaron Feng says:
I also find it mildly annoying because we all have invested time into it. As long as CAB is still doing the job, I don’t see the reason for changing it. After all, we are trying to provide business value.
June 21, 2007, 8:16 pm