6 ms·
New release of Self programming language
- burntsushi 13y agoI've never heard of Self. So I wanted to find more about it. I had to click on several links to find some example of the language. I found this.[1] In the graphical representation of the object, we can distinguish method slots from data slots, and constant slots from assignable slots, by the icon in the button at the right hand of the slot. Huh? Maybe I should go find a description of the language.[2] Self is an object-oriented programming language and associated programming environment. It is close in spirit and semantics to Smalltalk Oh! Okay. Now I get it. But that's only because I'm vaguely familiar with Smalltalk. (My intention of this comment is to save others some time trying to discover some basic facts about Self.) [1] - http://selflanguage.org/_static/tutorial/Language/ObjectsAndSlots/ExamplesOfSlots.html http://selflanguage.org/_static/tutorial/Language/ObjectsAnd... [2] - http://selflanguage.org/_static/tutorial/General/WhatIsSelf.html http://selflanguage.org/_static/tutorial/General/WhatIsSelf....
- doublec 13y agoI have a couple of short screencasts showing Self in action if you're interested: http://bluishcoder.co.nz/2013/09/16/multiple-users-in-a-self-world.html http://bluishcoder.co.nz/2013/09/16/multiple-users-in-a-self... http://bluishcoder.co.nz/2009/07/27/displaying-images-with-self.html http://bluishcoder.co.nz/2009/07/27/displaying-images-with-s...
- burntsushi 13y agoThanks. I watched your videos and now I have a better clue about what Self is. It's personally not my cup of tea, but it would have been really nice if the Self web site had one of your videos on it (or something a bit more introductory). Particularly given its graphical nature...
- primitivesuave 13y agoIf this language is looking for greater adoption, its website is doing a big disservice. It is incredibly challenging to find a single code snippet, and the documentation is mediocre at best. The interfaces that are shown in the documentation remind me of the computer system you see DMV employees fumbling around with. I love picking up random languages on a Sunday, but not this one.
- ape4 13y agoJust follow the link on the site to the Wikipedia article ;)
- deleted 13y ago[deleted]
- jnazario 13y agoconcur (and upvoted). i took a few minutes, peeked around at some other "niche" languages (you know, not exactly mainstream) to see how they fare in this - rust, D, julia, haskell - and compared them to python.org's website. python's is far more like the self site than like those others, it takes several clicks to get to a code snippet. so, i concur, but i think it's (sadly) not alone in that shortcoming.
- russellallen 13y agoYeah, its a fair cop. The website is old and more about people who already know about Self than people who don't. I'll put fixing it on my todo list.
- sebastianconcpt 13y agoThat's the spirit! It would be greatly appreciated
- primitivesuave 13y agoThank you for not taking my comment negatively, I completely understand the amount of work that goes into documentation and the other comments on this article helped me understand the usefulness of Self. I've bookmarked the page and will check it out some Sunday in the future.
- GeZe 13y agoSelf was one of the inspirations behind JavaScript, particularly its prototype system. http://en.wikipedia.org/wiki/Self_(programming_language) http://en.wikipedia.org/wiki/Self_(programming_language)
- flarg 13y agoI spent some time with Self in the late 90s (at college of course!) and it was impressive on several counts: first, it's JIT compiler allowed Smalltalk to run faster when implemented in Self than without - the same JIT technique was later re-used in Java Hotspots [1]; second, the programming environment was a multi-user environment called Kansas that allowed a whole classroom of students to develop "prototypes" in the same environment (Kansas [2] [3]) [1] http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Self_(programming_language).html http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Self_(p... [2] http://web.media.mit.edu/~lieber/Lieberary/Softviz/CACM-Debugging/Kansas/Kansas.html http://web.media.mit.edu/~lieber/Lieberary/Softviz/CACM-Debu... [3] http://bluishcoder.co.nz/2013/09/16/multiple-users-in-a-self-world.html http://bluishcoder.co.nz/2013/09/16/multiple-users-in-a-self...
- masklinn 13y agoExcept for the part where what Self calls prototype has no equivalent in javascript (constructors are close to Self's `copy` message, but not quite the same) and what javascript calls prototype Self calls mixin (or traits, depending whether they've got ancestors up to the lobby themselves). And a Self object can have multiple mixins and add or remove them at runtime.
- Pacabel 13y agoThe "JavaScript is like Self" fallacy is just another variant of the "JavaScript is like Scheme" fallacy. It sounds great to the person claiming it, and to an unsuspecting audience. But on closer inspection, the similarities between the two languages are minimal at best.
- protomyth 13y agoNewtonscript was also a descendent. Although I like Objective-C, I do miss Newtonscript and the soup. Prototype-based programming often had a nicer feel than [edit]class[/edit] systems. http://newtonscript.org http://newtonscript.org - look at the "SELF and the Origins of NewtonScript" down the page
- secstate 13y agoHaha ... funny to read about people scratching their head over Self. I feel like once you've wrapped your head around the Squeak version of Smalltalk, your about 50% of the way towards understanding Self. It's not a language the way we think of it, with CLI tools and syntax and text editors. It is a mutable environment of programmable objects. Sure there's some writing inside of objects to create methods, but you're not gonna find a "try this in the browser" code. Self is/was http://noflojs.org/ http://noflojs.org/ 's grandfather. http://www.youtube.com/watch?v=NYEKO7JcmLE http://www.youtube.com/watch?v=NYEKO7JcmLE I would also argue that Self is to programming languages what Haiku is to OS development. No on is writing a web framework in self, it's more of a toy and a neat artifact of where programming has been and could go in the future.
- seanmcdirmid 13y agoSmalltalk is still class based. The only strong connection between Self and Squeak is Morphic.
- secstate 13y agoI stand corrected :)
- russellallen 13y agoMuch of the syntax is similar too: (2 + 4) == 5 ifTrue: [ Transcript show: 'Yay!' ] "Squeak" (2 + 4) == 5 ifTrue: [ 'Yay!' printLine ] "Self"
- seanmcdirmid 13y agoC and Java also have a similar syntax. Most of the Self people were Smalltalk people before, so you could see Self as being heavily inspired by Smalltalk in its syntax and image-based persistence. However Squeak is still Smalltalk while Self is a full successor language (you could say Morphic was backported from Self back to Smalltalk).
- tel 13y agoI feel like my personal challenges coming to understand Self are often exaggerated by Morphic. Most of the linguistic notions I gather from reading papers aren't too tough, but I always bounce off when trying to translate that to effects in the Self environment.
- mortyseinfeld 13y agoIIRC, some of the techniques used in the Self VM eventually made it into the JVM. Ahh yes, the relevant LtU thread. http://lambda-the-ultimate.org/node/1185#comment-12831 http://lambda-the-ultimate.org/node/1185#comment-12831
- seanmcdirmid 13y agoThey transferred via Sun's acquisition of the Strongtalk team (that also got them Gilad Bracha). Strongtalk was also one of the first hybrid typed languages (like Dart and Typescript). Much of the innovation in dynamic language run-times today also uses ideas from Self. Most of the Self people are working at Google today in various high positions.
- agumonkey 13y agoHere's a talk from Lars Bak about v8 and Dart http://www.infoq.com/presentations/Performance-V8-Dart http://www.infoq.com/presentations/Performance-V8-Dart
- alayne 13y agoI always wonder if the Self people felt bad about their VM efforts going into Java. Java has really been one of the least inventive and progressive languages.
- seanmcdirmid 13y ago
- doublec 13y agoThere's some interesting Self papers listed in the /r/selflanguage reddit for those that want to do some reading: http://www.reddit.com/r/selflanguage http://www.reddit.com/r/selflanguage This is my attempt at a JSON parser using Self's Mango parser package: https://gist.github.com/doublec/7132119 https://gist.github.com/doublec/7132119
- pstack 13y agoI guess I'm the only dummy who wasn't thinking of the actual Self language and thought I was going to be reading about a programming language that wrote programs by itself. Yeah. I'll show myself to the seat in the corner. Sheesh.
- szatkus 13y agoYou're not alone...