Exactly. And I always wonder why this is something we always have to make explicit. My only answer is, that expectations are set too high, which harms the acceptance of the language. But in general this is banal wisdom.
Some thoughts to the “small binary <=> static subset of Julia” discussion above. I am awaiting the small binaries very much, because I have some very concrete use cases for this, they look like this:
First, I came to Julia (early 2012) to solve MY 2 language problem, which was needing R for large statistical analyses which brought me regularly into C of other people. It was always pain. Julia solved this for me, so I fall in love with Julia, it took the pain from me.
Now, around this large analyses there is a large “eco system” of all types of scripts (bash, perl, .NET, php, …), admitted it’s not “eco” but “horrible”.
I want some (not all) of these scripts in Julia but without the runtime. Typically those scripts are quite small, very specific and not much dependent on any packages. It would be a no-brainer to make these scripts statically typed, and actually I want the Julia compiler to see, that everything has well defined types and just spit out a executable without any runtime, because it will never be used. That’s my hope while waiting for small binaries. (Important: they need not to be extremely small, just not huge like now; reasonably small is good).
There are tendencies in this community to go into extremes: the speed discussions are the archetype: if we don’t beat rust/c/c++/cpython we are fighting until mission achieved. I see “small binaries” mutate into similar extremes and this is what I see in above discussion, too. Of course, if we want to port the complete SAP world into small binary Julia, yes, we would need a new sub/superset statically typed Julia. Of course, there are good arguments above and it seems to be true. BUT we don’t need small binaries for large systems! For large systems written in Julia, it’s all fine with LARGE binaries, the extra bytes for the complete runtime, even for a complete system installation is neglectable. But for a small system tool, written in rust gives you ~100Kb executable, but in Julia getting a ~500MByte blob is NOT neglectable (I don’t have actually a real example, someone can correct me with real numbers).
For this outlined scenario I am waiting for small binaries. I still believe that this is possible although I believe that @anon56330260 has some good points but not all I understand.
Julia is a PRACTICAL language: it can be easy, it can be math-like, it can be _______ (enter what you like most). AND it can be fast, too ! It can even be fastest! Now I just need “it can be small”. Some people will need smallest, of course. But nobody needs everything at once in a single example, but arguments tend to run into this reasoning all too often with the result that we can’t have it. True, but not an issue for me, as long as my practical daily problems are solvable in a reasonable way in Julia.