What is good about Prothon?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • has

    #16
    Re: What is good about Prothon?

    "Mark Hahn" <mark@prothon.o rg> wrote in message news:<oiCjc.962 2$Qy.6230@fed1r ead04>...[color=blue]
    > has wrote:
    >[color=green]
    > > (Note: scripts are compiled, so you'll need a Mac to view source.)[/color]
    >
    > Can you at least make a screen snapshot available or something for the "rest
    > of us"?[/color]

    Eh, I'll see what I can do. Here's a short example to get you started:


    on makeStack()
    script
    property class : "Stack"
    property _linkedList : missing value
    -------
    on push(val)
    script node
    property nval : val
    property chain : _linkedList
    end script
    set _linkedList to node
    return
    end push
    --
    on top()
    if _linkedList is missing value then error "Can't get top:
    stack is empty." number -1728
    return _linkedList's nval
    end top
    --
    on pop()
    if _linkedList is missing value then error "Can't pop:
    stack is empty." number -1728
    set val to get _linkedList's nval
    set _linkedList to get _linkedList's chain
    return val
    end pop
    --
    on isEmpty()
    return (_linkedList is missing value)
    end isEmpty
    end script
    end makeStack

    -- TEST

    set foo to makeStack()
    foo's push(3)
    foo's push(5)
    log foo's pop() --> 5
    log foo's pop() --> 3



    In AS, every compiled script is itself a script object. Scripts can be
    loaded into other scripts using the 'load script' command; this
    provides the foundation for library-based design. Script objects can
    also be declared within other script objects and handlers (aka
    procedures) using the 'script [identifier]...end script' block. This,
    along with their support for delegation via the 'parent' property,
    allows you to do prototype-based OOP. Incidentally, because script
    objects have first-class syntactic support, they also support modular
    design within a single file, sectioning off parts as separate
    namespaces without having to move code off into separate files as
    you'd do in Python; e.g.:

    ----- begin script (global namespace) -----

    property foo : 0

    script Sub_Namespace1
    -- properties and handlers here
    end

    script Sub_Namespace2
    -- properties and handlers here
    end

    on bar()
    ...
    end bar

    ----- end script -----

    (e.g. This ability makes for a very handy halfway stage when
    refactoring one file into several or vice-versa.)

    Thus a single, very generic type (script) can perform all the roles
    that it takes Python several specialised and largely
    non-interchangeable types (classobj, instance, module) to do. It's
    such a clean, simple and extremely flexible way to do encapsulation
    that, though I can understand why more static languages might require
    the extra layers and complexity, I've never understood why languages
    like Python, Smalltalk, etc. feel such need to erect all these extra
    hurdles for themselves. Maybe they just like making work for
    themselves? Of course, greater freedom also implies greater
    responsibility and a better understanding of what you're trying to
    achieve, which might freak some folk from the BDSM school of
    programming, but that's their problem - and loss.



    Other nice stuff: while AS allows only a single delegate per object,
    the ability to compose object behaviour at runtime makes it much more
    powerful than class-based single inheritance, and less of a PITA to
    use than MI. Just create and delegate-chain together the objects you
    want as and when you need them.

    e.g. I used this approach in my original HTMLTemplate library to
    construct the various template objects - see
    <http://freespace.virgi n.net/hamish.sanderso n/TemplateConstru ctors.rtf>
    for the relevant module (forgive the nasty source code-munging bit in
    the middle, but one of AS's limitations is an inability to add/remove
    slots once an object is created*). Compare this with the Python port
    where I had to use MI to compose behaviour
    <http://freespace.virgi n.net/hamish.sanderso n/htmltemplate.ht ml> -
    particularly the older 0.3.2 release where I managed to spaghetti the
    inheritance tree something awful on my first attempt (I had no such
    problems designing the AS version where composing objects was a
    no-brainer).

    [* Python shouldn't feel too smug, however, seeing as I had no better
    luck trying to dynamically attach property objects to class instances,
    and had to resort to sticking nodes into a private dict accessed via
    __getattr__ and __setattr__.]



    Obviously, there's some things about the AS implementation that don't
    translate well to a more Python-like language design: e.g. its use of
    object-centric Smalltalk/Obj-C-style message passing instead of
    Python-style bound functions make callbacks a bit of a chore (you have
    to pass the entire script object around rather than just a function
    object/pointer), and its lexical/dynamic variable scoping is a bit of
    a disaster area (though that may simply be down to poor implementation
    than fundamental design limitation).

    What's important is just to note the extreme simplicity and total lack
    of "sophistication " in its script object system; it may be a little
    _too_ simple for an industrial-size language, but it's a heck of a lot
    easier to start with an overly simple but clean and coherent model and
    build upward than begin with something that's over-complex and muddled
    and try to clean it up. Good programmers know how to add features;
    great ones know how NOT to.

    Comment

    • has

      #17
      Re: What is good about Prothon?

      "Mark Hahn" <mark@prothon.o rg> wrote in message news:<hzwjc.608 7$Qy.2366@fed1r ead04>...
      [color=blue]
      > I've got Has on one side of me who says that having prototype references
      > instead of copies makes it too much like Python and therefore it isn't
      > prototype-based[/color]

      Not so. I've been saying it's not a proto-OO language because proto-OO
      behaves according to a single tier model where all objects are equal,
      whereas Prothon, like class-based OO languages, follows a two-tier
      model where some objects (classes/"prototypes ") are more equal than
      others ("object" objects).

      I may not know much about programming, but I've a pretty damn good eye
      on me and can well tell the difference between stuff that's genuinely
      simple and stuff that merely thinks it is. I know how high to set the
      bar and, unlike some "real" programmers who think "simplicity " is
      something you can get from slapping an extra abstraction layer on top
      of the current complexity, I'm not afraid to rip everything down and
      start right over again if something fails to reach it; and keep doing
      so till it does. (Something a fair few professionals have yet to
      learn, IMHO.)

      You've asked for input on Prothon and FWIW I've given it. And while
      it's no skin off my nose whether you want/need/like it or not, I'd
      rather you didn't make it sound like the above is the best argument I
      could muster as it's a little embarrassing. (Yeah, I realise that
      sifting the wheat of my posts from the plentiful chaff can take some
      work, but hey, nothing in life worth doing is easy...)

      Comment

      • Mark Hahn

        #18
        Re: What is good about Prothon?

        has wrote:[color=blue]
        > "Mark Hahn" <mark@prothon.o rg> wrote in message
        > news:<hzwjc.608 7$Qy.2366@fed1r ead04>...
        >[color=green]
        >> I've got Has on one side of me who says that having prototype
        >> references instead of copies makes it too much like Python and
        >> therefore it isn't prototype-based[/color]
        >
        > Not so. I've been saying it's not a proto-OO language because proto-OO
        > behaves according to a single tier model where all objects are equal,
        > whereas Prothon, like class-based OO languages, follows a two-tier
        > model where some objects (classes/"prototypes ") are more equal than
        > others ("object" objects).[/color]

        I apologize. I accidently stated what I once thought you were claiming. I
        do know now that you are claiming that it's not prototype based if it is
        two-tiered with templates and instances.

        My position (which is basicly in agreement with Lieberman's paper) is that
        having multiple tiers is inherent in all programming and is a natural result
        of factoring the problem of making many copies of the same thing.

        We will continue to agree to disagree. I have learned a lot in my arguing
        with you though and do appreciate the time you've spent wearing out your
        keyboard.

        You might be interested to know that the first benefits of classlesness are
        starting to appear in Prothon, however minor. A small example is that in my
        Pickle replacement (called Prosist) instead of having a Prototype called DB
        that you load with the Prosist module to instantiatate your db, you can use
        the module object itself as the prototype:

        # typical Python setup
        import Pickle
        db = Pickle.DB("file name.db")

        # Prothon
        import Prosist
        db = Prosist("filena me.db")

        I know it's tiny, but it's a beginning to show how things can be simpler
        when you don't have to have classes. Maybe you could show how your one-tier
        approach would make this even simpler?


        Comment

        • has

          #19
          Re: What is good about Prothon?

          "Mark Hahn" <mark@prothon.o rg> wrote in message news:<ZHXjc.172 25$Qy.13377@fed 1read04>...
          [color=blue]
          > My position (which is basicly in agreement with Lieberman's paper) is that
          > having multiple tiers is inherent in all programming and is a natural result
          > of factoring the problem of making many copies of the same thing.[/color]

          And my position is that:

          1. Anyone can find pieces of paper to prop up an existing position. It
          doesn't really prove anything. It's finding pieces of paper that
          actively contradict your position and being able to A. convincingly
          refute their arguments or, if that fails, B. acknowlege that they're
          right and you're wrong, and revise your position accordingly.

          2. There's a world of difference between the user imposing their own
          tiers upon an environment, and having the environment impose its
          choice of tiers upon them. Tiers can add convenience, which is what
          makes them tempting in the first place, but they also add
          restrictions. Adding tiers is easy; it's removing them that's hard.

          3. Factoring's supposed to add simplicity, not complexity. Programmers
          are far too tolerant - sometimes even welcoming - of the latter. An
          attitude I think goes a long way to explaining why so much software is
          so damned complicated: there's simply not enough lazy, intolerant,
          impatient folk in software development. (Note: being lazy, intolerant
          and impatient, as well as somewhat slow-witted, I shall no doubt be
          doing my bit to redress this in future.;)


          <SIDENOTE>
          For benefit of viewers who've just tuned in, here's a practical
          illustration of how Prothon freaks me out: let's say I want to create
          three objects; a, b and c. In AppleScript, I would do this:


          -- Create object 'a'
          script a
          property x : 1
          end script

          -- Create objects 'b' and 'c'
          copy a to b
          copy a to c

          log {a's x, b's x, c's x} --> {1, 1, 1}

          set b's x to 4
          log {a's x, b's x, c's x} --> {1, 4, 1}

          set a's x to 9
          log {a's x, b's x, c's x} --> {9, 4, 1}


          [note: AS's 'copy' command performs a deep copy; unlike Python's,
          which is shallow]

          Whereas Prothon does this:


          # Create object 'a'
          a = Object()
          a.x = 1

          # Create objects 'b' and 'c'
          b = a()
          c = a()

          print a.x, b.x, c.x # --> 1 1 1

          b.x = 4
          print a.x, b.x, c.x # --> 1 4 1

          a.x = 9
          print a.x, b.x, c.x # --> 9 4 9


          In AS, a, b, and c are all equivalent and independent; any changes
          made to one do not affect the others. It's a no-brainer to use, and
          quite safe. In Prothon, b and c derive state and behaviour from a
          unless/until it's modified locally (ie on b or c). Changes made to one
          may or may not show up in another depending on the derived
          relationship and subsequent changes*, and it's up to the user to keep
          track of all this - IMO a great way for all sorts of unpleasant,
          unwanted interaction bugs to crop up in non-trivial code unless you're
          very, very careful. (And hey, I've already got C pointer arithmetic
          any time I feel like living dangerously.;)

          (* In class-based OO you've also got the potential to do this kind of
          data sharing, but there the difference between sharers - i.e. classes
          - and sharees - i.e. instances - is explicit, so casual mix-ups are
          much less likely to happen.)

          </SIDENOTE>

          [color=blue]
          > We will continue to agree to disagree.[/color]

          Think I'll just continue to disagree, if it's all the same.

          [color=blue]
          > I have learned a lot in my arguing
          > with you though and do appreciate the time you've spent wearing out your
          > keyboard.[/color]

          Well I'm glad it wasn't completely wasted. And hey, who knows; you may
          always change your mind. (And I have some neat thoughts on how to set
          up a nice modules system if you ever tempt me back...;)

          Comment

          • Greg Ewing

            #20
            Re: What is good about Prothon?

            has wrote:[color=blue]
            > # Create object 'a'
            > a = Object()
            > a.x = 1
            >
            > # Create objects 'b' and 'c'
            > b = a()
            > c = a()[/color]

            You've mistranslated your example. The Prothon equivalent
            would be more like

            b = a.copy()
            c = a.copy()

            and then you have three independent objects, just as you
            want.

            The exactly equivalent thing can also be done in Python,
            for what its' worth.

            --
            Greg Ewing, Computer Science Dept,
            University of Canterbury,
            Christchurch, New Zealand


            Comment

            • Mark Hahn

              #21
              Re: What is good about Prothon?

              has wrote:
              [color=blue]
              > In AS, a, b, and c are all equivalent and independent; any changes
              > made to one do not affect the others. It's a no-brainer to use, and
              > quite safe. In Prothon, b and c derive state and behaviour from a
              > unless/until it's modified locally (ie on b or c). Changes made to one
              > may or may not show up in another depending on the derived
              > relationship and subsequent changes*,[/color]

              I told you before that we had a Self-like copy and asked you then if using
              that would make you happy. You never answered that question. Now you've
              posted an example that ignores the Prothon copy (yes, it is spelled exactly
              like the AS copy :)

              Will you only be happy with Prothon if I rip out everything that is not like
              AS or Self? Isn't having Prothon capable of doing everything AS and Self
              can do, in the same way they do it, good enough for you? I know for a fact
              that it can do everything they can do because there are months left in the
              design and if you just got rid of that chip on your shoulder and pitched in
              and helped, it could work well for people who want to use it like you do.

              You should be aware that we are discussing right now the possibility of
              putting the whole "class-mimicing" structure on an object that is a
              descendent of a pure Self-like root object. Lenard is doing a pretty good
              job of explaing to me why we sometimes need objects without the "class-like"
              methods __new__ and __init__. Here is his response to my question about
              that ("Object" is the "pure" object and "buildable" would have __new__ and
              __init__):

              ------ Beginning of Lenard Lindstrom's post ------
              [color=blue]
              > This is all very logical and I have no problem with it, but can you give[/color]
              me[color=blue]
              > a usage example of an object that would inherit directly from Object[/color]
              instead[color=blue]
              > of Buildable?[/color]

              I do not know about a specific usage example, but knowledge bases in
              artificial
              intelligence comes to mind as a general case:

              object ClydeLike(Objec t):
              $colour = "grey"
              $legcount = 4
              $mass = 2500

              object Clyde(ClydeLike ): # Lieberman got it wrong. I can explain in a
              separate posting.
              pass

              object Fred(ClydeLike) :
              $mass = 2400

              Probably anything whose attributes are initialized to contants, that is, no
              calculations
              are required. Then specific initial attribute values for an extension object
              are set
              with the object statement.

              If descriptors are implemented in Prothon then value checks and special
              computations
              can be done on a per attribute bases, removing one more need for an _init_
              function.
              The Buildable prototype would come into play for immutables and objects that
              convert
              several input values into a different internal representation at creation
              time.

              ---------- End of Lenard Lindstrom's post ------------

              Lenard even said "Lieberman got it wrong." See! If you come over and help
              out there are other like-minded people to work with you

              By the way, the above code samples are from current builds of Prothon. The
              object keyword was added recently.




              Comment

              • Mark Hahn

                #22
                Re: What is good about Prothon?

                has wrote:
                [color=blue]
                > Eh, I'll see what I can do. Here's a short example to get you started:[/color]

                This is plenty. I'm getting a good idea of what is going on here.
                [color=blue]
                > In AS, every compiled script is itself a script object. Scripts can be
                > loaded into other scripts using the 'load script' command; this
                > provides the foundation for library-based design.[/color]

                I see no difference from a Prothon module so far (which is good).
                [color=blue]
                > Script objects can
                > also be declared within other script objects and handlers (aka
                > procedures) using the 'script [identifier]...end script' block. This,
                > along with their support for delegation via the 'parent' property,
                > allows you to do prototype-based OOP.[/color]

                Oh, so the script is also the function. That is a bit limiting, not having
                functions within a script.
                [color=blue]
                > Incidentally, because script
                > objects have first-class syntactic support, they also support modular
                > design within a single file, sectioning off parts as separate
                > namespaces without having to move code off into separate files as
                > you'd do in Python;[/color]

                This I REALLY like. I'll put this on the list of ideas to "steal" for
                Prothon.
                [color=blue]
                > Thus a single, very generic type (script) can perform all the roles
                > that it takes Python several specialised and largely
                > non-interchangeable types (classobj, instance, module) to do.[/color]

                Prothon is the same. Using a module as a prototype is a trick that recently
                paid off. We have no structure or rules making one object unable to play
                the role of another. As we slowly unwind our brains from class-thinking
                (not an easy task) I expect the benefits to pour forth.
                [color=blue]
                > Other nice stuff: while AS allows only a single delegate per object,
                > the ability to compose object behaviour at runtime makes it much more
                > powerful than class-based single inheritance, and less of a PITA to
                > use than MI. Just create and delegate-chain together the objects you
                > want as and when you need them.[/color]

                You don't have to convince me that dynamic delegation is good.
                [color=blue]
                > [* Python shouldn't feel too smug, however, seeing as I had no better
                > luck trying to dynamically attach property objects to class instances,
                > and had to resort to sticking nodes into a private dict accessed via
                > __getattr__ and __setattr__.][/color]

                We'll make sure Prothon can feel smug in this regard.
                [color=blue]
                > Good programmers know how to add features;
                > great ones know how NOT to.[/color]

                I will be sure to remember that after Prothon is designed. Right now we are
                not adding features to Prothon, we are designing version 0.1. You have to
                add features when you start with zero features. Even you must admit a
                language with zero features is unintresting :)


                Comment

                • has

                  #23
                  Re: What is good about Prothon?

                  Greg Ewing <greg@cosc.cant erbury.ac.nz> wrote in message news:<c6sf29$fv hns$1@ID-169208.news.uni-berlin.de>...
                  [color=blue][color=green]
                  > > # Create objects 'b' and 'c'
                  > > b = a()
                  > > c = a()[/color]
                  >
                  > You've mistranslated your example.[/color]

                  Not at all. I was arguing these issues long before Prothon got its
                  copy() method. I'm aware of its recent addition, but it doesn't
                  really change anything: the canonical Prothon way to create new
                  objects is still b = a(), not b = a.copy().

                  [FWIW, at least Prothon's not as confusing as Io, whose misleadingly
                  named "clone()" doesn't in fact clone at all, but does the
                  make-new-empty-object-that-delegates-to-the-existing-one thing that
                  Prothon's __call__ does.]


                  Anyway, this leads me to my next question: how many ways should one
                  need to create new objects? I now count three in Prothon, which is
                  certainly one too many. And what's it going to do about it?

                  The art of great software design isn't adding features, it's getting
                  rid of them.

                  Comment

                  • has

                    #24
                    Re: What is good about Prothon?

                    "Mark Hahn" <mark@prothon.o rg> wrote in message news:<Awlkc.367 78$Qy.19874@fed 1read04>...[color=blue]
                    > has wrote:
                    >[color=green]
                    > > In Prothon, b and c derive state and behaviour from a
                    > > unless/until it's modified locally (ie on b or c). Changes made to one
                    > > may or may not show up in another depending on the derived
                    > > relationship and subsequent changes*,[/color]
                    >
                    > I told you before that we had a Self-like copy and asked you then if using
                    > that would make you happy. You never answered that question. Now you've
                    > posted an example that ignores the Prothon copy (yes, it is spelled exactly
                    > like the AS copy :)[/color]

                    See my other post for the reason why I did this (yes, it was quite
                    intentional).


                    But to answer your question directly: no, simply adding a copy()
                    operation (the "trying to please everybody, and ultimately pleasing
                    no-one" strategy) won't make me happy; I have no use for another C++.


                    You might think I'm merely being obtuse; trying to give you a bad day
                    just for jollies. But no; and perhaps a little digression will help
                    explain why...

                    Right now you should be sketching out lots of rough ideas quickly and
                    in the large, critiquing them, throwing some away, experimenting
                    further with others, critiquing the results of those tests, revising,
                    reviewing, refactoring those ideas, compacting and simplifying them,
                    stripping them down as hard as you can to see just how far you can
                    simplify them, reversing direction and changing tack; and not letting
                    yourself get blocked in to a single developmental rat-run where you
                    can only proceed forward on a single, predetermined path.

                    Or, in short, for every feature added: 1. justify its addition; and 2.
                    find at least one other feature - preferably more - that can't
                    adequately justify theirs and strip them right back out again.

                    This is another lesson I learnt in art school, btw: when working in
                    clay, one should always build up. Add a bit of clay, step back,
                    analyse the result. If you add too much or put it in the wrong place,
                    don't try to carve it flat or smear it into position; instead, cut the
                    whole lot right back 'to the bone' and start building it up again.

                    For me, who learnt this lesson very quickly, it was rather depressing
                    watching the rest of the class, who didn't, plod away day after day,
                    fighting a losing battle for hours on end with a material they just
                    couldn't seem to understand as it turned into a buttery caricature
                    instead of a portrait head.

                    Meantime, I'm scooting around the room like a madman, never standing
                    more than a minute or two in front of my piece before stepping back,
                    or walking away, or going to get drinks from the vending machine. And
                    each morning I came in, I'd take a long look with fresh eyes at where
                    I'd got to the previous day, and if I didn't like it, out came the big
                    knife as I'd chop great gobs off and throw them back in the clay bin.

                    I think by the end of that class I'd produced two pretty decent busts,
                    and had already made a start on the third. The better of the two I
                    completed within three afternoons too, with the bulk of it done in two
                    and the third spend mostly idling around and occasionally diving in to
                    tweak a feature here or there.


                    Now, wood and stone carving I suck at. You get one chance to get it
                    right, and if you screw up just once you have to start all over again.
                    Such fear of failure made me nervous and timid - which, considering
                    the price of each fresh bit of stone, maybe wasn't entirely
                    unsurprising - and the results were insipid and flat and utterly,
                    utterly boring.

                    But clay I love. It rewards excitement and adventure, and encourages
                    risk-taking and experimentation ; the more bold and daring you are, the
                    more it becomes alive. If you screw up along the way there's no
                    permanent loss, and the valuable lessons you gain from doing so _far_
                    outweigh the cost of any time spent. So you work fast and loose, try
                    lots of different ideas quickly to see where they might go, screw up
                    often and learn as much by your mistakes as your successes.


                    Code is like clay. It's so frustrating for me to see programmers treat
                    it like stone. If you were in my art class I'd hand you a pile of
                    newsprint and box of charcoal and have you do 30-second sketches for
                    an hour. Then another hour doing five-minute drawings. And I can
                    guarantee the if I then set you to do a finished drawing in the
                    remaining hour the final result would be far, far better than if I'd
                    given you a whole day - or even week - to work on it.

                    --

                    I'll see if I can get around to answering some of your other questions
                    later. Meantime, I hope you can find a little time to spend pondering
                    the above. Who knows, maybe even put what implementation you've done
                    aside for a bit, and go stroll round the room for a while... maybe
                    catch some fresh perspective - even surprise yourself. :)


                    (p.s. My new favourite phrase for the week: "Premature implementation
                    is the root of all evil." Hope nobody minds!;-)

                    Comment

                    • Mark Hahn

                      #25
                      Re: What is good about Prothon?

                      has wrote:
                      [color=blue]
                      > But to answer your question directly: no, simply adding a copy()
                      > operation (the "trying to please everybody, and ultimately pleasing
                      > no-one" strategy) won't make me happy; I have no use for another C++.[/color]

                      You have a very warped mind. To say that having Python two-tier object
                      construction and Self-like constructs in the same language is C++ is
                      ludicrous.

                      You have finally answered a question I have asked several times. Having
                      anything but AS or Self in the language will keep you from being happy. Now
                      that I know where you stand I can quit wasting my time trying to get you to
                      help out.

                      You keep pitching that you are such a creative artist, but if you were you'd
                      be helping find a way to solve the conundrum of merging the Python and Self
                      worlds and making positive contributions instead of just throwing stones.


                      Comment

                      • Donn Cave

                        #26
                        Re: What is good about Prothon?

                        In article <CYwkc.44066$Qy .9803@fed1read0 4>,
                        "Mark Hahn" <mark@prothon.o rg> wrote:[color=blue]
                        > has wrote:
                        >[color=green]
                        > > But to answer your question directly: no, simply adding a copy()
                        > > operation (the "trying to please everybody, and ultimately pleasing
                        > > no-one" strategy) won't make me happy; I have no use for another C++.[/color]
                        >
                        > You have a very warped mind. To say that having Python two-tier object
                        > construction and Self-like constructs in the same language is C++ is
                        > ludicrous.[/color]

                        He's saying `language that tries to please everybody [by adding
                        features like copy instead of doing it right in the first place] == C++'
                        He could have a point. (Is there going to be an optional __copy__
                        method?)
                        [color=blue]
                        > You have finally answered a question I have asked several times. Having
                        > anything but AS or Self in the language will keep you from being happy. Now
                        > that I know where you stand I can quit wasting my time trying to get you to
                        > help out.
                        >
                        > You keep pitching that you are such a creative artist, but if you were you'd
                        > be helping find a way to solve the conundrum of merging the Python and Self
                        > worlds and making positive contributions instead of just throwing stones.[/color]

                        He probably thought they were pearls of wisdom. Guess you don't
                        want any more, anyway.

                        Donn Cave, donn@u.washingt on.edu

                        Comment

                        • Mark Hahn

                          #27
                          Re: What is good about Prothon?

                          Donn Cave wrote:
                          [color=blue]
                          > He's saying `language that tries to please everybody [by adding
                          > features like copy instead of doing it right in the first place] ==
                          > C++' He could have a point. (Is there going to be an optional
                          > __copy__ method?)[/color]

                          Yes, there already is a copy method. It solves the problem he posted of AS
                          versus Prothon. Adding copy is apparently turning Prothon into C++. I've
                          never thought of something as simple as copy as being an evil thing. (The
                          funny thing is I added copy as part of porting Python's methods. It has
                          nothing to do with Self or AS, but it happens to match his needs).
                          [color=blue]
                          > He probably thought they were pearls of wisdom.[/color]

                          He and I have been going in circles for weeks. I keep trying to get him to
                          identify what would really make him happy in Prothon and apparently having
                          anything that resembles the two-tiers of object creation of Python is an
                          anathema to him and has to be removed. If it stays and there is anything
                          else in there that he'd like then it would be C++.
                          [color=blue]
                          > Guess you don't want any more, anyway.[/color]

                          Depends on what you mean by pearls of wisdom. I've been getting a lot of
                          great ideas from both Prothon and Python mailing lists. I've been spending
                          a lot of time arguing with Has (we started on the Prothon lists) because he
                          has knowledge of AS and Self and would love to have him contribute. So far
                          he will only tell me that Prothon sucks because of the two tiers and his
                          only recommendation is to treat my code like clay and tear it down and start
                          over.


                          Comment

                          • has

                            #28
                            Re: What is good about Prothon?

                            "Mark Hahn" <mark@prothon.o rg> wrote in message news:<cSBkc.447 39$Qy.16585@fed 1read04>...[color=blue]
                            > Donn Cave wrote:
                            >[color=green]
                            > > He's saying `language that tries to please everybody [by adding
                            > > features like copy instead of doing it right in the first place] ==
                            > > C++' He could have a point. (Is there going to be an optional
                            > > __copy__ method?)[/color]
                            >
                            > Yes, there already is a copy method. It solves the problem he posted of AS
                            > versus Prothon.[/color]

                            One: No, it does not. But it does prove _just how little_ of what I've
                            said you have actually understood.

                            Two: BTW, learn to differentiate between "ludicrous" and "hyperbole" .
                            They are _not_ the same.

                            Three: You I was just giving you a hard time for the sake of it? I
                            wasn't; you asked for criticism, and I gave it. It just wasn't the
                            criticism you wanted. You want to hear what I say when asked to
                            critique something I think is a piece of piss but simply don't care
                            about enough to say? "Yes, that looks very nice/interesting. I'll be
                            very curious/interested to see how where it goes."

                            Four: You think it's just you? Obviously you've never seen me chewing
                            AppleScript a new one; it's such a fundamentally flawed language that
                            I'm now actually working actively against it. (MacPython-to-AEM
                            bridge, more hours spent critiquing and reading and learning than I
                            can shake a stick in, mystery language project in development; hey,
                            you do the math.)

                            Five: You think I don't give my own work this treatment? Obviously you
                            have never seen me spend weeks or months working at something, only to
                            throw it out the moment I've uncovered a flaw too deep or uneconomic
                            to fix, or simply discover a new and much simpler way to solve the
                            same problem, and take all that blood-sweat-and-tears effort and
                            postmortem then shitcan the lot of it without a second thought. So if
                            your only reaction to hard criticism is to run away or barricade your
                            mind to it, if you're not willing to make such sacrifices in the name
                            of the greater good, if you're not willing to at least entertain the
                            possibility that You Might Be Wrong Too; then I'm sorry to say but you
                            really have chosen the wrong line of work to get into, and I can find
                            much better things to devote all my attention to.

                            Six: As for what will make me happy? That I never again hear that
                            bloody Lieberman name used to deflect every criticism I offer. Because
                            that is so intellectually lazy of you it's actually insulting mine. I
                            have provided you with plenty of answers throughout; you simply choose
                            not to notice or accept them. And that is something I absolutely
                            _cannot_ help you on.


                            Therefore, I am finally willing to state: "Prothon looks very
                            nice/interesting. I'll be very curious/interested to see how where it
                            goes." May you find some fulfillment in that.

                            has

                            Comment

                            • has

                              #29
                              Re: What is good about Prothon?

                              Donn Cave <donn@u.washing ton.edu> wrote in message news:<donn-F264BC.12385330 042004@nntp1.u. washington.edu> ...
                              [color=blue]
                              > He probably thought they were pearls of wisdom. Guess you don't
                              > want any more, anyway.[/color]

                              Yeah, well I'd personally be the first to acknowledge that every other
                              "pearl" I throw is more commonly a lump of shit. So I actually
                              appreciate it when folk take a sniff and tell me it's a turd. It's
                              when they blat every single toss straight into the rough then promptly
                              ask for another one that I eventually get a bit peeved.

                              To be honest, however, I've got nobody to blame but myself for this
                              particular outbreak. I unsubscribed from the prothon mailing list
                              because I'd already recognised I wasn't getting anywhere and my
                              continued presence would only waste my own time and energy and
                              everybody else's. And I should _really_ have known better than to get
                              re-involved over here. So I apologise to the rest of the
                              comp.lang.pytho n group - as friendly and civilised an online group as
                              I've ever been in - for any disturbance caused, and now return you to
                              your regular program. Let Mark have the last word; just for surviving
                              me this far I think he deserves it. ;)

                              Mr Intensity

                              Comment

                              Working...