Hi Thierry,
On Jan 9, 2017, at 4:31 PM, Thierry Goubier thierry.goubier@gmail.com wrote:
Hi Doru,
Happy new year and best wishes for your objectives.
Interesting questions you are asking back Hilaire.
They are also interesting because of the questions you are not asking him.
why don't you ask:
- Do you build a model of the application in a way or another?
- Do you track the queries you are doing over the code?
extending / building vizualizations / writing queries could be a step after those, isn't it?
Not in my view.
A system has no shape. Yet, we need a shape to reason about it. As that shape is provided by tools, the tools we use are essential for how we think about our system. It is for this reason that we need to control those tools, and they cannot be static. You see, Smalltalk claimed to be highly dynamic since a long time, but all these years the tools did not change. You move from one system to another, and the tools are the same. We got stuck in one shape and could not get out of it.
I build views and queries all the time. Just like the way a test looks like informs me about the suitability of the domain design, the elegance of a query or of the code of a visualization informs me about the same thing as well, only from different angles. I also throw most of these visualizations away. You never quite know which shape is insightful and that is why it is important to control the cost of a view. The cost should be so cheap that it should be faster to create the view than to talk about the problem. Once you reach that place, the game changes.
Visualization is not a replacement for design. It is only a way to learn about what does or does not work. But, it is an essential one.
The Message Browser is an interesting piece of code. I replaced it, but it has a very strange API with users happily hacking into the internal representation of the message browser, so, even determining what is the API of that damn thing is ... interesting.
There are some things the original message browser does very well, but I'm not sure it was intended. It's a very nice todo-list, for example. Works very well in a query some code/modify everything that match. I'm not sure it works that well as a discovery/navigation code tool.
I do agree that the Message Browser is a nice todo list for methods. We have a long way ahead of us :).
Cheers, Doru
Regards,
Thierry
2017-01-09 16:09 GMT+01:00 Tudor Girba tudor@tudorgirba.com: Hi,
In my opinion, Pharo provides the strongest infrastructure for understanding a system from all technologies I have seen. So, if you say that Pharo is a bit "under featured in, then I think we are not referring to the same thing :).
May I ask how you are using the inspector? For example:
- do you extend the inspector?
- do you construct visualizations about your system in the inspector?
- do you write queries about code in the inspector?
Cheers, Doru
On Jan 9, 2017, at 3:42 PM, Hilaire hilaire@drgeo.eu wrote:
I know this path of understanding code while it is running (inspector or debugger), but it is still a tedious path, and I feel Pharo is a bit under featured on that specific department, therefore my question on Moose.
Hilaire
Le 09/01/2017 à 15:09, Tudor Girba a écrit :
That is why my advice is to not try too long to understand Pharo code statically because this is not where the power of Pharo is. You are in a much better position to understand a system when it’s running. So, the tools that I use the most are the inspector when I need to understand structural relationships or contracts between objects, and the debugger when I need to understand some algorithmic steps. Even when I look for code structure patterns, I mostly use the inspector because it allows me to query. Then you augment these tools with custom views and you get quite far.
-- Dr. Geo http://drgeo.eu
-- www.tudorgirba.com www.feenk.com
"We can create beautiful models in a vacuum. But, to get them effective we have to deal with the inconvenience of reality."
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-- www.tudorgirba.com www.feenk.com
"Value is always contextual."