Javascript is actually an uncredited copy of Actio...
# thinking-together
e
Javascript is actually an uncredited copy of ActionScript 2. it is so close a copy weird quirks in the date system, like months being 0-based while days are not, was copied. Because of the litigation by Oracle over the Java API for obvious reasons the web companies do not credit MacroMedia (which was purchase by Adobe) that created Actionscript 2. The tragedy is that in AS3 they added strong typing, and it was a far better language after that addition, including a nice module system. Too bad ES 2016 modules didn't quite fully implement the AS3 module system. Forget the myths about it was developed it 2 weeks; it was a clone of a long-gestating, very popular scripting language that was the source of the original CDROM revolution of "multimedia" content (Macromedia Director with the Lingo language being the first popular multimedia authoring tool). Gradually JS has added in many of AS3's feature sets although the omission of strong typing is sorely missed. I have a small editing script that with a few dozen regular expressions can convert AS3 to JS at a 99% level. Steve Jobs and MS ganged up at one point to attack Adobe, trying to destroy their font business, and Adobe counterattacked with a suite of products that today is one of the best (and most expensive).
i
I think you have the history backwards — JavaScript came first, present in Netscape in 1995. ActionScript 1.0 arrived with Flash 5 in 2000. I've written on the order of 100k lines of ActionScript in my career, mostly AS3 though a bit of AS2 before that. AS3 was pretty nice, though I think that had more to do with the pretty decent standard library, and the fact that it came bolted to a staggeringly powerful graphics engine. I found the type system was really weak, and didn't give you much value beyond a tiny performance bump. AS also had a lot of "the bad parts" of JavaScript, like
with
and a weird blend of prototypal and class-based inheritance. And — there totally was a movement to update JavaScript to incorporate some of the niceness of AS3 — this was the unreleased ECMAScript 4 "Harmony" project. That initiative was sunk due to excessive bikeshedding, IIRC, because ES4 was going to be such a dramatic change from the existing ES/JS. Due to that failure, I think there was a lot of reluctance to merge any AS features into ES after that point. And by then, JS had become so popular that bigger forces (cough Google cough) started putting their hands on the wheel, leading to the miserable clusterfuck of features JS has today.
d
AFAIK many of JavaScript's APIs, including the bizarre Date stuff, were copied from Java 1.0.
👍 1
e
Sorry, but Actionscript/Lingo is the granddaddy of all scripting languages, and goes back to the invention of CDROMs. There is no question that JS copied from AS/Lingo whatever it was called
1985: VideoWorks 1988: Named Director 1.0 1993: Macromind Director became Macromedia Director (v 3.1.3) 1994: Macromedia Director 4 was released (Windows and Mac PowerPC support) 1995: Macromedia Shockwave Director 4.0.1 was released in January for Windows (Mac support in later release) 1996: Macromedia Director 5 was released (MOA and Xtras) 1997: Macromedia Director 6 was released (Shockwave integration, behavior & mp3 support) 1998: Macromedia Director 6.5 was released (QuickTime 3 support & Xtra integration) November 16, 1998: Macromedia Director 7 was released (engine rewrite) 2000: Macromedia Director 8 was released
People often think that Javascript is somehow related to Java, but it's code name was "mocha" and it was called Livescript in its first version. The string, date, math, ... etc. libraries are nearly identical between JS and AS. I think it was renamed Javascript for marketing reasons, and it worked great, because Java was already popular, and what better way to get your language accepted than to piggyback on the Java name. If Oracle had owned Java back then, i can guarantee you their lawyers would have stomped all over that concept, but back then Sun was promoting Java as a neutral platform, free for all, in a very generous and beneficent manner.
i
How is Lingo anything like ActionScript? As far as I can recall from having used Director back in the 90s, and from what I can glean looking around online, Lingo is more like HyperTalk or AppleScript in terms of syntax, and more like an actions/macro system in terms of semantics (like the "behaviours" in early Flash, which I believe were adapted from Director), whereas ActionScript is a full Turing-complete language.
Also, I'd contend that shell scripting is the "grandaddy" of all scripting languages, but I'm probably unaware of significant contemporaries and predecessors because I wasn't around back then.
e
i had an early copy of Macromedia director. It was like $700 back then, came in a huge colorful box designed by Clement Mok who did some great packaging back in the day when things had physical boxes and were sold shrunkwrapped. He was a designer at Apple in the very early days. There were a lot of great products at Macromedia. they had an vector drawing program called Freehand that was better than Illustrator to most people, and they had a video editor called Premiere which was amazingly written by Randy Ubillos who later wrote Final cut for apple! so two of the top 3 video editors were originated by the same guy! A lot of great products got bought and buried when Adobe took over Macromedia. Buy and bury was Microsoft's favorite trick; i once was at a bathroom stall at Comdex with a guy who had built an unbelievable windowed DOS-era multithreaded graphical operating system, needless to say MS bought that quick and killed it off so Windows could launch. It is often much cheaper to buy and bury the competition than to run harder in the race (and that happens in other industries as well). We live in a world of oligopolies, where a few companies control it all. You see it in cloud services, you see it in mobile OS, inkjet printers, memory chips, hard drives, you name it, it usually boils down to just a few big companies. Makes it so hard for small guys to get into the game.
❤️ 1
i
Yeah, Macromedia were wonderful. I still have my boxes of Macromedia Flash / Freehand, (not to mention my boxes for Bryce 3D, Starcraft, and Photoshop.. 5? 4? Can't remember.) The Adobe acquisition really stung, because Adobe software at the time felt comically unreliable and slow (especially compared to the pro 3D tools I was using). I hated the thought of Flash (which I loved from the get go) sharing that fate. And, lo and behold, that's exactly what happened. Adobe software is still unreliable, slow, and even more expensive than the $700 boxed versions (which is a lot of money to shell out all at once when you're a teenager — I can appreciate why the subscription model is nice — but as an adult I'd rather pay $700 every 2 or 3 years than $60/month).
j
@Edward de Jong / Beads Project: Can you provide any information on the influence of Lingo on Javascript? @Ivan Reese asked "How is Lingo anything like ActionScript?" and I don't think your reply spoke to this question.
👍 1
e
I bought a lot of expensive software like Autocad, and i think for a product that complex which never stops evolving the subscription model is reasonable, but my Adobe CS5.5 Master collection which was over $1000 is just fine and i don't want to spend cumulatively thousands to add features i only use 3% of already. Anyway the evolution of Director's Lingo into Actionscript is a bit complex, as I was merely a consumer of Adobe and Macromedia products, and i don't have insight into the various product streams and designers that were put together to produce the final product, which was AS1, then AS2 then a few years later AS3. Adobe and Macromedia had competing products in multiple areas, and there was a long-forgotten product from Adobe that could do animation and had some scripting, but the two teams were fused together (probably a very upsetting moment when all those competing project teams were locked into one room, probably lots of people storming and/or fired). A lot of really bright people have worked for Adobe over their long history, and they have acquired and blended many things to get where they are. AS3 is 99% the same as current JS. You can with a few dozen find/replace operations convert AS3 into JS code. They are remarkably similar. But the implementation of modules in JS is incomplete and quite annoying. Unlike in Modula-2 which produced a special file containing the AST of the exported items of a module, which allows for separate compilation, JS modules can't do that, and you can't import a scalar value and update it from another module; you can only modify object properties. Also AS3 has int32 and unsigned32 primitive data types. Boy would it be great if JS had those, because operating systems still use such things. Another missing area is packed arrays, which are much less expensive in RAM, and for large fixed-size tabular data would be so much more efficient. JS is a memory pig; just look at a browser's total memory footprint, and it typically exceeds the total memory used for Windows 7, which is somewhat absurd. One of the things i really hate about the modern stack is it is so heavy, so many million lines of code, and so many thousands of pages to fully document all the API's and interactions. It is ridiculously complex now.
e
typed arrays in JS have many restrictions such as being fixed in length. Not a very flexible tool, but it is progress.