Submind YouTube summaries
Thumbnail for Will Javascript Take Over the World? | Brian Kernighan and Lex Fridman

Will Javascript Take Over the World? | Brian Kernighan and Lex Fridman

Watch on YouTube

Video summary

In this discussion, Brian Kernighan and Lex Fridman explore the evolution of JavaScript from its early reputation as an irregular and aesthetically displeasing language to a dominant force in modern computing. Initially dismissed by academic circles where working with such code was met with ridicule due to perceived ugliness, JavaScript has undergone significant transformation through improved compilation technologies and backend adoption platforms like Node.js. Kernighan notes that while the language itself may still be considered "ugly" compared to others, its efficiency has been refined enough to make it a viable solution not just for front-end web development but also for server-side applications, challenging previous assumptions about where such code could effectively operate. The conversation shifts to how programming experiences have fundamentally changed from the UNIX and C eras of building software from scratch to today's reliance on extensive libraries in ecosystems like Python and JavaScript. Fridman highlights that while leveraging pre-built packages offers convenience, it introduces a lack of transparency regarding dependencies; developers often download massive amounts of code via tools like `pip install` or NPM without fully understanding what they are importing. This shift means programmers no longer build everything themselves but instead assemble solutions atop layers of existing work, which can obscure the underlying mechanics and create significant challenges when troubleshooting complex issues in machine learning projects where dependencies fail unexpectedly. A major point of contention arises regarding security and discipline within these modern package management environments, particularly JavaScript's NPM ecosystem compared to Python's MPM (likely referring to PyPI or similar). Kernighan expresses concern that the lack of control over thousands of different packages creates severe security vulnerabilities, making it risky to run critical infrastructure like a "nuclear power plant" on such systems. He argues that while there is less discipline in managing these dependencies today compared to older days, this freedom comes at the cost of stability and safety, leaving developers with little recourse if an obscure dependency causes system failures or introduces security flaws into their applications. Despite acknowledging JavaScript's importance as a language worth knowing more about for practical experience, Kernighan concludes that it is unlikely to ever "take over the world" in the sense of replacing all other languages universally. He suggests that while the technology has evolved and become efficient enough for serious backend work, its inherent limitations regarding maintainability and security issues prevent total dominance. The dialogue ultimately reflects a nuanced view where JavaScript stands as an important tool shaped by technological advancements but constrained by the chaotic nature of modern dependency management, contrasting sharply with the more controlled environments of languages like C or Python in specific contexts.
Read the full video transcript
so what do you think about another language of JavaScript that's this well let me just sort of comment on what I said when I was brought up sort of JavaScript pasina's the probably like the ugliest language possible and yet it's quite arguably quite possibly taking over not just a fun in the backend of the internet but possibly in the future taking over everything because they've now learned to make it very efficient you know so what do you think about this yeah well I think you've captured it a lot of ways when it first came out javascript was deemed to be fairly irregular in an ugly language and certainly in the academy if you said you were working on JavaScript people would ridicule you it was just not fit for academics to work on I think a lot of that has evolved the language itself has evolved and certainly the technology of compiling it is fantastically better than it was and so in that sense it's a absolutely a viable solution on backends as well it's the front-end used well I think it's a pretty good language I've written a modest amount of it and I've played with JavaScript translators and things like that I'm not a real expert and it's hard to keep up even there with the new things that come along with it um so I don't know whether it will ever take over the world I think not but it it's certainly an important language and where's knowing more about there's this may be to get your comment on something which JavaScript and actually most languages of Python such a big part of the experience of programming with those languages includes libraries sort of using building on top of the code that other people have built I think that's probably different from the experience that we just talked about from UNIX and C days when you're building stuff from scratch what do you think about this world of essentially leveraging building up libraries on top of each other and leveraging them yeah that's a very perceptive kind of question one of the reasons programming was fun in the old days was that you were really building it all yourself but the number of libraries you had to deal with quite small maybe it was printf or the standard library or something like that and that is not the case today and if you want to do something in you mentioned Python and JavaScript and those are the two finding examples you have to typically download a boatload of other stuff and you have no idea what you're getting absolutely nothing I've been doing some playing with machine learning over the last couple of days and gee something doesn't work well you pip install this okay and down comes another gazillion megabytes of something and you have no idea what it was and if you're lucky it works and if it doesn't work you have no recourse there's absolutely no way you could figure out which in these thousand different packages and I think it's worse in the MPM NPM environment for JavaScript I think there's less discipline less controller and there's aspects of not just not understanding how it works but they're security issues is there Busta's issues so you don't want to run a nuclear power plant using JavaScript essentially Oh probably not you