Dear Julia founders and maintainers, please consider changing the function chaining (piping) operator to accept call specifications. The new syntax, as I see it would look like:
var >. callable(opt_param1, opt_param2)
and would mean precisely "take whatever on the left side of the operator and pass it as the first parameter to the callable on the right side, along with other optional parameters provided in the call.
Yes, this will essentially introduce “abominable” object-oriented syntax in Julia. Please don’t start lecturing me about the merits of multiple dispatch - I know and agree. The thing is I love Julia. I love Julia that much that I hope one day it will overtake Python, Java, and other high-level programming languages, but to achieve this Julia has to become more user and beginner-friendly. The syntax like
var.func1(param1, param2).func2(param3, param4) is extremely ubiquitous in programming and I believe one of the key things that made object-oriented programming so popular.
I propose syntax
>. for this new piping operator because it is much easier to type than
|> and it is currently available. Not only it will make Julia immediately more appealing to millions of object-oriented developers and beginners (without losing a bit of its current features) this will also make possible implementing proper autocompletion in Julia editors. Developers use autocompletion because it helps navigate things that you can potentially do next, not because it corrects spelling. If this operator was made part of language syntax, editors would be able to list all functions that potentially accept “type on the left” as the first argument whenever somebody types
I am not asking for a macro hack that will make some resemblance of such operator possible in the current syntax. I am asking to consider adding this operator in some future versions of Julia language.
And thank you very much for your incredible work! You are my heroes!