- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
It's a 1-to-1 scale map.
I recognize the arrangement of blades of grass near a particular bench in a park in a small town outside Geneva.
Admin
Sounds like how we do business where I work. Rip out the easy to maintain but old (and sometimes hard to add new features to) system and replace it with something that is much slower, impossible to maintain, has a dependency graph like this one, and nobody except the original architect has any idea how to add new features to it. Perfect!
Admin
It's the Angelina Jolie of dependency diagrams: oddly beautiful, but kinda crazy-scary, and I'm sure glad I'm not the one supporting it.
And it's even got little orphans running along the bottom.
Admin
Admin
Because in my experience, Java developers have a tendency to generate a lot of glue on glue code. IntegerFactoryImplementationFactoryGeneratorImplementationInterface.
Admin
Admin
Agreed, bright shiny objects can distract, and yes, there are companies that have more money than sense. But even in those cases, I doubt you'd find that selecting New Technology X was the only driver for moving down a particular path.
Admin
Bigger than the dimension we live in.
Admin
Admin
Admin
Admin
FTFY
Admin
Wow, that is EXACTLY what I thought when I first saw it. I mean, not just "It looks like a map", but "It looks like a map of the Falkland Islands."
(For the Argentine readers, I mean the Isles Malvinas.)
Admin
Maybe he wants to use it as a model for his own next project.
Admin
That's really beautiful. Looks like an artist's impression of trees in the snow, as seen through a light winter mist.
Admin
The graph, as shown in the article, does not allow anyone to truly judge the quality of the code. You cannot judge anything because the classes lack the hierarchical context. Usually in a framework there are layers of classes: at the bottom are basic data structures (say QVector, QList, QString), higher up are various simple primitives that may use those (say graphic primitives, MVC model elements, etc), further on you have things that provide more functionality (widgets, OS interfaces, ...). Higher up you'll have application-specific stuff, and that has a hierarchy of its own that may parallel some of the framework's own hierarchy.
With an autogenerated diagram, where generation was done in the most silly way possible (like in the fine article), you don't know what's where in terms of hierarchy. Thus you cannot judge anything. If you get Qt's class hierarchy into a similarly poorly done diagram, it will look no better, even if it's a fairly well designed framework.
Admin
I think there's a law that every new project proposal must include the words "next generation", "paradigm", "utilize", and "enterprise". Probably several other magic words I'm forgetting.
Admin
Exactly. There is somehow an implicit assumption being made here that more classes = bad. While one shouldn't overdesign, sometimes the clearest, best-factored design for a given system contains more classes, not fewer. Otherwise we'd all be writing procedural code shoved into one gigantic class...
Admin
Admin
Before eclipse we used TextPad. Now, when not using eclipse or whatever tool is appropriate for whatever other stuff I happen to be doing, I use Notepad++. I recommend it.
Was pissing around the other day on a remote server on which I was debugging a large app supplied by a large company. Needed to view a its log file. Only file view tools were Notepad and WordPad. Couldn't view the file while the app was running. WTF!?!? Installed Notepad++ and everything honky dorky.
So WTF haven't MicroShit sorted out their fucking file viewers in the last 25 fucking years?
Admin
Admin
Admin
Oh, and lots of acronyms.
Admin
Paradigm-Shifting-Next-Generation-Zunesis-Driven-Porn-Browsing-As-A-Service-Oriented-Architecture-In-The-Enterprise-Cloud!
Admin
Or are you using trolling-as-a-service?
Admin
Admin
Just great! But does anybody know what tool was used to draw this picture? I'd be happy to try it on one of our projects...
Admin
Admin
I am sure, the generation after "the Next Generation" will seriously question this name choice when they start their next-generation-rewrite.
Admin
Admin
+1 agreed. If you define an interface or abstract class, and 100 things depend upon that interface/abstract class, with this dependency software, it looks like you'd get a big fuzzy ball, like (what looks like a few) of the classes shown.
THE Real WTF is the lack of clarity dependency diagram.
Admin
Admin
Heh... doesn't mean he isn't out there either.
Agreed, but tacking back to my original points, the decision to rewrite isn't necessarily a bad thing, if the app is insufficiently healthy. That measuring stick is different for everyone, but if I heard an app was being gutted, (depending on context) I wouldn't necessarily assume mendacity straight off. Sometimes the rationale can be even more mundane -- we need to spend our budget.
Granted, a bad rewrite can be worse than the devil you know, but then governance, especially over the two-year time frame in this example, is hard.
Admin
so, the number of classes [nc's, or NCC] is over 1700.
like 1701?
enterprizy
Admin
That wasn't my quote, bub, but let it go ...
Admin
That said, I'm going to take the submitter's description of the legacy software as "easy-to-support" to be my evidence that the rewrite was probably unnecessary, regardless of motivation. There's no way for me to know for sure; the submitter's word is the only evidence I have right now.
Admin
I have seen 10,000 line long functions, which is way beyond too much.
I've also seen messes of things so abstracted the code is just a mess of message passing single or double line subs.
Numerous small classes are not better when, in order to understand the whole, you have to hunt down over a dozen to see what is happening. They are a royal pain for debugging, when you have to put print statements (or breakpoints if you like debuggers) across lots of classes to catch errors.
Admin
Admin
Pising on remote servers will cautrize your pising tool, bro!
Admin
Admin
If you have an application written in FORTRAN that functions smooth as you like, easy to use, etc. etc. whose only downsides are: a) The hardware it runs on is obsolete and no longer supported, and there is no appropriate replacement, and b) despite needing minimal ongoing maintenance, you can't find any staff either willing or able to perform this task, then reluctantly you find you have to upgrade.
And let me assure you, that's no laughing matter.
Admin
Given the choice I prefer the former to the latter, because then at least you have a nice meaty refactoring job on your hands which will keep you nice and happily busy for a week or two's lovely overtime, just right at this time of year.
Admin
Admin
Admin
But oh so sad. There's a beautifully written program whose only crime is to be written in a language which is no longer "fashionable", for fucking pissing vb asp microsoft sake.
Admin
Admin
Cool, Can you post full res picture? It will make super geek desktop background!
:)
Admin
This one seriously merits a "featured comment."
That opens up a whole new area of Type Theory. If your hierarchy can be modeled as a fractal, then 1700 classes is a mere bagatelle!
Admin
It looks more like a map of dependencies for the entire star trek franchise. (Was I not supposed to open that can of worms?)
Admin