5 ms·
Ask HN: What languages deploy and are also themselves standalone executables?
Some examples:
* Red (might be wrong about this one)
* Deno
* Godot
- zeugmasyllepsis 5y agoSmalltalk
- PinkMilkshake 5y agoWhich dialect? As far as I can see, neither Pharo nor Squeak are a standalone executable, and neither deploy standalone executables.
- fiddlerwoaroof 5y agoCommon Lisp
- duped 5y agoCan you define "standalone" executables and "deploy"? They can mean different things depending on context, for example if you mean a single statically linked executable (rare) or an application bundle that packages dependencies, etc
- PinkMilkshake 5y agoSure. Of the three examples I gave, when you download them, you get a single executable file with no dependencies. After you've done some programming, you hit compile and they produce a single executable file with no dependencies. I'm not a professional programmer, but I assume this means everything is statically linked. It looks like Red might not actually do this.
- duped 5y agoThis isn't really true of any of the examples you've given. Deno has a single executable, sure, but it depends on several system libraries (it's not a statically linked/portable executable). Now those system libraries are almost guaranteed to be there, but they're dependencies nonetheless. Godot is the same, except it depends on a few more system libraries (at least on Linux) and some of those are not guaranteed to be there. Deno projects may be package-able but I do not believe that is the default (it's been awhile since I've tried using it). It might seem like this is a desirable property to have, but most applications of significant complexity have support libraries that can't or shouldn't be packaged alongside the main executable, and some set of configuration libraries. And programming language implementations are quite complex, and can have big support libraries + their support code (usually for the standard library implementations) and some configuration for the compiler/runtime itself (which is desirable!). However some implementations can create statically linked executables, and if those applications are simple enough they can live without support libraries and configuration. Some that come to mind are C, C++, Rust, Go, and Zig. Zig is the only one that is small enough not to have a ton of excess in the compiler itself, but C/C++ are quite big (luckily if you use a Unix platform, they're probably already installed) and Rust and Go both come with some source code alongside their compilers, which again, is desirable. What you're looking for is the extreme exception and not the rule.
- melissalobos 5y agoIf your goal is just to produce a single file that is equivalent to a large number of files and a single executable, I would suggest you look at AppImage(https://appimage.org/ https://appimage.org/) you can make almost anything into an AppImage from any language, although it is not always easy to setup(check out the packaging guide https://docs.appimage.org/packaging-guide/index.html https://docs.appimage.org/packaging-guide/index.html). > The key idea of the AppImage format is one app = one file From the website
- t-3 5y agoFactor fits what you're asking for, I think. It doesn't seem to be all that common for compiled languages to be designed "monolithically" with IDE and compiler as one package.