Slashdot Mirror


Prothon - A New Prototype-based Language

Ben Collins writes "Prothon is a new industrial-strength, interpreted, prototype-based, object-oriented language that gets rid of classes altogether in the way that the Self language does. It uses the sensible, practical syntax and add-on C module scheme from Python. This major prototype improvement over Python plus many other general improvements make for a clean new revolutionary breakthrough in language development. Prothon is simple to use and yet offers the combined power of Python and Self. Check out the first public pre-alpha release at prothon.org."

5 of 630 comments (clear)

  1. Re:Bondage by Just+Some+Guy · · Score: 4, Informative
    I can think of two good reasons:
    1. If you're using indentation for structure, then it's horribly confusing to allow both tabs and spaces. How many spaces is a tab worth? You could add a "tabsize=" variable to the core language, but you have to be able to parse a file before you can start evaluating it, so that would necessarily have to be an ugly hack.
    2. An (old) Python topic-of-heated-discussion was the relative merit of tabs vs. spaces. Setting one as the standard avoids the whole issue and lets everyone get back to work.
    My only gripe is that out of the two choices, they picked the wrong one <ducks>.
    --
    Dewey, what part of this looks like authorities should be involved?
  2. Like school in the summer time by Sloppy · · Score: 4, Informative

    Found a little example code inside the tarball, that shows what they mean by no classes:

    Emp_proto = Object()

    with Emp_proto: .name = ""

    def .__init__(name): .name = name .hello()
    return .

    def .hello():
    print "My name is:", .name

    Emp_proto.hello()
    emp = Emp_proto("Jim")
    emp.hello()

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  3. Re:YANISL: Just What We Needed by Hater's+Leaving,+The · · Score: 4, Informative

    Not improved - just as bad:

    "Like Python, Prothon uses indentation ..."

    Oh joy.

    THL.

    --
    Keeping /. cynic density high since the fscking Kwhores/trolls arrived.
  4. A plea to all up-and-coming language designers by alispguru · · Score: 4, Informative
    Before you go off and try to code up the Next Big Thing, please do all of us a favor and learn a little bit about Lisp.

    Don't learn about it from your officemate, or your college instructor, especially if they say they haven't used it in over ten years. You wouldn't believe the opinions of someone who learned C from K&R without upgrading their knowledge, would you?

    Instead, start from places like the ALU web site or Cliki or Paul Graham's Lisp FAQ.

    If you do this right, you will learn that computer languages:

    are not inherently fast or slow - implementations are fast or slow, not languages

    can be both dynamic and have good performance

    can be cross-platform without swallowing POSIX whole

    can have multiple inheritance without damaging your brain

    can be object-oriented without being object-obsessed

    If you like, you can quit as soon as you understand how static scoping and closures work - at least that way you will avoid the primary mistake in pretty much every recent scripting language.

    There is a small risk you will become a SmugLispWeenie by doing this, so be forwarned.

    --

    To a Lisp hacker, XML is S-expressions in drag.
  5. There's another name for Prothon: Python by Lulu+of+the+Lotus-Ea · · Score: 4, Informative

    We already have perfectly good prototype-based programming in Python. Do a search for "metaclass programming in python" for links to my articles on this topic. You can do -everything- with Python metaclasses (which isn't to say you -should-).

    But actually, prototype programming is even simpler:

    new = old.__class__(init, args, here)

    Just what 'old' is is determined at runtime. And if you like, you can poke around at 'obj.__bases__' to futz with inheritence.

    Not having read my _Charming Python_ articles isn't really a sufficient reason to create a new programming language.