Openhub also says it’s “mostly written in javascript”.
But in all seriousness: The port wasn’t the greatest time for new contributors, because there wasn’t a lot of feature work or cleanup happening.
So I’d expect more now.
Openhub also says it’s “mostly written in javascript”.
But in all seriousness: The port wasn’t the greatest time for new contributors, because there wasn’t a lot of feature work or cleanup happening.
So I’d expect more now.
One big, long-standing issue is that fish can’t run builtins, blocks or functions in the background or at the same time.
That means a pipeline like
seq 1 5 | while read -l line
echo line; sleep 0.1;
end | while read -l line
echo line; sleep 0.1
end
will have to wait for the first while loop to complete, which takes 0.5s, and then run the second.
So it takes 0.5s until you get the first output and a full second until you get all of it.
Making this concurrent means you get the first line immediately and all of it in 0.5s.
While this is an egregious example, it makes all builtin | builtin
pipelines slower.
Other shells solve this via subshells - they fork off a process for the middle part of the pipeline at least. That has some downsides in that it’s annoyingly leaky - you can’t set variables or create a background job in those sections and then wait for them outside, because it’s a new process and so the outer shell never sees them.
The website has about 50 lines of non-generated javascript. Even counting the generated JS, fish-site is 96.5% html.
(either way, setting a “main repo” here seems to be table stakes and does not fill me with confidence about OpenHub)