On Thu, 16 Jul 2015, silvioprog wrote:

On Thu, Jul 16, 2015 at 2:21 PM, Michael Van Canneyt <mich...@freepascal.org> 
wrote:
      On Thu, 16 Jul 2015, Marcos Douglas wrote:
            On Thu, Jul 16, 2015 at 11:44 AM, Michael Van Canneyt
            <mich...@freepascal.org> wrote:


                  On Thu, 16 Jul 2015, Maciej Izak wrote:

                        sadly - no, only in Delphi mode. btw. this thing keep 
me away from objfpc.



                  That seems like a very strange reason to me.

                  The fact that you must type 1 word in certain places keeps 
you from using an
                  otherwise useful mode ?
                  This word is there for clarity, It is meant to help you, to 
make explicit
                  you are in fact specializing a new type.


            Yes, but do you think this is more verbose unnecessarily? Because 
the
            syntax TFoo<T> (I mean this "<>") show us that is a generic, don't?

            The Lazarus also has some troubles with the code completion using 
this:
            TFoo = class(TInterfacedObject, specialize ICloneable<TFoo>)


      Lazarus is not alone, even I have trouble with this :)


            Sometimes the IDE shows an error in interface declaration, but 
compiles.
            So, to not receive these errors I have to create a new type:

            TFoo = class; //forward

            IFooCloneable = specialize ICloneable<TFoo>;

            TFoo = class(TInterfacedObject, IFooCloneable)
            //...
            end;
            ...making even more verbose.


      Pascal is a verbose language. If you want terse, use C++ or something 
like it.

      The whole generics mess that Delphi made goes completely against the 
Pascal dictum that you must declare something before you can use it.

      To me, the above verbose construction makes absolute sense. It has been 
so since day 1:

      PRecord = ^TRecord;
      TRecord = record
        a : integer;
        next : PRecord;
      end;

      Michael.


IMHO this could be decided via poll, because several users around the world are 
using FPC too. For example, in a polling, I would vote in less keywords, e.g: [+1 
vote for: "TFoo =
class(TInterfacedObject, ICloneable<TFoo>)" / "t.Add<LongInt>(2, 4);"] and [-1 vote for: "TFoo = 
class(TInterfacedObject, specialize ICloneable<TFoo>)" / "t.specialize Add<LongInt>(2, 4);"].

The more verbose a language becomes, and needs more keywords to do simple 
things, the more chances it has to be depreciated.

You better wake up, pascal is long deprecated.


I use other languages too, like Java (Android) and JS (front-end / AngularJS), 
but here in our company we are testing and thinking about migrating a lot of 
our online structure to Node.js, because
it is very productive and less burocratic. For while we are using a mix of 
Pascal (XE8/FPC 3) and Node.js via proxy + websocket, but the trend is to use 
only JS in front-end and back-end.

And you honestly think that this change will stop this process ?

People that feel that this is a problem can use mode Delphi.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to