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.
> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to