Domain: squeak.org
Stories and comments across the archive that link to squeak.org.
Comments · 380
-
Squeak and ToonTalk have the same goals
Squeak looks like a simple paint program, but painted objects can have properties and behaviors. The Drive a Car tutorial shows the basics of Squeak. Squeak.org provides much more detail about how Squeak extends Smalltalk. Squeak is free and supported by a large user community.
ToonTalk presents a 2 1/2 dimension cartoon world with animated tools and characters that can learn activities. Very weird. ToonTalk 2 costs $25 and has promised version 3 for over a year.
-
Re:This sucks
-
Re:This sucks
-
Re:Python as a starter language
I've heard that squeak, a LISP/small-talk derivative, is ideal for teaching children. I don't really know much about it, but I've read claims that kids can get going with graphics and sound in short order. It's included in the OLPC software.
-
Re:bit like squeak
Although Scratch doesn't seem to make this clear, Scratch IS Squeak (well, an even easier to use wrapper anyway), and it's listed as a Squeak project http://www.squeak.org/Projects/
Try for yourself... download Scratch, drag the included image onto your Squeak VM and it'll open fine (although, at least on the Mac version I can't find a way to quit properly). -
Squeak? OLPC? Hello?
Squeak Smalltalk http://www.squeakland.org/ and http://www.squeak.org/ are open source educational tools for K-12. eToys is in the One LapTop Per Child. It's in there because it's an open source educational tool.
-
Re:That's too bad
Why don't you check out Squeak for your desktop or laptop. There's even an OS in progress that runs Squeak on the bare metal, with bootstrapping code in assembly and everything else in Squeak. Everything in Squeak is an object, including pixels in the frame buffer, and can have its code inspected and modified at run time. It should come as no surprise that Alan Kay is heavily involved with both projects.
-
Re:That's too bad
Why don't you check out Squeak for your desktop or laptop. There's even an OS in progress that runs Squeak on the bare metal, with bootstrapping code in assembly and everything else in Squeak. Everything in Squeak is an object, including pixels in the frame buffer, and can have its code inspected and modified at run time. It should come as no surprise that Alan Kay is heavily involved with both projects.
-
Re:It's amazing people still use windows.
How about?
diff <(ls a) <(ls b)
It's less disgusting I think.
Oh, and about all this everything is an object. Smalltalk is pushing 40, why not re-discover it?
http://www.squeak.org/ -
Re:Where is the bleeding edge?
Parent is ridiculous. AI gets a good representation from e.g. the Fast Artificial Neural Network Library, and there are lots of innovative and experimental project ideas--see for instance Squeak's collaborative development proposal.
Can we say karma whore?
-
Re:That's Nice
but assuming that each programs considers its windows to be reconfigurable, you've got a common pool of widgets, and a way for your programs to communicate
I believe you're looking for this
It's got your drag and drop widget goodness. It won't make them magically work of course. -
No no no no no-Grand Programming Languages.
-
Etoys?Looks like they're using Squeak. http://www.squeak.org/
Looks like Negroponte is trying to resurrect Smalltalk
:)(If the OLPC succeeds, that is.)
-
What do you want to accomplish?
I'd say python, or a similar language with a good interactive shell, and similarily equipped with with poweful libraries would be much better, because it would allow the kids to actually do usefull stuff.
On the other hand, if you want to give them a feel for how the computer "really" works, teach assembly programming. C has a place in modern programming, but I think it's a bad choice for a first language.
For just about any language, you can demonstrate basic concepts, and give such thrills as being able to print out your name 10 times etc. But for moving on to doing really cool stuff that you can show your friends, such as consuming rss, doing interactive 3d etc ... python would be an almost perfect fit, especially paired with a couple of modules/packages like http://www.pygame.org/ and http://ipython.scipy.org/.
Java comes a close second, but even using a tool such as http://judo.sourceforge.net/ or http://www.bluej.org/, java requires much, much more setup pr project to get up and running. Additionally java has no transparent compilation, which means you're stuck with the write-compile-test-cycle, rather that just write-test-change-test...
Another alternative would be http://www.squeak.org/ and/or http://www.opencroquet.org/. But it's a pretty steep learning-curve going from c to smalltalk, IMNHO. You're students should have an easier time of it, though.
Give some thought to what platform you and your students will be working on, too. For Mac OS X, I suppose objective-c might be a good place to start. On linux, I'd go with python, on windows, either python or c#.
The one good thing about c, that is also true for assembler *and* python, is simplicity. You don't *need* an IDE to get from idea to working program. Programming java with notepad and javac very quickly becomes difficult to manage, due to classpath-issues. But with c and assembly you'll still need linking for anything but the most trivial programs -- another win for python (or perl, ruby tcl, lisp etc). -
Re:New UI - why?? - Agreed.
I'm not sure that would be all that friendly to the flash drive.
They could borrow the system used in image-based persistent environments like Squeak, where in-progress changes are saved automatically as part of the system image. In Squeak (and Smalltalk in general) you can use a "FileOut" operation to save a snapshot of a particular class or method as a regular file. In a "live" editor the actual document, with all its state information and version history, would be persistent in the device (no "save" operation, and perhaps not even an explicit file format, just a collection of in-memory objects), but whenever you feel like reading it elsewhere you could export a snapshot of the current version to the flash drive (or to anything else capable of receiving a binary stream).
-
Re:A framework of our own?
"Why haven't we designed and implemented our own framework?"
We have. Many of them. One for Python, one for C++, one for Objective-C, one for Smalltalk...
-
What to do? read, Read, READ!Go the college route only IF you can afford it, and IF the college has a well developed and staffed CS/IT department. If it hasn't then you are just throwing away your money, which would be much better spent on a decent library of text-books. Assuming you decide to teach yourself then you'll need to learn a language or three. I'd suggest you learn what the OO paradigm is all about. These languages are pretty good implementations of it:-
- Smalltalk - The original OO language and programming environment
- Ruby - OO in a sane file oriented environment
- SQL - You'll need to store your data somehow
- C and C++ - Get these downloadable books FAQ & Tutorial.
-
The future is Adobe (ex-Macromedia) Flash
Many vendors and frameworks have been trying for years to lead the UI movement.
But neither win32, mfc, qt, gtk, kde, wxWindows can find the promise of separate the OS rigidity from the UI
Just Squeak give us more freedom, but from a business perspective Adobe is playing a very strong card with Flex
Imagine a creative designer with all the freedom to create the best UI without more limitations!
We can see some real examples of Windows interfaces in flash like ScreenTime -
Squeak you fools!
http://www.squeak.org/
Self-contained, graphical environment with instant feedback, lots of code available, decent language with room to grow, runs anywhere, decent error messages (those who recommended javascript, what are you smoking? it barely gives error messages at the best of times). -
Re:There are options
I think the Squeak project is worthy of note for anyone interested in a first programming environment. Start em off right.
Squeak homepage
and the Education focused site -
OLPC includes Sqeak
Since TFA mentions One Laptop Per Child somewhat derisively in this context, I'll mention that their Fedora environment will come with Squeak pre-installed. For those of you who don't know, Squeak is an implementation of Smalltalk.
So those communities getting OLPC may see magazines with smalltalk listings, instead of BASIC.
I also "grew up" on C64 BASIC V2 and although it was fun at first, one of the best things about it was how badly it made me (and many others) want to move beyond the wretched thing. Smalltalk will certainly fare better. -
Emulators
I took someone's advice from Slashdot a while back and tried to teach my daughter programming using Squeak. I made the mistake of stumbling around, thinking we would both learn about it as we go. It was a disaster, and after a half hour of fumbling with it, I gave up.
I started thinking about how to approach programming with her again, and I found myself wishing she could work with computers the way I did when I was a kid. Then I realized that all the computers I loved are still around as emulators. So I'm going to give it a shot again with a vintage BASIC book for kids and a C64 emulator. When she's comfortable with BASIC, I'll move her to KPL. I don't think kids will be put off by the primitive graphics if you start them early enough. My brother has been writing Atari games for fun, and my daughters enjoy those.
When I started programming, the thing I found that was hardest was working with the keyboard. BASIC on the Palm or Windows CE might work well as an option, with handwriting recognition.
-
Live app debugger in Squeak/Seaside
I noted in my article Boxing in the LLRing, which despite positive responses Slashdot rejected in favor of Roland Piquepaille's daily column and various political commentary, that Squeak has an amazing debugger (I am not going to call it a full-blown analyzer) that allows you to debug applications as they are running on the very interesting Seaside application server.
As described in this paper (pdf), Seaside provides multiple control flows and a high level of abstraction that is very useful to web app developers.
The 4500 word article is coverage of a 300 developer "Lightweight Languages" all-day seminar held in a real boxing ring in Tokyo, covering 30 languages and frameworks including Perl, Python, Ruby, Haskell, OCaml, Squeak, and many others. -
Re:Kid's Programming Languages
I'm not a teacher, but Alan Kay and the fine folks at Viewpoints Research have been helping kids learn (K-12) for many years. They have created a wonderful scripting language on top of Squeak (derived from Smalltalk-80) called eToys. Many are using this around the world. You might get in touch with them.
Here are the relevant links:
http://www.viewpointsresearch.org/about.html
http://squeakland.org/
http://www.squeak.org/ (to learn more about Squeak)
--
brad fuller
sonaural: www.sonaural.com
personal: www.bradfuller.com
www.oreillynet.com/pub/au/2184 -
Re:Scheme? *ducks*Add my name to the growing list of those who think Scheme is a good suggestion. The key is to choose a language that a) teaches good programming techniques which can be applied to learning other languages in the future and b) is as interactive as possible. If a student can immediately see the results of their efforts and/or correct problems they will become engaged. A write/compile/run/debug sequence will prey upon the impatience of youth and ultimately you'll lose their attention.
In addition to Scheme, others have mentioned Logo which is a wonderful language that many of us learned in our youth. I would also suggest looking at Kid's Programming Language, Squeak (a Smalltalk implementation that seems tailor-made for the way kids think and learn), Alice and perhaps even Ruby or Python both of which have the advantage of a wealth of documentation and code samples. You might even consider the first lesson to be a discussion of programming languages, their differences and their applications. Context always makes it easier to learn specifics. The Hello World! page is a good place to grab examples of different languages for comparision.
Do NOT teach them a markup language (although McDonald's is hiring) or BASIC (there is no need to damage another generation of brains). Last but not least, if anyone suggests PERL thank them for their suggestion and get away from them as fast as possible as they are clearly mentally unstable. -
Squeak
Squeak, which I believe is a Scheme derivative, is geared towards children or at least people with minimal coding facility. I would also incorporate this with HTML. Being able to grok HTML is very handy even if all you're gonna do is put a blog up on MySpace....
-
Squeak and old news?
I recall seeing Squeak (based on Smalltalk) being used in schools in Extremadura. The government used Linux on some 60,000 computers..
Here's the report from 2005:
http://video.google.com/videoplay?docid=-768010651 3348266522
Web-sites:
http://squeak.org/
http://squeakland.org/
http://smalltalk.org/ -
Prediction of this in 2000 extrapolating Cybiko
See my comment in 2000 to Doug Engelbart's Bootstrap List at:
http://www.bootstrap.org/dkr/discussion/0754.html
From there [with some outdated links removed]:
I'd love to make a souped up version of this for OHS/DKR use: (Read about in May 2000 Popular Mechanics) "Cybiko Introduces First Handheld Internet Wireless Entertainment System At Toy Fair 2000"
US $149.00 The Cybiko system combines instant messaging, interactive gaming, email and personal information manager (PIM) capabilities in an all-in-one device. ... Available in four translucent colors, Cybiko has a full QWERTY keyboard to compose messages, LCD display, .5 MB memory (expandable to 16MB), a high frequency transmitter and Vibration Alert feature. The unit measures 4.8 x 2.8-inches and weighs under four ounces making it light, thin and small enough to carry in a book bag, purse or shirt pocket. ... With Cybiko, kids and teens can communicate instantly with others within a radius of 150 to 300 feet, depending on the environment, creating their very own virtual community.
Wow!
Imagine what we could have for $1000 by the end of this year by integrating technology that already exists:
Develop a beefed up version supporting a distributed file system like Freenet...
http://freenet.sourceforge.net/
Using technology like this 6GB in 14 ounces $500 portable audio player/recorder: [nomad Jukebox]:
And a two mile radio range: [Motorola walky talky]
Maybe with a next generation StrongARM 600Mhz processor:
http://www.intel.com/pressroom/archive/releases/em 050399.htm
Like a faster version of: [BossaNova mobile processor]
Running Squeak (and maybe Linux) as an open source OS/Development environment:
http://www.squeak.org/
Using Bootstrap OHS/DKR type ideas for the interface...
Powered by solar energy and/or Baygen radio windup technology and/or fuel cells.
And with a digital camera for fun and creation of educational how-to tutorials... (And on the spot news reporting...)
And remember that in five years this entire thing will cost US$100 each.
As an alternative, this could be a set of HandSpring modules instead: [Springboard]
Consider a couple of these souped up devices given to each village in Africa. Anyone with $1 billion for true development aid to 500,000 African villages? (This is just the cost of one unfinished dam or one shut down nuclear plant.)
Consider millions of these devices airdropped into Iraq and Yugoslavia -- instead of more expensive cruise missiles! Anybody got $1 billion to spend on ensuring democracy with a true defense against tyranny in those places? (This is probably what the U.S. military's spends on gas/oil for a month cruising the area...)
This is like a system I wanted to develop and deploy pre-Y2K just in case... But it still has much value in preparing for any potential (natural, political, economic, biological) disaster, as well as aiding the development of democracy.
It's somewhat like the wearable crystals described in The Skills of Xanadu" by Theodore Sturgeon (available in his book The Golden Helix), although the one thing it lacks is easy self-repliaction...
Developing and then deploying this sort of device is the sort of thing the UN or a major foundation should fund (if they were on the ball). But luckily, there is hope from toymakers!
====
Anyway, glad to see six years later this is going ahead at that $100 price point (and developed by other than toymakers). My hat goes off to the dedicated people making this happen. -
Re:Zzzzzzz.....
What would really advance the state of the art is an "everything is an object" operating system.
Smalltalk-80 fits that description pretty well. See:
http://users.ipa.net/~dwighth/smalltalk/byte_aug81 /design_principles_behind_smalltalk.html
Smalltalk-80's modern descendent is Squeak:
http://www.squeak.org/ -
Re:Great article!
To the poster with their "there is only one C"; Horsefeathers. That there is Only One C explains why every C program I have is a twisty little maze of #ifdefs, often for minor differences in machine/compiler combinations, and as likely to break after a compiler upgrade as continue to build. It continues to exist only because it's suitable for assembly-language-type functions, such as OS kernels, which means it ships with every unix out there, and is taught to unsuspecting comp-sci students because it came free with the OS. It's amazing that after the problems of the past few years, including buffer-overrun exploits, memory leaks, etc, caused by C's unsafe, seat-of-the-OS memory handling, that people continue to defends its use as a general purpose language.
The OP may be trying to be funny, but in fact a modern Fortran (F90/95) is easy to do string manipulation in, has dynamic memory, is type-safe, and is arguably a much higher-level language than C. (on the other hand, F90/95 bears a curious resemblence to Ada, but we'll let that slide). Memory aliasing isn't nearly the issue it is for C programs, which is why Fortran still out-performs C/C++ on any modern architecture, as long as you're using a competent compiler. (i.e. I don't want to hear about how slow your G77/GFortran programs are; they're great tools, but they're primarily Fortran Lints (flints)). Where Fortran fails is that is has the same name as a particularly onerous language from the mid-60s, known variously as FORTRAN-IV or FORTRAN66. If it was named differently, such as Cerulean, for instance, you'd complain about its verbose, Python-esque syntax, with Begin and End, rather than { and }, but you'd grudgingly learn it, write interfaces to libraries, start new projects in it, and treat it as an appropriate tool. Flame wars would break out here as the Cerulean programmers made fun of the Java-weenies, because their language is byte-code interpreted, and doesn't have matrix operations built in as primitives (how can you do quick 3d graphics without matrix ops). Because of the antique name, you picture a black and white room full of guys in white shirts with pocket-protectors and crewcuts, smoking while they load pounds of manila cards into the keypunch.
Back when we were in college we used to comment that C was a step backwards, as in terms of being a high-level language it ranked right up there with VAX assembler. Let it go. Use C++/Objective-C/Java if you're obsessed with line-noise syntax, or move on to Eiffel http://eiffelsoftware.origo.ethz.ch/index.php/Down loads/ /Ada or even SmallTalk http://www.squeak.org/ for new work. -
Programming trends
You want to know the latest trends for Java-based web development? Fewer and fewer people are going to be doing Java-based web development in the future.
Fuck trends. They're wrong. Every day the industry continues to stay with its current ridiculous technologies when vastly superior ones were invented decades ago infuriates me further. If it doesn't infuriate you, you're not paying close enough attention.
My advice: read Lambda the Ultimate and Steve Yegge's blog. Endeavor to learn what the lambda calculus and referential transparency are. If you are sincerely interested in bettering yourself as a programmer and don't go find out who Alonzo Church was then so help me God I will kick you in the balls. Learn about SML and type inference. Learn about Haskell and monads. Learn about process calculi and Erlang. Learn about Lisp and code generation and domain-specific languages. Learn about Scheme and lexical closures and continuations. Learn about Smalltalk and what OO was really supposed to be. Learn about type theory and formalism and the Curry-Howard correspondence. Learn about Forth and Joy and how you can have a powerful, expressive language without even so much as a grammar. Learn about Intercal and Befunge and just how badly your choice of programming language can torture you. Learn about UML and Ruby on Rails and Seaside and agile programming and Java generics and Python generators. Learn about aspect-oriented programming, context-oriented programming and concept programming. Learn about multi-paradigm languages like OCaml or Oz. Learn about weird Lisp dialects with syntax like Rebol or Dylan.
Realize that library design is language design. Realize that asynchronous programming with callbacks and explicit state in a world where lightweight coroutines were around in the days of fucking Simula in the 60s for Christ's sake is cruel and unusual torture. (Sorry, pet programming construct.) Realize that the programming language research community, while considering systems programming a solved problem and generally not interested in talking about human factors, is doing some genuinely promising work. Did you know that there are conc -
For fast development: Smalltalk & SQLIt'll stand you in good stead to learn Smalltalk. Now for the Free Database of choice:- And the books to study:- Get your head around that lot and you will be a very valuable item. Toss in a modicum of accounting knowledge to ice the cake.
Everything mentioned in the above links is $ free. -
Re:Web3d = OpenCroquet.org!
ok, ok, OpenCroquet.org is still in the works.
Speed- they want OpenCroquet to work first, then they'll optimize it, however the beta version is still faster than the alpha version from a few years ago. There are also different projects, http://map.squeak.org/packagebyname/Exupery , and, http://goran.krampe.se/blog , to speed up what OpenCroquet is based on the Squeak VM. I know one problem is intel's lack of registers. That was the reason I hoped that Itanium would last- MORE REGISTERS! Too bad...
Security- from the docs:
"A name space and security model is being developed. Our early study seems to indicate that a capabilities model similar to that used by the E [10] language is the proper
course." http://www.opencroquet.org/Site%20PDFs/2003%20Croq uet%20Collab%20Arch.pdf
So, in time...
Very importantly you must remember that, as it's princably/originally based off from being a smalltalk computer, it is meant to be it's own complete system. Think of it as futher than just an OS or NOS, but as a complete Collaborative OS. So you have to think as if you just started using a completly new OS. It takes some time to get used to. Also, like I said before it's still beta, for now... -
You crippled GWBASIC minds
What is it with you people?!?! Does it occur to you there is more things to Heaven and Earth that can be dreamt in your philosophy, Horatio? Why is it every person trained on using a hammer thinks all problems can be solved by hammering it?!?!?!
The real problem is that Windoze doesn't come bundled with a programming language???
Its 2006. Have you not heard of a computer communication network called... the Internet? You can do really neat things like... download all the programming packages in the world that one would wish to use! You are a man dying of thirst floating in the middle of a freshwater lake because you're too stupid to realize its potable water keeping you afloat!!!
And why would one think the best way of introducing kids to computers is using crippled, archaic language technologies like BASIC??? Introducing kids to BASIC is the computer science equivalent of CHILD ABUSE! "It was good fer me, its what'll be best for my kid." Yeah, my dad felt the same way about using a belt when we got out of line. Some people grew up in Sudan; I guess chewing narcotic leaves and learning to kill people with AK-47s is the best way to raise an adolescent.
You don't see me telling kids to learn FORTRAN and COBOL when I was a kid. And hell, you can program games in COBOL too! I deliberately keep a copy of COBOL TREK in case I'm trapped, and only have access to a 370.
The kid wants to learn to program? Teach them to use a webbrowser and google.com, and they can go download the java SDK. Do you really think writing something like:
10 J=SQRT($I)**$VLOG
20 POKE(J)
30 SPRITE(J*X,F)
50 GOSUB 470
...is clear and easy? Compared to java???Java too hard? Try this. Its as straightforward as BASIC, its an object oriented language, and much more conceptual and educational. Hell, it even caters to kids, here.
There's no way you can get started easily.
UNBELEIVABLE! Is it me? Am I the only one here who sees mentally crippled BASIC programmers?!?!?
-
Re:Third-Party JVMThere are two main causes of java slowness. The most well-known is swing, the java graphics api which has one too many layers of indirection to be useful. The other main problem is Checked Exceptions, which force a programmer to write "try{" before the body of every method and "} catch (Exception e) {}" after the body. Although relatively useless (if not harmful), these checked exceptions lead to a minimum of 122 extra CPU cycles per method invocation.
Luckily, you there are workarounds, such as using Eclipse instead of swing and a different language to avoid checked exceptions.
-
Re:Programming is not as accessible as it was.So true.
Complexity is evil, but then again, it is what brings life to things. However, people of today is not very educated. Go to www.squeak.org , download and start the Smalltalk system. You will have instant 10 print "hello world", run. However, instead it is called: Transcript show: hello world., and it has been like this for over 30 years,
go figure
-
Re:It's Too Hard!!!
The Kids Programming Language might be nice, but I can't see how it would be better than Python.
It exists already, and it's called Smalltalk. -
Re:Learning curve of linear vs OO?
A friend of mine who is a tech/computer teacher at our local high school has kids doing lots of stuff in Squeak (http://www.squeak.org/). Its a nifty little open source visual programming environment. And he's getting pretty good results with it.
-
My beginnings
Ah! I can remember why I began programming. It was not so long ago, in 1998. My father bought a computer for the family some years before. But at that time appeared games that required 3d accelerated hardware. Too old to run those games, my computer was making me sad. Then I discovered a book. It was called "Programming games in visual Basic". It wasn't great at all, but it brought interest of programming in my life. I was thinking that "If current games cannot run on my old machine, I'll make games that can". Later, I learned c/c++, php, shellscripting, etc.
I don't say this is the best way/reason to learn to prog. The trick is catching the interest. Once that is done, people can see the true power of simplicity that scripting your life brings. Programming isn't for computer gods or geeks. It's for anyone who understands what he does enough to write a generic receipe. Once you see how simple it may be or how useful it can be, programming gets attractive. For that, I hope Squeak gets popular. It is a wonderful tool to catch interest of non programmers. -
Re:Useless for Vista
But, I'm assuming (they aren't specific on their website) they will be creating their own Linux distro for this thing, or atleast some of their own apps to run on this.
I sure as heck hope not! It's completely unnecessary, because all they really need is for it to run Squeak on top of Linux (or even directly on the hardware, if they created an integrated kernel/VM). -
The best starting out language is ...
Smalltalk, because you are completely isolated from the boring mechanics of programming. Nasty things like files, editors, compilers, linkers.
http://www.smalltalk.org/main/
http://en.wikipedia.org/wiki/Smalltalk
Smalltalk, because there are 2 very good free (gratis),
http://www.exept.de/exept/english/Smalltalk/frame_ uebersicht.html
http://smalltalk.cincom.com/index.ssp
and at least 2 Free ( Libre ) implementations.
http://www.squeak.org/
http://www.gnu.org/software/smalltalk/smalltalk.ht ml
Smalltalk, because is was deliberately designed for small people to have fun,
yet you can grow-up with it.
http://www.squeakland.org/
Smalltalk, because it is well documented.
http://www.iam.unibe.ch/~ducasse/FreeBooks.html
http://www.whysmalltalk.com/tutorials/visualworks. htm
In a couple of words, it Just Works, and your sanity will not be harmed.
If you can't drop the "program in a file" paradigm, then checkout
http://www.ruby-lang.org/
http://www.python.org/
Don't even dream about anything BASIC because your dreams will turn into really horrendous nightmares before you can even turn around twice. -
Find something with a decent interpreter
I learned BASIC "back in the day" (back when it was still spelled in upper case) using an interpreter. I still think this is the best way if you actually want to learn to program. If you just want to write something simple with a GUI, then yes, VB is probably the way to go. I wouldn't classify that as "learning to program", any more than "learning electronics" by building a crystal radio from a kit. Yes, you'll get results, but all you've done is put together some components someone else has made.
If you want to learn to program just to know how, I'd recommend setting up Squeak and playing with that. Or a good Scheme system, there are certainly enough of those around. Something that allows you to explore interactively, instead of having to wade through edit/compile/run cycles. -
Smalltalk and Squeak
It is about fashion. Count "Ruby" in replies, > 100. Count "Smalltalk" ~ 5. A cleaner language with better library is talked about so much less .... -
Re:Smalltalk?
Smalltalk is most certainly in use. There are multiple vendors, and two open source implementations. See:
for some initial pointers. -
Squeak?
Squeak is a cross-platform Smalltalk environment that has a lot of features for non-programmers: For example, it is it's own IDE. For another, it's got lots of different drag-and-droppable widget things that can be programmed (graphically, even). In fact, it's mostly designed for education (computer science and otherwise).
-
Re:Tapestry Making Web Development a Breeze?....
Why other frameworks like Seaside http://www.seaside.st/ doesn't receive the attention of Slashdot?
Seaside is technically superior, it uses continuations to mantain state and this make it really transparent...
Maybe because Seaside runs in Squeak http://www.squeak.org/, is open source and...
Wait is not sponsored by any big name (like IBM, or Sun)... mmm both IBM and Sun publishes its ads in slashdot...
Ahhh now I see why
No, it is because systems like Squeak, no matter how technically wonderful it is (and it is!) is not a production-ready system for high volume websites.
If you want to use continuations (which are surely the future of web development), there are Java frameworks that allow you to do this - WebWork is a good example. -
Tapestry Making Web Development a Breeze?....
No!
The post looks like an ad.
I have used Tapestry several times since its firsts versions (pre-Apache). It sucks.
Yeah is much better than Struts and others, but is really complicated... a lot of XML :(
Why other frameworks like Seaside http://www.seaside.st/ doesn't receive the attention of Slashdot?
Seaside is technically superior, it uses continuations to mantain state and this make it really transparent...
Maybe because Seaside runs in Squeak http://www.squeak.org/, is open source and...
Wait is not sponsored by any big name (like IBM, or Sun)... mmm both IBM and Sun publishes its ads in slashdot...
Ahhh now I see why -
Why not use Squeak?
"Sure, Mac OS X is a great OS that just works. Sure its a real steal at no cost. But for kids, the cost of the OS doesnt matter. The fact that it just works is good. But what they really want to do is get into the internals and rip it apart to see what makes it tick. What better candidate than something that's open source?"
It depends on what the goal of providing kids with cheap computers is.
If the goal is for the kids to use the computers as tools to use in school to learn non-computer subjects, MacOS X with the bundled applications (iMovie, iPhoto, iDVD, graphing calculator, etc.) provides fantastic learning tools. Though I'm far from sure that $100 computers could be used for photo and video editing. Of course, the availability of thousands of educational programs for the Mac would certainly make the computers more useful for general education than a Linux computer (which has relatively little educational software available).
If the goal is for the kids to learn about computers, Linux is an OK answer. Since all of the source is available (though you won't be recompiling the entire OS and application stack on an $100 computer, so this is somewhat academic), it's a bit better than MacOS X on this score, where most of the environment is OSS, but with a proprietary framework and many applications). But from the perspective of being a software environment that's open for exploration, Linux or Mac OS X can't hold a candle to Squeak Smalltalk (http://www.squeak.org/).
I suspect that the reason that they turned down Apple wasn't because of what teachers or students want or need, but the goals of the people running the project. They (I am guessing) really want to create an open source consumer platform, and this "education" strategy is a way that they've picked to bypass Microsoft's dominance of the desktop OS market. I suspect that they picked the goal of $100 total cost including the OS, storage, etc., because it precludes x86 CPU's and Windows licensing costs and resources, so MS is excluded by definition. So if your goal is to jump-start OSS as a consumer platform, you won't want to use Apple's proprietary OS even if that would be better for the teachers and students, because it doesn't achieve your real goal. That's not to say that this goal isn't legitimate (in the long run, you could argue that jump-starting OSS on the desktop is good for everyone), but it's a long-term strategic goal that is more important to Red Hat, for example, and makes the computer much less useful for students and teachers for the next few years. I suspect that Apple knew that their offer couldn't be accepted by Red Hat (who wants Linux) or MIT (who wants a "clean slate" for research), but felt that it was better to make the offer than not.
Whatever the reasons, if they don't want to use the best OS for religious/strategic reasons, they really should consider Squeak Smalltalk as a platform. It has some advantages over the traditional Linux application stack:
- Smalltalk was designed and has been used for educational purposes for three decades. Squeak Smalltalk in particular is a fantastic teaching environment. There are all sorts of powerful components available (e.g. http://www.opencroquet.org/, a distributed 3D environment, http://www.squeakland.org/ which has tons of great code generated by students and teachers, http://www.squeakland.org/school/HTML/essays/essay s.html, which documents a huge number of educational projects based on Squeak Smalltalk, etc.).
- Squeak is completely open source, written in itself. This makes it much easier to understand than all of the layered technologies that are "Linux", which makes it more useful for students.
- Squeak is far more resource efficient than the full Linux application stack. It can run over Linux, or Windows, or MacOS X, or WinCE, or even without -
Seaside ?While Ruby on Rails is nice, particularly for CRUD applications, I wonder why nobody speak of Seaside
...\begin{rant}
Ok, I know, it's probably because it's written in that extremely complex and arcane language, Smalltalk... not. Smalltalk is extremely simple to use -- literally a child's play ;-)
\end{rant}Anyway, Seaside is an incredible framework to develop Web Applications -- not just CRUD apps. It has a wonderful component system, inspired by WebObjects (another wonderful framework !), and leverage Smalltalk: you have compilation on the fly, you can modify something at runtime (and I mean, even without quitting the current web session !), use the incredible debugging/refactoring possibilities, and reuse of the zillions of libraries and code available for Squeak.
More over, it has continuations. And that's really useful (as Paul Graham demonstrated..) for building neat webapps. Basically with Seaside you program applications nearly the same way you'd program a "normal" application. The whole HTTP process is completely abstracted (check the videos).
Frankly, it's really a joy to develop with Seaside, and you should have a look
:-) -
Oops...
Parent screwed up link, try Squeak.org