Understood. Thanks for the answers. On Wed, May 31, 2017 at 6:35 PM, Paul Schoenfelder < [email protected]> wrote:
> I agree, it's an inherently subjective issue as well, which means no > solution will make everyone happy. Additionally, at this point, the change > has pretty well propagated throughout the community, so the "damage is > done" so to speak (though in my opinion the current solution is the best > given the language constraints). > > Understanding the Lisp 1 vs 2 debate is also critical here - fundamentally > something has to give, you either need a way to syntactically determine > whether a name belongs to a function or variable, and thus be able to have > separate namespaces, or share a namespace and define rules which resolve > the ambiguity with zero-arity functions. The latter is the best option in > my opinion, and what led to the current solution. Doing nothing is the > least desirable option here. > > Paul > > > On Wed, May 31, 2017 at 4:36 PM Michał Muskała <[email protected]> wrote: > >> To be honest, I don't think this is a big issue or a problem that needs >> changes. The biggest proof, it's not a problem in practice is the fact that >> it's almost 6 months since elixir 1.4 introduced this warning. After first >> couple weeks, when most libraries were upgraded to get rid of the warning, >> there aren't many complaints. As far as I can remember, it hasn't come up >> even once last couple months on either Elixir Slack or IRC. >> >> Michał. >> >> On 31 May 2017, 20:46 +0200, [email protected], wrote: >> >> First, sorry to re-open an old thread and thanks for all the awesome work >> done on Elixir. I humbly think I might have 1 or 2 original thoughts on the >> matter. >> >> I am in the camp of either (1) getting back to 1.3 behavior or less >> ideally (3) narrow down to only the cases when we have a function and a >> variable with the same name. >> >> The original issue seems to be poor variable and function naming coupled >> with some unexpected pollution from imports. I don't think it's an issue >> with the language itself. If you take the case of the `conn` and >> `Plug.Test.conn/0` collisions, renaming the function to >> `build_connection/0` seems more straightforward than requiring everyone to >> use `()` for zero parameter function calls. >> >> Furthermore, having namespaces of variable and function mixing together >> seems to be the original intent of the language. Same way Ruby allows to >> not care if an object come from some code or it's already there. Of course, >> José Valim would know better what was the original intentions, but bare >> with me! If we want a strict separation of these 2 namespaces with the end >> goal of reducing cognitive load, shouldn't we have a different way of >> naming variable like other languages are doing with for example >> `$variable`? I know Dave Thomas wasn't serious, but I even like the idea of >> adding a dot in front of every functions - `.function` - keeping variables >> untouched. It feels embracing even more the functional way. It seems too >> late to make this kind of changes though. >> >> Finally, my main point will be to make the parallel with Python `3.0` >> changes. Adding brackets to every function calls in order to be more >> explicit. The scope was larger, and Python `3.0` added also some other >> controversial changes in the way strings were handled that weren't liked by >> everyone. But, the push to require brackets was the main point of discord >> and it resulted in a schism in the community. Even after almost a decade, >> Python 2.7 is still there and Python 3.5 still has trouble making his nest >> despite being now faster and more features rich. I think we all want Elixir >> to succeed. It means more people will be using it resulting in less bugs >> and more libraries. However, this kind of changes - that seems trivial and >> reasonable - can hurt a community a lot more than it seems. >> >> However, at the end of the day, this is not a democracy, and we'll all >> respect whatever you will decide. >> >> Thanks, >> Julian >> >> On Tuesday, December 6, 2016 at 12:51:32 PM UTC-6, Michał Muskała wrote: >>> >>> >>> > On 6 Dec 2016, at 19:48, [email protected] wrote: >>> > >>> > Would it be possible to have a flag attribute to disable warnings on >>> particular modules or something? Not the greatest solution, but it could >>> potentially be enough to support DSLs and IEx helpers >>> > >>> >>> In DSLs you could manually upgrade the variable into a function call >>> instead of relying on the compiler to do so (and emit a warning). >>> >>> The AST of a variable is {name, meta, context}, while AST of a function >>> call is {name, meta, args}, in case of 0-arity calls the last argument >>> would always be an empty list. >>> >>> Michał. >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/elixir-lang-core/d8f5e848-2fc9-460b-8b55- >> e8dfc00ced56%40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-core/d8f5e848-2fc9-460b-8b55-e8dfc00ced56%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ >> msgid/elixir-lang-core/fd313358-1f3c-49ff-924e-3f67025628e7%40Spark >> <https://groups.google.com/d/msgid/elixir-lang-core/fd313358-1f3c-49ff-924e-3f67025628e7%40Spark?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "elixir-lang-core" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/elixir-lang-core/Otz0uuML764/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/elixir-lang-core/CAK%3D%2B-TtgE4Y9mgbaShoUedM- > psuJfMtk95jVDiFa2yFZwmxcsw%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAK%3D%2B-TtgE4Y9mgbaShoUedM-psuJfMtk95jVDiFa2yFZwmxcsw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAKORTotXqiWhLYYZvV5yA271nDvw68EWPMtEDBApuSvEgo-iRA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
