Named parameters are easy enough to mimic in JS using objects and the spread operation
function foo({bar, baz}) { ... }
foo({bar: 1, baz: false})
function foo({bar, baz}) { ... }
foo({bar: 1, baz: false})
In other words, this blog post is practically irrelevant to those languages.
And correct me if I'm wrong, nothing worse than an incorrect pedant.
The ([…, ]{…}) approach is called “options object” which is a separate entity and is very convenient compared to e.g. python’s semi-infinite arguments lists.
My ideal language would have function prototypes that look something like:
return_type function_name(parameter_name type (default_value) [constraints], ...)
If the default value is not set then the parameter must be passed or it is a compile error.