Sometimes when I’m using a sewing machine, I find that pushing the fabric through gets so repetitive that I don’t realize that something weird happened with the thread coming out of the lower bobbin, so when I stop to look after I’m done, I see that the underside is a weird clumpy, stringy mess. And then I have to start over.
I get that same feeling sometimes when I’m coding with CoffeeScript and Jade. For those of you unfamiliar with CoffeeScript, it’s just like JavaScript, but you don’t have to use parentheses or brackets. Or semi-colons. In fact, you’re punished if you do. Although for functions without arguments, you need to use parens otherwise it will get mad. So it’s fickle. Plus, you can’t just make your changes and it will just work, you need to compile CoffeeScript into JavaScript. I think psychologically as you’re writing it, you believe it is saving you time not having to write “var” to declare variables and writing your if/else clauses more like a sentence (which is actually nice, but I’m disappointed when I can’t use if … ? … : … syntax), but I tend to think in the long run, you don’t save time because you won’t run into the errors that you would with normal JavaScript. Ok, so debugging JS is a pain in itself, but adding syntax errors on top of that drive an old woman battier!
error: reserved word “var”
Jade has a similar idea except it is a templating language for Node, so it’s basically HTML without brackets. I recently spent a lot of time rewriting my HTML so there are no brackets and making sure I’m indenting properly. Of course, after I figured out that I can change the indenting to use spaces from the bottom of Brackets, I got much less of those errors, but there’s nothing like vague errors like “Error at new JS_Parse_Error” that only get resolved after trying if/else clauses with and without the leading -. Looking now at the docs, I guess you never need the leading – anymore, which is a good move because I could never figure out when I needed it and when not.
Invalid indentation, you can use tabs or spaces but not both.
Aaaack!
Don’t get me wrong, I love the evolution of programming languages, and it’s good to see that people are still coming out with new stuff, but sometimes I just feel like I’m too old to understand why not using brackets is so awesome. Especially when I sit there writing some code and I go to the browser to test it, and there’s an error because I indented poorly.
I just started a new prototyping project using Node, and I actually pined for two seconds about how it would be nice to use Jade, but then I found EJS which accomplishes the same thing, but it’s more of the PHP/JSP/Angular approach where you just add code directly into your HTML. Whew! There really is a language that exists for everyone. You don’t have to force yourself to use something just because everyone else does. I’ll be ok until the next wave of new-fangled languages come out. Maybe like this?!
This has been brought to you by Gladys, whose first programming language was Logo.