Hi Hilaire,
GT is essentially a project that takes the relevant parts of Moose and make them
applicable to plain Pharo. Pharo ships with only the core tools, but the complete
configuration of GT also brings with it Roassal and a couple of other goodies. There are
still more interesting things in Moose, but you can get quite far with only GT.
About your particular question, it’s true that Pharo does not have static types, but that
does not make it harder to understand. Only different. The first thing to realize is that
Pharo is not about code, but about objects.
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.
I know this sounds abstract, but I am practicing this since several years and I still find
it amazing. I tried to provide a hint of how it works in the ESUG 2016 talk.
Cheers,
Doru
On Jan 9, 2017, at 2:02 PM, Hilaire
<hilaire(a)drgeo.eu> wrote:
Hello Doru,
I am curious.
Yesterday I had a look to MessageBrowser, and realize I understand
nothing of it. I saw there is a mix of SpecXXX, models, Navigation
browser, Announcement, etc, then I knew I will have to spend a lot of
time browsing (multiple window again) to understand a bit how these
objects are related, and may be be able to change it in the way I want.
Does the Moose & al tools could help me understand code I don't know about?
Given the fact Pharo/Smalltalk are not typed makes it harder for code
analysis, don't you?
Happy new year to you too.
Hiaire
Le 09/01/2017 à 10:30, Tudor Girba a écrit :
Happy New Year, everyone!
Over the last year, I went through a rather extensive tour and I directly exposed Moose,
GT and Pharo to some 2000+ technical people through various sessions and trainings at
conferences and companies. The tour will continue this year.
Most of the sessions are not directly about Moose, GT or Pharo, but about broader topics
that are served through what we do around here. These topics can relate to solving
problems without reading code, to steering agile architecture, or more recently, to even
broader topics like software environmentalism. If you are wondering what software
environmentalism is, please take a look at this talk:
https://youtu.be/N3l3eB62oSw?list=PLqvTNJtc942Cs9Qo4ikCGrUNtAw93Q0JA
I now have the confirmation that there is a whole space which is unaddressed by
mainstream technologies. Often people find themselves frustrated having to build their
systems on top of opaque technologies with not much hope of understanding what is going on
under the hood both because they do not have access to what is behind and because they are
provided lack the tools to investigate. You see, developers are suppose to have the
coolest job on the planet, and many of them are unhappy. This has to change, and we can do
that.
In a conversation I had with a highly respected researcher, after explaining how our
tools allow us to work, he noted reluctantly “so, you are claiming that you are practicing
a fundamentally different software engineering?”. This question took me a little by
surprise because the only answer I found myself being able to provide was “yes”. I sent
him this talk:
https://youtu.be/XWOOJa3kEa0?list=PLqvTNJtc942Cs9Qo4ikCGrUNtAw93Q0JA
It is strange to be in the position to tell the world that we are constructing something
fundamentally better, but I really do believe that we are.
I wish you a happy and bold new year!
Cheers,
Doru
--
Dr. Geo
http://drgeo.eu