5 ms·
More than anything, I would say that what "went wrong" is simply that the wind changed. Tech is driven by fashion more than anything else, something becomes "co
by gaius 9y ago
More than anything, I would say that what "went wrong" is simply that the wind changed. Tech is driven by fashion more than anything else, something becomes "cool" and everyone scrambles to re-write perfectly good software in a new language for no particular reason (other than keeping their CVs up to date). Tcl is a powerful language that you can use to create complex systems with simple code, the holy grail. But instead the industry took a massive step backwards and said "event driven programming? let's use Javascript!"
- toyg 9y agoBlame the browser. If Brendan Eich had tried to repurpose an existing language instead of mashing together a new one; or if Microsoft had used their de-facto monopoly in early '00 to push abetter language, JS wouldn't be as big as it is today.
- gaius 9y agoSometimes it seems as if every project is either a) everyone's first in a brand new language or b) maintaining a project that was everyone's first in a brand new language. How can we actually make progress like this?
- robotresearcher 9y agoThe youngest of C, C++, Java, Python and Javascript is 21 years old. I bet these cover most new and old projects between them.
- sametmax 9y agoThis I'll never understand. Why, for god sake why, did he had to create such a terrible scripting language while he had plenty of great open source existing ones ? I mean: - lua appeared 2 years before - python 5 years before - perl 7 years Instead we have this monstrosity with no namespace, terrible error handling, pitiful stdlib, limited expressiveness, atrocious data structure and type handling, so full of traps and gotchas we had to write a book about the part of the languages not to use.
- peatmoss 9y agoI've read that he'd wanted to just use Scheme, but that they needed the language to have "Java" in the name, as well as curly braces. So, we got Javascript. Also, given that DSSSL was an early contender against CSS (and a great deal more powerful), we could have basically had Scheme there too. https://blog.cloudflare.com/the-languages-which-almost-became-css/?f https://blog.cloudflare.com/the-languages-which-almost-becam... Lastly, because S-expressions can represent everything that is representable in SGML/XML/(X)HTML, but more succinctly, we could have basically had Scheme instead of HTML. Imagine if, instead of JS/HTML/CSS, we had... Scheme. I'm pretty sure that the alter universes where this happened also all have peace, warp drives, and working cold fusion.
- abecedarius 9y agoSome MIT people in the 90s tried to do approximately that with a new language they called Curl. But it was proprietary until too late.
- sametmax 9y agoWell fork Lua, call the fork JavaStuff and be done with it. How can anybody think it's a good idea to create a language in 2 weeks and call it a day ?
- mncharity 9y ago> Lastly, because S-expressions can represent everything that is representable in SGML/XML/(X)HTML, but more succinctly, we could have basically had Scheme instead of HTML. I suggest (along with David Moon (Lisp Machine)) that a key disadvantage of sexp with respect to *ML, is that there's no place to hang on "extra stuff". Many lisps allow you to decorate the nodes with properties once the nodes are read, but the properties lack a printed representation. It's a homoiconicity fail. Sort of like not allowing comments in JSON might be, if a common case was then to attach comments to the objects after they're loaded. That very isn't common, so the restrictiveness is worth it. It's not clear that's the case with sexp.
- toyg 9y agoConsidering the language was first called Mocha and then Livescript, "Java in the name" was not a requirement - it's just that OO and Java were all the rage at the time, so they followed the fashion. The worst crime Sun ever committed will turn out to be influencing the birth of JS.
- yjftsjthsd-h 9y ago> if Microsoft had used their de-facto monopoly in early '00 to push abetter language For all that JS may suck, I somehow think anything early 2000s MS would have pushed would have been worse. VBscript, perhaps?
- toyg 9y agoAt that time they already had C#, so it's not impossible to believe they could have done better than vbs. The real problem would have been that they would have had to give other browsers a chance to adopt the new language, possibly even by providing dedicated resources to implement it for them; but Ballmer's MS didn't really "do" cooperation, they were happy to push ActiveX to lock out competitors. Still, they did have the chance.
- BrendanEich 9y agoStudy history or you, too, may be doomed to repeat it: https://devchat.tv/js-jabber/124-jsj-the-origin-of-javascript-with-brendan-eich https://devchat.tv/js-jabber/124-jsj-the-origin-of-javascrip... (transcript at bottom) https://brendaneich.com/2012/04/the-infernal-semicolon/#comment-1133 https://brendaneich.com/2012/04/the-infernal-semicolon/#comm... Netscape management gave "make it look like Java" orders. There was no time, on top of this. Last (more below in another reply) no extant command line interpreter was ready to be put in a browser. Way too many non-portable OS dependencies, unsafe FFI, etc. It was JS or bust (aka VBScript).
- camus2 9y ago> "let's use Javascript!" I don't think it's the same use case. Tcl is really good as a CLI language, like Python. NodeJS is not very good when it comes to test stuff in the CLI quickly due to its async API. Even when there are synchronous versions, most libraries are async so wrapping everything in promises is a bit of a pain. IMHO Tcl really lost to Python, not JS. Python is an excellent way to test ideas quickly on the CLI. I do a lot of web-scrapping and data transformations and to be able just to open a CLI, call a lib and test things out in 5 minutes for a PoC is just RAD.
- TheAceOfHearts 9y agoNow that async functions are available in node, I'd say you can write some very nice async code with minimal efforts. Before that, many people were using generators to write coroutines (e.g. with the co module), which effectively achieved the same result. Not saying you should change languages though, especially if you're happy with your existing toolset! But if you feel up to it, you might be surprised upon giving it a try. I've written a few one-off scrappers without any complaints. It also works well for simple cross-platform scripts. I don't recall the developer experience when installing python on windows, so maybe it's just as good. With node you only have to download and install the official release, and everything is good to go. Even when some package has native code, it generally "just works".
- Spooky23 9y agoIn my experience, Tcl was the go-to for DSLs and application integration in the 90s. Perl was the best standalone interpreter. Python was a killer of both... it wasn't as hostile and freaky as Tcl and arcane as Perl.
- mncharity 9y ago> More than anything, I would say that what "went wrong" is simply that the wind changed. Tech is driven by fashion more than anything else, That's not my recollection. And I disagree with the fashion thesis too. :) So I used Tcl, perl, and python in the early 90's. Tcl owned embedding and Tk. Perl owned sysadmin and CPAN. And was fast. Python owned OO and "nice professionalism". Perl and python had hashes. Tcl got hashes. Tcl and perl picked up OO. Perl and python mooched Tk. But Tcl remained furry and batteries not included. Perl remained buggy and weird and unprofessional. And python remained without good code sharing. Turns out people wanted "nice" more than embeddability or CPAN. All three communities knew what their strengths and weaknesses were. And were variously able to deal with the weaknesses, or not.
- neves 9y agoPython also became easy to extend, you even had great tools like Swig http://swig.org/ http://swig.org/. Today some of main Python libraries are in C, specially the ones that need speed, like numpy, pandas and all the Data Science eco-system. Desktop user interfaces became less important with the Web. Python also got a good regexp engine. Its legibility, batteries included and interactive shell beat them all.
- gaius 9y agoPython also became easy to extend, you even had great tools like Swig Ironically SWIG originated on Tcl, IIRC
- mncharity 9y ago> Tech is driven by fashion more than anything else So I agree the field has remained disorganized, with it's research and development severely underfunded. There is no language implementation wiki. The field's research is often by years of intermittent incremental papers, and little bus-factor one projects. We're down to like one biggish industrial research lab. And ARPA, sigh. And professional progress, often seems sort of exploration by an army of wandering ants, rather than purposeful pursuit of economic development and human progress. So with the poorly organized professional knowledge, and the unacceptability of high onboarding costs, yes, there's a lot of random motion. And the scrambling mob carves a flood plain. But. Cohort learning is actually a good learning strategy. And given how big the field has gotten, and the criticality of community, it's a plausible local heuristic to "follow the mob - it's path will likely at least be plausible, even though not optimum, and the inevitable obstacles can be collaborative tunneled through, or filled in with bodies". And the profession is not just larger, but vastly better trained than it used to be. There's a massive education process in progress. And the "driven by fashion" argument gets used a lot. At least sometimes, it's clearly an "argument from failure of imagination". A "I can't imagine what they're thinking, they must all be nuts". Sometimes your expertise in some domain corner is enough to confidently say that. Or the nuttiness is nicely compact - "Google backs it, so I'm sure it will be supported for decades". But it seems most use of the argument is more... ambitious than that. > Tcl is a powerful language that you can use to create complex systems with simple code, the holy grail. Tcl/Forth/Smalltalk/Lisp/Self/APL/Oz/... we've had many many languages with glints of grail. We're just still really bad at combining and polishing them. There's little funding for it. So it's a multi-decade incremental creep. An "if you're still alive to see it" bright side might be, it looks like the transition to "no longer crippling", when it finally happens, might be a "boom - new world" kind of thing. EDIT: aside: I saw the other day that React native(?) could now be packaged up with it's own little embedded faux file system... and thought, yay, we're catching up with 1990's Tcl! (The Tcl app distribution story was excellent). You just need to have a half century of patience, and it will all work out. Patents only last two decades. And we're only failing, what, 7 billion people? Delay a year, miss a 130 million person cohort. No problem.