Archive for April, 2008

The Church of VB.Net

Monday, April 28th, 2008

Anyone that knows me has probably heard a significant rant in the past about how I don’t really perceive to be a programming language that anybody in their right mind would choose to write software in.

I genuinely don’t understand how any rational minded programmer, even a beginner, would look at Visual and look at C#, and think “hey you know, that VB syntax looks great, easy to use!  I’m sold!” and I’ve always believed was a marketing hack that Microsoft practically had to engage in to provide a viable and “friendly” upgrade path to the millions of VB6 users around the world without turning around and saying “you know, VB6 has serves us well, but we dropped the ball on it really, we’re not going to continue evolving the product”.  I mean, effectively they did that, they didn’t actually evolve VB6, they took C# and practically mashed VB syntax over the top of it.  It reeks of a horrible hack.

I really believe they did this just to keep the VB name alive, rather than for any compelling technical reason, when really it’s just an old dog waiting to be put down.

Now you see, the obvious thing is that it’s all the same old CLR underneath it, and as such there isn’t much of a debate about which language is technically “better” or not (and that debate would be half a decade old if it were to exist), VB now lacks some of the more modern .NET3.5 features and is slowly becoming a second class citizen, but fundamentally, in the .NET ecosystem once you get down to the CLR, we’re all equal.

Age old debate, but I was looking around the web for (something unrelated that I can’t even remember now) and stumbled across the web site of a guy who appears to be a competent and knowledgeable developer, yet somehow appears to be preaching the graces of from the rooftops and I genuinely just don’t understand how or why.  I’m all for personal choice in your syntax, but I just don’t understand how some people can be so in love with the illegible chunks spaghetti code that VB and by extension end up becoming.

Obviously coding style is a human issue and not a technical one, and there is no single technical reason that would lead to this outcome, however VB tends to be positioned as a hobbyist language (BASIC does mean something after all) and I think the mind set it encourages is a haphazard one.

I guess marketing really is everything, and people perceive VB to be easier to learn due to its name, I just don’t understand how somebody that can identify a “readable” application from an unmaintainable mess could champion the syntactic bitterness of  I support both sides are valid, as my argument is a largely visual one, but readability and coding patterns make up such a huge part of solid software development and I really feel falls short “visually”.

As a bit of a footnote, I also stumbled across an old Coding Horror post from back in 2004 in this context where Jeff Atwood was stating that he always converted applications back down in to  He correctly states that the IDE is the real tool in the .NET ecosystem, so really the debate is down to how well the IDE supports either language, but I’d be curious to hear if he still had such a love for 4 years down the line.



Wednesday, April 23rd, 2008

As a bit of a side note, Nine Inch Nails released a single to radio today (a proper one, with vocals and stuff).  Sounds quite Only-ish to my ears.  Mixed 24 hours ago and it’ll be up for download tomorrow for free.  Which is quite nice.

I’m not sure if it’s promoting Ghosts or promoting the new “2 Weeks!” countdown on  New album?  New “song based” EPs? 

I was going to launch into another huge post about the Internet as a platform and browser centric development (and the current huge problems in it) but I’ll save that for another day, I don’t quite have the energy.


Tuesday, April 22nd, 2008

So every now and again over the last, probably six or so months, me and Steven have sat and had “heated debates” about Sharepoint (apparently now re-branded “Microsoft Office Sharepoint Server” in its 2007 incarnation).

I guess our perspectives on it were pretty straight forward, my angle was “Sharepoint is rubbish, it’s a glorified wiki hammed together with a document management system which costs lots of money”, and his (to brutally summarise) was “Sharepoint is fantastic, it’s an average wiki but that isn’t the point”.  Well, I think I’ve actually been wooed by Microsoft’s monolith.

I guess the bad before the good.  The last time I tried out Sharepoint was with the 2003 version, which was a nightmare to setup, and as I recall, I abandoned the idea and used the considerably more free mediawiki.  I found Sharepoint clunky, overcomplicated and hardware intensive.

Today I installed MOSS 2007 and had a slight different experience.  To start with, the “basic” non-clustered installation was an absolute dream.  It was practically a three click installation (as long as you have ASP.NET 2.0 already registered in IIS and don’t attempt to install from remotely mounted media, if you do you get the wonderful message “The installation has failed.” after the second click.  Informative!) and I had it up and running with a sample data set using an SQL Express database that was created for me.  Having spent a good deal of time writing MSI installers and configuration tools recently I was pretty happy at this install.

Complaint number one dealt with, so the clunky feel it had then?  Well, to an extent it’s still there, but the interface feels like it’s had a good round of polish applied in the last revision and it all seems to flow a little better.  I guess the whole ethos behind Sharepoint is custom access levels and delegation of responsibility for mini-sites down to various business stakeholders and department members, so it feels a little configuration heavy.  That said, the configuration is reasonably clear (for the life of me I couldn’t work out how to change the site categories, but I didn’t Google it, I was trying a clean room experiment) and the results look very professional.  So so thus far then.  Active directory and exchange integration is very nice, gives everything a nice integrated feel.  Bonus points.

