6 ms·
"It can generate an executable" ; but how slow will this executable be ? Compared to something compiled with SBCL or a non-LISP ?
by phtrivier 3y ago
"It can generate an executable" ; but how slow will this executable be ? Compared to something compiled with SBCL or a non-LISP ?
- deleted 3y ago[deleted]
- f1shy 3y agoAlso how big will the exe be. Last time I looked the whole interpreter is packed together with the source. Also I‘m not sure if you can obguscate the code, if you do not want to publish it.
- macco 3y agoProbably, it will be fast enough. The new compiler is based in mzscheme.
- ObscureScience 3y agoIsn't Chez Scheme the default runtime by now?
- Jtsummers 3y agoYes. Since 8.0.
- ryanschaefer 3y agoA while ago I wrote an AWS lambda runtime to use Racket. I saw terrible Startup performance at around 500ms for a simple echo program.
- dchest 3y agoYeah, reading all those parentheses on startup is not fast. As an anecdote, I used to host a computationally expensive web app written in Racket (even before Chez version) serving large amount of requests at peak times on a single $10 DigitalOcean droplet. It was pretty fast and didn't crash. No need for awkward modern web scale thingies.
- andsoitis 3y ago> AWS lambda runtime λ most of the way down.
- waffletower 3y agoAre you aware of AWS lambda warm starts? Start-up time can be less critical should the lambda be used frequently enough. https://docs.aws.amazon.com/lambda/latest/operatorguide/execution-environments.html https://docs.aws.amazon.com/lambda/latest/operatorguide/exec...
- p4bl0 3y agoRacket executables are not to be compared with those of a compiled language that aims for speed. The primary goal is not speed here and the documentation explicitly says so. You should see them as interpreted code that is bundled with its interpreter for easier distribution and execution, without anything else to install for end users. You can write a Racket application even with a GUI and whatever lib you need and then cross build it as a native executable (that is, an executable that embeds the interpreter, the necessary libs, and your application's code) for yours and other platform for easy distributions. See https://docs.racket-lang.org/raco-cross/index.html https://docs.racket-lang.org/raco-cross/index.html and https://docs.racket-lang.org/raco/exe.html https://docs.racket-lang.org/raco/exe.html for more information.
- tmtvl 3y ago> The primary goal is not speed. But the authors states that Racket is "the finest example of a modern day lisp bar none". In the modern day energy efficiency and climate change are major issues, the German government, for example, has set up the Blue Angel Ecolabel program: <https://www.blauer-engel.de/en https://www.blauer-engel.de/en>. Using modern day to mean VSCode and Discord is a worthless use of the phrase.
- p4bl0 3y agoI don't know the numbers but I can probably agree that "modern day" can be replaced by "batteries included" and it would be a better description, from the (valid) point of view that you take. However, Racket is also a modern language in that it has many new and fancy programming language research-grade features since it is also a programming language theory research platform. From that point of view, "modern day" is a valid description :).
- andsoitis 3y agoAccording to https://stratoflow.com/efficient-and-environment-friendly-programming-languages/ https://stratoflow.com/efficient-and-environment-friendly-pr... Racket ranks far ahead of languages like TypeScript, Python, and Erlang in terms of energy usage, but trails languages like C, Rust, Ada, Java and Common Lisp. I think, however, there are probably other factors in your computing solution that has a bigger energy impact, like what processors you run on, the architecture of your program, etc.