<div dir="ltr">Hi Joe (and the rest of the list),<div><br></div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">Ok right up front, I'm not a </span><span class="" style="font-family:Arial,Helvetica,sans-serif;font-size:13px">Guru</span><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">, I have only been working with Erlang for about 7 happy months :-)</span><br>
</div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">I have a question about the "</span><font face="Arial, Helvetica, sans-serif">Records are dead - long live maps</font><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">" statement you make in your post. One of the nice things I like about records is is that they are a "typed" collection of key->value pairs. When I pass a record around I can look up the definition and know what I can and cannot do with it, and also see what a function expects. Also pattern matching purely on the record type is a great initial filter. When I look at maps they look more like a proplist replacement, something that is just as flexible (more so I guess) but with better usage?</span></div>
<div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></span></div><div><font face="Arial, Helvetica, sans-serif">So the question really is, how do you see maps replacing records? Would we add a map_type property to the map to distinguish between different maps? Or purely on it's data structure it self? </font></div>
<div><font face="Arial, Helvetica, sans-serif"><br></font></div><div><font face="Arial, Helvetica, sans-serif">If this is a silly question then I am happy to read about it in one of your awesome rants.</font></div><div><font face="Arial, Helvetica, sans-serif"><br>
</font></div><div><font face="Arial, Helvetica, sans-serif">-Mark</font></div><div><font face="Arial, Helvetica, sans-serif"><br></font></div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 1, 2014 at 5:34 PM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Fri, Jan 31, 2014 at 10:51 PM, Kenneth Lundin <span dir="ltr"><<a href="mailto:kenneth.lundin@gmail.com" target="_blank">kenneth.lundin@gmail.com</a>></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 dir="ltr"><p>Erlang/OTP 17.0-rc1 has been released.</p>
</div></blockquote><div><br></div></div><div>Fantastic - great - this is a major change to Erlang.</div><div><br></div><div>I've written an article that documents the biggest changes.</div><div><br></div><div>Big changes to Erlang <a href="http://joearms.github.com/2014/02/01/big-changes-to-erlang.html" target="_blank">http://joearms.github.com/2014/02/01/big-changes-to-erlang.html</a><br>
</div><div><br></div><div>Cheers</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>/Joe</div><div><br></div><div> </div></font></span><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><div class="h5">
<div dir="ltr"><p> </p><p>This is an alpha release, which will be followed by a planned beta release about a month later and a final <br>OTP 17.0 product release in the end of March 26, 2014.<br>
Between the alpha and beta and final release there will be new updates of the master branch with corrections<br>and minor new features. Occasionally there might be new tags which we in that <br>case will communicate and ask you to test.</p>
<p>Erlang/OTP 17.0 is a new major release with new features, quite a few (characteristics) improvements,<br>as well as some incompatibilities. See the README file and the documentation for more details.</p><p>We would like to ask you to download and test the alpha release and send us your feedback as soon as possible,<br>
so that we can make the necessary corrections before OTP 17.0-rc2 and OTP 17.0, respectively. <br>The release contains many changes; thus, some unexpected incompatibilities or issues may have slipped through<br>our tests. Please try to build and run your current products/applications and let us know about any problems.</p>
<p>Note! The new datatype MAP is not properly documented yet but the EEP 43 <a href="http://www.erlang.org/eeps/eep-0043.html" target="_blank">http://www.erlang.org/eeps/eep-0043.html</a><br>will provide a good start. Also note that it is a limited implementation of maps implemented so far:</p>
<p> - no variable keys are allowed<br> - native code can not be generated for modules using maps </p><p>Some other highlights of the release are:</p><p> - Maps, a new dictionary data type (experimental) <br> - A more natural mapping from ASN.1 OCTET STRING and BIT STRING to Erlang types, <br>
and other ASN.1 improvements and optimizations<br> - The {active, N} socket option for TCP, UDP, and SCTP<br> - A new (optional) scheduler utilization balancing mechanism<br> - Migration of memory carriers has been enabled by default on all ERTS internal <br>
memory allocators<br> - Increased garbage collection tenure rate<br> - Experimental "dirty schedulers" functionality<br> - Funs can now be given names<br> - Miscellaneous unicode support enhancements<br>
- A new, semantic version scheme for OTP and its applications</p><p>You can find the README file with more detailed info at</p><p> <a href="http://www.erlang.org/download/otp_src_17.0-rc1.readme" target="_blank">http://www.erlang.org/download/otp_src_17.0-rc1.readme</a></p>
<p>You can download the full source distribution from</p><p> <a href="http://www.erlang.org/download/otp_src_17.0-rc1.tar.gz" target="_blank">http://www.erlang.org/download/otp_src_17.0-rc1.tar.gz</a><br> <a href="http://www.erlang.org/download/otp_src_17.0-rc1.readme" target="_blank">http://www.erlang.org/download/otp_src_17.0-rc1.readme</a> (this file)</p>
<p>Note: To unpack the TAR archive you need a GNU TAR compatible program.</p><p>For installation instructions please read the README that is part of the distribution.</p><p>You can also find this release at the official Erlang/OTP Git-repository at Github here:</p>
<p> <a href="https://github.com/erlang/otp" target="_blank">https://github.com/erlang/otp</a> tagged *OTP_17.0-rc1*</p><p><br>The Windows binary distribution can be downloaded from</p><p> <a href="http://www.erlang.org/download/otp_win32_17.0-rc1.exe" target="_blank">http://www.erlang.org/download/otp_win32_17.0-rc1.exe</a><br>
<a href="http://www.erlang.org/download/otp_win64_17.0-rc1.exe" target="_blank">http://www.erlang.org/download/otp_win64_17.0-rc1.exe</a></p><p><br>On-line documentation can be found at <a href="http://www.erlang.org/doc/" target="_blank">http://www.erlang.org/doc/</a>.<br>
You can also download the complete HTML documentation or the Unix manual files</p><p> <a href="http://www.erlang.org/download/otp_doc_html_17.0-rc1.tar.gz" target="_blank">http://www.erlang.org/download/otp_doc_html_17.0-rc1.tar.gz</a><br>
<a href="http://www.erlang.org/download/otp_doc_man_17.0-rc1.tar.gz" target="_blank">http://www.erlang.org/download/otp_doc_man_17.0-rc1.tar.gz</a></p><p>We also want to thank those that sent us patches, suggestions and bug reports.</p>
<p>The Erlang/OTP Team at Ericsson<br></p><p> </p></div>
<br></div></div><div class="im">_______________________________________________<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>
<br></div></blockquote></div><br></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><div dir="ltr">Mark Nijhof<br><div><div>t: <a href="https://twitter.com/MarkNijhof" target="_blank">@MarkNijhof</a><br>s: marknijhof</div></div><div><br>
</div></div>
</div>