What really grabbed me though, was something Steven was talking about at the weekend, he didn’t go into much detail but I presume he was telling me about Excel services.  As a concept, this idea sold me to Sharepoint instantly.

Anyone working in the technology or development department of an SME that’s evolved over time without a clear data direction or strategy will be all too familiar with the “random excel document that makes department X work” and just how painful as an IT professional it is to just have to live with it.  I’ve seen Excel sheets full of private data, I’ve seen excel sheets used as bug tracking systems, accounting systems, excel sheets passed back and forth in emails with data that could be summarised in one or two lines, I’ve seen excel used as a programming language.  Horrible.

Well, Excel services offers you a version controlled repository to host these “business critical” excel spreadsheets in.  Sure it’s not a real database, but when you don’t have the development time to replace every off-the-side-of-the-desk spreadsheet with a formal data storage technique and set of reports, it’s a case of making everything “slightly less evil”.  Excel services allows the data to be viewed from the Sharepoint portal, watched, reported on, monitored via RSS, alerted on via email and feature in reporting KPI’s and dashboards.  It’s still a horrible little excel document underneath, but you know who controls it, and you can programmatically interact with it without fear that somebody is going to damage that data source irrecoverably.  Moreover, I’m imagining excel services as a wonderful half way house to get some of those development jobs done that really don’t need development effort.  It’d be lovely to rationalise the chaotic data design of a disparate business, but when you don’t have the time, having the ability to formalise a way of viewing that data in a medium that can later be transparently replaced seems like a killer business advantage in the medium term.  When you combine all this with the fact that people in other departments will then have visibility of these previously mystical data stores, the argument for implementing Sharepoint gets stronger.

So I like the integration perks, I like the fact that it seems to work with Microsoft CRM (I keep seeing links and things crop up, I’ve not looked in detail), I like that it’s ASP.NET and you can host Windows workflow in it, I like the unified SME intranet experience and the delegation of responsibilities.  Amusingly, however, the wiki implementation in the box is quite poor.  We’ve been using the excellent Screwturn wiki project in my development department for our documentation and whilst we don’t stretch Screwturns functionality, I think Microsoft’s dumbed down wiki implementation is a little… well… dumb.  It’s an odd HTML-FrontPage-Wiki hybrid that doesn’t sit well.  That said, it’s useable and I doubt I’d loose too much sleep over using an inferior wiki when benefiting from everything else.  I’ve seen mention of third party wiki web parts which might well be the solution to this issue.

Unfortunately Sharepoint is very expensive.  I can’t find any really accurate pricing online as it obviously depends heavily on your hardware setup and server infrastructure (clustered or not, SQL Server and OS licenses, Enterprise or Standard edition…) but the basic ballpark figure I’ve seen crop up a few times is about 25,000 without development effort or professional services ($50.000 or so to any Americans).  Considering Screwturn is a free open source .NET based project that’s served me brilliantly, I can’t exactly recommend Sharepoint as a wiki solution if all you need is the most basic of collaboration platforms.  I’d choose Screwturn over it for pure wiki’ing anyday.  However the other benefits finally seem quite tangible to me, it’s expensive but it might just be worth it.  I think you’d do well to have a development department to set it up and deal with any “small” development tasks or some specialist consultants however, as I’d imagine if your IT staff only operate in their comfort zone the configuration could give them a bit of a heart attack.

I guess Steven was right, Sharepoint isn’t shit.  It’s just expensive and doesn’t wiki too well!  Shame really, wiki’ing is near the definitive way to construct requirements for, and document, software.  I just don’t quite see it a bronze bullet yet.

Now Playing: nine inch nails – discipline

Ashes Divide samples appear online

Wednesday, April 2nd, 2008

Just a quick note really.  As you may or may not be aware, I really, really like A Perfect Circle.  Whilst everyone was waiting for a new Tool album, Mer De Noms really appeared out of nowhere and became, at least to me, one of the most unique albums of its time.

Billy Howerdell, founder / main writer behind A Perfect Circle is working on a new project at the moment called Ashes Divide.  Horrible horrible name.  The music however?  A Perfect Circle without Maynard James Keenan.  Billy performs vocals, guitar and bass on the debut CD “Keep Telling Myself It’s Alright” and “checking to see if the album has appeared on the Internet” is rapidly becoming my favourite hobby at the moment in the run up to it’s April 8th release.  Suffice to say, I have a very large amount of anticipation and faith riding on this CD being something worthwhile.

The first single “The Stone” was released to radio a month or two ago, actually being a re-mastered and re-paced version of an early APC demo known as “Army”, with some lyrics added and the tone lightened ever so slightly.  Happy rock this is not, but while a little different in tone to the darker demo it’s a good, excellently produced lead single.  That said, today samples of the entire album appeared on amazon and thankfully I’m still just as excited as I was.  Really reminds me of Mer De Noms, and if it’s anywhere near as good it’ll probably be the best thing you’ll hear this year.

A Perfect Circle – The Hollow (Live on Letterman)

Ashes Divide – The Stone (the link refuses to embed)