Archive for January, 2008

The pragmatic .NET developer

January 2008 – April 2008 .NET (, , ) • 1,015 views • 10 responses

Long-time friend, fellow co-host of the GSDF and the coding genius behind the open-source Ogre3D engine Steve Streeting has written an interesting piece on Open source adoption; countering the fear and doubt. I have no doubt that this was fuelled by a lengthy discussion last night in the Ship & Crown pub – a common ritual after our GSDF meetings.

The reasons why I adopted .NET as my primary platform despite being tied to a single-supplier are:

  • Ease of deployment & set-up
  • Low resistance to adoption
  • Great tool integration
  • Official & community support
  • Love for C# and the CLR

The ALT.NET movement

Many .NET developers are reluctant to look wider afield but this is not exclusively the case and a person focused on the .NET platform but open to selecting beneficial alternatives to the Microsoft prescription is exactly what the ALT.NET moniker was coined to encapsulate.

SourceForge lists over 6,000 open-source C# projects alone and many well-known open source Java & PHP projects have made their way to the .NET platform. NHibernate, NUnit, NCover, Spring.NET & DotNetNuke alongside new .NET developments such as xUnit.NET, SubSonic, Subtext etc.

Best of breed

Where a non-Microsoft option is functionally superior or more cost effective I will consider it whether it is proprietary or open source.

I do not however select a solution simply because it is considered the “best of breed” at that particular moment. Integration, training, availability of support and experienced developers, deployment, cost, barriers to entry and roadmaps must be taken into account.

Given that Microsoft provide the .NET platform anything ‘in-the-box’ scores highly in many of these areas.

Sometimes a non-Microsoft solution comes out on top or there is a compelling reason to adopt it anyway. This is why my toolkit already contains Subversion, TortoiseSVN, AnkhSVN, Reflector and NUnit.

It’s also why I currently run Mac OS X alongside Vista, use WordPress as my blogging platform, prepare my presentations with KeyNote and use OmniFocus to organise my life.

Robust alternative projects

I have concerns about longevity and support on projects from companies and hobbyists regardless of whether they are open source or proprietary.

NDoc, CVS & NullableTypes are three I’ve used which died when an alternative commercial or open source project gained more momentum and SourceForge is seemingly littered with thousands of dead projects.

If a project you rely upon dies you have one of a number of options:

  1. Migrate to something new (gained little from open source)
  2. Fix bugs and problems yourself (time spent working outside your business domain)
  3. Have a support contract with somebody else to work on it (single-supplier scenario?)

Competition is important

Competition is important but I can not, in a professional capacity, recommend to customers something that I believe is less suitable in the interest of keeping the competition healthy.

Confusion about choice

I hit this one first hand developing my final-year degree project which required development of a web site in Java.

The number of choices for Java was incredibly confusing despite knowing the syntax. J2SE or J2EE? JSP, Struts, Spring or another servlet package? What about the database and ORM? Application server? What versions work together? What overlaps? Would I be able to get experienced developers? If not how long to train them up?

.NET has many options too but I can start with the .NET Framework and get right into solving the domain problem. If the going gets tough I may have taken a wrong turn and need a different solution. That could involve choosing an alternative component or framework but now I’ll know what problem I’m trying to solve when I go looking.

Developers on complex projects felt that WebForms wasn’t ideal – it is hard to maintain, the output bloated with leaky implementation (ViewState) but it serves many developers well enough.

Open-source projects such as MonoRail addressed this taking cues from Ruby on Rails. Microsoft acknowledge this and add a similar MVC framework going so far as to support additional engines and components allowing elements of MonoRail to be used. Those guys could drop the glue required to get their engines into the pipeline and just concentrate on engines if they wish.

What works for me

Stay small and focused until you feel friction.

Friction isn’t always technical or immediately obvious. It might be future plans and it’s often people. It might be what isn’t there and will never be.

Time lost on friction is not spent developing your domains features.

If another solution causes less friction, use it but don’t underestimate unknowns.

I guess that’s just being pragmatic.

[)amien

