If node is ever replaced, the killer will need to be a paradigm shift in some way like actually treating typescript like a statically typed language and performing compile time memory and performance optimizations or something. Just a pretty lil API difference is not compelling enough. I really do like deno 2’s stdlib and built in binary compilation though. Those are steps in the right direction.
I'd love a language with a good gui option. I'm currently using electron.js, but that's stuck on node. I had a thought of pairing Blink with Beam and turning Er-lang and Elixir into an option, but that's a lot more work than I have time for currently. Also I haven't done enough/anything with Beam to see if the languages are a good option for this
Um, is the correctly written JS code, with the help of V8, converted to native code a long time ago. I guess that's the secret of Polichinelle. Or is the problem here why JS is not a compiled language?
@@daiske2867 I'm just throwing out a random idea for a paradigm shift which could actually put a dent in the Node market share. That idea being to treat TS like an actual statically typed language and reap all of the memory and performance benefits that come from a static type system. I don't have a dog in this fight. Just spit balling.
I like to use Deno over nodeJS, because it has much more tooling built in and I don't need a version manager, because the std is strictly split from the Deno runtime. And speaking of std, it's so much more powerful.
Felt the same way. Still went back to node for bundling things with esbuild and decided I don't do javascript on server anymore. Not sure if it stays this way, but I'm happy with my setup.
@@limbo3545 Yes, I get you. I couldn't move away from JS on the server yet, because I'm so much faster with JS. Python is sadly to slow and the venv stuff is just annoying. Go would be the great alternative for me, but its syntax isn't really my thing. It's also nice that I don't have to compile to get things going in Deno.
@@_modiX I moved to go and I blame prime. 😆 No seriously, I tried rust first, but it took too much time. Definitely skill issues. I wanted a dumb backend. Additionally to that I have fewer dependencies and a binary executable on the server which is nice.
funny Javascript still on its journey going backwards to achieve what has already been done, dotnet already gives you standard tools, static typing with C# - no need have a 2nd language to transpile weak typing, multi platform, AOT compiling. Even Java probably better, but Microsoft seems to be more on the ball at this stage. No need for taking a interpreted language made for fast UI prototyping and turning it into server code. I will admit nuget sucks ass, but it works mostly.
13:00 If you have a compromised dependency on Node you wouldn't even know, it would simply run. These permissions in Deno are essentially "security rules", on what the process will do on the system or what websites it can access. So if a dependency suddenly wants to execute commands on the OS, or access your environment variables, or get a malware script from somewhere, it will detect these "security breaks", notify you and ask for the permission. You can make those security rules anyway you want... remove them entirely, make them more "loose" or more "strict". The OS permissions are permissions for the user, the Deno permissions are permissions set for that specific process. Different processes have different permissions.
The JVM tried that, didn't work. DotNet tried that and it also didn't work. SELinux kinda works if you configure it correctly. Nothing made with software can surpass the hardware security boundary created by virtualization, sorry, but good try.
@@monad_tcp Its not suposed to "replace" virtualization... its one more tool you can use. Its to reduce the overhead. The same as the fmt command or the bundle. Also you can do some things which you can't easily do with virtualization, like controlling whether the process can access the environment variables and which... or setting up some firewall rules which you would need normally to set up on a different process (again, reducing the overhead).
I kinda wish we put this much effort into web assembly and breaking up the browser js lock in. Give web assembly direct DOM access and a cleaner way to distribute the web assembly binary, and node on the server loses a lot of it's appeal.
not true. web assembly supports python (and in turn mojo), lua, dart, c#, etc. Of course you can go wild with rust but web assembly can ship any language, and if web assembly got the features i mentioned above, you'd see much more innovation in this area.
@@SXsoft99Out yourself as a JS dev with one easy step! JS devs complaining about syntax being bad in a language never fails to amuse me, especially when said language is a compilation target for almost any language on the planet. Maybe you should just be a prompt engineer if syntax scares you that much.
Man web assembly is far from being easy , after 12 years in this world of web development and switching over a lot of stacks PHP still the golden standard for most of webapps .
That's also present in 99% of programming languages. I don't know why Go gets praise for this, languages that don't do this are in the minority. Remember Borland Delphi back in 1995? Single exe output, powerful standard library. This is the norm folks.
@@username7763 of course Go isn't the only or first language to do it, but go's single binary is so much easier to produce and portable than I've experienced with c#, java, or C++. After dealing with the headaches of c# DLLs, java's jars, or arcane tarball makefiles, go build -o ./bin/app running on mac, linux, and windows is therapeutic. As for the stdlib, I think Go is an outlier when compared to other languages of similarly simple syntax. More verbose languages typically have great stdlibs, but for less verbose languages like js, python, lua, R, etc., a quality stdlib is rare for some reason. I think this is why Go stands out and gets praise.
of course Go isn't the only or first language to do it, but go's single binary is so much easier to produce and portable than I've experienced with c#, java, or C++. After dealing with the headaches of c# DLLs, java's jars, or arcane tarball makefiles, go build -o ./bin/app running on mac, linux, and windows is therapeutic. As for the stdlib, I think Go is an outlier when compared to other languages of similarly simple syntax. More verbose languages typically have great stdlibs, but for less verbose languages like js, python, lua, R, etc., a quality stdlib is rare for some reason. I think this is why Go stands out and gets praise.
@@hamm8934 You are comparing to scripting languages or VM languages that need heavy runtimes. These are wrong languages to compare to. C++ has a weak standard lib, but compiles to single binary just fine. But you have Ada, D, Pascal, Fortran, BASIC, Haskell, Rust, Objective C, Zig and a host of other languages that all compile with minimal dependencies.
@@hamm8934 I think the overall consistency and quality of the STD is also to be praised for go, I know Deno refered to it a lot in "prior arts" while desiging their own
@@rnts08 I learned about Spectre and Meltdown _because_ of JS dev, trying to understand certain browser restrictions that are in place because of timing & CPU side channel attacks. Prime is just Prime
I actually like how you can handle client-side things in Deno while still staying in the server-side. There's no "whole world of problems" I've faced at all honestly and I've been using it for a while now. Prime bro probably feels that way because he hasn't tried it for the pleasant experience it is.
Deno is a great runtime with great tooling and Prime's hate is so unwarranted. HOWEVER when it comes to *client side* stuff I don't think Deno is our friend, here's why: 1) Deno can't *actually* server side render or evaluate browser code because it only implements a tiny handful of web apis (heaven forbid it encounters AudioContext or document.querySelector). 2) It can't actually transpile browser code either because what typescript it *does* transpile internally, the resulting javascript is hidden from you (the irony of having to bring in a 3rd party transpiler into a typescript runtime). And 3) it can't actually bundle, just cludge together a blob of un-minified es modules. That means no code splitting, no importing images, css, etc, and huge bundle sizes. In conclusion: All of these short-falls happened because, while Ryan Dahl understands the mistakes he made with Node, he still doesn't seem to understand what it takes to make isomorphic typescript a reality for us. And I'm a huge Deno fan like you! But these realities have been such a bitter pill for me. (but i would like to get your take on all this)
32:15 Rollup and Parcel are the best out there in terms of setup, configuration and output quality (Vite uses Rollup for production builds). Webpack is most versatile with greater ecosystem but also difficult to configure correctly.
57:00 configurability is good when you "CAN" do it, not "HAVE TO" do it. If you have 10 repositories, that's 10 times you have to worry about lint, prettier, ts options, dependencies, npm private registry access etc... im getting mad even thinking about it, it shouldn't be this hard
I am surprised at all the people saying something along the lines of "is Deno a clone of Bun?" When Deno was made almost 5 years earlier than Bun. Like how new are you guys to the JS scene? Lol
One reason I've used Deno a couple of times now is to write small command line utilities (thanks to Deno's compile to a completely standalone binary option) to run on backends.
42:47 Guys, every reasonable frontend dev has been using esbuild for around 2 years now. Nobody is using tsc to transpile/build, the only reason why we need it is because tsc is the most reliable/complete type checker. Sadly every third party attempt at writing one in Rust/Go/etc has been discontinued. 😞
I thought one of the best things deno had going for it the lack of package.json, hoped they’d double down the go style dependencies, but I guess that ship sailed.
I feel drawn to the Deno standard library. The decrease in attack vectors to my codebase is worth considering. That and its supposedly twice as fast as node
59:13 The tragic part about that was the guy who owned the package wasn't convicted. He caused much harm to innocent people, he even caused harm to help organizations who were operating in and around Russia.
Doc tests did not originate from Rust. Python had the doctest module much earlier. It's just that rust added them to be a core feature of `cargo test` instead of with a separate command. And I wouldn't be surprised if another language had actually invented doc tests before Python had it.
This statement has become like "the year of the linux desktop", "the year of webcomponents," or other statements that are based on hope only. Not against them but very unlikely they come to be
so you need to train your critical thinking more. mastering 1 language can do full stack website. this is the main motivation. the frontend dev doesnt need to learn new language to become fullstack, but just using the language they already working with daily to build the backend side in the company point of view hiring 1 team, can do fullstack without additional team. the mean is hiring 1 javascript team then they can also do the backend side using javascript, so they dont need to pay additional team from other language to build the backend
Imho, js with its event loop is quite a decent choice for io bound work. When you are effectively sitting around and waiting for some upstream api to respond or for the database to spit out the result of a query, it’s a very effective and simple way to do it. Also it’s popular because most backends do just simple data transformations, gluing together a few other services, and manipulating json in js is easier than most languages. I’m not saying this is why JS is better than just reasoning out lout why it’s popular.
Why would someone not prefer using `mjs` or `cjs`? Using the actual suffix is just one more protection against shooting yourself in the foot, kind of like adding "use strict" or types -- it also makes running files as `mjs` "the default" (i.e. that "one thing" that was blocking the transition and enables root level async-await) and makes it so you don't need to create package.json files everywhere. It's easy, amazing and everyone should be doing it.
I tried installing with deno and running the company website. But it didn't work. Some library didn't work(i think it was pdf-dist) and i didn't dig deeper. I just uninstalled deno. They said its a dropin replacement. And works perfectly with npm libraries. But that's not what i experianced. So i just took as it is.
What are the odds the JIT compiler in V8 can become a "real" compiler to dramatically boost startup speed? Maybe have that run with the deno compile? Would make all those serverless functions a little snappier.
I actually use .mjs a lot for when I use JS + Node as a quick scripting language. It let's me use the import syntax without having to create a package.json.
I don't think adding node support so people can take advantage of the ecosystem means Deno is trying or becoming more like Node. It just makes it easier for people to leave node. I think Node has shown real signs they are trying to be more like Deno, like adding ES Modules by default in node 23.
Deno and jsr are more secure by default than node and npm are what would make me move over. The dumpster fire that is bundled modules is the biggest security hole since chrome extensions.
Can we not just ship an engine which runs typescript out of the box or totally make typescript a thing of a IDE or Editor? Like let me just write javascript and you figure out everything?
Why would you want to write JS instead of TS? Also how would any system "figure out everything", particularly with the amount of ambiguity possible with JS?
@@pieterrossouw8596 Typescript is not doing anything during runtime so basically it's used for the development process only for the developers, right? If the IDEs can "somehow" (lol) just abstract out the whole typescript to allow us write just javascript while getting all the benefit of typescript, that would be cool as it removes a lot of middle steps -> transpiling, source map generation, etc. A man can dream on Mondays.
Devs not caring about security faults in hardware is a terrible thing. Not all hardware can be fixed or patched, so if a exploitable flaw exists in millions of CPUs already in the field, then devs have a duty to digital safety, not least because devs work on products and those products power business services that consumers use.
It's strange how people say this thing about PHP, when in reality PHP DX is much better, we have real types, better tools etc. When we click on "go to implementation" we actually get the code, not some TS file with types.
Deno is pretty great for user/shell scripts over node. No npm install step. Direct dependency references work. I'm not much of a fan of all the node API additions only in that Deno packages were clean. That's changed with more mode/npm compatibility. There's just so much transpiled garbage in npm I wish more people embraced the clean start. Unfortunately the compatibility was essential. Similar for cloudflare workers runtime.
Isn't the author of Deno the author of Node? Why would he make a competitor if it wasn't better?
2 місяці тому
Ive been away from node from some time, so i seemed off to myself, but i think rather not. `ArrayBuffer` is the memory allocation of byte array. `Uint8Array` is DataView object. `Buffer` is Node DataView subclass of Uint8Array. Hence the truthfulness of the comparison. `slice()` just creates new `ArrayBuffer` For me, its the Node class name that is ambiguous and misleading. I apologise if i misunderstood smth, but frankly your example didnt make it easy xD Also, that Uint8Array log in hex is terrible.
2 місяці тому
Also, i dont understand the whole python hype. Its not low level, so all the 'fast robust' libraries written in it can go faster (which is THE requirement) if done in lower level languages. And there are also much better higher level langs. I feel these are bourgeois masses hyped into a feeding frenzy through a language syntactically closest to a written word.
so you need to train your critical thinking more. mastering 1 language can do full stack website. this is the main motivation. the frontend dev doesnt need to learn new language to become fullstack, but just using the language they already working with daily to build the backend side in the company point of view hiring 1 team, can do fullstack without additional team. the mean is hiring 1 javascript team then they can also do the backend side using javascript, so they dont need to pay additional team from other language to build the backend you arent forced to choose it. you have freedom of choice like everyone else also have freedom of choice, and every company also has freedom of choice. stop beeing wannabe edgy and talk about innovation instead
You need a comma in a filename sometimes, for example for the video, "I, Robot.mkv". 😁 Standard escape (slashes) will cause file path issues in the OS.
@@peace_world_priority Afaik, they claimed it to be super fast, faster than existent solutions, because it's a super set that offers you faster implementations (i.e. like TS is to JS, but with performance instead of typing). They had their hype a while back, but it was still wall-gardened. You can now try it without an account, but it's still not opened up. Go ahead and try.
I don't get the comparison about hbo Max and Netflix and Prime. I want their layout standardized. They should differentiate themselves on video content.
As long as there is a package management involved, it's always going to be a mess. I am so tired of taking over projects where the authors added hundreds of dependencies that are now out of date and newer versions aren't compatible with each other. Bad programmers! Stop it!
it also can happen without package management, because the new version of the package may rename or remove old function, so when you upgrade the package your app is broken because it call unexisted function in the new package. its also how to developed package well. the package management give the ability to specify version of packages is to prevent thing like this. its to make sure that the project will install the correct package (that contain the exact functions that are used in the project), because if not, if the package creator change the name of a function in his new package version, then someone trying to run someone else project that use dependency from the package of that dude, then he will install the dependencies first, it will install the newer version because no version is specified, then the app will not run because it call functions that are not exist in the new version of the package because the author renamed the function name or remove it. i show you why package management is exist
@@peace_world_priority So the problem with package management is the difference between how easy it is to just install another 3rd party library vs how difficult it is to maintain the dependency. Package managers encourage people to go nuts with dependencies and especially transitive dependencies. Pick a few well-supported libraries that care about stability and compatibility that match your project goals, and write your own code for everything else. If you do this, you don't need a damned package manager to begin with.
Love the video as always but am disappointed by a lot of missing context that you would be apparent by using the product, not just from from a single blog announcement. Deno is v v good
I love Deno but man: Imagine spending years refining a new "web standards Typescript runtime" that 1) still cannot bundle for the browser, and 2) is still missing countless browser APIs. What's the point? Its not isomorphic, it will never be isomorphic, stop creating confusing by posturing as isomorphic. Just leave it all behind and write servers and utilities in whatever language you want.
Prime, would you cover how ABBYY just fired it's all Russian citizen employees in Europe? (I'm not talking closing shop in Russia, they did so a while ago. Like today they just terminated whoever had the Russian passport from locations they previously relocated them to themselves - Cyprus, Hungary, Serbia). I mean, you covered Cloudflare bs covert layoffs, this is similar but feels kinda worse. I get it's quite far from you, but still!
Gotta say you got a whole ton of things wrong about this. NodeJS is an absolute dumpster fire and it hasn’t gotten better with all the competition. Deno sheds a ton of weight and ironically Deno trying to be Node is because Deno is invented by the guy who wrote NodeJS lmao.
@@gamemusicmeltingpot2192 bro's really using JS and talking skill issue lmao. At least write in C or something if you wanna act superior. Come on dude
js was designed to create highly interactive frontend, js is very good to create very complex highly interactivity frontend, no other tool come close to it, the rust leptos is far behind js in frontend, if people bring js to other task that more close to machine code, its not js fault. its like when somehow you can bring html to handle backend. it provides pro and cons because js was primary created for high interactivity frontend, so user have free of choice.
@@my_online_logs your point dont make sense since js is the only option natively supported we have to change the dom. Theres tons of languages out there better than js to do this job, we just cant use it, at least not natively. Js, node, react, next and etc only exists and is a success because we are tied and obligated to use js in browsers
@@my_online_logs Lua is pretty good to create highly interactive UIs. It doesn't work in the browser, but I would argue it's a better tool for UIs than javascript.
Fireship said it best. It will be a Node killer when its Done.
Node -> Deno -> Oden -> Done
@@tinrabjs on backend is never good choice for production
Wasn't bun supposed to be a node killer?
@@Jabberwockybird Bun has got it's own game, currently they're implementing a C compiler for some reason.
@@lordmrcs Bun is just spending VC money.
If node is ever replaced, the killer will need to be a paradigm shift in some way like actually treating typescript like a statically typed language and performing compile time memory and performance optimizations or something.
Just a pretty lil API difference is not compelling enough. I really do like deno 2’s stdlib and built in binary compilation though. Those are steps in the right direction.
I'd love a language with a good gui option. I'm currently using electron.js, but that's stuck on node. I had a thought of pairing Blink with Beam and turning Er-lang and Elixir into an option, but that's a lot more work than I have time for currently. Also I haven't done enough/anything with Beam to see if the languages are a good option for this
Check out assemblyscript
Kotlin and c# have pretty good GUI options, even though they're not popular on the internet
Um, is the correctly written JS code, with the help of V8, converted to native code a long time ago. I guess that's the secret of Polichinelle. Or is the problem here why JS is not a compiled language?
@@daiske2867 I'm just throwing out a random idea for a paradigm shift which could actually put a dent in the Node market share. That idea being to treat TS like an actual statically typed language and reap all of the memory and performance benefits that come from a static type system. I don't have a dog in this fight. Just spit balling.
why don't you just get ryan on to talk about deno 2 instead of just brain dumping a whole lot of nothing into a stream
Shots fired
I like to use Deno over nodeJS, because it has much more tooling built in and I don't need a version manager, because the std is strictly split from the Deno runtime. And speaking of std, it's so much more powerful.
Felt the same way. Still went back to node for bundling things with esbuild and decided I don't do javascript on server anymore. Not sure if it stays this way, but I'm happy with my setup.
@@limbo3545 Yes, I get you. I couldn't move away from JS on the server yet, because I'm so much faster with JS. Python is sadly to slow and the venv stuff is just annoying. Go would be the great alternative for me, but its syntax isn't really my thing. It's also nice that I don't have to compile to get things going in Deno.
@@_modiX I moved to go and I blame prime. 😆 No seriously, I tried rust first, but it took too much time. Definitely skill issues. I wanted a dumb backend. Additionally to that I have fewer dependencies and a binary executable on the server which is nice.
Are you a solo dev or working for a company?
funny Javascript still on its journey going backwards to achieve what has already been done, dotnet already gives you standard tools, static typing with C# - no need have a 2nd language to transpile weak typing, multi platform, AOT compiling. Even Java probably better, but Microsoft seems to be more on the ball at this stage. No need for taking a interpreted language made for fast UI prototyping and turning it into server code. I will admit nuget sucks ass, but it works mostly.
13:00 If you have a compromised dependency on Node you wouldn't even know, it would simply run. These permissions in Deno are essentially "security rules", on what the process will do on the system or what websites it can access. So if a dependency suddenly wants to execute commands on the OS, or access your environment variables, or get a malware script from somewhere, it will detect these "security breaks", notify you and ask for the permission. You can make those security rules anyway you want... remove them entirely, make them more "loose" or more "strict".
The OS permissions are permissions for the user, the Deno permissions are permissions set for that specific process. Different processes have different permissions.
The JVM tried that, didn't work. DotNet tried that and it also didn't work. SELinux kinda works if you configure it correctly.
Nothing made with software can surpass the hardware security boundary created by virtualization, sorry, but good try.
@@monad_tcp Its not suposed to "replace" virtualization... its one more tool you can use. Its to reduce the overhead. The same as the fmt command or the bundle. Also you can do some things which you can't easily do with virtualization, like controlling whether the process can access the environment variables and which... or setting up some firewall rules which you would need normally to set up on a different process (again, reducing the overhead).
@@monad_tcpAny source on your jvm and dotnet claims?
The problem is that putting a ton of effort into making js into a strong backend language is the wrong goal.
I kinda wish we put this much effort into web assembly and breaking up the browser js lock in.
Give web assembly direct DOM access and a cleaner way to distribute the web assembly binary, and node on the server loses a lot of it's appeal.
@@hamm8934 web assembly will never be largely adopted because of one reason, the languages that support are not syntax friendly
not true. web assembly supports python (and in turn mojo), lua, dart, c#, etc.
Of course you can go wild with rust but web assembly can ship any language, and if web assembly got the features i mentioned above, you'd see much more innovation in this area.
@@SXsoft99Out yourself as a JS dev with one easy step!
JS devs complaining about syntax being bad in a language never fails to amuse me, especially when said language is a compilation target for almost any language on the planet.
Maybe you should just be a prompt engineer if syntax scares you that much.
Man web assembly is far from being easy , after 12 years in this world of web development and switching over a lot of stacks PHP still the golden standard for most of webapps .
'Endo' will be the end-all
Just wait till it evolves to 'Done'
@@xClairy Just wait til we all watched the fireship video and repeat his joke because we'll never be as funny as him.
And end-o was his name-o
@@NihongoWakannai Ikr sadge life
@fireship missed this. He said: node, oden, deno and done
Former HBO Intern here. That’s true they kinda were comparing themselves to Netflix and Disney+ all the time.
Ngl, the stdlib and built in binary compilation is pretty great. Those are some of my fav things about Go.
That's also present in 99% of programming languages. I don't know why Go gets praise for this, languages that don't do this are in the minority. Remember Borland Delphi back in 1995? Single exe output, powerful standard library. This is the norm folks.
@@username7763 of course Go isn't the only or first language to do it, but go's single binary is so much easier to produce and portable than I've experienced with c#, java, or C++. After dealing with the headaches of c# DLLs, java's jars, or arcane tarball makefiles, go build -o ./bin/app running on mac, linux, and windows is therapeutic.
As for the stdlib, I think Go is an outlier when compared to other languages of similarly simple syntax. More verbose languages typically have great stdlibs, but for less verbose languages like js, python, lua, R, etc., a quality stdlib is rare for some reason. I think this is why Go stands out and gets praise.
of course Go isn't the only or first language to do it, but go's single binary is so much easier to produce and portable than I've experienced with c#, java, or C++. After dealing with the headaches of c# DLLs, java's jars, or arcane tarball makefiles, go build -o ./bin/app running on mac, linux, and windows is therapeutic.
As for the stdlib, I think Go is an outlier when compared to other languages of similarly simple syntax. More verbose languages typically have great stdlibs, but for less verbose languages like js, python, lua, R, etc., a quality stdlib is rare for some reason. I think this is why Go stands out and gets praise.
@@hamm8934 You are comparing to scripting languages or VM languages that need heavy runtimes. These are wrong languages to compare to. C++ has a weak standard lib, but compiles to single binary just fine. But you have Ada, D, Pascal, Fortran, BASIC, Haskell, Rust, Objective C, Zig and a host of other languages that all compile with minimal dependencies.
@@hamm8934 I think the overall consistency and quality of the STD is also to be praised for go, I know Deno refered to it a lot in "prior arts" while desiging their own
Im shocked that Prime did not know about spectre and meltdown
Js streamer dev. Not surprised.
@@rnts08 I learned about Spectre and Meltdown _because_ of JS dev, trying to understand certain browser restrictions that are in place because of timing & CPU side channel attacks. Prime is just Prime
Equally shocked this "intermediate Rust programmer" does not know doc test (he did not read the Rust book lol).
Prime doesn't know a shocking amount for a person yapping professionally
@@CZiNTrPT how is that shocking? People that yap professionally aren't usually on an expert level. Actual experts are too busy working to yap all day.
I actually like how you can handle client-side things in Deno while still staying in the server-side. There's no "whole world of problems" I've faced at all honestly and I've been using it for a while now.
Prime bro probably feels that way because he hasn't tried it for the pleasant experience it is.
Deno is a great runtime with great tooling and Prime's hate is so unwarranted. HOWEVER when it comes to *client side* stuff I don't think Deno is our friend, here's why: 1) Deno can't *actually* server side render or evaluate browser code because it only implements a tiny handful of web apis (heaven forbid it encounters AudioContext or document.querySelector). 2) It can't actually transpile browser code either because what typescript it *does* transpile internally, the resulting javascript is hidden from you (the irony of having to bring in a 3rd party transpiler into a typescript runtime). And 3) it can't actually bundle, just cludge together a blob of un-minified es modules. That means no code splitting, no importing images, css, etc, and huge bundle sizes.
In conclusion: All of these short-falls happened because, while Ryan Dahl understands the mistakes he made with Node, he still doesn't seem to understand what it takes to make isomorphic typescript a reality for us. And I'm a huge Deno fan like you! But these realities have been such a bitter pill for me. (but i would like to get your take on all this)
32:15 Rollup and Parcel are the best out there in terms of setup, configuration and output quality (Vite uses Rollup for production builds). Webpack is most versatile with greater ecosystem but also difficult to configure correctly.
57:00 configurability is good when you "CAN" do it, not "HAVE TO" do it. If you have 10 repositories, that's 10 times you have to worry about lint, prettier, ts options, dependencies, npm private registry access etc... im getting mad even thinking about it, it shouldn't be this hard
I am surprised at all the people saying something along the lines of "is Deno a clone of Bun?" When Deno was made almost 5 years earlier than Bun. Like how new are you guys to the JS scene? Lol
One reason I've used Deno a couple of times now is to write small command line utilities (thanks to Deno's compile to a completely standalone binary option) to run on backends.
It doesn't make sense anymore. Why should I use it when it is now similar to a node?
Being compatible doesn't mean it's the same. I use it cause of ts support, module handling, deno deploy, and the awesome std
no one told you to use it
42:47 Guys, every reasonable frontend dev has been using esbuild for around 2 years now. Nobody is using tsc to transpile/build, the only reason why we need it is because tsc is the most reliable/complete type checker. Sadly every third party attempt at writing one in Rust/Go/etc has been discontinued. 😞
I thought one of the best things deno had going for it the lack of package.json, hoped they’d double down the go style dependencies, but I guess that ship sailed.
I feel drawn to the Deno standard library. The decrease in attack vectors to my codebase is worth considering. That and its supposedly twice as fast as node
You can use the standard library even outside of Deno
59:13 The tragic part about that was the guy who owned the package wasn't convicted. He caused much harm to innocent people, he even caused harm to help organizations who were operating in and around Russia.
It was probably done by a guy who was low-key paid by the Unkraine government
love using deno, good dev ergonomics rule all
Lex is now the delegated leader of youtube chat since Prime left us for dead
Thanks for the content Primo! We will miss you!
Doc tests did not originate from Rust. Python had the doctest module much earlier. It's just that rust added them to be a core feature of `cargo test` instead of with a separate command. And I wouldn't be surprised if another language had actually invented doc tests before Python had it.
6:08 jsr also has docs and such, much closer to hex or crates compared to bare bones npm
WebAssembly will rule in the coming years, wait and see guys
Right after Linux takes over the Desktop and HL3 drops.
This statement has become like "the year of the linux desktop", "the year of webcomponents," or other statements that are based on hope only. Not against them but very unlikely they come to be
no it won't, but there will be more companies using it. there are airlines currently using dioxus on their jets which is a good sign for it though.
All these years later, I'm still completely confused as to why Javascript is being used as a back-end server side language.
Javascript is ez what is so confusing about it?
You’re confused because you haven’t been employed.
so you need to train your critical thinking more.
mastering 1 language can do full stack website. this is the main motivation. the frontend dev doesnt need to learn new language to become fullstack, but just using the language they already working with daily to build the backend side
in the company point of view
hiring 1 team, can do fullstack without additional team. the mean is hiring 1 javascript team then they can also do the backend side using javascript, so they dont need to pay additional team from other language to build the backend
@@trejohnson7677 true lmaoooo, all these people confuse and complaining about JS, never been employed, they just stuck with their boomer thinking
Imho, js with its event loop is quite a decent choice for io bound work. When you are effectively sitting around and waiting for some upstream api to respond or for the database to spit out the result of a query, it’s a very effective and simple way to do it. Also it’s popular because most backends do just simple data transformations, gluing together a few other services, and manipulating json in js is easier than most languages. I’m not saying this is why JS is better than just reasoning out lout why it’s popular.
Node.JS does so much stuff decently. It's impossible to be 10x better at everything it does. That makes being a Node killer while also JS impossible.
59:14 fun fact, I was the original discoverer of the malicious code in node-ipc. If you're interested feel free to ask me anything!
What is your favorite Zelda game?
What did eat for lunch?
What are three things you like about me?
I’m going to ask you a bunch of questions and I need your answers immediately!
Who is your daddy and what does he do?
How did you discover it?
Node has been making a lot of changes because of Deno's existence.
startup episode 0 hurt me in ethereal ways
Why would someone not prefer using `mjs` or `cjs`? Using the actual suffix is just one more protection against shooting yourself in the foot, kind of like adding "use strict" or types -- it also makes running files as `mjs` "the default" (i.e. that "one thing" that was blocking the transition and enables root level async-await) and makes it so you don't need to create package.json files everywhere. It's easy, amazing and everyone should be doing it.
I tried installing with deno and running the company website. But it didn't work. Some library didn't work(i think it was pdf-dist) and i didn't dig deeper. I just uninstalled deno.
They said its a dropin replacement. And works perfectly with npm libraries. But that's not what i experianced. So i just took as it is.
I really like jsr though
@ThePrimeTime it would be really cool if you could bring Ryan Dahl on and interview him about deno.
.. Especially about the motivations and use cases of isomorphic JavaScript
What are the odds the JIT compiler in V8 can become a "real" compiler to dramatically boost startup speed? Maybe have that run with the deno compile? Would make all those serverless functions a little snappier.
in a world with docker and linux kernel primitives for isolation, what's the point of having a permission system?
control closer to the application layer? Not everything runs in containers, yet 😉
What do you think runs inside a container lol
I actually use .mjs a lot for when I use JS + Node as a quick scripting language. It let's me use the import syntax without having to create a package.json.
looks like it's trying to be incrementally adopted but better just go all in
I don't think adding node support so people can take advantage of the ecosystem means Deno is trying or becoming more like Node. It just makes it easier for people to leave node. I think Node has shown real signs they are trying to be more like Deno, like adding ES Modules by default in node 23.
28:50 is it just my connection? The prime seems to be doing a lot of buffering... 😂😏
Deno and jsr are more secure by default than node and npm are what would make me move over. The dumpster fire that is bundled modules is the biggest security hole since chrome extensions.
Running TypeScript on the server has always been a mistake, but we have too many HTML Page Authors that the ecosystem beat everything else.
Can we not just ship an engine which runs typescript out of the box or totally make typescript a thing of a IDE or Editor? Like let me just write javascript and you figure out everything?
How does this additional functionality affect your work?
Why would you want to write JS instead of TS? Also how would any system "figure out everything", particularly with the amount of ambiguity possible with JS?
@@pieterrossouw8596 Typescript is not doing anything during runtime so basically it's used for the development process only for the developers, right? If the IDEs can "somehow" (lol) just abstract out the whole typescript to allow us write just javascript while getting all the benefit of typescript, that would be cool as it removes a lot of middle steps -> transpiling, source map generation, etc.
A man can dream on Mondays.
@@codedusting it's Tuesday
"Let me wright javascript and..."
Jsdoc types!!!
but is it better than bun?
Which programming language is better? Deno or HTML?
Silverlight
Is that a good framework?
XML
DEML
JDSL
52:09 Prime really dropped what I wanted to hear from everyone around me but no one wants to listen or understand.
Devs not caring about security faults in hardware is a terrible thing. Not all hardware can be fixed or patched, so if a exploitable flaw exists in millions of CPUs already in the field, then devs have a duty to digital safety, not least because devs work on products and those products power business services that consumers use.
Way back when SageMath switched to Jupyter Notebook I didn't like it. But over time I have grown fond of it.
It's strange how people say this thing about PHP, when in reality PHP DX is much better, we have real types, better tools etc. When we click on "go to implementation" we actually get the code, not some TS file with types.
What is Deno? A Node alternative?
I skipped the video 5 times by 13 minutes. It still makes sense
And I did not miss anything he said
Deno is pretty great for user/shell scripts over node. No npm install step. Direct dependency references work.
I'm not much of a fan of all the node API additions only in that Deno packages were clean. That's changed with more mode/npm compatibility.
There's just so much transpiled garbage in npm I wish more people embraced the clean start. Unfortunately the compatibility was essential. Similar for cloudflare workers runtime.
Deno had to use `window` initially because `globalThis` didn’t exist at the time.
High resolution timing allows you to fingerprint browsers
end all be all is the new be all and end all
Problem, there are 14 JS environment. We need an end all be app JS environment that everyone uses.
Problem, there are 15 JS environments.
How does this compare to bun ? i love bun - but i love deno too
Is bun still evolving?
Yes.
Backwards only with a lot of segfaults lmao
Deno is the better choice even if you want to write only for the client.
Isn't the author of Deno the author of Node? Why would he make a competitor if it wasn't better?
Ive been away from node from some time, so i seemed off to myself, but i think rather not.
`ArrayBuffer` is the memory allocation of byte array.
`Uint8Array` is DataView object.
`Buffer` is Node DataView subclass of Uint8Array.
Hence the truthfulness of the comparison.
`slice()` just creates new `ArrayBuffer`
For me, its the Node class name that is ambiguous and misleading.
I apologise if i misunderstood smth, but frankly your example didnt make it easy xD
Also, that Uint8Array log in hex is terrible.
Also, i dont understand the whole python hype. Its not low level, so all the 'fast robust' libraries written in it can go faster (which is THE requirement) if done in lower level languages. And there are also much better higher level langs.
I feel these are bourgeois masses hyped into a feeding frenzy through a language syntactically closest to a written word.
I'm a noob so didn't realize the whole point of Deno was putting JS on servers, why the hell are you trying to do that people? Stop it!
Too late. Node has been a nightmare for years.
so you need to train your critical thinking more.
mastering 1 language can do full stack website. this is the main motivation. the frontend dev doesnt need to learn new language to become fullstack, but just using the language they already working with daily to build the backend side
in the company point of view
hiring 1 team, can do fullstack without additional team. the mean is hiring 1 javascript team then they can also do the backend side using javascript, so they dont need to pay additional team from other language to build the backend
you arent forced to choose it. you have freedom of choice like everyone else also have freedom of choice, and every company also has freedom of choice. stop beeing wannabe edgy and talk about innovation instead
Why do you need Node 2 when you have Node 22?
o, 4el iz dtf
1:05:00 oh my please don't do c#
You need a comma in a filename sometimes, for example for the video, "I, Robot.mkv". 😁
Standard escape (slashes) will cause file path issues in the OS.
My biggest gripe with js is it's package culture being absolutely terribly broken.
"some nerd wanted javascript on the server" quote: some nerd
Didnt see the sorting. nice, splendid idea. I always describe my ocd behaviour as cdo.
You could do a year of mojo. Enjoying getting things done like in Python and going systems level when you need it, all at the same time.
If you want to do Python, maybe Mojo is worth a look again, they evolve as well. It's been a while, since their announcement.
is it better than cpython?
@@peace_world_priority Afaik, they claimed it to be super fast, faster than existent solutions, because it's a super set that offers you faster implementations (i.e. like TS is to JS, but with performance instead of typing). They had their hype a while back, but it was still wall-gardened. You can now try it without an account, but it's still not opened up. Go ahead and try.
I don't get the comparison about hbo Max and Netflix and Prime. I want their layout standardized. They should differentiate themselves on video content.
As long as there is a package management involved, it's always going to be a mess. I am so tired of taking over projects where the authors added hundreds of dependencies that are now out of date and newer versions aren't compatible with each other. Bad programmers! Stop it!
it also can happen without package management, because the new version of the package may rename or remove old function, so when you upgrade the package your app is broken because it call unexisted function in the new package. its also how to developed package well. the package management give the ability to specify version of packages is to prevent thing like this. its to make sure that the project will install the correct package (that contain the exact functions that are used in the project), because if not, if the package creator change the name of a function in his new package version, then someone trying to run someone else project that use dependency from the package of that dude, then he will install the dependencies first, it will install the newer version because no version is specified, then the app will not run because it call functions that are not exist in the new version of the package because the author renamed the function name or remove it. i show you why package management is exist
@@peace_world_priority So the problem with package management is the difference between how easy it is to just install another 3rd party library vs how difficult it is to maintain the dependency. Package managers encourage people to go nuts with dependencies and especially transitive dependencies.
Pick a few well-supported libraries that care about stability and compatibility that match your project goals, and write your own code for everything else. If you do this, you don't need a damned package manager to begin with.
And this is why I like NIX!
Love the video as always but am disappointed by a lot of missing context that you would be apparent by using the product, not just from from a single blog announcement. Deno is v v good
Deno is kinda late to the party; but, I'm really glad to the improvements
Always two steps ahead. Bun could never.
@@RustIsWinning bun is faster than deno
@@my_online_logs Faster in segfaulting 😂
@@my_online_logs My custom made runtime is faster. Bun could never.
@@RustIsWinning send the github link not just talking shit
I love Deno but man: Imagine spending years refining a new "web standards Typescript runtime" that 1) still cannot bundle for the browser, and 2) is still missing countless browser APIs. What's the point? Its not isomorphic, it will never be isomorphic, stop creating confusing by posturing as isomorphic. Just leave it all behind and write servers and utilities in whatever language you want.
People complain about npm, people complain about alternatives to npm... how can you be satisfied?
jsr provide typescripts source code directly
Well I guess we just need to wait until he decides DENO is not good enough and starts working on DONE. 3rd time's the charm
const in js jupyter is not very fun (eg: re-running cells)
node sorted === deno 🤯
Seems like they added python doctests
What else could Bun or Deno do other than just drop TS ... it is just an editor lint really, not a compiler, TS has no value after linting.
17:50 holy meal W wife there
Js is a terible language for almost all reasons but I don’t think being verbose is one of them
comma, comma, comma commalion :P
not the jay-sawn
I honestly didn't knew about this buffer behavior. What a garbage....
Deno devs easily influenced by corporates
about the comma, why not just quote the filename?
46:20 deno made jsr
How tf is lex fridman a cool guy? Do you also believe there are very fine people on both sides?
Prime once said, "Destiny is like what a dumb guy thinks smart people sound like" Goes to show you huh
dope
Prime, would you cover how ABBYY just fired it's all Russian citizen employees in Europe? (I'm not talking closing shop in Russia, they did so a while ago. Like today they just terminated whoever had the Russian passport from locations they previously relocated them to themselves - Cyprus, Hungary, Serbia). I mean, you covered Cloudflare bs covert layoffs, this is similar but feels kinda worse. I get it's quite far from you, but still!
Bun
Bun
Should be reimplemented as nub soon, I'll wait till then.
Gotta say you got a whole ton of things wrong about this. NodeJS is an absolute dumpster fire and it hasn’t gotten better with all the competition. Deno sheds a ton of weight and ironically Deno trying to be Node is because Deno is invented by the guy who wrote NodeJS lmao.
The need to use flags for read and write permissions is killing me
Why is that?
At this point deno is becoming more and more like Golang
just could not even do deno install. wtf
Skill issue
I think it should be other way around, deprecate global from browser.
1 view bro fell off
Bro beat me to it
The problem with JS is only partially Node, the fact is Js is just a trash language
if u think JS is bad its a skill issue lil bro
@@gamemusicmeltingpot2192 bro's really using JS and talking skill issue lmao. At least write in C or something if you wanna act superior. Come on dude
js was designed to create highly interactive frontend, js is very good to create very complex highly interactivity frontend, no other tool come close to it, the rust leptos is far behind js in frontend, if people bring js to other task that more close to machine code, its not js fault. its like when somehow you can bring html to handle backend. it provides pro and cons because js was primary created for high interactivity frontend, so user have free of choice.
@@my_online_logs your point dont make sense since js is the only option natively supported we have to change the dom. Theres tons of languages out there better than js to do this job, we just cant use it, at least not natively. Js, node, react, next and etc only exists and is a success because we are tied and obligated to use js in browsers
@@my_online_logs Lua is pretty good to create highly interactive UIs. It doesn't work in the browser, but I would argue it's a better tool for UIs than javascript.
Broooo! Its the same creator of Node. Hes redoing for security sake and innovation