Magpie is looking awesome!

52 views
Skip to first unread message

Mark Janssen

unread,
Jun 3, 2014, 3:45:51 PM6/3/14
to magpi...@googlegroups.com
Hey, I just stumbled upon magpie after looking at your work on vigil!  Clearly you are on the OneTruePath.

The major stumbling block that you have managed to avoid (consciously or not) is that you have not conflated the rampant confusion within OOP wrt inheritance.  By throwing a ParentCollisionError you establish a direction of responsibility.  Most everyone else, like Python, has been confusing the issue.  C++ avoids it because it never tried to make "everything an object", and LISP never had the confusion because it keeps track of the everything through nested lists.

I would love to see you dovetail this work with vigil and make a true Python3k (which I mentioned to your vigil issues list).  At some point, I hope the Python community will come along because 1) they know that there's an issue with Python 3.0, and 2) they eventually have to grapple with the issue latent between bytes and strings (which I tried uselessly to inform) which has to do with their implicit Object Model/Architecture.

Anyway, will be reading more.  I recommend that you read about an effort by Mark Hahn called "Python with prototypes" or Prothon from 2004 because it looks that work would integrate nicely with magpie.

Cheers!

Mark Janssen
Gothenburg, Nebraska

Bob Nystrom

unread,
Jun 9, 2014, 1:03:14 AM6/9/14
to magpi...@googlegroups.com
On Tue, Jun 3, 2014 at 12:45 PM, Mark Janssen <dreamin...@gmail.com> wrote:
Hey, I just stumbled upon magpie after looking at your work on vigil!

I don't know if I would call Vigil "work", and much as I would call it "a pile of regexes I threw together one night as a joke", but thanks all the same. :)
 
The major stumbling block that you have managed to avoid (consciously or not) is that you have not conflated the rampant confusion within OOP wrt inheritance.  By throwing a ParentCollisionError you establish a direction of responsibility.  Most everyone else, like Python, has been confusing the issue.  C++ avoids it because it never tried to make "everything an object", and LISP never had the confusion because it keeps track of the everything through nested lists.

Well, I don't know if I have or not. It is definitely true that Magpie does not require all classes to ultimately inherit from Object (in fact, there is no Object class in Magpie). I don't think you need necessarily need a superclass that all classes inherit from.

However, that is different from whether or not you have a top type in the static type sense. If Magpie had a static type system, I think it would still have something along the lines of a top type. Though, to be honest, every time I try to read the literature around static typing multiple dispatch, I get confused.
 
Anyway, will be reading more.  I recommend that you read about an effort by Mark Hahn called "Python with prototypes" or Prothon from 2004 because it looks that work would integrate nicely with magpie.

For what it's worth, I'm actually not a big fan of prototypes anymore. I still think they're interesting, but I don't find they work well in practice. I don't think classes are perfect in any sort of pure sense, but they seem to fit human minds pretty well. I tend to look at programming languages as things that primates use to grunt at each other more effectively to make computers do stuff.

I haven't worked on Magpie in a while (unfortunately, because I still really like it). Lately, when I haven't been working on my book, I've been toying with a much simpler little language and interpreter: https://github.com/munificent/wren

Cheers!

- bob
 

Cheers!

Mark Janssen
Gothenburg, Nebraska

--
You received this message because you are subscribed to the Google Groups "Magpie" group.
To unsubscribe from this group and stop receiving emails from it, send an email to magpie-lang...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages