A chap I used to work with often told me I should learn LISP, said I'd find it very Zen. I think I know what he means now.
Javascript isn't meant to be object oriented, but it helps if you a) write in a semi object-oriented way and b) forget anything you ever knew about C++, Java, Python...
(Saying that, I'm stuck in hell today, debugging and extending some JS I wrote 6 months ago, it may as well have been written by a gibbon using just his left elbow)
(, Tue 21 Aug 2012, 16:46, Reply)
...that may explain quite a lot
(, Tue 21 Aug 2012, 16:50, Reply)
For those exact reasons, lack of encapsulation means it's a maintenance clusterfuck. Write once, run away and try and forget it Many.
Such a shame browsers don't have a propah langwidge
(, Tue 21 Aug 2012, 18:14, Reply)
and because it's nice to do things well
(, Tue 21 Aug 2012, 20:16, Reply)
It doesn't make any real difference to your maintenance. Once you need to do anything complex in the closure, you're better of splitting it out into a proper function anyway.
JavaScript can be used well, of course it can; but it's a lot like C or C++: it takes a lot of discipline to use well. And the end result will still perform like a dog's breakfast.
(, Tue 21 Aug 2012, 20:28, Reply)
They let you nest all kinds of code, callback and events, yet still get back out to a class based scope for sanity/maintainability.
(, Tue 21 Aug 2012, 21:35, Reply)
(And sensibly, not doing crazily complicated stuff.)
(, Tue 21 Aug 2012, 21:38, Reply)
The trick to maintainability is picking the right way. Hindsight's always a bit of a bugger here...
(, Tue 21 Aug 2012, 22:23, Reply)
Not necessarily any single *right* way.
(, Wed 22 Aug 2012, 1:42, Reply)
But thought i was good. Now i'm ok and think i can be better. Closures, bind, call, collections, signals, they all wrap each other beautifully now, where before i was trying all kinds of things with classes, prototypes and basically creating an unmaintainable mess.
(, Tue 21 Aug 2012, 21:33, Reply)