Hey I'd say the disadvantage is that it'd be making Elixir a bigger and more complex language. I think there's value in having a small core language that gives users the tools to extend it as required.
And there's always the question what exactly should be a core feature. I don't use any languages that support inheritance, and thus to be this seems like an exotic niche feature rather than a core language feature. :) Cheers, Louis On Mon, 28 May 2018, 00:11 Steve Morin, <[email protected]> wrote: > Re:my prior comments, think it would be good as a add on package for those > that want to use that. > > On May 27, 2018, at 16:00, 'boris kotov' via elixir-lang-core < > [email protected]> wrote: > > Hi Louis, > > yeah you are right, its something that I am already thinking about. > I was just wondering, what are the cons of putting it directly into the > language, as it seems to me, to be a core-language-feature. > > Cheers, > Boris > > Am Montag, 28. Mai 2018 00:44:31 UTC+2 schrieb Louis Pilfold: >> >> Hi Boris >> >> Regardless of whether this functionality is desirable, one could >> implement functionality like this using Elixir's macro system. As such >> there is no need for it to be a core language feature. >> >> If you want it why not implement it and release it as a Hex package? That >> way you get the feature you want, and of it proves to be useful others can >> also make use of it too. >> >> Cheers, >> Louis >> >> On Sun, 27 May 2018, 23:20 'boris kotov' via elixir-lang-core, < >> [email protected]> wrote: >> >>> No, I meant this as a language feature, for users, to re-use >>> functionalities from other modules by extending them. >>> For sure, if you are going to extend something, you should know what the >>> origin is doing, and why you are extending it. >>> I am thinking about some community packages, where some of your special >>> use-cases are not covered, and you would like to "extend" it, not fully >>> reimplement it. >>> The same goes for already existing erlang packages, where you want to >>> touch some parts and let the rest do its job. >>> IMHO "use" is actually meant for this kind of extension, but its very >>> strict and limited by the actual implementation, which is good actually. >>> Extend on the other hand would be more flexible, which also a good thing >>> :) >>> >>> Documentation, I see, might be a problem, if you want to publish it. I >>> am not sure, but I think it should be possible to take the current >>> documentation from the origin on the fly while compiling, maybe I am wrong. >>> >>> Am Sonntag, 27. Mai 2018 23:23:44 UTC+2 schrieb José Valim: >>> >>>> Hi Boris, >>>> >>>> Simply because it is a pattern we don't want to encourage, as it fully >>>> couples a module to another one. >>>> >>>> And there are questions such as documentation. Are you going to >>>> document the delegated functions? If not, why not? Should we copy the >>>> delegations? Then the examples are likely outdated. >>>> >>>> If you feel like you need to delegate a whole module, it is better to >>>> re-evaluate the solution and discuss the problem, as it is very unlikely in >>>> Elixir. >>>> >>> >>>> >>>> >>>> *José Valim* >>>> www.plataformatec.com.br >>>> Skype: jv.ptec >>>> Founder and Director of R&D >>>> >>>> On Sun, May 27, 2018 at 11:14 PM, 'boris kotov' via elixir-lang-core < >>>> [email protected]> wrote: >>>> >>> Hey José, >>>>> >>>>> I am the guy, who just asked about defdelegate (n-ary) (if you still >>>>> can remember) >>>>> And what I was actually looking for is `extends SomeModule` feature, >>>>> instead of delegating all functions one-by-one * arity. >>>>> >>>>> Just wondering, why this feature is still not in the core :) ? >>>>> >>>>> Thanks, >>>>> Boris >>>>> >>>>> >>>>> Am Freitag, 1. Februar 2013 22:57:12 UTC+1 schrieb José Valim: >>>>>> >>>>>> The current behaviour is correct. Ideally we would have "excluding >>>>>> end" ranges, but we don't. I have updated the gist to consider zero arity >>>>>> functions: >>>>>> >>>>>> https://gist.github.com/ff41078606cfe0e55eaf >>>>>> >>>>>> >>>>>> *José Valim* >>>>>> www.plataformatec.com.br >>>>>> Skype: jv.ptec >>>>>> Founder and Lead Developer >>>>>> >>>>>> >>>>>> On Fri, Feb 1, 2013 at 11:10 AM, Yurii Rashkovskii <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> It is. It was the other way around some time ago >>>>>>> On Feb 1, 2013 10:09 AM, "Oren Ben-Kiki" <[email protected]> wrote: >>>>>>> >>>>>>>> A correction: 1..arity doesn't work when arity is 0 (it actually >>>>>>>> generates [1,0] instead of []). Is this the expected behavior? >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Jan 28, 2013 at 11:29 PM, Oren Ben-Kiki <[email protected] >>>>>>>> > wrote: >>>>>>>> >>>>>>>>> I agree this should be used very sparingly; in my case, there's a >>>>>>>>> single specific case I want to use it for in my system. That said, it >>>>>>>>> is >>>>>>>>> much cleaner to do it the way you provided - thanks! >>>>>>>>> >>>>>>>>> >>>>>>>>> On Monday, January 28, 2013 11:19:54 PM UTC+2, José Valim wrote: >>>>>>>>>> >>>>>>>>>> I don't particularly encourage extends but it can be easily >>>>>>>>>> achieved as: >>>>>>>>>> >>>>>>>>>> https://gist.github.com/ff41078606cfe0e55eaf >>>>>>>>>> >>>>>>>>>> *José Valim* >>>>>>>>>> www.plataformatec.com.br >>>>>>>>>> Skype: jv.ptec >>>>>>>>>> Founder and Lead Developer >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "elixir-lang-core" group. >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> [email protected]. >>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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]. >>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> -- >>>>>>> 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]. >>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>> 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/e6a44f9f-a62f-44f2-9e75-1ebec3d298d8%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/elixir-lang-core/e6a44f9f-a62f-44f2-9e75-1ebec3d298d8%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/dfdcb2be-9413-4e61-a4a3-c7ebe330d630%40googlegroups.com >>> <https://groups.google.com/d/msgid/elixir-lang-core/dfdcb2be-9413-4e61-a4a3-c7ebe330d630%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/f3c98522-42c8-4649-b991-3a0d251af45f%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/f3c98522-42c8-4649-b991-3a0d251af45f%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/1CE35E22-6EE4-4570-839D-7484047F4736%40gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/1CE35E22-6EE4-4570-839D-7484047F4736%40gmail.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/CABu8xFBhUpdaeaW%2BTw_j5GSTaq%3D_-TNZe2R5YyoPCAcKq%3DNXhA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
