<div dir="ltr">If folks don't like pmods, -extends(), and error_handler, than ban them from your organization. Why is it so important to people to prevent other developers from using them? I love Erlang, but sometimes I feel oppressed by zealous Puritanism in the community. If you don't like dancing, gambling, and pmods, then don't do them... but that shouldn't stop the rest of us from having a good time.<div>
<br></div><div>I've found that Pmods are great for writing callback modules where you want some arguments always passed in implicitly. -extends() is great if you have a lot of related callback modules and want to override functionality in some cases but not in others. It's just a way to manage code complexity, and I won't apologize for making use of it. Security and predictability are not the only desiderata in development projects. Sometimes productivity, simplicity, and manageability are more important. It all depends on the situation.</div>
<div><br></div><div style>I personally look forward to playing around with error_handler to GREATLY simplify code generation in BossDB. I consider it a boon to my productivity, and I think people who don't like it should just look the other way and go about their own business.</div>
<div style><br></div><div style>Evan</div><div style><br></div><div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jan 19, 2013 at 5:33 PM, Tony Rogvall <span dir="ltr"><<a href="mailto:tony@rogvall.se" target="_blank">tony@rogvall.se</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I have never used parametrized modules, so I have no clue what you talk about,</div>
<div>but I think $handle_undefined-function may be very useful.</div><div><br></div><div>I vote for it. :-)</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>/Tony</div></font></span><div><div><div class="h5">
<br><div><div>On 20 jan 2013, at 00:16, Robert Virding <<a href="mailto:robert.virding@erlang-solutions.com" target="_blank">robert.virding@erlang-solutions.com</a>> wrote:</div><br><blockquote type="cite"><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">
<div style="font-family:'times new roman','new york',times,serif;font-size:12pt">Isn't that the best reason NOT to implement it. Kill -extends() instead, it sucks.<br><br>Robert<br><br><hr><blockquote style="border-left-width:2px;border-left-style:solid;border-left-color:rgb(16,16,255);margin-left:5px;padding-left:5px;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt">
<b>From:<span> </span></b>"Björn Gustavsson" <<a href="mailto:bgustavsson@gmail.com" target="_blank">bgustavsson@gmail.com</a>><br><b>To:<span> </span></b>"Anthony Ramine" <<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>><br>
<b>Cc:<span> </span></b>"Erlang-questions" <<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>><br><b>Sent:<span> </span></b>Friday, 18 January, 2013 4:57:14 PM<br>
<b>Subject:<span> </span></b>Re: [erlang-questions] Erlang4Android<br><br><div dir="ltr">To implement the -extends() attribute that allows the<div>implementation of a module to be extended by</div><div>inheritance. That used to be implemented in the</div>
<div>error_handler. I have removed that code in the same</div><div>commit that implements $handle-undefined-function.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jan 18, 2013 at 4:36 PM, Anthony Ramine<span> </span><span dir="ltr"><<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>></span><span> </span>wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Out of curiosity, why?<div>
<span><font color="#888888"><br><div><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<div>-- </div><div>Anthony Ramine</div></div></span></div></span></span></div><br></font></span><div><span><font color="#888888">Le 18 janv. 2013 ā 16:25, Björn Gustavsson a écrit :</font></span><div><br><blockquote><span style="border-collapse:separate;font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:medium"><div>
We needed that to implement the parse</div><div>transformation for parameterized modules</div></span></blockquote></div></div><br></div></div></blockquote></div><br><br clear="all"><div><br></div>--<span> </span><br>Björn Gustavsson, Erlang/OTP, Ericsson AB</div>
</div><br>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote><br></div>_______________________________________________<br>erlang-questions mailing list<br><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></blockquote></div><br></div></div><div class="im"><div>
<span style="border-collapse:separate;border-spacing:0px"><div><span style="color:rgb(51,51,51);font-family:Geneva,Arial,Helvetica,sans-serif;font-size:12px">"Installing applications can lead to corruption over time. </span><span style="color:rgb(51,51,51);font-family:Geneva,Arial,Helvetica,sans-serif;font-size:12px">Applications gradually write over each other's libraries, partial upgrades occur, user and system errors happen, and minute changes may be unnoticeable and difficult to fix"</span></div>
<div><span style="color:rgb(51,51,51);font-family:Geneva,Arial,Helvetica,sans-serif;font-size:12px"><br></span></div></span><br>
</div>
<br></div></div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Evan Miller<br><a href="http://www.evanmiller.org/">http://www.evanmiller.org/</a>
</div>