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.

Reply via email to