5 ms·
The Slate Programming Language
- vertex-four 12y agoUnfortunately, this seems to be no longer developed - last github commit is from a year ago. It might've been interesting to see another language with the image system. I've been playing with Smalltalk recently, and it's really interesting as an environment. It has a number of RAD tools built in - the flexible Morphic GUI from which you can quickly create your interface and middle-click to debug any given morph, the image system allowing you to store state without explicitly dealing with a database, and being able to develop from the same environment that your code runs in, allowing quick turn-around in adding and testing features - and I'm wondering why it's not used more often for line-of-business applications.
- ozten 12y agoSlate development goes back many years. Perhaps sometimes you've got to let the field lay fallow for a season, before that next big burst of inspiration.
- cmrdporcupine 12y agoHad no idea this project was still active. Used to have some correspondence with an author (Lee Salzman) of the prototype oo multiple dispatch paper many years ago (over 10 now I guess), and had written my own implementation of it for a toy language of my own. Good to see this still ticking. Though these days I'm more interested in static typed languages, this is still very cool.
- briantrice 12y agoI wish Lee were still around. I miss working with him and appreciate him putting up with me.
- kenferry 12y agoLooks like he's still active. https://github.com/lsalzman?tab=activity https://github.com/lsalzman?tab=activity
- briantrice 12y agoDamn, that's new to me. He resisted joining github until recently, it seems...
- briantrice 12y agoSee also Atomo: http://vito.github.io/atomo/ http://vito.github.io/atomo/ And Atomy: http://vito.github.io/atomy/ http://vito.github.io/atomy/ Both of these, I feel, are interesting small offshoots that explore more in a pattern-matching metaprogrammable grammar direction, although they never became large visions or systems.
- doublec 12y agoSelf is also an interesting language in the Smalltalk tradition. I did a short screencast of the GUI here http://bluishcoder.co.nz/2014/12/17/changing-attributes-in-self-objects.html http://bluishcoder.co.nz/2014/12/17/changing-attributes-in-s... There are others in the 'self' tag of the blog. A modern look at this type of environment, which Slate seems to be progress towards, would be interesting.
- briantrice 12y agoI actually had a big vision to merge Morphic into the CLIM/DUIM tradition from Lisp and Dylan. I was very inspired by Lisp Machines, and still own one to run an emulation for for demonstrations. Morphic alone was not good enough to build the future out of. First-class information objects called presentations from the CLIM history would have complemented it nicely.
- marktangotango 12y ago>>not good enough to build the future out of I think i hear this idea from the smalltalk community (or former community members) than anywhere else. The sense that there is supposed to be something out there thats an order of magnitude better than what we have today. Where does that come from? Whats so great about "the future" ie what promise does it hold?
- briantrice 12y agoUI research and development stopped dead in its tracks in the early 90s, and most people who've developed UIs now effectively think a whole class of problems are not solvable or even worth thinking about. XCode's Interface Builder is an Objective-C knockoff of a Lisp tool from the 80's which needed a lot of work even back then and never received it. We're talking about two decades of extremely limited conceptual progress on interaction. The only GUIs that are run over network streams are HTML/JS/CSS, and those took about fifteen years to turn into fully standalone clients, and not terribly reliable or secure ones at that. We still don't have a continuation concept (workflows that can be set aside like data items and continued at any point in time) in any shipping UI, despite that being demonstrated 10 years ago at MIT. We still very typically treat dates and times as text strings instead of first-class manipulable objects whose identity is separate from presentation. I could go on, but I'm just trying to convey the sense that our (known) future is stuck in the past.
- seanmcdirmid 12y ago> Morphic alone was not good enough to build the future out of. First-class information objects called presentations from the CLIM history would have complemented it nicely. Agreed, but the solution sounds like the whole naked object fad from a decade ago.
- briantrice 12y agoI don't feel motivated to work on it (this particular artifact) any more. I want to make something relevant to and appreciated by an audience, and programmer culture seems to be unwilling to do that in a deep way. If I continue, it will be with a specific story in mind about who it's for and what message to convey. I have been attending The Strange Loop for a few years now and growing some ideas to write about. It's worth noting that Slate was one major project in a long stream of development I started privately in the early 1990's and then brainstormed with some nerds on at the TUNES project until I made Slate its own thing (a kind of stepping stone towards the TUNES goals).
- mamcx 12y agoFor fun, I want to build a language. After see you can do a lisp very easy, I stop and wonder for what my "new" language can be useful. This make me think in how do a REPL, a debugger, what kind of task this must solve naturally, etc, and for which kind of users! However, pull of a successfully language is very hard. That depress me. --- See more at https://www.reddit.com/r/coding/comments/2ocw2r/how_to_create_a_programming_language/cmy71xn https://www.reddit.com/r/coding/comments/2ocw2r/how_to_creat...
- briantrice 12y agoYou'll never regret it, and although every language is ultimately worth criticizing, it's worth having a project of your own to refine or learn from.
- seanmcdirmid 12y ago> I want to make something relevant to and appreciated by an audience, and programmer culture seems to be unwilling to do that in a deep way. Being a language designer is rough like this.
- SamReidHughes 12y agoIt's a relief to find out this language is dynamically typed. That way I don't have to think about it.
- briantrice 12y agoSo, there's something about that that is true, but we weren't aiming for this per se. We wanted to make the idea of a programming world as an OS manifest, so Slate images and object networks are like a file system image. The most straightforward way for us to get into that was dynamic with optional typing. The idea at some point was to have staged meta-programming (like we did to build the VM out of Slate) that was typed, so that the static existed within the dynamic but in a more obvious way than "sure, my Haskell universe exists on a nasty filesystem". We tried.
- briantrice 12y agoI guess I should say that we built a type system in Slate using objects and multimethods; it was used for metaprogramming and self-hosting. Obviously not ideal, but we leaned in the direction we hoped others would see. I don't think enough people saw what we were doing beyond the front page news blurbs. Slate has a lot of good code in it.
- briantrice 12y agoOhai. I'm one of the authors. Thanks for noticing this, but we did wind down the project several years ago after failing to bootstrap it into what we wanted it to be. Main regrets: - Starting with multiple delegation from Self; we migrated to Traits a la Squeak and Perl6 but it was pretty late in the project. - Hewing too closely to Smalltalk syntax, instead of ditching the lexical awkwardness for keyword syntax and more conventional but unambiguous lexical patterns. - Image-based bootstrapping was useful, but too monolithic. I wanted to make it have a symbolic graph linker to stitch together images from modules. That would have kept the project flexible enough to keep going. As it is, I'm disillusioned with the open source and software research fields, and working on startups to accumulate my own funds to run a project like this without being subject to the rhetorical whims of a diseased culture. Hah! You may as well AMA.
- mattgreenrocks 12y agoHow long have you been playing with developing languages? How much do you think syntax matters? Will a homoiconic language ever capture the mainstream? Actually, what hope is there in capturing the imagination of the mainstream? Seems like they're so used to having languages forced down their throat by corporate entities that our brightest hope lies in children.
- Blackthorn 12y ago> Will a homoiconic language ever capture the mainstream? Not the author (obviously) but I think it already has -- Clojure has gone mainstream.
- briantrice 12y agoClojure deserves a lot of respect for attacking concurrency in a totally new way, but I would not call it mainstream. Homoiconicity is overrated; Atomo and Atomy represented better where I wanted to go, which is to adapt notation to the problem, even have it be flexibly remapped and recombined per modular scope.
- briantrice 12y agoI will say that I'm not done yet; I fully intend to build a practical system that hands the lessons of FoNC to the everyday context. I've learned a lot over the years and tried my best to smooth out my early rough edges. The question is how to do it and with whom and for what audience.