Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Why hand code and not WYSIWYG?

Hi everyone,

I'm kinda new here, and very new to web design. I've been going through the HTML and CSS deep dives and actually rather enjoying them. There is a strange sense of satisfaction in being able to write a bunch of code in a text editor and then see the results, and it's especially satisfying when they turn out the way I wanted them to.

But I've been wondering, why bother with hand coding? There is a lot of software out there that seems to replace the need for hand coding. There are things like Weebly and Squarespace which make creating a nice looking website fairly easy, although I can understand there is a lot of limitation to them. Then there is Freeway Pro which I played around with a while ago and basically does things the other way round (i.e. first you design then it converts automatically to code).

I'm assuming there is a very good reason to learn how to hand code. Is it just about having greater control over the structure of a website? Does it help more with SEO?

Would appreciate any insight, cheers,

Jamie

8 Answers

Matt Campbell
Matt Campbell
9,767 Points

Biggest reason is you have zero control over the code that's actually being written. This can lead to things not working well, unnecessary code, slower pages, poor SEO...the list goes on. You're also very limited by what you can do. Yes they're getting more advanced but you've got to think, the frameworks and software were all hand coded. You want to get to the core of the code so you can write exactly what you need.

Of course, if you find it suits your needs then use it but, you can't sell your services when you're using something that takes little skill and a prospective client can do exactly what you're doing. Coding is a skill and that's what people pay for. You take that away and you've got nothing to sell.

James Barnett
James Barnett
39,199 Points

> . Coding is a skill and that's what people pay for. You take that away and you've got nothing to sell.

I beg to differ. Design is a skill as well even if you don't code your own designs.

irrelevant really since the poster was comparing being a coder to letting the software do it for you. A designer may be hired for a project to do a mock up but at the end of the day a coder is going to bring it to life. Not saying design isn't a skill is a very good one that i don't possess, but I believe the question was about coding by hand compared with an WYSIWYG program. DESIGN was not mentioned.

I think ultimately, a good amount of what we are doing now will be automated. What people will pay for, and what they are paying for now are people that are good at solving problems. Personally I feel you are selling your abstract knowledge and problem solving skills, not the tools you use to get the job done. I mean anyone could mock up something in photoshop or mash together some code, but the amount of people that could devise a brilliant web campaign, or craft a brilliant program that serves millions are not so common.

I think ultimately, a good amount of what we are doing now will be automated. What people will pay for, and what they are paying for now are people that are good at solving problems. Personally I feel you are selling your abstract knowledge and problem solving skills, not the tools you use to get the job done. I mean anyone could mock up something in photoshop or mash together some code, but the amount of people that could devise a brilliant web campaign, or craft a brilliant program that serves millions are not so common.

Mike Bronner
Mike Bronner
16,395 Points

I think there is nothing wrong with WYSIWYG development -- AS LONG AS YOU UNDERSTAND WHAT'S GOING ON! Understanding what the program does behind the scenes is crucial and gives you the power to manipulate your code. If you don't understand what's going on, and are using WYSIWYG precisely because of that, then it's the wrong reason and you will likely hurt yourself in the long run.

Also, you need to understand that while coding with WYSIWYG may be faster for the development process, maintenance can easily become a nightmare. As such, it is often less work to code things yourself -- or at least code with a textual IDE that gives you graphical previews. Coda 2 by Panic is one such IDE where you can have a live preview as you code. You'll be a better developer for it, and also understand the in's and outs of your app much better.

Don't get me wrong, I used to use Dreamweaver as my WYSIWYG development platform, and I asked the same question as well: why not WYSIWYG? It didn't take me long to find out that it is very limiting, and eventually always caused me to redo my work without WYSIWYG to get around the barriers in functionality.

Sites like Weebly are limiting in their functionality -- you can only do what they let you. The same goes for hosted Wordpress sites. However, if you run your own Wordpress site, you can use plugins that others have made, as well as create your own functionality to extend it exactly as you need it. The world becomes open and free. With WYSIWYG you are always kept within the confines if its environment, and aren't truly free. :)

