In article
<2d70e88b-b82b-4c64-9648-91b566d46876@[EMAIL PROTECTED]
>,
thomas.mertes@[EMAIL PROTECTED]
wrote:
> On 10 Feb., 15:56, thomas.mer...@[EMAIL PROTECTED]
wrote:
> Hello,
> I have improved my chapter about object orientation.
> Many thanks to all who gave suggestions.
> It would be nice to get some feedback about the
> new version before the final release. Here is it:
> 7. OBJECT ORIENTATION
> =====================
>
> Many people will be familiar with object-orientation from
> languages like C++, Smalltalk, and Java. Seed7 follows the
> [...]
> For short: An interface defines which methods are sup****ted
> while the implementation describes how this is done.
> Several types with different method implementations can
> share the same interface.
> [...]
>
I do not mean to be harsh, but the way it is written, I do not see a
natural audience for this chapter. The text, IMO, is aimed at beginners.
Your language being a new and unknown language, beginners will only
start learning it if you force-feed it them. If you are in the position
to do so, you probably would know exactly what they do and do not know.
That should enable you to target them much more specifically (looking at
the current chapters 1 through 6, I find references to Ada, C (even to
K&R C), C++, Java, Pascal, and SmallTalk. IMO beginners would know two
of them, at most)
If you can not force beginners to be 'interested' in your language, your
only bet, to me, is with people naturally interested in almost any
programming language. For them, this text is too simple. For example, I
think the text can assume "interface", "dynamic dispatch" to be known
concepts. For them, you will also have to be clear in why one would read
up on this niche language.
On the other hand, there is quite a bit that I would like to know that
the site and this text do not explain about seed7 (or at least, that I
could not easily find):
1) I do not see why it must be
const type: circle is new struct
const type: shape is new interface;
but
const proc: f (in type: argument) is func
What exactly is new about circle and shape, but not about f?
2) what does that 'const' keyword (is it a keyword?) mean precisely? Are
there modifiable types? modifiable type instances? Are types first-class
objects?
3) Is there a difference between procedures and functions? If not, why
use two different terms? If so, what exactly does "const proc: main is
func" define? Paragraph 2.1 on the site does not appear to know the
answer. On the one hand, it says "Declaring 'main' with the type 'proc'
makes a procedure out of it". On the other hand, it says "Additionally
the seed7_05.s7i library defines the 'main' function as entry point for
a Seed7 program".
In summary: I think you should focus more on people who are more
knowledgeable about programming languages. I might be overrating the
knowledge or underrating the curiousness of the average programmer,
though.
Reinder


|