--- Begin Message ---
Hi
I concur on the documentation problem.
I concur that there is plenty of documentation, but finding it is a chore.
I have two side projects I have started.
Doc at http://www.squeaksource.com/@FICALqrUmxQTIHgr/ul4_-exCAnd SeasideDoc
(which I started before Doc)
http://www.squeaksource.com/@FICALqrUmxQTIHgr/zwF3AJHc
I expect that I will develop Doc completely before refactoring SeasideDoc to
sit on top of it.
The core ideas are:
1. That documentation should be available in-image in familiar terms--by
sending messages to "stuff"
2. The documentation should be VERY EASY to add to (unlike the HelpBrowser,
which ,imho, is coding, not documenting).
3. StackExchange style commenting with upvotes, priority.
4. Doc saves to a normal repository squeaksource or however pharo does its
stuff, and hence, evolves with the image.
5. ?? this one is a stickler. should documentation be tightly bound with the
Objects per Class comment style? or should it exist symbiotically? I think the
latter. If so, what is the best design pattern(s) to facilitate that.
Regarding 1. ......by sending messages to "stuff"
stuff is..
classes: Dictionary doc
packages: PG3 doc
frameworks: Seaside doc
XTreams doc
Design Patterns: Singleton doc
Facade doc
BigBallOfMud doc (j.k.)
I think typical Gnu-Linux style "man" , "help" , "info" or "verbose" would be
an incredibly useful tool in bridging the "how do I do foo" gap that Squeak
certaintly has and I suspect Pharo does too.
I am very busy with a PEG grammar development project, so this is back burner
stuff for me.
I post this in the hope that some guru will take over the project and make
Pharo/Squeak/ (and other) Smalltalks the BEST documented systems on the
internet.
Cheers.
tty
---- On Mon, 29 Jun 2020 10:08:29 -0400 Tomaž Turk
<mailto:tomaz.t...@ef.uni-lj.si> wrote ----
Dear all,
This thread is a bit old, but anyways: here are my two cents on the question
'What are reasons not to use Smalltalk'. Thanks, Horrido, to constantly promote
these kind of discussions.
I think that your polls are mixing very different reasons - for instance, we
choose development tools in different settings: as a group, as a firm, as an
individual -- and for different purposes - for one of the projects, for some
projects, as a general orientation of a firm, a specific team, or an
individual. So I don't respond to these polls since it would be hard to answer
properly, and "all of the above" is probably useless to you.
What struck me about Pharo is the beauty and simplicity of the language and
environment - and its great community, of course! Despite the fact that I have
to use other tools because of my habits, environment, colleagues, students, and
customers, I keep running Pharo almost every day, testing the ideas - it became
a habit. I think that the consortium is well aware of the important things to
make Pharo a feasible toolset for serious development, like stability, the
proper GUI support, and books.
In my own experience, Pharo as a language is pretty mature. In every-day
situation with Pharo I deal with small challenges like remembering how to
change all spaces with hyphens in a String - as I do in other languages when I
try to remember all the methods that are already made for me in a certain
language/libraries. This is not a problem.
The real challenge is somewhere else: it's the comprehension of all the
packages that are needed for a full-size project, from persistence to GUI. When
documentation is scarce you have to go more or less deep into the code which I
often find quite challenging. Besides commentaries, it helps tremendously if
developers would always use typed variables to indicate API, like
properties: aDictionary
or
presentWith: aWAPresenter
instead of
properties: someProperties
and
presentWith: anObject
It's true that Pharo is not among "strongly typed" languages, however we
sometimes forget that typing is not just a technical thing to avoid run-time
errors, but it also gives information to other developers what's going on in
the code and who should be the receiver.
In some packages I also miss the use of superclasses - you can see that a bunch
of classes directly inherits from Object or some other general class, however
they could be organized in a better inheritance hierarchies, thus additionaly
explaining their common and individual behaviour.
Both and many other concepts are nicely described in books Learning OOP and
Pharo with Style. I know that we are always eager to develop the package and
satisfied when it works - and then it's hard to find the time to tie up these
little pieces. I hope I don't sound too patronizing - I'm the same myself.
Years ago Borland made a breakthrough with Turbo Pascal and Turbo C. For both
tools they prepared two sets of books: user manual and reference manual. Books
about Pharo are very nice and helpful, they are user manuals. If all the
crucial packages would respect typed variables and class hierarchies, we won't
need reference manuals at all :-)
So, yeah, I think that the tipping point for Pharo is the question of how much
time a developer should use to rediscover the behaviour which is already there.
Best wishes
Tomaz
--- End Message ---