My first steps in programming were in QuickBASIC. But knowing that I should evolve – I picked up Turbo Pascal, and there I learned the idea of functional programming. Played around Delphi, but event driven object oriented programming did not excite me, and I dropped it all together. Then the PHP happened and everyone was learning it, so I started and found a language I could like – even so much that I started to program websites and even wrote an picture e-store with automated billing and payment trough GSM modem, sadly that project never really took off because of hosting expanses. I changed my job and became household appliance repairman, as I had fairly good grasp in electronics. I got an order for a micro controller for a kitchen ventilation system, so I always wanted to learn ASM and picked up an Atmel ATtiny2313 and learned AVR ASM.
Then I encountured Adobe’s implementation of JS. From disliking JS I have come to deep hatred.
First: poor documentation – adobe come on, programmers relay on documentation, with examples, do not expect someone knowing JS and then explain only differences. Most of the people who would benefit form learning to script for Adobe products are people who are creative minds, not systematic scientists that are happy to dig trough three diferent pdf files and not find the answer there.
Second: JS as such. Even tough you can write also VisualBasic (witch is even worse) or AppleScript, because Adobe scripting is based on so called ECMAscript, witch includes all above – was never meant to do this. It was invented for web and but because Microsoft jumped to support it, it got out of the box it should stayed. In my opinion it has become like Swiss knife, witch supposedly can do a lot, but nothing really properly.
Third: JS being a interpreted language, it is always dependent of interpreter, and they change. So script written for one version could not work in the next one. Even Adobe documents changes, not all behavior changes are documented.
Fourth: Objects are not that well organized and systematic, especially when you have to write script witch would work in between different adobe products. Not entirely Adobes fault, because they did not write all of them. They bought them and made GUI behavior similar and made files cross readable witch is the best thing about Adobe suit.
So I hate JS, but I have to use it once in a while. That is not up to me, but I know that thees features are made by programmers for programmers, and they can never agree on anything. Proof – so many programming languages, and computer platforms, some have reason for existence because it is a tool for a specific problem, tough some are there just to prove that “I’m smarter / I know better”.