![]() |
Squeak Smalltalk?
This is a genuine request for some feedback. Has anyone (especially developers) checked out Squeak? If not why not? If you did and then decided you didn't like it for some reason then what is/was the reason? I'm just curious why such a flexible programming environment that already contains masses of goodies and is progressing by leaps and bounds on an almost daily basis fails to gain any mind-share among developers.
I could create an endless list of advantages for using Squeak but would struggle to list any disadvantages (any that couldn't be overcome anyway). If there are any real practical reasons for not using Squeak then I would like to collect them and pass them on to the Squeak developers to get them addressed. Thanks for reading. |
Re: Squeak Smalltalk?
I noticed your "Heroes Needed" request for Squeak Smalltalk when you posted earlier, muki. Since several developers here started in Smalltalk prior to Python & C++, we were discussing development using it on the N800.
The "flexible programming environment with masses of goodies" is where Python is now. If we were to write in python, we can use the same code on my Solaris, Redhat, and IBM zSeries servers. Tailoring an interface with pyGTK and Hildon isn't a big deal. Python has a much larger development community and less overhead for the "write once, run anywhere" than Java (currently Nokia has no JVM for the N770/N800) or what little we saw of squeakvm. I'd like to see Squeak take off... but in the short term, I know 3 datacenters in DC and Virginia that will be devoting efforts to Python on the N800. |
Re: Squeak Smalltalk?
Quote:
I guess it finds big gaps where the normal environment is hard to use. |
Re: Squeak Smalltalk?
Quote:
|
Re: Squeak Smalltalk?
There may also be licensing restrictions with porting Squeek to another platform - as it is owned by Apple. Not sure if the Apple Public Source license is OSI compliant.
http://www.squeak.org/SqueakLicense/ |
Re: Squeak Smalltalk?
Quote:
Python is being used in place of Perl on servers by T-Mobile and other telecoms. When you IM or SMS from your device, we were using Python to check the device timestamp, server timestamp, and sequence IDs to keep conversations in check. This makes alot more sense when you fire off 5 IMs in a row, the server received 2 but queued 3 when your phone reacquired a connection. |
Re: Squeak Smalltalk?
Thanks for the replies and excuse this brief response (battery running low).
Re Python/Ruby, I like both of these. My 'path' to Squeak went (roughly): python (blender), oberon, ruby, C#, squeak, where IMHO I found the best combo of features/speed/environment/maturity. Employment opportunities played no role in my choice but of course it would if I was looking for work. Outside of Blender I haven't done enough Python to comment on overhead except I think a small Sqeak vm and image can be less than 1meg (usefulness open to discussion). With Ruby I couldn't find a nice stable IDE to work in and Rails led me to Seaside, hence Squeak. Re advertising: yes, very strange for something that's been around for years! Maybe it's so good they want to keep it to themselves ;-) In my case I think I overlooked it several times assuming it was some domain specific langage. Re licence: new one in progress |
Re: Squeak Smalltalk?
I wish Squeak was available for the N800. I found it pretty intriguing.
Squeak runs on Linux; I don't see why there would be restrictions for it on an N800. |
Re: Squeak Smalltalk?
geneven, I have it running on the 770 so shouldn't it also run on the 800? However it doesn't play nicely with Hildon. Specifically, window ordering is a problem as is keyboard/mouse interaction. There is a gesture recognition package called Genie which can help and of course an image (ie, the file containing the "live" system) may be customised on the desktop before downloading. So I would say it is already usable in a general sense.
|
Re: Squeak Smalltalk?
Why python instead of squeak ?
- Python was inspired from SmallTalk and is compatible with the GPL. - Runs on unix, Mac, PC - It is well documented. - It tends to favor simplicity. - There are binding for many GUI Framework (wxWidget, pygtk, pygame, tkinter ...) - Nice function/method calling capabilities (positional parameters, named parameters, defaults). - And it has an impressive collection of features, and they are well implemented. Classes, exception handling, name spaces, collections, reflexive programming and networking are all built in and all cleanly implemented. |
Re: Squeak Smalltalk?
- Why python instead of squeak ?
I hope I have not given the impression that this is a Squeak vs [your favourite language] type of discussion. As originally stated, I'm trying to get to the nitty gritty of why Squeak/Smalltalk is largely ignored and to see what if anything can be done about it. Of course I hope that I can convince others that to give it a go but not as an alternative, more as an additional (and fun) way to explore what can be done on your tablet. - Python was inspired from SmallTalk and is compatible with the GPL. Yup, since "discovering" Squeak/Smalltalk I have surprised at how much other languages have been inspired by and/or borrowed from it. Indeed I reached the conclusion that generally the trend in language features is heading right back to where most of it started, ie, Smalltalk. Although I do admit that Smalltalk itself may appear lacking in areas where other languages have progressed. I don't have an answer for this except to say that any apparent omissions don't seem to have hindered developers (in one recent posting regarding "pipes" most of the required functionality could be readily implemented within Smalltalk itself). Re licencing: I'm no expert but a new "MIT style" licence is being worked on and I am trying to get clarification. I do wonder though exactly what are the concerns to non-commercial developers, which I assume are the majority here? Do Nokia impose any restrictions contradicting GPL? Do they themselves comply fully or even in spirit, ie, are some aspects of Maemo closed-source? I also wonder how any Squeak licence may differ from say Java, which I avoid for years due to not being clear on what I could/ could not do with it? Some feedback from Squeak irc channel: It has been relicensed under the Apache License allowing inclusion in the OLPC project (me, I'm still none the wiser what the implications are :p ) - Runs on unix, Mac, PC Squeak does as well, as do some other Smalltalk VM's (eg, Syx). - It is well documented. They tell me Smalltalk is "self documenting" ;) - It tends to favor simplicity. Agree but I'd say the same for Squeak/Smalltalk. - There are binding for many GUI Framework (wxWidget, pygtk, pygame, tkinter ...) Squeak has bindings for other GUI frameworks but I think the general preference is to use Morphic as it is dynamically modifiable by the user (but can be locked down to an extent). Croquet, the second-life-like 3D environment based on Squeak, uses Tweak which aims to be an event-driven version of Morphic. - Nice function/method calling capabilities (positional parameters, named parameters, defaults). I'm fairly certain these can be catered for in one way or another. For example there is a package for positional parameters to ease transition for OpenGL programmers. - And it has an impressive collection of features, and they are well implemented. Classes, exception handling, name spaces, collections, reflexive programming and networking are all built in and all cleanly implemented. With the exception of name-spaces, which seems to be a religious point-of-order, all others are to be found in Squeak/Smalltalk, if not originated from. Many thanks for your reply. I still find myself scratching my head and wondering about the lack of interest. As an aside, I recently read one Canola post about being able click a button without scrolling it up to the middle of the screen. There may be good reason but as a general point I still wonder why users are not offered more flexibility in this and other areas (there are exceptions, I know). Squeak offers this degree of flexibility and more. PS: Khertan, you don't say if you have tried Squeak/Smalltalk? |
Re: Squeak Smalltalk?
Squeak just get a look to the documentation, Smalltalk a lot ... but i prefers python and obj-c ... but i can't really say why ... it s like colors ... i prefer blue ... but why ? =)
|
Re: Squeak Smalltalk?
Umm, sorry for my ignorance but can you compile your squeak application to (relatively small) executable that uses other (shared) libraries? I thought you just dump/copy your (big) squeak enviroment to be your application and only disable some stuff in it so only your application window is shown but otherwise it is full blown squeak environment in every applications you make.
|
Re: Squeak Smalltalk?
fanoush, some Smalltalks do give you the facility to produce exe's but IMHO this detracts from one of the major benefits, namely having a live environment that can be customised on the fly.
Squeak consists of a VM containing machine dependent code while all else (the bulk) of code is straight smalltalk in the "image" file. The VM I currently have on my 770 is ~2.5meg but is not customised and still contains plug-in's that could be excluded. The Squeak image file I am using is the one found at Squeak.org/. It is 15meg *but* this can be reduced significantly while still retaining much of the core functionality. For example, the "SqueakLight" image is 5meg, "KernalImage" more/less than 5meg depending on your focus, while others are working on VM's and images in the 100'sk range. There is plenty of scope for tailoring VM/image size to your requirement and even package that do the job for you. Keep in mind you get a lot of bang for your buck in these images, even the smaller one's. Shared libraries can be accessed via plug-in's compiled either internal/external to the VM or in most cases simply via the Foreign Function Interface (FFI) directly from Smalltalk. If speed is an issue then Exupery (wip) may eventually offer the ability to selectively compile byte-code to native. It does now, at least for x86. In practice I haven't found Squeak to lacking speed-wise. |
Re: Squeak Smalltalk?
Spoon is considered by some to be a possible direction for a future Squeak. It is very small and designed from the ground up to load modules(?) on demand possibly from a remote server. So you end up only with what you use, plus the base image of course. Beyond that I am not familiar with it.
For those with no knowledge of Squeak/Smalltalk it may help to think of it more like VMWare than python, java, etc. The "image" truly represents a virtualised machine and just like VMWare it retains full state between runs (assuming you "save" of course). |
Re: Squeak Smalltalk?
Quote:
So each squeak application has 5-15 mb penalty on disk and (maybe even more) in ram. Not very good for mobile devices :-) Quote:
|
Re: Squeak Smalltalk?
Quote:
|
Re: Squeak Smalltalk?
Quote:
|
Re: Squeak Smalltalk?
In case anyone is interested in Squeak, a free book has just been released. Get it >here<
PS: A custom version of Squeak is running on the OLPC |
Re: Squeak Smalltalk?
Not to mention that you don't need an IDE to develop Python apps; or you can use whatever you are familiar with, from plain text editors to bloated monsters like Eclipse.
|
Re: Squeak Smalltalk?
Strictly speaking no IDE is needed for Squeak/Smalltalk either but, as with most other languages, programming is much more enjoyable with one. It was partially a search for a decent Python/Ruby IDE and a persistent environment that led me to find Squeak. Also I think Squeak is best described as a "computing environment" and differs from what many will think of as an "IDE". Another example of such an environment is Oberon.
PS: Squeak can be used headless. Look up Seaside for one exampe (including smalltalk web development via the browser). |
Re: Squeak Smalltalk?
1 Attachment(s)
In case you didn't know: You can install a squeak vm via easyDebian. A new v4 virtual machine is available in the testing repository. Then I just grabbed the v4 platform independent files (image, sources and changes) and the thing started without complaints.
I have not yet done any serious programming and I didn't check sound and network. Performance is okay, a bit sluggish but usable. The extra buttons of a three-button mouse can be emulated with Alt or Ctrl. The v4 GUI looks a lot more polished than the v3 did. Attachment 16708 |
All times are GMT. The time now is 23:44. |
vBulletin® Version 3.8.8