Hi Thierry,
On Jan 9, 2017, at 4:31 PM, Thierry Goubier
<thierry.goubier(a)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(a)tudorgirba.com>om>:
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(a)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(a)list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)list.inf.unibe.ch
https://www.list.inf.unibe.ch/listinfo/moose-dev
--
www.tudorgirba.com
www.feenk.com
"Value is always contextual."