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."
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
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
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?
http://www.iolanguage.com/
-... ---
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.
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.
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.
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.
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
...because Python ALREADY has a proto-style object model in its underlying semantics. What's new that Prothon is adding.
:) but it sure wasn't a language theorist, that's for sure! Yuck.
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
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/
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.
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.
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.
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.
How about the new aspect-oriented front end for databases? We could call it . . . wait for it . . . MyAss!
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.
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.