The point I take away from this that I don't see many other people commenting on is that while Douglas is specifically talking about JavaScript, I see this as a metaphor/opinion that can be applied to the entire development industry. Companies advertise and hire for technologies because the technology has market share, not because it fits into their application stack.
that's problem the person can be either talking about JavaScript (original) or Javascript (development industry). JavaScript (original) is not just a market share, not just application stack. It is main our basis for the web.
"We're just stuck with this crap, and they keep piling on new features on everything and the new features always create new problems, and it doesn't have to be like that." This guy definitely is aware. This is the current state of software development in a nutshell. It's a nightmare.
I love programming in javascript (occasional syntax sins excepted), but then I avoid using what I find to be the "smelly" bits. Maybe the answer is just to come up with some rough consensus on what the smelly bits are and deprecate them (although please not via "use fragrant") ;) Then we can keep using javascript rather tan starting completely from scratch.
@@kasperkat2004 if that were true, then why did typescript keep literally all of javascript's syntax, ie. make it a superset of javascript instead of inventing new syntax That is a rhetorical question of course
@@UnlikelyToRemember Unfortunately, tons of JS code need to be maintained and you cannot replace all the smelly bits during your maintenance. You're stuck with the crap forever.
“There are still people developing languages but nobody cares. One person can make a programming language, a really good one, but you can’t get adoption for it.” He made a good point and he is absolutely right.
I was actually confused by that statement, there are quite a few recent languages growing in adoption: Kotlin, Rust, Swift and Go being the main ones but also smaller ones like Julia, Zig and Nim.
@@ricardoamendoeira3800 In my opinion, Douglas is referring to languages like Mojo, Vlang, and other lesser-known languages that are fantastic but not widely known among most people. There are even languages that allow programming with commands in the native languages of different countries, but those countries are not even aware of these languages.
I think it’s because when all these new languages were coming out in the 90’s, companies were just still starting to integrate computers and the internet to their business, so they had the flexibility to move to new and better languages when a better one came out. But now, many companies entire digital foundation is built off of one tech stack for 10+ years, and these are massive companies. Imagine all the work of re-training their employees to this new stack, converting their whole code base to this new language. There’s a plethora of things that could go wrong. That’s why it’s hard for PHP to die. It’s hard to blame them really
@@jamesyoo67 Well PHP has changed a bit. Don't tell me you've worked for PHP before 2022 because PHP today is much more different than the PHP years ago (see Laravel). Same with Java years ago and Java now. Languages change, you know.
1:15 "There are terrible mistakes in the way the web works , in the way our operating systems work..." As a graybeard whose favorite language is COBOL, I agree with him 100%. It sounds stupid, but I absolutely guarantee the internet was not supposed to end up the way it has. It is just what happens when folks focus on short term profit and clicks (attention) instead of actually doing something productive long term.
@@CuriousCattery I think it's all about percentages. Out there, we totally see the positive ways the Internet can be used: it enhances communication around the world in fantastic ways, brings all information at our fingertips in seconds, empowers people with decentralized systems, and so much more. However, when you look at the numbers, an overwhelming majority of its use is pure brain-melting entertainment (think TikTok as the primary example). Overall, instead of pulling us up, it's globally pulling us down collectively, just because, as the OP mentioned, it is primarily driven by profit - which has quite different incentives and goals than the public good. :)
@@CuriousCatteryhe's not criticising profit he's criticizing stupidity and goldfish memories. I guarantee that the short term profit chasing decisions made in the 2000s have caused long term reductions in profit. Look at the history of Internet Explorer for a good example
@@jytou That's true, but how would a different tech stack change that? Profit maximization is just a built-in feature of capitalism (not an anti-capitalist btw, just stating a fact).
@@thr417 if youve used js you should know, the language itself was supposed to be a cool new tool to add interactivity to websites and it had a lot of weird functionality that carried over due to to maintaining backwards compatability. its just a big mess and people made ts to try and mitigate the fact it cant check for type errors but its not even good at that either as it still lets janky code with "any" types and its just more hacky code on top of hacky code. it really is time for a new and clean modern web dev language
@@sgwaic the fact 'any' exist dont mean you have to use it heavily, like in C# you could use 'object' ... isnt beause there is weird way to do thing that you have to do it weird too ...
@@sgwaic I would argue every single layer of tech infrastructure we have is hacky shit layered on or interwoven someone else's hacky shit. That's just the nature of development and internet technology as a whole you'll never fix it...
@some guy with an internet connection I agree that TS is not good enough but please stop saying TS is bad because of 'any'. Most of the sane devs shouldn't and don't use it.
I took my first JavaScript course in 2000. The teacher said he could see the day when JavaScript would become a dead language. Now, it is more entrenched in web development than ever, and it doesn't look like it's going away any time soon.
I also first got exposed to JS in college in 2001. While I do think there are some aspects that are "messy," I don't think it's nearly as "smelly" as people suggest. It's honestly no more "messy" than Java, or really any other OOP that uses for loops, if-then-else statements, arrays, etc. What's given JS a bad name is the endless variety of libraries that have started coming out every few months or so. It's cut deep into actual productive coding because devs are constantly being asked to refactor code to utilize the newest version of React, Redux, etc. It's maddening. I'm a firm believer in Vanilla JS. Any time saved by relying on libraries is going to be lost when something goes wrong and now you've got to sift through chunks of code you didn't even write. I few months ago I started a course on React (because it's the latest and greatest, right?). I remember reading the introduction to React and it describing how React lets you output HTML to the DOM interactively. My immediate thought was, "Uhh....but.....can't I already do that? Can't I just write HTML as a string var, and then use innerHTML or insertAdjacentHTML to modify the DOM? And I don't need all this unnecessary React nonsense?"
@@sixstanger00 Couldn't have said it better myself. I took a job with a writer's community, and the owner said I needed to embrace jQuery, which I did. I told him that jQuery didn't do anything you can't already do in vanilla JS, and he didn't want to hear about it. I think it's nonsense to have to switch from React to Vue to Angular. Just pick one and run with it.
@@sixstanger00 I agree with the overreliance on libraries. As far as inserting HTML directly, I think the difference is that React is running an SPA ... unless you wanted to implement that yourself.
JS was made when we had horrible internet and became the standard for the web. Since then little had changed. It is a dinasaur walking in modern times.
I've been saying this for years about the web languages in general. HTML and CSS are languages that, though they've been modified to support applications, were designed to describe documents. The application tags and styles were added in with mixed results, but HTML and CSS are STILL languages for describing documents. And JavaScript was invented to support that model. We can obviously create large and complex applications using HTML, CSS, and JavaScript. I'm a professional full-stack engineer, and do this every day. But it WOULD be nice to have modern languages that the browsers understand natively, without transpilers, that were designed from ground up to be for creating applications, not documents with application code thrown on top.
@@MrHeulendoch Wasm would be fine for the compiled language that the browser uses for sure, but I'm talking about writing, as a developer, in something other than HTML, CSS, and JavaScript. I'm not a huge fan of Microsoft's XAML language personally (I HATE the whole INotifyPropertyChanged thing), but like the general concept of it, including the way it handles styles. So I'm thinking something roughly akin to that. Then for a programming language that compiles to WASM, maybe something like Rust? Or a version of TypeScript that doesn't need to cater to transpiling to JavaScript. Don't know, haven't spent a ton of time thinking about it.
@@protonneutron9046 Oh, for sure. And I don't see the market demanding it. What we have now DOES work. It's just not ideal in my humble opinion. But it does work. Fortunately, we have tools and frameworks now that can make it easier, and CSS HAS been extended with things like FlexBox and Grid that help with positioning.
I absolutely love JavaScript, and I agree with everything Crockford says in this short video. It seems that a lot of the commenters here think that the problems with JavaScript can be solved by taking features AWAY from it, and let it resemble older languages like C more. But he clearly states that we need a new generation of programming languages - he talks about how development of new languages kind of stopped with Java and JavaScript. He doesn't mention C#, PHP, Python, Ruby etc. but they are all from about 25 years ago, and it does indeed seem that we are stuck - and that is a bad thing! The problem isn't whether you have one, two, or three equalsigns, or whether you need to define your datatypes yourself or let the compiler figure it out - the problem is that our entire model of what programming should be, is still stuck in the 1990s ...
as a web developer, the only concern for us back then when it comes to javascript was browser compatibility, which jQuery has solved, now all these new frameworks etc. instead of making it simple, it just getting way way more complicated.
Try building any modern day frontend with just jquery and see how it goes. We need more complex frameworks and libraries to support more complex applications
@@RyanRouleau Can you tell me where's the common ground between react and jQuery please, might have missed something in the past 10 years but i am pretty sure they have absolutely nothing in common. Also React is the bane of all evil, yes it basically a standard, but it's also proven that we need code academies to teach people basic syntax these days, so i wouldn't compare anything modern to being close to better then X from before. If you want to compare vanilla javascript and react you would most likely point to web components than Jquery, bot fit the same requirements, problem is web components take much more effort to achieve the same thing. The biggest issue however, is that people are taking it too far, the web was created as a medium to share information not to build software on top of it, and nowadays people want to build desktop applications on top of the web which is frankly stupid and 9/10 a complete flop.
I totally understand his sentiment. If we were to gather the best stakeholders in the language/browser space, lock 'em in a room with the brief to create the next gen of DOM and a scripting language to manipulate it, I'm 100% certain that the result would solve all of the DOM and Javascript's shortcomings, be more capable, be faster, more robust and usable. It makes me wonder why there isn't already such a project.
There are features that after years have not shipped and bugs with decades just because the different parts could not agree on them. Google does what they like and so does the rest. That's also the main difference with JavaScript vs other languages there is no single party behind it. What ecma says is only valid if the vendors implement it.
I'd be in favor of those programmers redefining a slimmed down version of JavaScript that follows good programming concepts. Create a structured language template for JavaScript that was taught in C and C++.
This man is golden, selfless, humble enough to tell you to look beyong them. I have always had the dream to be mentored by people like this. Sir, your words are golden and perfect for the next generation to learn from.
It all boils down to financial incentive. As long as executives can get working apps at a low enough development and production cost, then it doesn't matter to them that much. People create great languages but in the beginning, it is pointless for developers to learn as there are no job opportunities and very few ressources to learn from and get solutions to eventual issues. As for companies, they won't add it to their stack because of the hardship of getting developers that are proficient in that new language and it creates a vicious circle that keeps that language into oblivion. Unless there is backing from a popular company or you get enough developers really excited about it, it won't take off. JavaScript is now ubiquitous and with such a huge ecosystem, people will need a really strong reason to move away from it.
Well, none of the older languages have really been phased out in reality. Banks are still using Cobol and Mainframes, around 90% of the cellphones use Java, and pretty much any kind of hardware uses a flavor of C to do the low level stuff. The real question is why JS has remained so popular for so long?
@@Toulkun yeah, but that doesn’t explain JS popularity because most of the people using internet and websites everyday doesn’t even know how to code, so they couldn’t care less what programming language the internet is using the most.
@@emmakun the reason is people use browser the most among all softwares, google chrome is the most used browser, chrome browser's V8 engine can only understand JavaScript.. that's why JS is so much popular
Many years ago i start programming in javascript because of his speeches. Then i stop using javascript last 1.5 years. Finally Douglass Crockford himself said stop using javascript. Thank you.
Browsers became so powerful that we develop web apps, desktop apps, mobile apps and frameworks with JavaScript (TypeScript). I wish there was a way but I just don't see how we can replace JavaScript yet.
@@TechBuddy_ WASM is unfortunately becoming a monster, with extension (wasi) after extension (component model) and incompatibility (wasi again). It will always be soo close yet so far.
I wouldve loved if he actually mentioned specifics such as as drawbacks of JavaScript and what makes it smelly and what he would expect from its replacement or his imagination of what the new evolution of web could be if JavaScript was to be dumped? His reasoning is totally understandable but vague and can be applied on a lot of things at least based on this video or snippet if its a part of a larger one!
@@rice83101 I'm the graybeard here. I lived through the "Fortran...C...C++" evolution, and let's not forget Assembly language in the early days because the processors were too darned slow. Javascript was, and still is, a godsend in my opinion. You mentioned '===' and '=='. I guess it had to do with all those years writing Assembly, but I look at '===' as a fast-running '==' since there is no type-checking or coercing. I use it when I KNOW that I'm comparing two things of the same type. If I don't know, then I use '=='.
This keyword, closure, prototype, shallow copy object, equality comparison, var keyword, no data type, JavaScript being a dynamic language, very ugly way to handle inheritance, no access modifier, the way it handles asynchronous tasks that often give unexpected output, ... That's the drawbacks of JS that's came out of my mind while typing this, and there are so much more.
@@Ihsannurulimansfdthese are all learned things though. A fault of a language should not be it’s learning curve, but ability to implement new features fast.
@@rice83101 Most people are writing in another language and compiling to JS? I don't think that's true. Do you have a source for that claim? There are tons of people writing ordinary JavaScript and it is a fine language if you know how to use it well.
Well I've been doing web development for a while now and one thing that I came to understand is that there is no perfect technology, there are instead "tradeoffs"
But those trade offs are not equal, that’s the point, there’s definitely something better than javascript for web. What’s scary is that it’s definitely not the first or the hundredths time someone thought about this and it’s still js all around.
I think it will happen but its important to understand that they kind of people who make these types of decisions will always be influenced by their bottom line. If their clients need a product and their engineers are experienced in js what incentive do they have to innovate?
@@fernandoluna5458 YAML is a better choice for config, more concise, more expressive, with more data types, less prone to bad syntax with a missing (or extraneous) comma. I For machine machine JSON is just wrong. My client requires JSON on my current project so I have to maintain encode / decode in C++ on the edge and with JS on the cloud. Any change in the structure requires a heap of work. If we were using Google's protocol buffers or ASN.1 for example, the code would all be generated automatically from a clearly defined schema. I'd have a type-safe class to represent the data structure (with support for optional items, debug output etc).
@@AllanTheBanjoyaml isnt better for anything... it maybe could have bern but the spec is way to greedy. they wanted to include too much too the point where the meaning of s yaml file now is implementation dependent and there is too late to fix that.
For a moment WebAssembly looked to be set to replace Javascript, but it requires a load of glue and boilerplate to bootstrap, tying it back into JS. The tooling around it is a mess. Coupled with the extra cost in terms of binary size and start-up latency compared to JS, we're stuck with JS since it provides that instant responsiveness people want from the web. You can't escape it. Still, developing a JS replacement is a worthwhile endeavour, but I don't envy the people tasked with it. The web is probably the largest single attack surface in Tech, security in any new language has to be a priority. And web browsers are some of the most labyrinthian code projects out there, with some of the most obscure and opaque management structures to boot. Getting anything new added and standardised requires wrangling at least three multinationals and who knows how many committees and working groups. It takes at minimum months to sometimes years for anything to happen. (How long has WebGPU been in development now?) It is apt that Douglas should mention generations. The Web tech-space is trapped between two generations. Development of browsers and their supporting technologies is more akin to the days of Waterfall design practices, while all the companies leveraging JS for the next big thing are all about Agile methods. One wouldn't be surprised if that creates a bit of a language barrier.
@@PeterBernardin or if there was no DOM there would be less to standardize and the browser would be simpler. Why don't we just let web frameworks draw whatever. The document model is dead.
@@hbp_ You can already do that with stuff like Offscreen canvas and webgl and wasm. I think that's how flutter works. Along those lines at least. The issue is you have to ship an entire rendering pipeline with the app. Huge bundle. Also no standard for SEO.
@@PeterBernardin will it be much bigger tho. The quick solution to SEO could be to serve the text contents either just for the robots or in some hidden part. How did they solve this with Flash based websites?
Doug was there when E (the language which inspired JavaScript's promise implementation) was created, and honestly, the web should steal the rest of E - especially the capability model that enables secure interaction with the UI. The existing DOM is broken beyond repair: if you grant any component the ability to render nodes, you also grant the ability to load JavaScript with the global window in scope, and it inherits the ambient authority that comes from the SOP.
I just wish there was a better solution for multithreading in JavaScript... It's pretty awful to use web workers. Something like the goroutine or TBB parallel for would make things much easier and enable far larger projects!
I find web workers acceptable. They make thread lockups impossible and can easily be abstracted away by async functions. The main problem with them is how difficult it is to pass/share data with them.
I tried to learn Javascript from Steve Suehring's Microsoft book but got bogged down in chapter 8, called Objects in Javascript. I had worked with objects before in Visual Basic and other languages but I couldn't fathom this Javascript version. I typed a large section of the chapter on a Javascript forum and the concensus was: 'Is this author trying to confuse everyone?'. After that, I gave up.
My job depends on javascript BUT I would follow crockford and his advice any day. The last real language developers and creators were the last generation. Everything that he just said here resonated 30+ years of history.
Once things get well adopted and shown to work, the reason to change has to be compelling. None of the new languages provide a compelling enough reason to change. Go is great (for example), so is Rust ... but CPU is not the bottleneck for 90% of developers (and if it was, scaling is cheap), so there is no incentive to change from well supported tools. Javascript is essentially SQL now, it isn't going anywhere for the same reasons SQL isn't going anywhere. We should have better clothes too ... but everyone still wears jeans. :)
The crappy performance of most web applications is absolutely a compelling reason to change languages going forward. Rust doesn't just solve CPU usage issues, it just makes everything about a program or application far more reliable. No language is perfect and solve everything, but Rust definitely makes for applications that are intrinsically far more dependable than anything Javascript can produce.
At end of the day, it depends on how we use it. If we want static type we can typescript it. If we want functional programming we can write in functional way. If we want no-exceptions pattern like Golang we can add lint to block the build Maybe I’m missing something but what things materially make it bad?
I agree that JS is, emphasis on *is*, a really good language. Surprisingly, refreshingly good. The obvious possibility besides starting over, is to bifurcate with JS 2.0, simply removing all the cruft and reducing the language to the "good stuff", and freezing 1.0. Then the version is indicated in the script tag, and the old stuff continues to run as is, and those wanting to move forward are forced to either separate their code or remove the cruft from their existing code before declaring it to be 2.0. Nobody is forced to rewrite old, working code, only to package 1.0 code separately from 2.0 code. He's right, JS has accumulated cruft; but the solution is not to discard JS, it's to discard the cruft in a tolerably backward compatible way.
Microsoft is trying to push Blazor technology which is amazing (no need to create so many layers on client and server, you can use same classes on both sides), but the world still refuses it, because there are so many programmers who don't use ASP. I think that's bad, because this is the most productive environment for web ever existed and is pretty mature.
It's a tested and proven language. With new ones, there could be security issues. Adobe Macromedia Flash had the best performance, but of course, the security vulnerabilities weren't good.
@@seymourkoop9381 you can't. If a replacement ever become a movement in the tech industry, it would simply be re-inventing the wheel. For the longest time, "replacement" has always been built on top of older tech, until the older tech become something we take for granted.
0:18 - the truth is that it did, even though it was already a crappy programming "language" back then. This was only because it was heavily "promoted" by web browser developers.
JavaScript can at least be as dirty as C with the added problem that the vast majority of people writing JS never learned the fundamentals and therefore are not aware of how bad the stuff they tinker with until it just works seemingly is. There are good reasons why your introduction into programming at university is not JS (though it might use some and that I think is actually worthwhile despite students not getting why they should work with 3+ languages right from the start [and aiming for real deep understanding of one {that is not JS}]).
there is no dirty about some dom manipulation and http requests and some browser api. you are delusional. take it from someone who wrote a chess engine in c++ and in js
We don't need to get rid of JavaScript. The problem is that too many developers got rid of structured programming concepts. Instead, the language has been contorted into endless pretzels of programmer predilections. It has devolved into a chaos of permutated "options". That needs to be cleaned up before you think of starting a new language.
@@TitusM7 with a simple eslint and tsconfig you can fix that (in my codebases i don't allow any). Sadly you can't be so restrictive with this, because incremental adoption.
@@oscarljimenez5717 true but some people adopt typescript but never let go of the things typescript is trying to fix. We have projects that started with TS and they are absolutely messy, too damn hard to read and work around.
Honestly I don't think TS resolved the problem. Yes created new rules for developer and added another level of the complexity, whenever you want to use 3rd party library you need to learn a new type from that library. It's not a solid typed solution IMHO, I rather have to deal with C#. I don't like the possibility of creating types. TypeScript tries to mimic C#, I would just go with C#.
I don't believe his main audience is the web-based developers responding in the comments rather the people who create the APIs used primarily by these web devs. Another language could interact with the DOM or grab canvas elements but for some reason it's seen as niche. I personally am just happy to see HTML and CSS become robust enough that JavaScript is less necessary as well as more fresh and modernly robust languages release and find some adoption.
@@АнтонКулибякинHe never uses the word programming. Besides, HTML is now receiving new features that can dictate behavior so that no JavaScript is needed, so it *is* stepping into territory that used to be require complicated programming
This reminds me of a famous quote by Douglas Crockford from over a decade ago: "Your sadly pathetic bleatings are harshing my mellow". It seems like criticism for the sake of criticism without any effort to be constructive. If it were anyone else, we'd probably laugh at them. Douglas Crockford is worthy of a great deal of respect and admiration, but we still need to be practical. If he's suggesting that we stop using JavaScript, then he also needs to suggest what we should use instead. Like it or not, the browser has become a platform that is arguably more relevant than Windows/Mac/Linux. And the only programming language that the browser runs is JavaScript. Other programming languages can be compiled to JavaScript, but that's just a proxy. We're still using JavaScript. It might be argued that WebAssembly is "the next thing", but I don't have the impression it's mature enough or complete enough to supplant JavaScript.
This has been an effect in the industry for a long time now. Once a large number of people have been trained on a language, the amount of economic inertia created is huge. I remember thinking this about C++ in the early 2000s. Maybe more focus should be put on thinking of programming languages as a social norm, and an ecosystem, rather than as a simple technical exercise. Maybe government has more of a role to play. If you could create a cleaner JS that doesn't take much retraining (or has retraining materials built in to complier messages, and an official IDE), I think it would be easier to get adoption up. That way the expertise base is essentially the same size.
Yeah, I think they ran into the same problem every other javascript replacement to date ran into ... the web's immune system rejected a rogue vm . The best option is wasm which will just make JS less important by relegating it to just another language option
I quite like dart as a language. It's like the understandable bits of typescript without the legacy JavaScript stuff. It still compiles really well to JavaScript, so you can write web sites with it. JavaScript to me is like assembly. Yeah, you can write software with it, but it's probably best not to. Typescript is like assembly with some macros.
glad to see your comment, I feel I need to do the same.and leave out all this javascript frameworks that are poping all the time I'm exhausted in trying to figure out how they work...I'm finding it as time wasting instead of focusing on building the project I want with just HTML css and JS..what is your advise
@@peterkabiru5144Bro you cannot possibly make any real world applications without using those frameworks, it will be so bad that at one point you just cannot keep up with the complexity. It will be terrible. There are so many frameworks out there but they are not all same. Every framkework does things differently. If you want to enjoy and have a good time go with svelte, solids. If you really wanna step up to find a big job go with react and it's superset next. That's all really.
@@etyplt Yes it is unclear but imo he's trying to shake up the status quo and he might be doing it in a sort of "cheeky" manner but that doesn't make it not true. He was a massive proponent and contributor to js in the past (and what I would call a web pioneer in many ways), I think he's trying to instil some of the "inventing" spirit from back then into us now. It's not about having the answer right now but rather about believing it's possible to even start the journey! That turned into a bit of a ramble but I hope you know what I mean. :)
I really wish he would have mentioned what are the bad points he is referring to regarding the web and OSes. Does anybody know if he dives into that somewhere else?
We can definitely make something better, but the curve for meeting the current best solutions when starting from scratch is just so high, and the current best languages will be the last to be overtaken, which means they will only amass more adoption over time until they are simply no longer feasible for use. Learning curves are tough as well.
I don't understand this. Do you have a suggestion for replacement? And what language is not smelly? Something or the other goes bad. Python is a similar loosely typed one. There are better languages always coming for everything, but what do you replace JavaScript with?
JavaScript has such high rate of adoption, that it became an equivalent of cd-audio format with specs (44.1KHz 16 bit) that are still good enough after 40 years.
Too many people , including myself, hated JS. I found that it seems not to be so great in just Vanilla Javascript coding and I get your point but some factors still give JS undue advantage over other languages. JS is supported by all webbrowsers and web engines. Secondly, front end technologies like react, vue, angularJS makes it a reincarnated beast. No other language shines in high order functions (which makes it powerful) like js. You will have to do a lot more than just replacing it.
Evolution should be natural and not forced. Technology has been evolving as has Javascript over time, but I wouldn't want us to do to JS what we did to Flash. That was a shame.
I didn't get much out of this. He says JavaScript (and existing operating systems) are crap, but doesn't say why, or why new replacements would necessarily be better. As long as I've been a programmer (40 years), people are always saying existing languages are crap and this shiny new one is going to be fantastic and solve all the problems. There's a HUGE overhead in replacing existing software. Maybe it will be worth it but if that's what someone is advocating, they should make a case for it.
- Javascript still performs semicolon insertion - Javascript declares variables in the global namespace by default - Javascript uses type coercion - Javascript == operator performs type coercion rather than checking equality - meaning of `this` changes based on context - Javascript still has null and undefined - Javascript still hoists variable declarations - Javascript still uses function scope for variables declared in a block with var - Javascript still uses IEEE floating point format for numbers Just add `use stricter` and all will be good.
I remember when Java script came on the scene. I played with it a little. I remember a java applet that enabled you to post a rotation of pictures in a window. it was powerful, dynamic and horrendously unstable.
Год назад
Applets are a Java technology, not Javascript. It seems you don't know what JavaScript aka ECMAScript is.
@ Apparently not. I thought the script used to access the engine was Java script. That is what it was called at the time, the script you had to define in the page header to be able to use it in the web page. The script that defined how the applet would appear and function. I know the applet itself was not the script used to access it in the engine. But you seem to be saying that Javascript is an entirely different thing, that it is inappropriate to describe the script used to access the Java Engine from a web page as javascript?
Год назад+3
@@glenrisk5234 Correct, although Java and Javascript sound similar, these are 2 completly different and unrelated languages/technologies. People often confuse them because of the naming. This was done intentionally because Java was the No.1 most hyped language when JS came out, and they wanted to ride on the hype train. Before it was called Mocha and LiveScript. The official name is ECMAScript.
I agree 100% with everything he said. And that's why I've been years in development on a new platform that allows for the easy development & adoption of new languages.
I don't think the problem here is really JavaScript itself, but the way the web platform is & its starting. On the web, any feature once added will stay forever. Many of JavaScript's early bad design decisions are frozen in time & its impossible to make the language & its runtime better when you gotta support all the crap it has generated in the 1990s & 2000s. And the language was always kind of seen as an "irrelevant tech that would be DOA" in the 90s, especially considering how much Microsoft hurt its development while trying to push its JScript or whatever trying to take over the internet. And now after all the damage from the early days, we have Microsoft itself inventing a language (TS) and monopolizing the web development world with the now damaged JavaScript with all the bad design decisions becoming "something not scalable & to avoid".
No, the problem is JavaScript itself. It's objectively a bad language that became popular by being in the wrong place at the right time. A language that doesn't even support integer numbers!? Come on...
putting aside the fact browsers just don't want to run anything else a lot of new languages appear every year, some of them really smart, safe, performant but every one of them has a bizarre syntax, poor ecosystem (when compared to JS and PHP I guess everything has a poor ecosystem, but oh well...), not a lot of comercial perspectives to spend time learning it, not a lot of convenience to quickly ship a tool you need *right now* I'd love to see everything that's good about modern PHP and TS with the biggest pain points taken out, able to use at least one of these ecosystems (dream would be both + py + reasonable native-ish GUI for desktops and mobile) and while we're at it: make JSON handle trailing commas and comments, I'm not asking for more, just make it consistently and natively work wherever I look
We don't have developmental ethics we just pile stuff on top forever and ever, we know that certain services are getting slower and tiresome and not at all enjoyable for the end user but if we go back we would have to rewrite decades of add-ons, niche algorithms and patches. This is also a cultural phenomenon, where we know we're inching towards a cliff of nihilism, trow away consumerism, debt stacking economies, etc..
I’m pretty hopeful about Mojo as a new language (still in beta I believe). The developer, Chris Lattner, is a badass. It’s worth watching his last 2 Lex Fridman podcasts to see where it’s going. Most powerful and exciting language probably ever made and it uses Python syntax.
@@mohammadhassan1649 why is that funny? If you're focusing on the Python they simply use the Syntax and not the interpreter. It's a completely new animal but, you can use your Python skills to run it. Anyway, just remember this when you're either developing in it in a few years or wishing you could.
"It's time for the next thing." Funny enough, this is a core philosophy of the JS community itself. That's why we have so many new frameworks out there.
A large part of the problem is the development philosophy. People are using unstable experimental frameworks in production. We need to make and use finished code.
@@kitebeachinnbeachinn2888 are you kidding? I don't think anything has solved more problems in JS than what jQuery did. To unify different browser implementations of rendering stuff to the screen, React sits atop a pile of other useless UI frameworks. Yes, mistakes were made in jQuery, just like everything else made with a computer but to dismiss it's achievements as trivial seems unfair, bordering uninformed. I used to get paid to write JS, then it was React, now it is Vue... it's all just JS. 15+ years after picking up the language, jQuery still holds top spot for me in order or respect, even though I rarely ever use it when engaging in legacy web applications... My advice to anyone reading this, try NativeScript instead of React Native... there's no hype train but it's just better.
@@kitebeachinnbeachinn2888 You sound like a clueless coding bootcamp graduate. Vanilla and jQuery have everything you need to build a solid frontend. Simple, understandable and easy to debug. React on the other hand is a bunch of abstractions and weird syntax. Difficult to comprehend, debugging is a nightmare.. ends up being a mess of buggy "reusable" components that never get reused.
Thank you very much for your opinion. I appreciate very much such experienced and knowledgeable man. But what instead of JavaScript which is present in all web browsers around the World? I'm Go programmer and even if I want to compile my sources to WASM then JavaScript seems to be irreplaceable. Could you please expand your vision and give more light on it, what new languages you admire the most and why ?
If there are such languages. The language a frontend application runs must be interpreted at run time, something you can type and run in the integrated REPL, I don’t see there is any other language thare can compare to JavaScript.
I think syntactic layers on top of base languages are what’s missing, but JavaScript basically supports syntactic layering on top of it. JavaScript says yes to everything you want to do, good or bad. Before you even ask the question, JavaScript says yes. It’s basically the assembly layer for humans, on top of which many many projects/languages/frameworks have built their syntax on top of. The beauty of JavaScript is that no matter what syntax the application uses on top of this human assembly, you can always use any other syntax built on top of it to interact with it. JavaScript has done more to evolve language syntax than any other language because of this. If a syntax or framework sucks, we don’t have to use it. No specialized interop api needs to be created and maintained to do so. I agree that JavaScript has mistakes in it, but the only thing that could possibly replace it is some new language that is designed with a syntactic sugar layer/engine/api designed and maintained alongside the language. Consider how C# is being updated to improve the syntax, but it will only ever be the c# syntax. At the end of the day it will compile down to native or .net code anyways, but the syntax will only ever be C# The syntax only evolves via comity. JavaScript being the language that says yes to everything, is itself that human assembly upon which any syntax can be supported
Imho you should take a look at an extremely strongly typed language like F#, to see how big the differences actually are, that Javascript is far from being "complete", thus a sufficient foundation of anything that might follow. Imho, the necessity for dynamic typing turned out to be limited. It has its use cases, but there are already languages that demonstrate far better than JavaScript how to do this properly.
Javascript is awesome dispite its pitfalls. It is a language that was not prepared for what is the web today, that explain all the things that has been added. I think if we introduce another language, that will be very expensive(new engines). And what are we going to do with the billons of Javascript code already running in the web?
We should stop using Computers.. because, what we going to do with the billions of books and movies on physical devices? Just let them go and go into the future? Not with Lucas, guys.
I would love a typed version of javascript that's not full-on TypeScript. Many thanks to Douglas -- his was the first book I read on JS. He imparts knowledge in a no BS, no ego kind of way. I learned a lot from him (and from his linter). For me, I don't do much framework/virtual DOM stuff. Vanilla JS/Jquery works fine for me.
I'm all for letting the market decide. Make a better language and people will eventually figure it out. But I think you'll find out the benefit from switching from JS will be so small (in practical terms) that most people won't bother. Because at the end of the day, JS might not be a very good language according to some academic metric, but it's a great tool to solve the problems most devs face.
I think this is interesting, because on one hand I do agree with him. On the other hand to make a counter point during those earlier days software/computers hadn't hit the critical mass that they had today, and as others have said the benefits we get are... less drastic. Like I do think we could create a better developer experience, but there are enough people unwilling to try a new language and a lack of interest in supporting said languages.
I couldn't agree less. I never used Java script. I'm a C programmer and I cannot see anything wrong with this. It seems the overview of Mr Crockford is very limited and he doesn't see the world outside his preferred problem domain.
I have no problem with JavaScript. I also have done JavaScript for a generation, from the very beginning to now. What Douglas ignores, is that ANY programming language has it's limitations, hence there being so many of them, and there will be more to come as people work towards something that is fit for a particular purpose.
I think a lot of intellectuals such as this guy fail to consider how pragmatic it is to use JS. To make a majority of users convert to using something besides the established web would require billions of dollars in creativity and migration. I wouldn't use JS if I didn't have to, but where are all the jobs? Where are all the users? What's the selling point of moving users to a new OS/browser/GUI without a good enough cause/product? Just wanting to "evolve" as an answer is ignorant. There is evolution in the FE (CONSTANT!) but it's an outcome of its environment. Give users a reason to use something besides the web and people will follow. There's never been a compelling enough reason to do so.
We still use HTML as well. They both still work. His problem is the same as when a new startup that comes along that's better but can't get network adoption. Once a network gets critical mass it's hard to convince people to switch to a new network. Unless you have millions of dollars to pay people to join it. Wrt JavaScript well it's been heaps successful st being modular and easy to use, even if it has its quirks, so why should we swap? He doesn't offer an alternative. JS and node and jQuery and Vue and react. What's the alternative for the web? There is none except some legacy asp jsp that's not modular and no-one wants to use? Obviously there are server side alternatives but I mean full stack?
It has never been about the language. It’s all about the great things you create with it. Let’s not get too attached with the tools, but focus on the craft.
Silverlight, Flash, Applets all next generation but ultimately failed. JavaScript for all its worts keep evolving. It may not be perfect and likely never will be. JavaScript is simply the best tool for DOM manipulation so I think the question really should be where is the next generation of browsers that don’t use HTML or how do we replace them with something better entirely.
@Roberto Giménez For human-readable configuration files, yaml is more readable, allows comments, is less fussy about quotes and commas etc. For machine to machine communication use protocol buffers or similar where the scema generates the code. That eliminates ambiguity, allows proper types and saves a ton of maintenance work if the protocol changes.
Год назад+1
@@AllanTheBanjo I like JSON with comments for configuration files. For networking JSON is very flexible, more suitable for many cases than binary. That's why it's so popular.
@ I can't argue with its popularity! But I still contend that YAML is a better choice for config, more concise, more expressive, with more data types, less prone to bad syntax with a missing (or extraneous) comma. For machine machine JSON is just wrong. My client requires JSON on my current project so I have to maintain encode / decode in C++ on the edge and with JS on the cloud. Any change in the structure requires a heap of work. If we were using Google's protocol buffers or ASN.1 for example, the code would all be generated automatically from a clearly defined schema. I'd have a type-safe class to represent the data structure (with support for optional items, debug output etc). I'm genuinely interested in what cases JSON would be a better choice.
I don't really get the hate for JavaScript. It's so much easier to use than Java, and considering how essential it is to making modern webpages interactive, I doubt it's going anywhere. HTML, CSS, & JS are - for better or worse - the building blocks of the web.
@@everyhandletaken I have no qualms with HTML or CSS. To me, "the big three" are more than adequate to streamline web development. HTML handles the structure, CSS handles the layout/styling, JS handles the functionality.
It feels like he actually wanted to say, stop using vanilla Js. Because with all the advantages brought up by the plethora of js frameworks and libraries in constant evolution, JS still has a long lifespan.
I actually like his perspective on the matter. But the main problem with this is the complacency of people. All that they are after is convenience. The reason why stuff develops like fire in a short period of time is because of the people who want something new, better and strive for it, i.e. people like Douglas. As a student, I guess its my turn to see and participate in how the tech industry develops.
The point I take away from this that I don't see many other people commenting on is that while Douglas is specifically talking about JavaScript, I see this as a metaphor/opinion that can be applied to the entire development industry. Companies advertise and hire for technologies because the technology has market share, not because it fits into their application stack.
Yeah but they are also ubiquitous, adoption is important for hiring and maintenance
@@FilterChain and that is why we have all these problems, because all is patched by throwing money at it, not engineering.
@@laughingvampire7555 that, and the fact that open source became so political it's not even about writing good software anymore
That’s a great point, to use the right tech for the problem. Also he appeals to us to stop using it generally. 🫠
that's problem the person can be either talking about JavaScript (original) or Javascript (development industry).
JavaScript (original) is not just a market share, not just application stack. It is main our basis for the web.
"We're just stuck with this crap, and they keep piling on new features on everything and the new features always create new problems, and it doesn't have to be like that." This guy definitely is aware. This is the current state of software development in a nutshell. It's a nightmare.
The syntax of js is garbage and that is why MS developed typescript as a work around this garbage.
I love programming in javascript (occasional syntax sins excepted), but then I avoid using what I find to be the "smelly" bits. Maybe the answer is just to come up with some rough consensus on what the smelly bits are and deprecate them (although please not via "use fragrant") ;) Then we can keep using javascript rather tan starting completely from scratch.
@@kasperkat2004 if that were true, then why did typescript keep literally all of javascript's syntax, ie. make it a superset of javascript instead of inventing new syntax
That is a rhetorical question of course
@@kasperkat2004 Unfortunately, TypeScript is a superset of JavaScript which means many web developers will STILL be writing JS code.
@@UnlikelyToRemember Unfortunately, tons of JS code need to be maintained and you cannot replace all the smelly bits during your maintenance. You're stuck with the crap forever.
“There are still people developing languages but nobody cares. One person can make a programming language, a really good one, but you can’t get adoption for it.” He made a good point and he is absolutely right.
Abdolutely????
@@Asma.Mirgoul düzeltme için teşekkürler kanka :) yazarken yanlış tuşa basmışım
I was actually confused by that statement, there are quite a few recent languages growing in adoption: Kotlin, Rust, Swift and Go being the main ones but also smaller ones like Julia, Zig and Nim.
Because a language is NOT a framework. The academic vs the "discrete" worlds are very different for inherently good reasons.
@@ricardoamendoeira3800 In my opinion, Douglas is referring to languages like Mojo, Vlang, and other lesser-known languages that are fantastic but not widely known among most people. There are even languages that allow programming with commands in the native languages of different countries, but those countries are not even aware of these languages.
I think it’s because when all these new languages were coming out in the 90’s, companies were just still starting to integrate computers and the internet to their business, so they had the flexibility to move to new and better languages when a better one came out. But now, many companies entire digital foundation is built off of one tech stack for 10+ years, and these are massive companies. Imagine all the work of re-training their employees to this new stack, converting their whole code base to this new language. There’s a plethora of things that could go wrong. That’s why it’s hard for PHP to die. It’s hard to blame them really
@jonasjonaitis8571 Ugh PHP are you serious? No offense but I had to work with it for two years and it was pretty painful, for my team at least.
Exactly. Most the world has been built on old tools. One does not simply make new tools and make a new world.
One word, legacy. The antagonist of innovation.
I like PHP. I got to know it recently. Pretty funny. Yet powerful.
@@jamesyoo67 Well PHP has changed a bit. Don't tell me you've worked for PHP before 2022 because PHP today is much more different than the PHP years ago (see Laravel). Same with Java years ago and Java now. Languages change, you know.
1:15 "There are terrible mistakes in the way the web works , in the way our operating systems work..." As a graybeard whose favorite language is COBOL, I agree with him 100%. It sounds stupid, but I absolutely guarantee the internet was not supposed to end up the way it has. It is just what happens when folks focus on short term profit and clicks (attention) instead of actually doing something productive long term.
I agree. There is too much and not enough tested quality.
I'm not disagreeing, but what would the internet have looked like if not driven by profit?
@@CuriousCattery I think it's all about percentages. Out there, we totally see the positive ways the Internet can be used: it enhances communication around the world in fantastic ways, brings all information at our fingertips in seconds, empowers people with decentralized systems, and so much more. However, when you look at the numbers, an overwhelming majority of its use is pure brain-melting entertainment (think TikTok as the primary example). Overall, instead of pulling us up, it's globally pulling us down collectively, just because, as the OP mentioned, it is primarily driven by profit - which has quite different incentives and goals than the public good. :)
@@CuriousCatteryhe's not criticising profit he's criticizing stupidity and goldfish memories.
I guarantee that the short term profit chasing decisions made in the 2000s have caused long term reductions in profit. Look at the history of Internet Explorer for a good example
@@jytou That's true, but how would a different tech stack change that? Profit maximization is just a built-in feature of capitalism (not an anti-capitalist btw, just stating a fact).
He also wrote "JavaScript: The Good Parts", the most popular javascript book. I agree with him 100% about the state of javascript/typescript.
Can you explain what he meant by there is something wrong with the web dev and js
@@thr417 if youve used js you should know, the language itself was supposed to be a cool new tool to add interactivity to websites and it had a lot of weird functionality that carried over due to to maintaining backwards compatability. its just a big mess and people made ts to try and mitigate the fact it cant check for type errors but its not even good at that either as it still lets janky code with "any" types and its just more hacky code on top of hacky code. it really is time for a new and clean modern web dev language
@@sgwaic the fact 'any' exist dont mean you have to use it heavily, like in C# you could use 'object' ... isnt beause there is weird way to do thing that you have to do it weird too ...
@@sgwaic I would argue every single layer of tech infrastructure we have is hacky shit layered on or interwoven someone else's hacky shit. That's just the nature of development and internet technology as a whole you'll never fix it...
@some guy with an internet connection I agree that TS is not good enough but please stop saying TS is bad because of 'any'. Most of the sane devs shouldn't and don't use it.
I took my first JavaScript course in 2000. The teacher said he could see the day when JavaScript would become a dead language. Now, it is more entrenched in web development than ever, and it doesn't look like it's going away any time soon.
I also first got exposed to JS in college in 2001. While I do think there are some aspects that are "messy," I don't think it's nearly as "smelly" as people suggest. It's honestly no more "messy" than Java, or really any other OOP that uses for loops, if-then-else statements, arrays, etc.
What's given JS a bad name is the endless variety of libraries that have started coming out every few months or so. It's cut deep into actual productive coding because devs are constantly being asked to refactor code to utilize the newest version of React, Redux, etc. It's maddening. I'm a firm believer in Vanilla JS. Any time saved by relying on libraries is going to be lost when something goes wrong and now you've got to sift through chunks of code you didn't even write.
I few months ago I started a course on React (because it's the latest and greatest, right?). I remember reading the introduction to React and it describing how React lets you output HTML to the DOM interactively. My immediate thought was, "Uhh....but.....can't I already do that? Can't I just write HTML as a string var, and then use innerHTML or insertAdjacentHTML to modify the DOM? And I don't need all this unnecessary React nonsense?"
@@sixstanger00 Couldn't have said it better myself. I took a job with a writer's community, and the owner said I needed to embrace jQuery, which I did. I told him that jQuery didn't do anything you can't already do in vanilla JS, and he didn't want to hear about it. I think it's nonsense to have to switch from React to Vue to Angular. Just pick one and run with it.
@@sixstanger00 I agree with the overreliance on libraries. As far as inserting HTML directly, I think the difference is that React is running an SPA ... unless you wanted to implement that yourself.
That's the problem
JS was made when we had horrible internet and became the standard for the web. Since then little had changed. It is a dinasaur walking in modern times.
I've been saying this for years about the web languages in general. HTML and CSS are languages that, though they've been modified to support applications, were designed to describe documents. The application tags and styles were added in with mixed results, but HTML and CSS are STILL languages for describing documents. And JavaScript was invented to support that model. We can obviously create large and complex applications using HTML, CSS, and JavaScript. I'm a professional full-stack engineer, and do this every day. But it WOULD be nice to have modern languages that the browsers understand natively, without transpilers, that were designed from ground up to be for creating applications, not documents with application code thrown on top.
Wasm?
@@MrHeulendoch Wasm would be fine for the compiled language that the browser uses for sure, but I'm talking about writing, as a developer, in something other than HTML, CSS, and JavaScript. I'm not a huge fan of Microsoft's XAML language personally (I HATE the whole INotifyPropertyChanged thing), but like the general concept of it, including the way it handles styles. So I'm thinking something roughly akin to that. Then for a programming language that compiles to WASM, maybe something like Rust? Or a version of TypeScript that doesn't need to cater to transpiling to JavaScript. Don't know, haven't spent a ton of time thinking about it.
If the market demands it, it will happen. Otherwise, no
@@protonneutron9046 Oh, for sure. And I don't see the market demanding it. What we have now DOES work. It's just not ideal in my humble opinion. But it does work. Fortunately, we have tools and frameworks now that can make it easier, and CSS HAS been extended with things like FlexBox and Grid that help with positioning.
Thoughts on htmx?
I absolutely love JavaScript, and I agree with everything Crockford says in this short video. It seems that a lot of the commenters here think that the problems with JavaScript can be solved by taking features AWAY from it, and let it resemble older languages like C more. But he clearly states that we need a new generation of programming languages - he talks about how development of new languages kind of stopped with Java and JavaScript. He doesn't mention C#, PHP, Python, Ruby etc. but they are all from about 25 years ago, and it does indeed seem that we are stuck - and that is a bad thing!
The problem isn't whether you have one, two, or three equalsigns, or whether you need to define your datatypes yourself or let the compiler figure it out - the problem is that our entire model of what programming should be, is still stuck in the 1990s ...
as a web developer, the only concern for us back then when it comes to javascript was browser compatibility, which jQuery has solved, now all these new frameworks etc. instead of making it simple, it just getting way way more complicated.
Modern requirements are too much for jQuery alone.
Try building any modern day frontend with just jquery and see how it goes. We need more complex frameworks and libraries to support more complex applications
@@RyanRouleau its doable, but its x3 the effort. But very doable.
@@RyanRouleau Can you tell me where's the common ground between react and jQuery please, might have missed something in the past 10 years but i am pretty sure they have absolutely nothing in common.
Also React is the bane of all evil, yes it basically a standard, but it's also proven that we need code academies to teach people basic syntax these days, so i wouldn't compare anything modern to being close to better then X from before.
If you want to compare vanilla javascript and react you would most likely point to web components than Jquery, bot fit the same requirements, problem is web components take much more effort to achieve the same thing.
The biggest issue however, is that people are taking it too far, the web was created as a medium to share information not to build software on top of it, and nowadays people want to build desktop applications on top of the web which is frankly stupid and 9/10 a complete flop.
@@justanaveragebalkan How is it "stupid" and "a complete flop" when web apps are extremely successful and their advantages are obvious?
I totally understand his sentiment. If we were to gather the best stakeholders in the language/browser space, lock 'em in a room with the brief to create the next gen of DOM and a scripting language to manipulate it, I'm 100% certain that the result would solve all of the DOM and Javascript's shortcomings, be more capable, be faster, more robust and usable. It makes me wonder why there isn't already such a project.
There are features that after years have not shipped and bugs with decades just because the different parts could not agree on them. Google does what they like and so does the rest. That's also the main difference with JavaScript vs other languages there is no single party behind it. What ecma says is only valid if the vendors implement it.
I'd be in favor of those programmers redefining a slimmed down version of JavaScript that follows good programming concepts. Create a structured language template for JavaScript that was taught in C and C++.
@@calimio6 How is that going to change with a new language? It's always going to be a power struggle. That's not a technical problem.
@@Martinit0 and what did I say?
Because JavaScript already is that. With some back-compatibility issues that are easy to ignore.
This man is golden, selfless, humble enough to tell you to look beyong them. I have always had the dream to be mentored by people like this. Sir, your words are golden and perfect for the next generation to learn from.
It all boils down to financial incentive. As long as executives can get working apps at a low enough development and production cost, then it doesn't matter to them that much. People create great languages but in the beginning, it is pointless for developers to learn as there are no job opportunities and very few ressources to learn from and get solutions to eventual issues. As for companies, they won't add it to their stack because of the hardship of getting developers that are proficient in that new language and it creates a vicious circle that keeps that language into oblivion. Unless there is backing from a popular company or you get enough developers really excited about it, it won't take off.
JavaScript is now ubiquitous and with such a huge ecosystem, people will need a really strong reason to move away from it.
Agree 100%
Executives don't choose technologies, it's developers who takes Angular and React for new projects
There are plenty of reasons at scale. Switching from a full NodeJS back end to something like Go can result in you saving 90% or more on infra costs.
Well, none of the older languages have really been phased out in reality. Banks are still using Cobol and Mainframes, around 90% of the cellphones use Java, and pretty much any kind of hardware uses a flavor of C to do the low level stuff. The real question is why JS has remained so popular for so long?
Because people use internet daily and websites are all on JS and its frameworks-libraries
@@Toulkun yeah, but that doesn’t explain JS popularity because most of the people using internet and websites everyday doesn’t even know how to code, so they couldn’t care less what programming language the internet is using the most.
@@emmakun the reason is people use browser the most among all softwares, google chrome is the most used browser, chrome browser's V8 engine can only understand JavaScript.. that's why JS is so much popular
Because we do the same thing as the other programmers do, we follow the herd.
because dudes make a create react app in the terminal and they feel invincible.
Many years ago i start programming in javascript because of his speeches. Then i stop using javascript last 1.5 years. Finally Douglass Crockford himself said stop using javascript. Thank you.
So, what's your next language?
Goodluck for your next language. Javascript made my life easier. React is "FANTASTIC" and now "nextjs"
Browsers became so powerful that we develop web apps, desktop apps, mobile apps and frameworks with JavaScript (TypeScript). I wish there was a way but I just don't see how we can replace JavaScript yet.
True
Wasm is sooo close yet soo far
@@TechBuddy_ Yeah, maybe we need a few more years and then we can slowly get rid of JavaScript
maui?
Currently writing hybrid apps using html CSS and C#. No JavaScript ❤
@@TechBuddy_ WASM is unfortunately becoming a monster, with extension (wasi) after extension (component model) and incompatibility (wasi again). It will always be soo close yet so far.
I wouldve loved if he actually mentioned specifics such as as drawbacks of JavaScript and what makes it smelly and what he would expect from its replacement or his imagination of what the new evolution of web could be if JavaScript was to be dumped? His reasoning is totally understandable but vague and can be applied on a lot of things at least based on this video or snippet if its a part of a larger one!
Javascript is a dumpster fire
@@rice83101 I'm the graybeard here. I lived through the "Fortran...C...C++" evolution, and let's not forget Assembly language in the early days because the processors were too darned slow. Javascript was, and still is, a godsend in my opinion. You mentioned '===' and '=='. I guess it had to do with all those years writing Assembly, but I look at '===' as a fast-running '==' since there is no type-checking or coercing. I use it when I KNOW that I'm comparing two things of the same type. If I don't know, then I use '=='.
This keyword, closure, prototype, shallow copy object, equality comparison, var keyword, no data type, JavaScript being a dynamic language, very ugly way to handle inheritance, no access modifier, the way it handles asynchronous tasks that often give unexpected output, ...
That's the drawbacks of JS that's came out of my mind while typing this, and there are so much more.
@@Ihsannurulimansfdthese are all learned things though. A fault of a language should not be it’s learning curve, but ability to implement new features fast.
@@rice83101
Most people are writing in another language and compiling to JS? I don't think that's true. Do you have a source for that claim? There are tons of people writing ordinary JavaScript and it is a fine language if you know how to use it well.
Well I've been doing web development for a while now and one thing that I came to understand is that there is no perfect technology, there are instead "tradeoffs"
JavaScript IS the tradeoff 😂. it's awful. Typescript is proof.
"There are no solutions. There are only trade-offs" - Thomas Sowell
there are only 2 types of languages: the ones that everyone hates and the ones that no one uses
But those trade offs are not equal, that’s the point, there’s definitely something better than javascript for web. What’s scary is that it’s definitely not the first or the hundredths time someone thought about this and it’s still js all around.
@@turolretar exactly.
I totally agreed. Where I can find the full interview?? please 🥺
I think it will happen but its important to understand that they kind of people who make these types of decisions will always be influenced by their bottom line. If their clients need a product and their engineers are experienced in js what incentive do they have to innovate?
I love this type of controversial content
Agreed, although I wish it was longer. 2 mins is way too short.
Douglas Crockford loves telling people what they shouldn't do
you mean clickbait content?
Is it really controversial? I don't think it's controversial. Even the author of JavaScript does not really like it...
JSON not allowing a trailing comma was the biggest mistake.
Json existing is the biggest mistake...
@@AllanTheBanjo why?
@@fernandoluna5458 YAML is a better choice for config, more concise, more expressive, with more data types, less prone to bad syntax with a missing (or extraneous) comma. I
For machine machine JSON is just wrong. My client requires JSON on my current project so I have to maintain encode / decode in C++ on the edge and with JS on the cloud. Any change in the structure requires a heap of work. If we were using Google's protocol buffers or ASN.1 for example, the code would all be generated automatically from a clearly defined schema. I'd have a type-safe class to represent the data structure (with support for optional items, debug output etc).
@@AllanTheBanjo Really appreciate your resoning. Thank you!
@@AllanTheBanjoyaml isnt better for anything... it maybe could have bern but the spec is way to greedy. they wanted to include too much too the point where the meaning of s yaml file now is implementation dependent and there is too late to fix that.
For a moment WebAssembly looked to be set to replace Javascript, but it requires a load of glue and boilerplate to bootstrap, tying it back into JS. The tooling around it is a mess. Coupled with the extra cost in terms of binary size and start-up latency compared to JS, we're stuck with JS since it provides that instant responsiveness people want from the web. You can't escape it.
Still, developing a JS replacement is a worthwhile endeavour, but I don't envy the people tasked with it. The web is probably the largest single attack surface in Tech, security in any new language has to be a priority. And web browsers are some of the most labyrinthian code projects out there, with some of the most obscure and opaque management structures to boot. Getting anything new added and standardised requires wrangling at least three multinationals and who knows how many committees and working groups. It takes at minimum months to sometimes years for anything to happen. (How long has WebGPU been in development now?)
It is apt that Douglas should mention generations. The Web tech-space is trapped between two generations. Development of browsers and their supporting technologies is more akin to the days of Waterfall design practices, while all the companies leveraging JS for the next big thing are all about Agile methods. One wouldn't be surprised if that creates a bit of a language barrier.
When WASM will be able to directly access the DOM, without having to use JS as a middle-man, that will be a big day.
@@PeterBernardin or if there was no DOM there would be less to standardize and the browser would be simpler. Why don't we just let web frameworks draw whatever. The document model is dead.
@@hbp_ You can already do that with stuff like Offscreen canvas and webgl and wasm. I think that's how flutter works. Along those lines at least. The issue is you have to ship an entire rendering pipeline with the app. Huge bundle. Also no standard for SEO.
Wait isn't wasm start-up faster?
@@PeterBernardin will it be much bigger tho. The quick solution to SEO could be to serve the text contents either just for the robots or in some hidden part. How did they solve this with Flash based websites?
Is there a longer version of this interview?
I was wondering the same. Especially how it just leaves off hanging
They're working on it, Mr. Crockford, and it's much improved since 2015 - especially with TypeScript (and I hear native typing is on the horizon).
Typescript 🤮
Typescript is better than JS but it's just a bandaid. A new language with native typing is where it needs to go.
@@magnanova this exactly. Typescript removes some of the suck, but nowhere near all of it.
What is the alternative. I really hate javascript.
Golang
@@okseaj it's a server side programming language
@@praveens2272 yeah and JS is pervasive as a server side solution so we can at least stop using it there and use better alternatives
I believe wasm is answer to this problem
@@okseaj but i have yet to see any go lang jobs in 2rd world countries. Mostly Java, C# and nodejs.
Doug was there when E (the language which inspired JavaScript's promise implementation) was created, and honestly, the web should steal the rest of E - especially the capability model that enables secure interaction with the UI. The existing DOM is broken beyond repair: if you grant any component the ability to render nodes, you also grant the ability to load JavaScript with the global window in scope, and it inherits the ambient authority that comes from the SOP.
I just wish there was a better solution for multithreading in JavaScript... It's pretty awful to use web workers. Something like the goroutine or TBB parallel for would make things much easier and enable far larger projects!
Use a better language.
Child processes are a salvageable workaround.
Wasm Wasm wasm
I find web workers acceptable. They make thread lockups impossible and can easily be abstracted away by async functions. The main problem with them is how difficult it is to pass/share data with them.
I tried to learn Javascript from Steve Suehring's Microsoft book but got bogged down in chapter 8, called Objects in Javascript. I had worked with objects before in Visual Basic and other languages but I couldn't fathom this Javascript version. I typed a large section of the chapter on a Javascript forum and the concensus was: 'Is this author trying to confuse everyone?'. After that, I gave up.
lmaao
My job depends on javascript BUT I would follow crockford and his advice any day. The last real language developers and creators were the last generation. Everything that he just said here resonated 30+ years of history.
I really enjoy hearing from Doug, I remember seeing his history of JavaScript/programming a number of years ago that were really eye opening
same here, I learned a lot from Doug back in the days...
@@AdminAntitask :)
I remember a while back a lot of people got mad at him for something
I'd love to see this. Do you know where I can find it?
Once things get well adopted and shown to work, the reason to change has to be compelling. None of the new languages provide a compelling enough reason to change. Go is great (for example), so is Rust ... but CPU is not the bottleneck for 90% of developers (and if it was, scaling is cheap), so there is no incentive to change from well supported tools. Javascript is essentially SQL now, it isn't going anywhere for the same reasons SQL isn't going anywhere. We should have better clothes too ... but everyone still wears jeans. :)
golang is not a good language
The crappy performance of most web applications is absolutely a compelling reason to change languages going forward. Rust doesn't just solve CPU usage issues, it just makes everything about a program or application far more reliable. No language is perfect and solve everything, but Rust definitely makes for applications that are intrinsically far more dependable than anything Javascript can produce.
@@tetrabromobisphenol”intrinsically” dependable? 🙄
Yeah but JS is jeans with holes in it, exposing your junk
@@zhamed9587 Why? Its developed by one of best engineers....
At end of the day, it depends on how we use it.
If we want static type we can typescript it.
If we want functional programming we can write in functional way.
If we want no-exceptions pattern like Golang we can add lint to block the build
Maybe I’m missing something but what things materially make it bad?
your codebase is always huge mess with JS because it is imperative compare that to elegant declarative language like Haskell
I agree that JS is, emphasis on *is*, a really good language. Surprisingly, refreshingly good. The obvious possibility besides starting over, is to bifurcate with JS 2.0, simply removing all the cruft and reducing the language to the "good stuff", and freezing 1.0. Then the version is indicated in the script tag, and the old stuff continues to run as is, and those wanting to move forward are forced to either separate their code or remove the cruft from their existing code before declaring it to be 2.0. Nobody is forced to rewrite old, working code, only to package 1.0 code separately from 2.0 code. He's right, JS has accumulated cruft; but the solution is not to discard JS, it's to discard the cruft in a tolerably backward compatible way.
Microsoft is trying to push Blazor technology which is amazing (no need to create so many layers on client and server, you can use same classes on both sides), but the world still refuses it, because there are so many programmers who don't use ASP. I think that's bad, because this is the most productive environment for web ever existed and is pretty mature.
Glad to have been a raw coder and avoided short cuts for 13 years and yet going on
are you guys ask him which programming lang he used to code recently? just curious
I believe he uses Dart right now. bcz I think there's no other languages that is better than Dart
Really a hard one to remove, JavaScript is in 98% of the website and decades of work wasted on working on this programming language
The only way to remove it is to replace it. I was hoping Douglass would offer a suggestion on what to replace it with, but no.
It's a tested and proven language. With new ones, there could be security issues. Adobe Macromedia Flash had the best performance, but of course, the security vulnerabilities weren't good.
@@seymourkoop9381 lets say Douglass suggested Golang or Rust then what? building the web from scratch?
@@seymourkoop9381 you can't. If a replacement ever become a movement in the tech industry, it would simply be re-inventing the wheel. For the longest time, "replacement" has always been built on top of older tech, until the older tech become something we take for granted.
0:18 - the truth is that it did, even though it was already a crappy programming "language" back then. This was only because it was heavily "promoted" by web browser developers.
Kinda like python lua stuff
What is the alternative, though?
JavaScript can at least be as dirty as C with the added problem that the vast majority of people writing JS never learned the fundamentals and therefore are not aware of how bad the stuff they tinker with until it just works seemingly is. There are good reasons why your introduction into programming at university is not JS (though it might use some and that I think is actually worthwhile despite students not getting why they should work with 3+ languages right from the start [and aiming for real deep understanding of one {that is not JS}]).
I like your nested brackets 😊
there is no dirty about some dom manipulation and http requests and some browser api. you are delusional. take it from someone who wrote a chess engine in c++ and in js
We don't need to get rid of JavaScript. The problem is that too many developers got rid of structured programming concepts. Instead, the language has been contorted into endless pretzels of programmer predilections. It has devolved into a chaos of permutated "options". That needs to be cleaned up before you think of starting a new language.
Finally, an authorative professional who say an obvious thing: javascript is *unamendable*. It cannot be fixed. It must be replaced.
What better alternative was he talking about or do you suggest?
Just another gooner over here complaining about how easy Javascript is to use vs all aother languages. Move along.
@@timty2828 A specialized DSL can be made.
I still code vb6, is it means i'm bad person
okay, what language to use then?
That's why Typescript was created to address some of the shortcomings of Javascript. I don't see people stopping using js anytime soon.
Except i still see garbage TS code where everything is messy everything is “any” still as confusing and trash as js code.
@@TitusM7 with a simple eslint and tsconfig you can fix that (in my codebases i don't allow any). Sadly you can't be so restrictive with this, because incremental adoption.
good news bc i am learning the whole javascript ecosystem still😭
@@oscarljimenez5717 true but some people adopt typescript but never let go of the things typescript is trying to fix. We have projects that started with TS and they are absolutely messy, too damn hard to read and work around.
Honestly I don't think TS resolved the problem. Yes created new rules for developer and added another level of the complexity, whenever you want to use 3rd party library you need to learn a new type from that library. It's not a solid typed solution IMHO, I rather have to deal with C#. I don't like the possibility of creating types. TypeScript tries to mimic C#, I would just go with C#.
I use ClojureScript for all my frontend work.
There are other excellent options like Elm.
Any comments on libraries for ClojureScript? Are they any good? How often do you need to write your own code because there is no library for it?
elm hasn't been updated in the past 5 years
I don't believe his main audience is the web-based developers responding in the comments rather the people who create the APIs used primarily by these web devs. Another language could interact with the DOM or grab canvas elements but for some reason it's seen as niche.
I personally am just happy to see HTML and CSS become robust enough that JavaScript is less necessary as well as more fresh and modernly robust languages release and find some adoption.
HTML and css programming language 😂😂😂😂😂?
@@АнтонКулибякин no? Nowhere above do I use the word programming at all right?
@@АнтонКулибякинHe never uses the word programming. Besides, HTML is now receiving new features that can dictate behavior so that no JavaScript is needed, so it *is* stepping into territory that used to be require complicated programming
@@Ccb780 html and css are not programming languages! it's not even interpreted code.
@@josemaker5252 smart ass ! and how will you make me handle the user form on an event in html?
This reminds me of a famous quote by Douglas Crockford from over a decade ago: "Your sadly pathetic bleatings are harshing my mellow". It seems like criticism for the sake of criticism without any effort to be constructive. If it were anyone else, we'd probably laugh at them.
Douglas Crockford is worthy of a great deal of respect and admiration, but we still need to be practical. If he's suggesting that we stop using JavaScript, then he also needs to suggest what we should use instead. Like it or not, the browser has become a platform that is arguably more relevant than Windows/Mac/Linux. And the only programming language that the browser runs is JavaScript. Other programming languages can be compiled to JavaScript, but that's just a proxy. We're still using JavaScript.
It might be argued that WebAssembly is "the next thing", but I don't have the impression it's mature enough or complete enough to supplant JavaScript.
This has been an effect in the industry for a long time now.
Once a large number of people have been trained on a language, the amount of economic inertia created is huge.
I remember thinking this about C++ in the early 2000s.
Maybe more focus should be put on thinking of programming languages as a social norm, and an ecosystem, rather than as a simple technical exercise. Maybe government has more of a role to play.
If you could create a cleaner JS that doesn't take much retraining (or has retraining materials built in to complier messages, and an official IDE), I think it would be easier to get adoption up. That way the expertise base is essentially the same size.
I read that initially Google planned to include Dart interpreter in Chrome, but that plan was quickly scrapped. Maybe that would've been a solution.
Dart sucks
@@kelvinsanyaolu4899 why?
Yeah, I think they ran into the same problem every other javascript replacement to date ran into ... the web's immune system rejected a rogue vm .
The best option is wasm which will just make JS less important by relegating it to just another language option
@@kelvinsanyaolu4899Then you're part of the problem.
I quite like dart as a language. It's like the understandable bits of typescript without the legacy JavaScript stuff. It still compiles really well to JavaScript, so you can write web sites with it.
JavaScript to me is like assembly. Yeah, you can write software with it, but it's probably best not to. Typescript is like assembly with some macros.
I switched back to basics.HTML, JavaScript and CSS for the front end and WAMP stack for the back end. That's All I need.
glad to see your comment, I feel I need to do the same.and leave out all this javascript frameworks that are poping all the time I'm exhausted in trying to figure out how they work...I'm finding it as time wasting instead of focusing on building the project I want with just HTML css and JS..what is your advise
@@peterkabiru5144Bro you cannot possibly make any real world applications without using those frameworks, it will be so bad that at one point you just cannot keep up with the complexity. It will be terrible. There are so many frameworks out there but they are not all same. Every framkework does things differently. If you want to enjoy and have a good time go with svelte, solids. If you really wanna step up to find a big job go with react and it's superset next. That's all really.
Use nodejs for the backend
@@Saurabhkumar-bn3dl I bet you don't know JS properly
@@Deb_deCoder Sure whatever helps you sleep at night.
well.. he does have a point
@@etyplt he wants a better language for javascripts uses
@@etypltLOL! looks like you aren't sure what he wants.. he really has good points
Yes. But that is not good enough 😂
@@etyplt Yes it is unclear but imo he's trying to shake up the status quo and he might be doing it in a sort of "cheeky" manner but that doesn't make it not true. He was a massive proponent and contributor to js in the past (and what I would call a web pioneer in many ways), I think he's trying to instil some of the "inventing" spirit from back then into us now. It's not about having the answer right now but rather about believing it's possible to even start the journey! That turned into a bit of a ramble but I hope you know what I mean. :)
I agree.
I really wish he would have mentioned what are the bad points he is referring to regarding the web and OSes. Does anybody know if he dives into that somewhere else?
We need a replacement then. We can't stop using it if it is still the simplest option even though it sucks
We can definitely make something better, but the curve for meeting the current best solutions when starting from scratch is just so high, and the current best languages will be the last to be overtaken, which means they will only amass more adoption over time until they are simply no longer feasible for use. Learning curves are tough as well.
I don't understand this. Do you have a suggestion for replacement? And what language is not smelly? Something or the other goes bad. Python is a similar loosely typed one. There are better languages always coming for everything, but what do you replace JavaScript with?
the degree of smelliness that JS has is much higher than other languages.
@@okseaj Any example?
@@resetengineering C#
@@JeatBunkie that's even worse nobody wants to create a class for every page
@@resetengineering he doesn't have any, he's just talking
JavaScript has such high rate of adoption, that it became an equivalent of cd-audio format with specs (44.1KHz 16 bit) that are still good enough after 40 years.
what are thoses issues ? what is the flaws in the web and what are the flaws in the operating system ? does anyone has anyidea ?
Too many people , including myself, hated JS. I found that it seems not to be so great in just Vanilla Javascript coding and I get your point but some factors still give JS undue advantage over other languages. JS is supported by all webbrowsers and web engines. Secondly, front end technologies like react, vue, angularJS makes it a reincarnated beast. No other language shines in high order functions (which makes it powerful) like js. You will have to do a lot more than just replacing it.
Evolution should be natural and not forced. Technology has been evolving as has Javascript over time, but I wouldn't want us to do to JS what we did to Flash. That was a shame.
IT WAS. a shame :(
I know this is old but I disagree. We might get stuck at a local peak with this approach.
I didn't get much out of this.
He says JavaScript (and existing operating systems) are crap, but doesn't say why, or why new replacements would necessarily be better.
As long as I've been a programmer (40 years), people are always saying existing languages are crap and this shiny new one is going to be fantastic and solve all the problems.
There's a HUGE overhead in replacing existing software. Maybe it will be worth it but if that's what someone is advocating, they should make a case for it.
- Javascript still performs semicolon insertion
- Javascript declares variables in the global namespace by default
- Javascript uses type coercion
- Javascript == operator performs type coercion rather than checking equality
- meaning of `this` changes based on context
- Javascript still has null and undefined
- Javascript still hoists variable declarations
- Javascript still uses function scope for variables declared in a block with var
- Javascript still uses IEEE floating point format for numbers
Just add `use stricter` and all will be good.
I never liked JavaScript and Douglas Crockford now knows why.
so what should we be looking at? he forgot to mention
You mean Rust on NixOs ?
I remember when Java script came on the scene. I played with it a little. I remember a java applet that enabled you to post a rotation of pictures in a window. it was powerful, dynamic and horrendously unstable.
Applets are a Java technology, not Javascript. It seems you don't know what JavaScript aka ECMAScript is.
@ Apparently not. I thought the script used to access the engine was Java script. That is what it was called at the time, the script you had to define in the page header to be able to use it in the web page. The script that defined how the applet would appear and function. I know the applet itself was not the script used to access it in the engine. But you seem to be saying that Javascript is an entirely different thing, that it is inappropriate to describe the script used to access the Java Engine from a web page as javascript?
@@glenrisk5234 Correct, although Java and Javascript sound similar, these are 2 completly different and unrelated languages/technologies. People often confuse them because of the naming. This was done intentionally because Java was the No.1 most hyped language when JS came out, and they wanted to ride on the hype train. Before it was called Mocha and LiveScript. The official name is ECMAScript.
I agree 100% with everything he said. And that's why I've been years in development on a new platform that allows for the easy development & adoption of new languages.
I don't think the problem here is really JavaScript itself, but the way the web platform is & its starting. On the web, any feature once added will stay forever. Many of JavaScript's early bad design decisions are frozen in time & its impossible to make the language & its runtime better when you gotta support all the crap it has generated in the 1990s & 2000s. And the language was always kind of seen as an "irrelevant tech that would be DOA" in the 90s, especially considering how much Microsoft hurt its development while trying to push its JScript or whatever trying to take over the internet. And now after all the damage from the early days, we have Microsoft itself inventing a language (TS) and monopolizing the web development world with the now damaged JavaScript with all the bad design decisions becoming "something not scalable & to avoid".
Yea stupid Microsoft
Yes, it was Microsoft being the cancer.
No, the problem is JavaScript itself. It's objectively a bad language that became popular by being in the wrong place at the right time. A language that doesn't even support integer numbers!? Come on...
@@DarkmoonUK What do you mean, it doesn't support integer numbers?
putting aside the fact browsers just don't want to run anything else
a lot of new languages appear every year, some of them really smart, safe, performant
but every one of them has a bizarre syntax, poor ecosystem (when compared to JS and PHP I guess everything has a poor ecosystem, but oh well...), not a lot of comercial perspectives to spend time learning it, not a lot of convenience to quickly ship a tool you need *right now*
I'd love to see everything that's good about modern PHP and TS with the biggest pain points taken out, able to use at least one of these ecosystems (dream would be both + py + reasonable native-ish GUI for desktops and mobile)
and while we're at it: make JSON handle trailing commas and comments, I'm not asking for more, just make it consistently and natively work wherever I look
We don't have developmental ethics we just pile stuff on top forever and ever, we know that certain services are getting slower and tiresome and not at all enjoyable for the end user but if we go back we would have to rewrite decades of add-ons, niche algorithms and patches.
This is also a cultural phenomenon, where we know we're inching towards a cliff of nihilism, trow away consumerism, debt stacking economies, etc..
I’m pretty hopeful about Mojo as a new language (still in beta I believe). The developer, Chris Lattner, is a badass. It’s worth watching his last 2 Lex Fridman podcasts to see where it’s going. Most powerful and exciting language probably ever made and it uses Python syntax.
Lol
@@mohammadhassan1649 why is that funny? If you're focusing on the Python they simply use the Syntax and not the interpreter. It's a completely new animal but, you can use your Python skills to run it. Anyway, just remember this when you're either developing in it in a few years or wishing you could.
@@GiantsOnTheHorizon why r u so agressive man -_-
well i loved swift, so i put my bets on this guy
@@Hytpu9 if you thought that was an aggressive comment I wish you well in the world.
it would be nice to know some examples of those 'mistakes in OS, runtime and languages'. Especially the OS part.
"It's time for the next thing."
Funny enough, this is a core philosophy of the JS community itself. That's why we have so many new frameworks out there.
@ghost mall There's nothing "shaky" about JS... only bad practices. This can be true for many other languages. Everything has it's pros and cons.
@@Xaero324 Reacjs solved a huge problem compared to Jquery but the rest are only reinventing the wheel with a good exception Vuejs.
A large part of the problem is the development philosophy. People are using unstable experimental frameworks in production.
We need to make and use finished code.
@@kitebeachinnbeachinn2888 are you kidding? I don't think anything has solved more problems in JS than what jQuery did. To unify different browser implementations of rendering stuff to the screen, React sits atop a pile of other useless UI frameworks. Yes, mistakes were made in jQuery, just like everything else made with a computer but to dismiss it's achievements as trivial seems unfair, bordering uninformed. I used to get paid to write JS, then it was React, now it is Vue... it's all just JS. 15+ years after picking up the language, jQuery still holds top spot for me in order or respect, even though I rarely ever use it when engaging in legacy web applications... My advice to anyone reading this, try NativeScript instead of React Native... there's no hype train but it's just better.
@@kitebeachinnbeachinn2888 You sound like a clueless coding bootcamp graduate. Vanilla and jQuery have everything you need to build a solid frontend. Simple, understandable and easy to debug. React on the other hand is a bunch of abstractions and weird syntax. Difficult to comprehend, debugging is a nightmare.. ends up being a mess of buggy "reusable" components that never get reused.
What are you going to use for the browser, then? Rust with WASM?
Thank you very much for your opinion. I appreciate very much such experienced and knowledgeable man. But what instead of JavaScript which is present in all web browsers around the World? I'm Go programmer and even if I want to compile my sources to WASM then JavaScript seems to be irreplaceable. Could you please expand your vision and give more light on it, what new languages you admire the most and why ?
For this to happen, browsers have to improve and support better languages.
If there are such languages. The language a frontend application runs must be interpreted at run time, something you can type and run in the integrated REPL, I don’t see there is any other language thare can compare to JavaScript.
@@a-yon_nwhat????
What do you mean by "what"? What they said makes perfect sense.
I think syntactic layers on top of base languages are what’s missing, but JavaScript basically supports syntactic layering on top of it. JavaScript says yes to everything you want to do, good or bad.
Before you even ask the question, JavaScript says yes. It’s basically the assembly layer for humans, on top of which many many projects/languages/frameworks have built their syntax on top of.
The beauty of JavaScript is that no matter what syntax the application uses on top of this human assembly, you can always use any other syntax built on top of it to interact with it.
JavaScript has done more to evolve language syntax than any other language because of this.
If a syntax or framework sucks, we don’t have to use it. No specialized interop api needs to be created and maintained to do so.
I agree that JavaScript has mistakes in it, but the only thing that could possibly replace it is some new language that is designed with a syntactic sugar layer/engine/api designed and maintained alongside the language.
Consider how C# is being updated to improve the syntax, but it will only ever be the c# syntax. At the end of the day it will compile down to native or .net code anyways, but the syntax will only ever be C#
The syntax only evolves via comity.
JavaScript being the language that says yes to everything, is itself that human assembly upon which any syntax can be supported
Imho you should take a look at an extremely strongly typed language like F#, to see how big the differences actually are, that Javascript is far from being "complete", thus a sufficient foundation of anything that might follow.
Imho, the necessity for dynamic typing turned out to be limited. It has its use cases, but there are already languages that demonstrate far better than JavaScript how to do this properly.
That's the motivation behind Web Assembly/WASM
Javascript is awesome dispite its pitfalls. It is a language that was not prepared for what is the web today, that explain all the things that has been added. I think if we introduce another language, that will be very expensive(new engines). And what are we going to do with the billons of Javascript code already running in the web?
We should stop using Computers.. because, what we going to do with the billions of books and movies on physical devices? Just let them go and go into the future?
Not with Lucas, guys.
Javascript is terrible.
That's just the stockholm talking. :)
In my view , wasm is probably that "new engine". It turns the browser into a compile target.
@ I haven't had any issues with JS for at least 10 years since the browser wars issues.
By the way, what is the language I should replace JS for?
We have all heard him say this but what does he suggest? What languages does he promote? Dart? which was supposed to replace Javascript.
I would love a typed version of javascript that's not full-on TypeScript. Many thanks to Douglas -- his was the first book I read on JS. He imparts knowledge in a no BS, no ego kind of way. I learned a lot from him (and from his linter). For me, I don't do much framework/virtual DOM stuff. Vanilla JS/Jquery works fine for me.
I'm all for letting the market decide. Make a better language and people will eventually figure it out.
But I think you'll find out the benefit from switching from JS will be so small (in practical terms) that most people won't bother. Because at the end of the day, JS might not be a very good language according to some academic metric, but it's a great tool to solve the problems most devs face.
A completely reasonable, sound and logical thing to believe. Unfortunately, corporations hell-bent on making money won't see it that way.
Amazing comment.
I think this is interesting, because on one hand I do agree with him. On the other hand to make a counter point during those earlier days software/computers hadn't hit the critical mass that they had today, and as others have said the benefits we get are... less drastic. Like I do think we could create a better developer experience, but there are enough people unwilling to try a new language and a lack of interest in supporting said languages.
I couldn't agree less.
I never used Java script. I'm a C programmer and I cannot see anything wrong with this.
It seems the overview of Mr Crockford is very limited and he doesn't see the world outside his preferred problem domain.
I have no problem with JavaScript. I also have done JavaScript for a generation, from the very beginning to now.
What Douglas ignores, is that ANY programming language has it's limitations, hence there being so many of them, and there will be more to come as people work towards something that is fit for a particular purpose.
Sure, but why would you use JS, when TypeScript is a superset of JS and is strongly typed?
So true. It's a terrible mess. Worst of all Node abd it's countless broken outdated dependancies.
TRUE 100500%
People have issues with that? Don't install random packages by no name creators and it's usually not an issue
I think a lot of intellectuals such as this guy fail to consider how pragmatic it is to use JS. To make a majority of users convert to using something besides the established web would require billions of dollars in creativity and migration. I wouldn't use JS if I didn't have to, but where are all the jobs? Where are all the users? What's the selling point of moving users to a new OS/browser/GUI without a good enough cause/product? Just wanting to "evolve" as an answer is ignorant. There is evolution in the FE (CONSTANT!) but it's an outcome of its environment. Give users a reason to use something besides the web and people will follow. There's never been a compelling enough reason to do so.
Is this about that semicolon again?
We need widespread browser support for a variety of front-end languages. We just don't have that.
We still use HTML as well. They both still work. His problem is the same as when a new startup that comes along that's better but can't get network adoption. Once a network gets critical mass it's hard to convince people to switch to a new network. Unless you have millions of dollars to pay people to join it. Wrt JavaScript well it's been heaps successful st being modular and easy to use, even if it has its quirks, so why should we swap? He doesn't offer an alternative. JS and node and jQuery and Vue and react. What's the alternative for the web? There is none except some legacy asp jsp that's not modular and no-one wants to use? Obviously there are server side alternatives but I mean full stack?
It has never been about the language. It’s all about the great things you create with it. Let’s not get too attached with the tools, but focus on the craft.
RUST. You're welcome.
Silverlight, Flash, Applets all next generation but ultimately failed. JavaScript for all its worts keep evolving. It may not be perfect and likely never will be. JavaScript is simply the best tool for DOM manipulation so I think the question really should be where is the next generation of browsers that don’t use HTML or how do we replace them with something better entirely.
Man, after 8 long years, I found a job as React Web developer. What other thing can I do?
Not just Javascript, we really need to stop using Json too.
Why? What instead?
@Roberto Giménez For human-readable configuration files, yaml is more readable, allows comments, is less fussy about quotes and commas etc. For machine to machine communication use protocol buffers or similar where the scema generates the code. That eliminates ambiguity, allows proper types and saves a ton of maintenance work if the protocol changes.
@@AllanTheBanjo I like JSON with comments for configuration files.
For networking JSON is very flexible, more suitable for many cases than binary. That's why it's so popular.
@ I can't argue with its popularity! But I still contend that YAML is a better choice for config, more concise, more expressive, with more data types, less prone to bad syntax with a missing (or extraneous) comma. For machine machine JSON is just wrong. My client requires JSON on my current project so I have to maintain encode / decode in C++ on the edge and with JS on the cloud. Any change in the structure requires a heap of work. If we were using Google's protocol buffers or ASN.1 for example, the code would all be generated automatically from a clearly defined schema. I'd have a type-safe class to represent the data structure (with support for optional items, debug output etc). I'm genuinely interested in what cases JSON would be a better choice.
technically you are not force to use JSON
I don't really get the hate for JavaScript. It's so much easier to use than Java, and considering how essential it is to making modern webpages interactive, I doubt it's going anywhere. HTML, CSS, & JS are - for better or worse - the building blocks of the web.
Me either, overall.
HTML & CSS are farrrrr more horrible
@@everyhandletaken I have no qualms with HTML or CSS.
To me, "the big three" are more than adequate to streamline web development. HTML handles the structure, CSS handles the layout/styling, JS handles the functionality.
It feels like he actually wanted to say, stop using vanilla Js.
Because with all the advantages brought up by the plethora of js frameworks and libraries in constant evolution, JS still has a long lifespan.
is this the dude that remove comments from json? if so BiTe Me i still put comments in there!
I actually like his perspective on the matter. But the main problem with this is the complacency of people. All that they are after is convenience. The reason why stuff develops like fire in a short period of time is because of the people who want something new, better and strive for it, i.e. people like Douglas. As a student, I guess its my turn to see and participate in how the tech industry develops.