Language Integrated Query: An introduction presentation online

January 2008 – May 2008 .NET, Guernsey (, , , , ) • 728 views • no response

This evening’s presentation on Language Integrated Query (LINQ) is now available from my presentations page.

The event went well with 12 developers (it’s a small island) and took a less time to produce because I didn’t write a script for but slides to lead us through areas I wanted to cover.

This means the on-line presentation is of less useful than previous ones however I am pondering the transcript/audio-track option (in my best radio voice of course).

We are now considering topics for February and with something a bit special for March.

Stay tuned!

[)amien

Language Integrated Query: An introduction talk tomorrow

January 2008 – March 2008 .NET, Guernsey (, , , ) • 791 views • no response

I’m just finishing up the slides, notes and writing code samples for my LINQ presentation at the Guernsey Software Developer Forum tomorrow evening.

Hopefully the broader scope of this presentation will mean a few new faces – the previous talks on Subversion and web application security might have been a little specific for a such a small audience (Guernsey is around 70,000 people on an island 9 miles long).

As always I will put the presentation up here afterwards but will also revise the older ones with the new style and put up both PowerPoint and Keynote versions under an open licence as well as a couple of cheat sheets.

Is there any interest in adding audio narration and transcripts?

This presentation is now available on-line.

[)amien

What being open means to Apple & Microsoft

January 2008 Apple, Microsoft (, , , ) • 951 views • 2 responses

Apple

Former Apple engineer Jens Alfke believes Apple’s external image has been polished until featureless. The restrictive staff blogging policies, the veil of secrecy around future plans and a carefully orchestrated three-person spokes-team of Jobs, Schiller and Ive lead to a very impersonal closed business.

It certainly wasn’t always this way. The original Mac team appeared in Rolling Stone magazine with credit in about boxes, a practice that was continued at NeXT but abolished by Mac OS X Beta. Jobs makes regular comparisons between engineers and artists and touted individual thinking in the Think Different campaign and artists like recognition with signatures on art and credits on film.

Conversely Apple’s Mac OS X operating system is built on open software and standards. The kernel is derived from open elements bundled up as Darwin which Apple provides back along with compilers, debug tools, programming language, command line tools, Bonjour, device driver kit and a bunch of drivers. All are open.

The web rendering technology in Safari (WebKit based on KHTML) is also open and changes rolled back to the communities often reveal unannounced insights into Apple’s plans (e.g. Safari for Windows).

And yet how many engineers write or talk about Apple? Do you know the names of any product managers? Could you find any out with Google? (LinkedIn doesn’t count ;-)

These aren’t academic questions, what if you have a great idea for a feature you’d like to see added? How can you discuss how a product could evolve to fit your needs? What about a simple bug report or advanced access to technology? (The answers are “send it to feedback@apple.com and don’t hold your breath”, “you can’t” and “join the developer program”)

Heaven forbid you do actually find out what their plans might be – you could find yourself talking to their lawyers like the ill-fated ThinkSecret site that featured rumors, speculation and the occasional insider info.

Microsoft

Jens makes a passing mention to Microsoft’s relaxed blogging policies.

Microsoft is a company that rarely provides the source, never ships or builds upon existing free software and yet not only discusses plans and roadmaps but actively solicits feedback in the design process through conferences, user groups, forums, mailing lists and even on-site review teams. Employees such as Scott Guthrie and Brad Abrams have become quite well known within .NET communities often being the first to break announcements and provide quick feedback through their blogs.

The centre of this effort is engineering thanks to sites like Channel 9 providing regular interviews, Microsoft Research providing experiments to play with and CodePlex hosting open projects.

But they aren’t the only ones reaching out.

Microsoft’s HR & recruiting team and individuals are also putting up interesting insights and thoughts on how the company operates and head of the Xbox Live! is so active in this area that the name Major Nelson is known to any serious 360 owner.

Being open

How strange that Apple embraces open technologies yet keeps communication closed and Microsoft’s technologies are still quite closed yet communication is very much open.

What does it mean to be open and where will each company’s approach lead them?

[)amien