So, while I don't think WYSIWYG is right either (it's a "meh" thing), it can be a tool to get something started quickly, giving you time to refocus and create exactly what you need for the long run.

Mike Bronner
Mike Bronner
16,395 Points

One of those really bad (code-wise) solutions was actually from Apple: iWeb. It made the creation of simple web sites really easy, however, the underlying code was bulky, slow, and unoptimized. The resulting solution was fraught with potential problems where if something broke, you might have to recreate the site, rebuild it, then republish it again.

I agree with the comments about WYSIWIG sometimes producing bad code, I think if you learn code (programming or markup) really well, and learn a framework (like bootstrap for example), you can move just as fast as a wysiwig, have more control, and produce good products.

I saw a local help wanted ad on Craigslist a few days ago. The guy needed somebody to untie the tangled knot he had created in his coding for a website. When viewing the page source, I saw things like two different open head elements (neither of which was closed) and a mix of different WYSIWYG shortcuts on top of each other. He obviously was relying on not knowing any hand coding.

I think the answer is knowing what to do when the auto coding doesn't do it right.

That said, I'm learning the Zurb Foundation framework these days. So far, it seems like the perfect mix of the control of hand coding, but without the slowness.

I do both, depending on what I'm trying to do. On wordpress, I choose a simple template and then I tweak it to my heart's desire. I can do that because I know enough CSS and php to play with it without breaking anything up, usually.

You could do the same. Get the basics done on your WYSISIG app and then modify the code, polishing it and modifying it to your needs. If you are concerned about SEO (and who isn't?) you could go through the generated code and see how you can improve it in that regard. Or if it doesn't produce accessible content, then rectify that up.

Tom Bedford
Tom Bedford
15,645 Points

I choose to hand code because it gives me an understanding of how everything works. If there is a problem I can generally identify it without too much trouble. At the same time I can be in control of aspects such as browser compatibility and create fall-backs as necessary.

I think WYSIWYG tools are very empowering for people just starting out, I see many people who have used something like Sqaurespace and become more curious about coding as a result. I was reading about Macaw earlier which would be interesting if it is able to accomplish all it promises.

That link looks pretty good, scary as a coder though that it can do such clean CSS. found this article with Q&A from creators.

Thanks!

Mike Bronner
Mike Bronner
16,395 Points

Macaw does look highly interesting. I wonder if it will support frameworks down the road? Right now it looks GREAT for static sites -- I'm sure they've thought of working with dynamic sites as well, and perhaps have some ideas for integration with WordPress, ZendFramework, Laravell, etc. down the road? I'll definitely be buying a license for it once it ships, and will give it a go. Thanks for sharing this! :)

Tom Bedford
Tom Bedford
15,645 Points

Had a search and looks like there was a thread on Macaw a while a go. James Barnett posted a link to Webflow which is meant to be similar and available now.

Mike Bronner
Mike Bronner
16,395 Points

Just checked out Webflow, and it seems to be more of a weebly-type service, where they provide the hosting and development environment, although much the same as Macaw attempts. I will never use a service where I have to pay monthly dues for development environments -- just one reason I don't use any Adobe products anymore.

But we're getting off-topic. :) Looks like there are some promising WSYWIG solutions out there, but in the end you will always need to do some hand-coding, no matter what.

Macaw isn't out yet, so I haven't played with it first hand, however I did check the html/css that the demo spits out. I thought it was really solid code. However, what it can't do it slice up its output into a cms, and I don't think it handles animations. So it's not a totally magic tool, but a very solid one.

Yeah cant see how it would do server side code like PHP or even client side stuff like jQuery

Tom Bedford
Tom Bedford
15,645 Points

It could greatly speed up creating the initial layout/style of a site. You could then add in all the extras you would normally do. I like that it appears to cater to people who already have an understanding of css/html rather than being something to replace hand coding.

I imagine it would be like creating a mockup in fireworks/photoshop though with Macaw you would have usable code you can build on afterwards.

yes absolutely, it's not being marketed like muse was; as a means of making web easy for print designers.

I checked back on the macaw site, it CAN do some jquery.