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."

23 of 630 comments (clear)

  1. Here we go.... by Anonymous Coward · · Score: 4, Interesting

    with the "witty" names again. Anyway, can someone explain to me how eliminating classes is better? I thought that implementing classes, the OOP approach, was the better way to go.

    They don't really explain why their way is better. They just state it as though it was a matter of fact.

    Make your vote count

    1. Re:Here we go.... by orangenormal · · Score: 5, Interesting

      Prototype languages still hold many of the OO concepts, but objects are created directly. That is, a "blueprint" approach (i.e., the class) is not used in the creation of objects. Inheritance still works by cloning and modifying existing objects. Although this makes sense in some ways (ideas like the Singleton pattern fit more nicely in this paradigm), in reality prototype languages gain features that make them more and more class-like. I'm not a big fan, personally.

  2. Bondage by spellraiser · · Score: 5, Interesting

    This is taken from the Prothon Description

    Like Python, Prothon uses indentation to control the block structure of the program instead of block/end or {}. However, Prothon only allows tabs for indentation. Any space in an indent will cause an error.

    Classic bondage-and-discipline. Why oh why is this so ??

    --
    I hear there's rumors on the Slashdots
  3. Why is there only one database access language? by Anonymous Coward · · Score: 5, Interesting

    There are sooo many general programming languages but only one database access languages: SQL? SQL is so old, it hurts. It's basically COBOL.

    Ok, there is one additional database access language I know of: NewSQL (http://newsql.sf.net).

    But it seems nobody is really interested in database access. And everybody is interested in all kinds of general programming language. Why is that?

    1. Re:Why is there only one database access language? by Mr.+Slippery · · Score: 5, Interesting
      There are sooo many general programming languages but only one database access languages: SQL? SQL is so old, it hurts

      Arabic numbers are old too, but I don't see anyone proposing to change them.

      SQL is an English-like representation of relational calculus. Relational calculus has not, and is not going to, change significantly. When the problem is solved well, there's no need to change the solution.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    2. Re:Why is there only one database access language? by Tablizer · · Score: 2, Interesting

      There are sooo many general programming languages but only one database access languages: SQL? SQL is so old, it hurts. It's basically COBOL.

      This sounds like something I would say. I assume you mean that more research or alternatives to SQL as far as relational languages would be nice.

      I agree. The two other candidates I have seen promoted or mentioned fairly often are Tutorial-D, by Chris Date's group, and Business System 12 (BS-12), an early contender by IBM that kind of got ignored because IBM wanted something more "English-like", in other words COBOL-like, and thus settled on SQL.

      I have also been working on my own pet relational language that somewhat resembles BS-12 in that it is functional in nature, but has simpler parameter "types" (scalars, expressions, and tables) so that you always know what the parameters are instead of invent funny syntax like some other query languages do.

      There are also some OO query languages, but I don't think very highly of OO. OO databases resemble the abandoned 1960's "navigational" databases. They were abandoned for good reason IMO. Nobody seem to miss their philosophy until OO proponents tried to revive it. Relational uses constraints (conditions) to find information, while navigational uses links, pointers, and paths. The relatonal philosophy is to ask for what you want rather than have to know how to get to it (navigate). Classes/objects pointing to other classes/objects is very close to the "navies".

      Fascinating topic either way.

    3. Re:Why is there only one database access language? by jon3k · · Score: 2, Interesting

      Well, I don't think relational logic has changed much in the last 400 years or so, and apparently no one has come up with a better way to express those relationships, either.

      I can't say whether or not this has been explored extensively (enough) - I don't know if anyone can.

    4. Re:Why is there only one database access language? by MenTaLguY · · Score: 2, Interesting

      I wish the grandparent poster would bother posting something more informative than simple assertions.

      In the strictest sense, he is correct. SQL is based on relational calculus, but manages to mangle it pretty badly.

      Suffice to say that employing many relational concepts in SQL is not really possible, and SQL makes the remainder a lot more complicated than they need to be.

      this thread manages to cover the bases, I think...

      --

      DNA just wants to be free...
  4. even better by swagr · · Score: 5, Interesting
    --

    -... --- .-. . -.. ..--..
  5. Self, Python, and Java by jfengel · · Score: 5, Interesting

    Yeah, it's a lot like Self, mixed with Python syntax. Self had a lot of interesting ideas. It never really got out of the starting blocks, but some of its most important ideas in dynamic compilation went on to be included in the Java hotspot compiler.

    Personally, I prefer a bit more bondage-and-discipline in my languages. That's because I like having the compiler tell me what I'm doing wrong as much as possible. It's a side effect of the environments in which I tend to work, with multiple people working on the same code. Strong typing is an important contract in such an environment. But it has a lot of downsides, as every perl and python programmer knows.

    Oh, and dude, if you're going to submit your own damn web site to Slashdot, try getting a sturdier web server first.

  6. Re:p fixation? by Anonymous Coward · · Score: 2, Interesting

    What's with all these languages that start with 'a'? Ada, APL, Awk, not to mention good old ALGOL, and now AsmL.

    What's with all these languages that start with 'b'? BASIC, BCPL, Brainfuck...

    c: C, C++, C#, caml, COBOL
    d: DELPHI, Dylan,
    e: ERLANG, Eiffel, E
    f: Fortran, Forth, FP

    etc, etc.

  7. Re:Pre Alpha Release? by Anonymous Coward · · Score: 2, Interesting
    Perl wasn't broken when Python was made, right?

    You must be joking! Perl has always been broken. They may change the implementation as much as they want, but as long the syntax stays like it is I (along with many others) will consider it broken.
  8. Object oriented, now prototypes by A55M0NKEY · · Score: 2, Interesting
    All these buzzwords merely refer to ways of factoring code to make it easy to read/understand so that it can be maintained. It seems that someone creates a programming language to support one of these paradigms(vomits) and then, when they finally get irritated with how the helpful language features seem to restrict them from implementing their idea, they come up with another idea and a language with helpful support for it.

    And every time they come up with a new way to factor code it is pointed out that Scheme already supports that methodology without any language changes.

    Sure it may be possible to create a language that supports *A* paradigm in an easier-to-learn/easier-to-read way than Scheme, but so far there is none that supports every paradigm and every paradigm that is yet to be thought of like Scheme. People need to give up their lame static typing and just use Scheme. Imagine the time saved not having to learn 900 different languages for 900 different styles of programming when you could just learn Scheme.

    --

    Eat at Joe's.

  9. There is also Slate. by marcello_dl · · Score: 3, Interesting


    From Slate website:
    Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk. Slate syntax is intended to be as familiar as possible to a Smalltalker...

    It also features optional type declaration. The compiler is currently based on Common Lisp.

    --
    ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  10. Okay, count me confused by Anonymous Coward · · Score: 2, Interesting

    ...because Python ALREADY has a proto-style object model in its underlying semantics. What's new that Prothon is adding.

    A proto model doesn't distinguish between classes and instances. Everything is an object. Inheritance is done by an object pointing to another object as its "prototype". Basically that means "if you can't find what you're looking for here, go look there". Proto model advantages: much cleaner than class models, much more dynamic, and MUCH more space compact. The most famous two proto languages are Javascript and NewtonScript. NewtonScript in particular is an elegant language that compiles to *very* small memory footprints. The disadvantage: since you have to wander up the proto chain to find what you're looking for, proto languages are slow. The other disadvantage: no strong typing.

    Python's bizarre. The underlying model is a proto model. But on top of it, Python hacked a class-based model with pseudo-"instances" (not really, just leaves in the proto tree). As a result, Python doesn't have the clean model design of a proto model, and it doesn't have the speed or typing of a class model. Python's model is quite literally the worst of both worlds.

    I dunno who designed Python's model (okay, I know who :) but it sure wasn't a language theorist, that's for sure! Yuck.

  11. Re:p fixation? by tverbeek · · Score: 2, Interesting
    What's with all these languages that start with 'p'? perl, python, php, not to mention good old pascal, and now prothon. Is there a joke here that I'm missing?

    Don't forget Pike, Postscript, Prolog, POP11, Prograph, Proteus, Pliant, PL/I, and (the one that started it all) Plankalkuel.

    It's probably just the law of averages in action. There are only 26 (or so, depending on the human language) letters to start with, and many hundreds of programming languages out there. But I would be a little suspicious of any new web-scriting language that starts with P, wondering if they chose the name to get in on the LAMP acronym (where P stands for one of the popular open scripting langauges).

    --
    http://alternatives.rzero.com/
  12. Re:It gives me a great idea though! by hubie · · Score: 2, Interesting
    FORTRAN does not require integers to begin with I-N. That is the variable type the compiler assumes if the variable is not explicitly defined.

    You can easily get around it with "IMPLICIT NONE," though that might be a DEC extension. I worked so long on a VAX that I can't tell you what is a DEC extension anymore without looking it up.

  13. Re:Tabs, no classes by maxwell+demon · · Score: 3, Interesting
    In no natural language does the case of a character convey information that cannot be gained from context.


    German:
    "Mein Sohn soll Forscher werden." = "My son shall become a researcher."
    "Mein Sohn soll forscher werden." = "My son shall become more snappy."
    --
    The Tao of math: The numbers you can count are not the real numbers.
  14. Yet another interpreted language? by austus · · Score: 1, Interesting

    I was excited until I realized it was yet another interpreted programming language. If I could only have a machine code compiled programming language like c/c++ with Python's clean syntax. Now that would rock.

    Anyways, the guy is recreating the wheel. One can live quite nicely without using the "brain aching" elements of Python without sacrificing too much.

  15. Re:How can they... by tsvk · · Score: 2, Interesting

    Without having looked at the project pages, I'd guess that the features of the language (syntax, etc.) make it industrial-strength, but this particular first implementation of the language (compiler, libraries, etc.) is only at the pre-alpha stage.

  16. Re:Pity about the name by Anonymous Coward · · Score: 1, Interesting

    How about the new aspect-oriented front end for databases? We could call it . . . wait for it . . . MyAss!

  17. check out Lua: prototype-based, mature, popular by hak1du · · Score: 3, Interesting

    If you want a nice, clean, prototype-based OO scripting language, check out Lua. Its implementation is mature, it is widely used (a favorite among game developers), and it compiles into compact executables. It also has one of the fastest scripting language interpreters around (short of a JIT). And there are excellent tools for binding C and C++ code to it.

  18. Prototyped Python by JoeNotCharles · · Score: 2, Interesting

    Just a couple of days ago I found out about a cool metaclass hack to turn Python (the regular Python with the regular interpreter) into a metaclass based language. I posted about it on my Advogato journal. I mention this because I think it's pretty cool, and because I think people should see the alternative before thinking Phython is the only way to do this. That's not to say the new language isn't also a good choice.