▲ 585 ▼ It was best as a silly toy language in the 1990's... (reddthat.com) submitted 11 months ago by iamdisappoint@reddthat.com to c/programmer_humor@programming.dev 134 comments fedilink hide all child comments
[–] Azzu@lemmy.dbzer0.com 15 points 11 months ago (6 children) Node does not require an excessive amount of resources. permalink fedilink source parent hideshow 6 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (5 children) But why Node? Node cost five seconds just to start up back when I worked on my embedded ARM v7 platform, and on modern x86_64 computers, npx anything takes just as long. Why rely on another runtime? Why not native binaries instead? permalink fedilink source parent hideshow 5 child comments replies: [–] Azzu@lemmy.dbzer0.com 2 points 11 months ago* (4 children) Because you have to figure out how to build them. And with that I mean, how do you make sure that whatever you're doing will work and work the same way not only on your "embebbed ARM v7" architecture and all the other CPU architectures, but also the operating system libraries included? How do you make it work the same way on Mac, Windows 7, Windows 11, Ubuntu, custom Arch installations, FreeBSD, etc etc? If you build native binaries, you personally are the one who has to make sure it runs. This means (depending on how much you want to support) a lot of development or support time. (Or you make your users build it themselves and fix errors, which means a massively reduced userbase, good luck with adoption...) If you use Node, (or other virtual machines) you literally don't have to do anything, because it just works. You really don't see the value in that? permalink fedilink source parent hideshow 4 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (3 children) What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to "make sure" your program works. See this insane list of platforms GCC supports. https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures We've invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the "cross-platform" problem you mentioned, remember? permalink fedilink source parent hideshow 3 child comments replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* (2 children) What if the system does not have libc? What if your program needs obscure library X? Why do you think anyone even came up with the idea of virtual machines? Don't you think they had a problem they wanted to solve, that was not solved adequately before? permalink fedilink source parent hideshow 2 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] racketlauncher831@lemmy.ml 1 point 11 months ago (5 children) But why Node? Node cost five seconds just to start up back when I worked on my embedded ARM v7 platform, and on modern x86_64 computers, npx anything takes just as long. Why rely on another runtime? Why not native binaries instead? permalink fedilink source parent hideshow 5 child comments replies: [–] Azzu@lemmy.dbzer0.com 2 points 11 months ago* (4 children) Because you have to figure out how to build them. And with that I mean, how do you make sure that whatever you're doing will work and work the same way not only on your "embebbed ARM v7" architecture and all the other CPU architectures, but also the operating system libraries included? How do you make it work the same way on Mac, Windows 7, Windows 11, Ubuntu, custom Arch installations, FreeBSD, etc etc? If you build native binaries, you personally are the one who has to make sure it runs. This means (depending on how much you want to support) a lot of development or support time. (Or you make your users build it themselves and fix errors, which means a massively reduced userbase, good luck with adoption...) If you use Node, (or other virtual machines) you literally don't have to do anything, because it just works. You really don't see the value in that? permalink fedilink source parent hideshow 4 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (3 children) What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to "make sure" your program works. See this insane list of platforms GCC supports. https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures We've invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the "cross-platform" problem you mentioned, remember? permalink fedilink source parent hideshow 3 child comments replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* (2 children) What if the system does not have libc? What if your program needs obscure library X? Why do you think anyone even came up with the idea of virtual machines? Don't you think they had a problem they wanted to solve, that was not solved adequately before? permalink fedilink source parent hideshow 2 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] Azzu@lemmy.dbzer0.com 2 points 11 months ago* (4 children) Because you have to figure out how to build them. And with that I mean, how do you make sure that whatever you're doing will work and work the same way not only on your "embebbed ARM v7" architecture and all the other CPU architectures, but also the operating system libraries included? How do you make it work the same way on Mac, Windows 7, Windows 11, Ubuntu, custom Arch installations, FreeBSD, etc etc? If you build native binaries, you personally are the one who has to make sure it runs. This means (depending on how much you want to support) a lot of development or support time. (Or you make your users build it themselves and fix errors, which means a massively reduced userbase, good luck with adoption...) If you use Node, (or other virtual machines) you literally don't have to do anything, because it just works. You really don't see the value in that? permalink fedilink source parent hideshow 4 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (3 children) What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to "make sure" your program works. See this insane list of platforms GCC supports. https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures We've invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the "cross-platform" problem you mentioned, remember? permalink fedilink source parent hideshow 3 child comments replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* (2 children) What if the system does not have libc? What if your program needs obscure library X? Why do you think anyone even came up with the idea of virtual machines? Don't you think they had a problem they wanted to solve, that was not solved adequately before? permalink fedilink source parent hideshow 2 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] racketlauncher831@lemmy.ml 1 point 11 months ago (3 children) What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to "make sure" your program works. See this insane list of platforms GCC supports. https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures We've invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the "cross-platform" problem you mentioned, remember? permalink fedilink source parent hideshow 3 child comments replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* (2 children) What if the system does not have libc? What if your program needs obscure library X? Why do you think anyone even came up with the idea of virtual machines? Don't you think they had a problem they wanted to solve, that was not solved adequately before? permalink fedilink source parent hideshow 2 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* (2 children) What if the system does not have libc? What if your program needs obscure library X? Why do you think anyone even came up with the idea of virtual machines? Don't you think they had a problem they wanted to solve, that was not solved adequately before? permalink fedilink source parent hideshow 2 child comments replies: [–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] racketlauncher831@lemmy.ml 1 point 11 months ago (1 child) What if the system does not have libc? No offence but I think I need to stop discussing with you. permalink fedilink source parent hideshow 1 child comment replies: [–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent
[–] Azzu@lemmy.dbzer0.com 1 point 11 months ago* Maybe you should. Android for example does not use glibc and instead uses "Bionic" by default, which only implements a subset of libc. It is possible to write a C program that runs on one system but not on another. You can't do that with node, if it runs on the VM and the VM runs in another place, your program will also run there. permalink fedilink source parent