<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 2, 2016 at 1:56 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 id=":mq" class="a3s aXjCH">Virtually all the code I write is in the form of "micro experiments" -<br>
since I'm not sure what will happen if I do something. The "big" or<br>
complete program<br>
can be written once all the micro-experiments have been done.<br>
<br>
When I can't write the code - it is always because I haven't<br>
understood the problem - this is very frustrating I *think* I've<br>
understood the problem - yet the fact I can't write the code is a<br>
clear sign that I have not understood the problem - but I do not yet<br>
know why.<br>
<br>
Loading the problem into my brain, sleeping, more study, playing the piano,<br>
a glass of wine, stoking the cat usually solves the problem (or not).<br>
<br>
IDE's in all their glory help me type the solution to my problem into<br>
the computer - but they do not help me formulate the correct problem<br>
in the first place.<br></div></blockquote></div><br>All true, Joe, we can't know what we don't know and no amount of the technology we are talking about (i.e. not things that stimulate the brain's creativity and whatnot) will help with that. </div><div class="gmail_extra"><br></div><div class="gmail_extra">However, helper tools can help us be faster and more flexible when writing the micro-experiments, which means we can try more of them in the same amount of time and if we have a slightly higher-level view over them maybe we can easier see new ways to combine them, that would otherwise get hidden in the boilerplate code. The tools can also help write a correct final version, too (even if it is just by eliminating the need to always have to stop typing and ask "was it keysearch(Key, List) or keysearch(List, Key)?")</div><div class="gmail_extra"><br></div><div class="gmail_extra">Also, most of the developer time is spent not thinking about new stuff, but reading/understanding/debugging/improving existing code, and here tools can help a lot by filtering parts irrelevant for the current task, or by providing a higher-level view of the code, or by making it easy to follow the execution of the code. There was a time when I could run code in my head and I got most often correct results, but that's not working any more... </div><div class="gmail_extra"><br></div><div class="gmail_extra">Anyway, even if they are far from perfect, I think everybody can agree that tools help. I consider pen and paper as tools too, by the way. I think that the issue is that everybody has their own thought processes and need tools that fit those, but we can't create custom tools for every person.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Going back to a more practical discussion and considering I am a tool developer, I welcome all inputs regarding what kind of tools would help you (as in, all of you) best. I have already started looking at a prototype for an editor for an application's supervision structure, as Vance talked about. I probably won't be able to do everything myself, but it's possible that many people have tools that they wrote for themselves and use with success - maybe those can be shared?</div><div class="gmail_extra"><br></div><div class="gmail_extra">best regards,</div><div class="gmail_extra">Vlad</div><div class="gmail_extra"><br></div></div>