Before usability and performance, there is control, because we are speaking about a language, not a system.
With a Map.sort/1 function, you can control the performance, with automatic sorting you can not. And with a Map.sort/1 function, you have usability. If you want out of control languages, just pick one over popular existing ones: javascript, Pythom, Ruby... But please keep elixir clean ;) Jean Le jeudi 16 février 2017 14:07:33 UTC+1, Michał Muskała a écrit : > > Inspect is a way for providing debug information. Performance should be > considered only after satisfying usability is provided. > > I'm +1 for the change. > > Michał. > > On 16 Feb 2017, 14:04 +0100, Jean Parpaillon <jean.pa...@gmail.com > <javascript:>>, wrote: > > One of the most important reason when choosing a data structure over > another is the cost of operations, if not, there is no interest in > choosing, for instance, a Map over a Proplist. > Of course there is a cost in sorting a map, and it is not insignificant. > > Why not just adding a Map.sort/1 function ? > > Jean > > > Le jeudi 16 février 2017 12:54:43 UTC+1, Eric Meadows-Jönsson a écrit : >> >> My guess is that the sorting time will be insignificant compared to >> sending the data down your logging infrastructure regardless if it's just >> printing to a terminal or if it's sending data over a socket. Both require >> syscalls and IO which is usually the more time consuming part. >> >> I think it's wrong to prioritize performance instead of usability for >> Inspect since the functionality is made for humans. If performance actually >> is more important than readability then there are lots of optimizations we >> can do to Inspect, for example dropping algebra documents and pretty >> printing. >> >> On Wed, Feb 15, 2017 at 10:04 PM, Dmitry Belyaev <be.d...@gmail.com> >> wrote: >> >>> If I dump a map to logs I don't care about its order, I only want it to >>> be as fast as possible. Logging already introduces a serious performance >>> hit, and sorting would make logging even more expensive performance wise. >>> >>> As was mentioned previously if a map is small it's already sorted. So it >>> would be a waste of time although insignificant. But if it's huge it would >>> spend both cpu and memory to vuild sorted structure, and later would spend >>> more cpu on its garbage collection. I don't like the idea of losing >>> production performance only for development convenience. >>> >>> On 16 February 2017 07:25:51 GMT+11:00, Bruce Tate <br...@rapidred.com> >>> wrote: >>>> >>>> Good points, but isn't inspecting a map generally a development time >>>> activity? Especially big maps? >>>> >>>> Sometimes, optimizing people is the right thing to do. When you're >>>> looking at big lists of ecto objects and working to pick out an ID, having >>>> things in order is a big deal. >>>> >>>> -bt >>>> >>>> On Wed, Feb 15, 2017 at 2:17 PM, Tallak Tveide <tal...@gmail.com> >>>> wrote: >>>> >>>>> I believe it would be useful to not sort if there are very many keys >>>>> as well. A huge map would presumably be inspected in a short while, >>>>> skipping keys after the first few. Inspecting a huge map could become >>>>> cpu/memory intensive, which I would find surprising... anyways +1 from me >>>>> >>>>> -- >>>>> 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 elixir-lang-co...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/elixir-lang-core/8a1f314b-efdb-468d-8dae-ba6492aa0f95%40googlegroups.com >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Bruce Tate >>>> President, RapidRed, LLC >>>> Phone: 512.772.4312 >>>> Fax: 512 857-0415 >>>> >>>> Author of Seven Languages in Seven Weeks, Deploying Rails Applications, >>>> From Java to Ruby, Rails: Up and Running, Beyond Java, 6 others. >>>> >>> -- >>> 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 elixir-lang-co...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/elixir-lang-core/2649817D-21D7-4C50-B477-7038486C9849%40gmail.com >>> >>> <https://groups.google.com/d/msgid/elixir-lang-core/2649817D-21D7-4C50-B477-7038486C9849%40gmail.com?utm_medium=email&utm_source=footer>. >>> >>> >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Eric Meadows-Jönsson >> > -- > 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 elixir-lang-co...@googlegroups.com <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-core/3dbae292-3978-41d3-bb54-3b006d694260%40googlegroups.com > > <https://groups.google.com/d/msgid/elixir-lang-core/3dbae292-3978-41d3-bb54-3b006d694260%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 elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/84ad4498-7e76-4306-a925-83609bbaf128%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.