My pick for altnetconf quote of the day

From James Gregory:



“…if we only code to what the lowest-common-denominator can do then we’re never going to get anywhere. “


The context of this quote is doing a rehash of the old DataSet versus anything else argument.  One pro-DataSet argument is simply that that’s what our developers know.  It’s also another take on the common ORM, IoC, and TDD just can’t be cost effective or maintainable because our developers don’t know that stuff issue. 


If you have to have a mission statement for ALT.NET, I like this quote from the NYC ALT.NET summit this past weekend:  ”raise the lowest common denominator for the .Net community.”  If we really think that ORM, IoC, TDD and whatever else is valuable and more productive, let’s get more people familiar with this stuff instead of compromising. 

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Jeff Tucker

    @Jeremy

    You’re probably right, I always have been a bit of a code masochist (at least my friends have said so in the past), but I just interviewed the third person in as many weeks that claimed they had years of web development experience and then they couldn’t write a single HTML page that had a single link to a website on it. I think there is a certain level of basic underlying knowledge that all developers should have and I’m concerned that all of these tools out there to “make things easier” are allowing developers to get away with not knowing these things. You have to crawl before you can walk, and I just feel that giving webforms to someone who doesn’t know HTML is like giving a jetpack to a three-year-old.

  • http://www.chadmyers.com/Blog cmyers

    The most important qualities are: Critical thinking, humility, and willingness to learn. If you get someone who doesn’t think critically, they’ll just stamp out good patterns in bad ways all day long and not accomplish much. If they’re not humble, they’ll never admit they’re wrong some of the time and won’t ever progress. If they’re not willing to learn, even if they are humble and admit they’re wrong, they won’t get anywhere and just spin wheels.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Jeff,

    Nice comment, but that’s masochism dude. I did some IL generation and couldn’t believe how much work it was to make a half dozen lines of code. I’d honestly settle for the *average* .Net developer having a firm grasp of “separation of concerns” and why it’s important.

  • Jeff Tucker

    I really hate to bring this up, but I think that the problem is that developers are being given tools to solve problems that make it easier to solve them but the developers have never had to actually solve the problem on their own before using the tools. As a result, they become dependent on the tools to be able to do anything, and when those tools fail, they have nothing to fall back on. Datasets are just a layer of abstraction, just like webforms, IoC containers, ORM mappers, etc. These are all just tools to make it so that you don’t have to manually solve some underlying problem that is tedious, repetitive, boring, or annoying. The reason people say these things are not cost-effective is because they have no understanding of the underlying problem to compare the cost savings of using one abstraction (e.g. a dataset) over another (e.g. ORM). This is a reason why I have a big problem with “web developers” who don’t know any html because all they have ever known is webforms.

    What I think we need to encourage people to do is to learn the low-level ways of software that are being forgotten. Want to understand what webforms is abstracting? Try re-implementing your web page in perl, you’ll understand why events for button clicks are useful in about 3 seconds. Don’t see the value of ORM? Try implementing it manually (you’ll be typing for a while). Don’t see the value of an IoC container? Try doing it manually for something (and then implementing that same thing for the 200 other objects that have similar dependencies and then change one). I guess my point is that we should make sure that people understand the underlying problem that a new idea solves instead of just trying to teach them new ways to do things and hoping that they just magically decide that it’s easier. This is one reason why I think everyone should learn an assembly language (among other things). I think you don’t truly understand memory management until you know the difference between these:
    MOV D1, A1
    MOV D1, (A1)
    MOV D1, A1+
    MOV D1, (A1)+
    etc. (example in Motorola 68k assembly)
    Maybe the focus should be on teaching the basics first, and then showing how some of these tools/ideas make the basics easier.

  • cv

    WOW! That is eye-opening. No wonder .NET lags so far behind in providing OO developers good support for OO methodologies. Welcome to 1980!

  • The Other Steve

    To raise the common denominator, the stuff has to be explainable. Not just how to do it, but why would I want to.

  • http://weblogs.asp.net/sfeldman Sean

    The most difficult part would be to generate the change. So developers like myself would actually not only get exposed to the “higher-common-denominator”, but also have a supportive community that can answer and offer help on the subjects. As they say, “The Road To Hell Is Paved With Good Intentions”. The intention is great, would it be backed up by the proper deeds? And when I say deeds, with all the respect to ALT.NET group members, it also takes MS in account.

  • http://blog.jagregory.com James Gregory

    That’s it exactly, get rid of the compromises and everyone will be better off. I’d hope the non-alt’ers will be content knowing that they’re that bit better than they were, and we’ll be happier because we get to work with what we love without having to wrestle for it every time.

    Thanks for the quote too! :)

  • Sergio Pereira

    That’s actually the #1 reason I have been pushing ALT.NET. Like, waaayyyy ahead of any #2 reason.