Nothing like having the raw power of a great language at your disposal, right? Toss a pile of awesome libraries into the mix and you can do just about anything. Even Microsoft couldn’t deny it, so when they came up with the .NET Framework, they built up a bunch of .NET classes to let you avoid having to reinvent the wheel. “See?” they said. “Who needs Perl and Java and Python and PHP? You have .NET now! Feel the thunder!”
Great, except that The Thunder locks you into MSThunder(tm) whenever it can. I’ve been researching image formats for an hour, looking for one native .NET library that can save an image as a vector graphics file not encoded into an opaque, binary format. If you know Microsoft, you know I haven’t had much luck. There are some n ice formats out there that can handle this, of course. Scalable Vector Graphics (SVG) and Vector Markup Language (VML) are two I’d like to use, but no such luck. At least not until .NET 3.5, which my company will not move to so I can do a useful diff on two printed reports for an test automation.
What I am given are Windows Metafile Format (wmf) and Extended Metafile Format (emf), both encoded in shockingly opaque binary. I’d like to use them. I would. It’s a native format, and while I don’t like Windows native formats, I’m lazy. But both formats are big lumps of unreadable junk. Was an open format such a threat to Microsoft’s vast image format hegemony that they had to save it in a useless format? Because we all know what an industry standard the Windows Metafile Format is.
This is something that should be easy. This is a problem that should be solved. It’s not. And if it were any other development comminity, someone else would have solved it and released the library under an open license. Only no one does that for .NET, for a bunch of reasons stemming from crap like Microsoft’s unusable binary file formats. Microsoft won’t play nice with anyone, so no one plays nice with them. If I want a library for .NET to save in SVG or VML, I’ll have to pay for it. All because Microsoft is trying to win a war that shouldn’t be fought, and producing junk development tools that lock you into their badly thought-out framework.
I’m sure there’s a way of doing this, and it’s probably not as hard as I think it is. But this is the kind of junk that makes programming no fun. And just like the other programmers out there, whatever interst I’d have in solving this problem and releasing it to the community is killed by Microsoft’s general attitude.
Screw it. I’m going to try again on Monday.