The Slate Programming Language 244
An anonymous reader writes "I know that we have had an influx of new programming languages of late, but I feel that this one merits special attention. Theoretical computer scientists and long-time Squeak and LISP contributors Brian Rice and Lee Salzman have been rapidly developing a language called Slate. It draws on the various strengths of the Self, Smalltalk, and LISP languages. To quote from the 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, rather than engaging in divergent experiments in that respect.' The beta release is currently being written in Common LISP."
Deja vu (Score:5, Interesting)
Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk.
From a recent [slashdot.org] post:
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.
Does this point to a trend in language design?
Re:Too obscure (Score:3, Interesting)
Re:Too obscure (Score:4, Interesting)
April fools..I hope (Score:4, Interesting)
3 + 4 * 5 " ==> 35 (not 23) "
and
(3 / 4) == ( 3 / 4) "==> false"
give pause for concern.
But the example code snippet for the curious @ dispatch operator uncommented and unexplained takes the cake:
"
oc@(OrderedCollection traits) copyFrom: start to: end
[| newOC |
end start ifTrue: [^ oc newEmpty].
newOC: (oc traits newSize: end + 1 - start).
start to: end do: [|
newOC
].
"
How could someone argue with a straight face that this gobblygook is progress in programming languages?
Re:Ah, great, Smalltalk (Score:2, Interesting)
ain't nothin' wrong with prototype OO (Score:4, Interesting)
One of the reasons I like prototype OO (specifically, delegation-based prototype OO, as opposed to languages that use embedding), is that a lot of _other_ dynamic language models fit well on top of it. For example, it would be very simple to make a Python -> Self compiler, because constructs that self exposes can be used directly to implement more specific class-oriented pythonic constructs. It leads me to beleive that a prototype-oo oriented base-vm can serve as a good abstract platform environment for several dynamic 'scripting' languages.
I'm not sure about the multiple dispatch though. I think multi-dispatch can be confusing.. especially in languages like these where the notion of runtime types is muddled quite a bit of the time.
-Laxitive
A better smalltalk-like language (Score:5, Interesting)
This new Slate language looks just like Smalltalk only with new features that nobody actually wants, such as prototypes instead of classes. AFAICT, it hasn't improved on any of the above problems and has actually made some of them worse. IOW, it's doomed.
Scallscript is a start. It's definitely the best of the breed. Personally, I think the greatest barrier to acceptance of Slate / Smalltalk / Smallscript / Squeak / Whatever is the language syntax. Programmers just don't yoda talking like, and a slightly-off Germanic style of grammar just doesn't fit well with an activity like programming that is more mathematical and logical than like communication.
Re:Pretty Cool (Score:3, Interesting)
Re:Ah, great, Smalltalk (Score:2, Interesting)
Later a graphics class was done almost entirely using Smalltalk (by a visiting professor) and people from previous years were amazed at everything we got done. Never had a chance to program in it professionally, but many good memories of it. Have never had a slightest sense of elitism etc from those using it either.
Re:Prototyping OO is not a great paradigm (Score:2, Interesting)
Re:prototype based languages (Score:4, Interesting)
Being a Lisp programmer, I'm always looking for new ideas to bring into my Lisp programs. It looks like Lisp-- possibly even CLOS-- could support prototype-based programming without extensive pain.
One thing that I'm wondering about in prototype-based OOP is redefining stuff. In Smalltalk and CLOS (I don't know Self), you can redefine methods over classes on the fly, or change member variable definitions, or whatever. I take advantage of this to have a production server running for months while I make improvements.
But in a prototype language, this looks, well, difficult. If your methods are associated with prototype objects, then if you have existing non-prototype objects and change a method, then would the non-prototype objects get the method def passed down, or what?
It seems like a prototype language would also have problems with multiple inheritance and multiple dispatch, but it looks like they've licked those too. Interesting.
Re:Dylan was hardly successful (Score:2, Interesting)
But Smalltalk couldn't rival Java in terms of marketing, and applets were supposedly the next big thing. If only ParkPlace had come up with a Smalltalk equivalent to applets...
Re:Pretty Cool (Score:3, Interesting)
It did a great job at bringing all the power of Lisp with all the symplicity of HTML. All the equivalents of HTML elements were just lisp-like function calls. Something like
Since all markup was just a lisp-like function call like any other, extending the company to do more complicated things - like extending the HMTL-like-markup to do real time raytracing in the browser [curl.com] was really easy.
Unfortunatelly the company suffers from bizzare licensing policies and can't figure out if they're selling a language or products built on the language.
Re:Dylan was hardly successful (Score:4, Interesting)