On Tue, 7 Jan 2014 08:06:45 +0100
Martin Schreiber <[email protected]> wrote:

> > Pattern recognition...
> > I don't care about it when I *use* a compiler...
> Maybe there is a misunderstanding, I mean pattern recognition by
> reading the code by a human. :-)
Yes, there has been.

> I don't know if you read the MSElang Wiki, it is here:
> https://gitorious.org/mseide-msegui/pages/Mselang
Yes I did read it.

> The design goals of MSElang:
> 1. Simple, 2. Readable.
>     MSElang programs should be read like a letter.
These two points are priorities for me too. This is why:
1. (Simple) I want automatic type conversion, but in a clean context.
2. (Readable like a letter). This is another point. I took inspiration
from spoken language, which has little punctuation. Characters like
$%&?^| should be avoided if possible, contrary to C. For a human, layout
is important, so I make it coincide to the compiler.


> 3.    Easy to learn ... suitable for pupils
Not bad. But very difficult. I have used several languages, and every
time I switched, I crashed on pitfalls. Oh, stupid things, but every
language has them. There are two types of "pupils": those who don't
know programming, and those who know. For the formers, any reasonable
language can do, but perhaps little formalism is better (perhaps). For
those alreay in programming, may be your idea (a "strict" and polished
pascal) could be better at first, but after the first steps
productivity would slow down. Don't take it wrong, but after reading
your wiki, I had the impression that you make a strong point of
formalism (nothing wrong with this), but I don't see the...:


> 4.    Powerful ...  pointers and pointer arithmetic.
>     Object orientated high level programming.
There are two different concepts of "poweful". One, old style:

        while ((ch=getchar()) != EOF) putchar(ch);

...and assembler is even more powerful, for this.

The other style of power is something like:

        send stream1 every customer.name

without pointers, cycles, arithmetics, tests. Of course, nothing forbid
to implement pointers in a powerful language: a programmer can decide
to use them or not.


> I don't want to make the language a "fascinating intellectual puzzle"
> there is enough challenge in finding of best algorithms and
> architecture of the programs one has to develop...
And this is why I want a powerful but simple language! I don't want to
always remember that I can't "writeln(myboolean)" because I must
explicitly convert it to a str8. And consider that there are
not only writelns; consider GTK: it wants utf8, but for some reason
(speed? text files? external LCD?) the main program uses ascii, or mcs4
or whatever. Ok, your way to go still works, but I think this
can no more be called "power".

> 
> > > The problem in "with" is if one uses a local variable which is
> > > later also added to the "with'ed" class or record.
This is a very very strong point. In fact, when I first saw php, I was
stunned by those variables always referenced with "$", but later I
understood. So, we are condamned to be verbose? No, with my colon
trick. But even sticking to WITH, the way something else does, there is
no problem:

        with form1 do
          .caption = caption
          .left = left
        ...

Why the freepascal team did not change the semantic of WITH? For
compatibility? Will you change it?


> > 80% solved. For str8. Then there are utf8, utf16, mcs-4... so you
> > will have su8(), su16(), smcs4()?
> >
> If there are no implicit conversions function overloading works for
> function result types also. I assume the "print()" function uses
> utf-8?
This is not clear to me: "overloading works for function resul types
also". If you can overload something else than arguments, let me know
how do you do it - I am interested (of course, in making it
automatic :-) ).
Apart from this, I think it is no good to "assume print() uses utf8",
because often a program sets captions in GTK, or fields in SQL, or uses
external libraries written by someone else. In fact, you say MSELang
will support several types of strings, why? To interface with the world,
or to burden the language with unnecessary things? I assume all those
types are for interfacing with the world, so who know if
"external function xx" uses utf8 or EBCDIC.

We are criticing each other, but I think this can be useful. I have a
question: does MSEIDE support automatic completion? I didn't tried the
last version (because of dependency issues); in 2.8.6 a quick try was
unsuccessful: if it is there, I don't see it.

Regards,
linuxfan





------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

Reply via email to