On Sat, Jan 26, 2013 at 4:38 AM, Michael Van Canneyt <mich...@freepascal.org> wrote: >>> WITH EACH ADDITIONAL "FEATURE" WE ARE BUTCHERING PASCAL MORE AND MORE. >> Hm... Do not you think this is a bit of an overstatement? > No, not really. I really feel that we are deviating a lot from what pascal > stands for.
If you mean the original Wirth's definition -- then yes, of course any change to the language does move it away from the initial state. However, I am strongly against such a "walled garden" approach to the language design. The state of the art in programming languages has advanced considerably in the last 40 years, and the set of features expected from modern language has become quite different too. I disagree that freezing at Wirth's (or current, or any fixed) definition is a useful plan for Pascal development. > > You can always find things missing in any language. > I miss compilation, and other low-level things in Python. > It depends on what you value. I certainly agree that Pascal has some advantages -- and they often outweigh disadvantages. Otherwise, I would be in Python's mailing list now, arguing to add some of the Pascal's features :) However, this does not mean that disadvantages should be just ignored. >>> Pascal needs more useful libraries. >> It is important to note that default libraries ARE part of the language > You are wrong there. Well, this is a matter of opinion of course, but note that your opinion on this topic is again different from the usual one: Python: google "batteries included" C++: http://stackoverflow.com/questions/5460541/is-the-c-standard-library-part-of-the-c-language Java: for example, a string literal is defined as an instance of the java.lang.String class PHP: it is of course bad design, but for a long time there was not even a notion of "library", all standard methods were accessible directly at language level Pascal: note that both the original definition and the ISO standard include a set of input/output and mathematical functions, which comprise the standard library. It is a poor library, but nevertheless included in the language definition. ... etc. > I am talking about libraries that perform actual tasks. Not containers. > PDF generating, https protocol and whatnot. Those are definitely not part of > the language. Yes, and even those. For example, lack of network support in C++ standard library is widely considered a disadvantage for the language. Conversely, presence of such support in Go and Python is hailed as good language feature. Note that technically, of course, the distinction exist -- what I am talking about is that from user's POV they are the same. > The student will have to remember 4 different syntaxes. > > For a:=b to c do > for a:=b downto c do > for a in b do > for a in b index c do > > Concise ? I don't think so. Compared to the 10 methods of iterating over container just in the current FPC+Lazarus code? Yes, I think this *is* concise and clear. > And let us not forget that the last one is a highly abstract one, because > you need a lot of concepts before you can explain why it is needed and how > to use it. The first one, by contrast, is so simple that any 12-year old can > get it. Actually, I do teach young students (12 years old is somewhat too young, but 13-14 is usual). I can tell you they have *more* trouble with Pascal style of loop with indexing as compared to Python's for-each with index. -- Alexander S. Klenin _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel