Do I really need to know XAML?

Is it really necessary that I learn to program in XAML, or can I safely rely upon tooling to handle the dirty work for me?  In the world of WYSIWYG form designers, is it really necessary that I understand the language beneath the form?  For example, if VS.NET were able to create a Windows Form for me today whose InitializeComponent is written in VB.NET, and I inherited that form’s class in C# to create my event handlers, do I really need to know VB.NET when I can manipulate controls and properties on a design surface?

Comments (6)

  1. Adam Weigert says:

    This comes down to really understanding the technology you are working with. It is my strong belief that tools like VS.NET (the code editor is quite nice) weaken our skills as developers.

    What if you need to tweak a setting the GUI doesn’t support? What if something breaks and you need to apply a fix to the under lying technology because the GUI has a bug?

    The only way to answer those questions (not the only way but the most logical) is to know what the heck the GUI is generating.

    But you could argue that do you really need to know how the processor translates bits into operations? Not really but it would help in some cases.

    How about HTML, do you need to know what the GUI creates in order to get more efficient, visual appealing, or maybe extended functionality that the GUI does not support?

    I do not believe I have ever come across a single GUI interface that handles ALL possible tasks for generating COMPLETE sets of usable code. Code generators create peices and thats pretty much what this does.

    Now, for your every day small town business that just needs a simple app, sure hire someone who has no understanding, the app will work like a champ, but don’t expect them to be able to fix it if it does break in a way they don’t understand…

  2. Is this one of those questions where you already know the answer, and you just want to see what kind of response you garner?

    Lets put the question another way….

    "Do I really need to know how math works? Can’t I just use a calculator?"

  3. No, I don’t know the answer and am indeed interested in the responses.

    I was with a buddy of mine at lunch today and he asked how my learning of XAML is going. I told him that with everything else going on, I’ve abandonded it until tooling is available, at which time understanding how XAML works would be beneficial, but that I could probably be productive without actually having to know it in depth.

    Likewise with the math example, there are some basics that one must know (i.e., what is addition and when do I use it?), but there are complex things that the calculator does for me that would be either too cumbersome or I flat out don’t know how to do it it (i.e., compute log of x)

    Ultimately, I’m curious as to the personal ROI I would gain by learning XAML (especially at this point) vs. waiting for tooling.

  4. Russ C. says:

    I’ve not played with Longhorn or XAML yet, and I already know that I probably wont NEED to know it, but I’m geek enough to learn for my own sake.

    Robert, No I don’t and I do 🙂

  5. Josh says:

    I believe it is a very valid question, as I’ve been asking myself the same thing.

    I don’t think that XAML paired with a "code generation" tool is the same as an HTML code generator. HTML has always stood on its own, with no definitive HTML tool.

    I believe that XAML is just the "under the hood" code that a new form designer will use. You shouldn’t ever need to write XAML manually.

    I think a more valid comparison would be .NET IL. Sure, it is beneficial to learn about IL, and possibly how to read it if you want to sqeeze the most from the platform, but you shouldn’t really need to WRITE it.

    In the same way, there will be a definite benefit in knowing what XAML is, and how to read it, but I would hope there is never a need to actually WRITE it.

  6. I think it’s pretty important to generally understand what’s going on under the covers, so when it doesn’t work exactly as you’d expect it to, you can act accordingly. However, I won’t be making it a life goal of mine as an end developer to learn how to write it by hand myself and I’d say unless you’re creating a designer yourself, it’s more than likely not worth that much time and effort even though I’m sure there are a few exceptions to that.

    I’m pretty sure there will be designers to take care of just about everything, if not at first, then later on.

    I’d have to agree though I’ve been curious and will be playing anyway 😛