BLOG

.NET Is Not A Language

03 June 2009 by Stuart Cam

A response to this article.

First of all, .NET is not a language, it is a framework built on the common language runtime. When .NET was released almost 9 years ago it supported several languages including C# and VB.NET. It now supports many more. Any assertion that .NET is a single language is totally incorrect.

.NET is a large and diverse ecosystem which keeps growing with every release. It's now practically impossible to be an expert in every aspect of the framework, web development using web forms is simply a small galaxy in a very large universe.

If we applied the argument put forward by Greg to construction we'd have the HVAC guys doing structural assessments and the electricians installing carpets. After all, they are all in the construction business, why can't they do everything? I for one wouldn't like to spend money on an apartment in that building!

If only it were as easy as opening Photoshop, slicing a few elements and constructing an HTML and CSS representation. The good old days of web development; lots of outline-glow graphics on black backgrounds, table layouts, static text and little or no meaningful interactivity beyond the URL in the address bar changing. The days when FrontPage made everybody's mum a web designer.

The complexity in building a modern website (or Web 2.0 for the buzzworders out there) is increasing exponentially as consumer expectations grow. Search, SEO, scalability, performance, caching issues, interactivity, cross browser and device compatibility, JavaScript degradation, different encodings, localisation, W3C compliance, DDA compliance... the list goes on and on. Anything more complex than a brochure-ware site requires a broad range of software and web development skills. The developers who can manage all of those complexities and get the project completed on their own are simply not on the open market, their employers realise their value and avoid giving them reasons to leave.

With all of this increase in complexity features like Intellisense are essential. The .NET framework is massive. Why make life difficult by having to remember namespacing trivia? Besides which, the physical act of writing code should be the least of your concerns.

Greg believes that the blame is with the banks and urges us to agree.

Well, I've thought about it and I completely disagree. Maintenance of a software project accounts for around 60% of the total money and effort spent. Robert Glass knows this, that's why it's Fact: 41. Couple that with the bank wanting to remain competitive and I can only envisage a demand for developers, not a mass firing and flooding of the market.

Web development, above and beyond brochure-ware sites, is just plain difficult. It relies on a solid team with diverse skill sets all working together towards a well defined goal. This is a difficult thing to achieve in any business. The role of management is to remove obstacles, identify problems early and to keep the team functioning as best as possible. You need only a small number of architects (the generalists) working on maintaining the technical vision and laying the groundwork but the rest of the work can, and should, be delegated to specialists.

The very best developers, I would argue the generalists, will never have trouble finding work and the chances are they'll be the ones interviewing you. Get that wrong and you'll fill the team with poor and mediocre developers and encounter many more problems.

Unfortunately, finding great developers is not even a problem money can fix.

Tags: , , , ,

Categories: .NET | General | Web

Comments

03 June 2009 03:18 #

Mate, you're speaking my mind here. Though over the years my skills have bounced between design and development, mainly because back in the "bad old days" scripting languages forced any designer/developer to work within the presentation tier, since .net, the whole logical side of it has become formalised, at least in a web development/web forms arena, and this is where I've found myself, and few others in the same situation, feel comfortable in. Don't get me wrong, ignorance of other skills is not a benefit, it's a failure of that developer/designer/manager to understand the medium on which to present the project, but specialising in all of them is rather like being a Jack of all trades and a master of none...

Jay

03 June 2009 06:11 #

Stu, I have to confess that since writing my article - which I've now updated btw and it was a few years ago - I have learnt a lot more about .NET and it's complexities, and indeed that it is a framework (something you in fact taught me very well when we worked together).

And I did write it when I was only just starting to delve into .NET further and in response to people I was interviewing who didn't know some basic web requirements. In fact, some of the new advances in that framework have made a real difference. My concerns are as Jay says, "ignorance of other skills is not a benefit, it's a failure of that developer/designer". To be able to write a .NET framework in C# or VB.NET and to not at least have some understanding of these other skills is surely asking for trouble is it not?

And the bad old days of scripting did let you get away with a lot more than they should have, but written properly, they could be good languages, but without the power you have now with this framework. By the way, been dabbling with MVC and that's again, another great demonstration of what the .NET framework can be used for.

I'm a convert to the .NET framework, always have been. But I will always stand by the belief that you should know a little of what's going on around it - but not be a master - as it will help you build better web sites as they become more and more intricate and have different, specific requirements. And we all know there's different ways to solve these problems.

G

03 June 2009 06:16 #

Pingback from gregory-brine.com

My concerns about Web Developer’s skill sets since asp.NET came to be | Gregory-brine.com

gregory-brine.com

03 June 2009 06:58 #

Thanks for replying Greg.

I guess this boils down to the age of question of 'generalists or specialists'?

I believe that generalists are invaluable at the beginning of a project when the boundaries are still unclear. You need a generalist when making certain technology decisions: Linux or Windows? .NET or Java? Framework A or B? Push or Pull?

A more formal description for the role I am describing would be software architect. An individual not sat in the Ivory Tower but in the trenches making the difficult decisions on the architecture and big-picture system design. These are the kind of details that get decided early on and affect all subsequent development work. Be warned though, too many architects and you'll spoil the broth.

I agree that not having knowledge of the basics causes major problems. A web developer not knowing the difference between a GET or a POST for example - Web Development 101 stuff. You need a grounding in the basics - it just depends on where you draw the line for those skills.

What's even more worrying is how these candidates even make it to the interview stage? Surely the recruiters need to be filtering out these idiots? Then again, maybe not: blog.codebrain.co.uk/.../...oftware-Recruiter.aspx

Stuart Cam

03 June 2009 07:27 #

Thanks Stu. You and I have always thought along the same lines in this respect, all be it from different angles. I'm glad we actually mean the same thing ultimately.

And that phone call was frightening, and something I can relate to. Bless. Question is, how do we stop it?

It is, as you say, a numbers game after all. But I think it'd be impractical to send them all on a WEB101 course at the same time. Or maybe it wouldn't... I've had to educate many a recruiter, and it's amazing how quickly they can write - maybe they need to learn about other technology like Dictaphones and perhaps Wikipedia? Although that can be a bad source at times Smile

G

Leave A Comment




biuquote
  • Comment
  • Preview
Loading




© Codebrain 2021. All Rights Reserved. Registered in England: 07744920. VAT: GB 119 4078 13