To prevent 40MB downloads for a REPL, is there a library version of Electron that can be installed globally, so that small scripts can use it to produce full applications?
(My expected response is that Electron and Node are both moving fast enough so that multiple versions may be incompatible. Global libraries tend to work for stable software, so it may be possible in the future for Electron.)
If every package was 40 MB on my computer, my distribution would be 30 GB.
More importantly, these 40 MB of code and resources expand to about 400 MB in memory when the application is running, but a global library wouldn't fix that.
Electron consumes 117MB, npm takes 50MB, and gulp is consuming 114MB, although I don't know how much of this value is shared between the processes (since there are 40+ of them).
>If every package was 40 MB on my computer, my distribution would be 30 GB.
Only if you had installed 750 userland programs. Which are quite a lot. And even then, 30GB for your OS + your third party programs is negligible in even a 265GB flask disk (merely 12% of it).
>More importantly, these 40 MB of code and resources expand to about 400 MB in memory when the application is running, but a global library wouldn't fix that.
Not sure where you got those metrics. Code doesn't "expand" on memory, and binary size it's not a reliable metric of how much memory it will use (a trivial 5 line program that just mallocs can use TB of memory).
For the majority of very large programs, most of the size on disk is assets, not compiled code.
You are correct that code doesn't "expand on memory" but there is no fixed relationship between code size and memory usage. You could certainly write a tiny program that uses a ton of memory pretty easily.
Well, rather than commenting on download size I'll talk about the program.
This looks really awesome! I've been wanting a nice js repl for a while and this one definitely has a lot of the qualities I was looking for.
Auto complete is very nice. Color syntax looks great. The biggest thing I would like to see is to persist history. I'd love to up arrow through previous sessions.
I was just looking for something like this.
How do I load external node modules into the repl? I tried "File->Add module path" but it didn't seem to work for me. Basically, having done an npm install of lodash somewhere, I want to do
What kind of javascript engine is on this REPL? I tried some ES6 stuff with random success. For example arrow functions work while deconstructing doesn't.
24 comments
[ 6.4 ms ] story [ 66.4 ms ] thread(My expected response is that Electron and Node are both moving fast enough so that multiple versions may be incompatible. Global libraries tend to work for stable software, so it may be possible in the future for Electron.)
More importantly, these 40 MB of code and resources expand to about 400 MB in memory when the application is running, but a global library wouldn't fix that.
Only if you had installed 750 userland programs. Which are quite a lot. And even then, 30GB for your OS + your third party programs is negligible in even a 265GB flask disk (merely 12% of it).
>More importantly, these 40 MB of code and resources expand to about 400 MB in memory when the application is running, but a global library wouldn't fix that.
Not sure where you got those metrics. Code doesn't "expand" on memory, and binary size it's not a reliable metric of how much memory it will use (a trivial 5 line program that just mallocs can use TB of memory).
For the majority of very large programs, most of the size on disk is assets, not compiled code.
Feature list : https://github.com/princejwesley/Mancy/wiki/Features-&-Roadm...
This looks really awesome! I've been wanting a nice js repl for a while and this one definitely has a lot of the qualities I was looking for.
Auto complete is very nice. Color syntax looks great. The biggest thing I would like to see is to persist history. I'd love to up arrow through previous sessions.
Overall nicely done!
var fs = require('fs');
then pressed enter. Result:
var fs = require('fs');fs
(fs in the end).
And autocompletion is too agressive. I declared variable `b`` then in new line I entered: `b` and it automatically autocompleted me to `break`.
So I think it's pretty alpha right now, but overall idea is good :) We need better tools :)