Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
What do you think is a good IDE for learning SmallTalk? I'll only be using it as a hobby, so it has to be free.
You should also consider Pharo. Pharo is a fork of Squeak. Their goals are:
a clean and lean open-source Smalltalk platform, derived from Squeak
the obvious choice for professional Smalltalk development
an emerging platform to help people invent the future
Whether it is Squeak or Pharo, there is a large, active and supportive community.
I think Squeak is the way to go. It has an entire smalltalk environment and is constantly updated. Its what I used for learning and is actually even a cool app in itself.
Squeak is free. Cincom has a non-commercial version of VisualWorks. GemStone/S is free for small installations. GNU Smalltalk is "free" in the GPL sense.
Definitively go for Squeak. It's a closed system in terms of the environment, or what you call the IDE, but it's fun to do webapps with - look for Seaside. However I always recommend everyone involved in development to take a look at it, just to understand how development in an image is working - and to experience a live system.
The main problem with Squeak, or maybe Smalltalk in general, is that once you get used to it, it's very hard to go back to the conventional way of programming.
Besides, I heard that you might become a better programmer if you work for some time in Smalltalk. I don't know if that's true, but I certainly like to think so.
Squeak is nice and free and very cool
You can also use Cincom Smalltalk or Dolphin Smalltalk. They both have community editions.
If you start with Cincom Smalltalk, there's a ton of learning material available:
-- tutorials
-- daily screencasts
-- videos
-- weekly podcast
You can find the screencasts, videos, and podcasts on iTunes - just search for "Smalltalk" in the podcast section.
You won't need a separate IDE because smalltalks usually come with their own IDE, so choosing your smalltalk flavour pretty much determines the IDE for you. Don't let this fact scare you off from taking on smalltalk though!
WRT your original question, I had two wonderful years developing in Dolphin Smalltalk & highly recommend it.
Dolphin Smalltalk is only as free as a beer is though. If you need an opensource smalltalk go with Squeak.
In my opinion Dolphin is the more polished/comfortable/user-friendly one.
If you are used to Eclipse or Visual Studio, and are running on Windows - then Dolphin is something that will feel very familiar to you. It looks very nice (no emulated widgets, as its not trying to be cross platform), and it has nice touches like code completion and a graphical window designer (rather like IB on the mac). It also has great refactoring tools and can easily create small .exe file (e.g. 500k including the vm). There is a little screencast of doing TDD in Dolphin
Of course, these things are available in other dialects - in particular Squeak Pharo looks very promising particularly if you are after an open source product.
Smalltalk/X came up on Reddit the other day. It looked pretty good.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
I installed Pharo 1.4 and tried to read "Pharo by example".
Unfortunately, the book and the Pharo image were totally out of synch with each other: menus were different; classes used as examples were not there e.g; BouncingAtomsMorph class.
It is a pity. Maybe one should use a specific Pharo version to learn and another to get up to date...can anyone help?
First of all be sure to complete Prof Stef's tutorial, it gives basic knowledge. You can start the tutorial by executing
ProfStef go.
in a workspace. Just type it in the workspace, select it, right-click, Do it
There is also a Pharo collaborative book that has interesting things. And there are Pharocasts that can help you to learn something interesting.
Also you can ask questions here on Stack Overflow an tag them with pharo or smalltalk if it's more general and people will help you out.
As said by #Sharphawk, there is an image to be used with the book, available from the homepage. It's a bit old by now, but it should be in sync with the book.
Pharo simply evolves too fast for us to keep up with the book (there are still many chapters under progress), so with recent images you'll have to adapt and discover a bit by yourself. Fortunately there are a lot of other ressources where you can get help: here of course, mailing lists for the book and for Pharo itself, the #pharo-project IRC channel on irc.freenode.net, the books & screencasts pointed to by #uko, etc.
From experience, Smalltalk is much easier to learn with some exploration and mentoring
For absolute beginners, the following is a very recent practical and hands-on tutorial, covering just the basics to get you going:
http://ceronio.net/2017/07/first-steps-with-pharo-smalltalk/
As your question is a bit vague (understandably), and I do not know your background or your needs, I'll try to give a short overview over Pharo, so that you know where to look for, as you gain more experience and your needs evolve.
Language Basics
As Uko has pointed out, if you are new to Smalltalk the best way to get started
is to follow Prof Stef's tutorial. This will get you familiar with the core aspects of the language. For quick reference, you can use the Pharo Cheatsheet.
Basic Tooling
After you have completed the tutorial, you should familiarize yourself with the tools so that you can work effectively in Pharo. Vital tools, as you probably already know, are the Class Browser, the Inspector and the Debugger.
Learning from Code Examples
The Class Browser has a lot of useful features, in particular it allows you to search the system for method and class references, pointing you to concrete code examples. You can right-click on any method and then choose "Senders of..." in the context menu. Similarly, for classes, you can look for references (Analyze -> Class Refs). This will tell you how particular classes and methods are used, and more than often, will get you faster to the information you need.
Another indispensible tool is Spotter (shift-enter), which provides an easy to use interface to browse the system (for classes and examples). But you'd have to use recent Pharo version.
Ecosystem Overview
That being said, the Pharo ecosystem is quite huge and it will take you some time to get the most out of it (I have been working with Pharo for quite some time now, and there are many things I still have to learn).
Depending on your needs, Pharo has a lot to offer:
Roassal (for software & data visualization)
Glamourous Toolkit (GT) (including Spotter, the Debugger, and the Inspector).
GT allows you to customize all of its tools. For instance, you can customize the inspector very easily to have domain-specific views for your objects. Lots of built-in libraries, such as PetitParser, have customized interfaces that allow you to work more effectively with objects.
Morphic for writing GUIs. There is also Spec, a DSL built on top of morphic, which allows you to describe user-interfaces.
Monticello for version control and building packages that can be deployed to other images.
SUnit for writing testcases.
Roassal is very different from Morphic as it is tailored for rendering all sorts graphs in nice layouts (while it is possible to do that in Morphic as well, you'd have to write a lot of code). Also Roassal uses Vector Graphics, Morphic is raster-based.
If you want to write GUIs or a game, I'd stick to morphic. If you have to visualize data, use Roassal.
An excellent introduction into the core concepts of Morphic is given by Maloney (the originator of Morphic). Some class names have changed, but you'll figure it out.
There are also different ways in doing event handling in Morphic. One way is to override methods (like you are used from other object-oriented GUI frameworks), another way is to "route" events to methods. I have used both methods, and I'd pick the first one for simpler applications.
Start with a simple project
My advice would be to start with the very basics, best with a small project, for instance a game like Snake. Add things as you learn and if you are stuck, feel free to ask questions on stackoverflow. Also, there is the Pharo mailing list.
I found that the Pharo / Smalltalk community is very welcoming.
My last advice would be: Keep things simple. It's not always easy to do, but Smalltalk is a great environment to learn this principle. You'd also want to look at Kent Beck's Best Practice Patterns if you are looking for ways how to organize your code.
Have fun!
Edit: Holy thread resurrection! I just realized that the question is over 4 years old. Well, maybe this post if some help to other newcomers.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am a c# developer and most of my friends are much smarter than me, and they laugh at me and start to swear at me in smalltalk. I want to learn this so that I might better be insulted at their insults... and maybe learn a thing or two in the process.
So, what is the best place to start with regard to smalltalk in a windows environment?
The best current free Smalltalk is probably Squeak. This currently out-performs its near relative Pharo, at least on my ancient box, but you should really take a look at both of them.
The big problem with Smalltalk is that there are no really high-quality text books. There's a list of free ones here, but I couldn't recommend any of them strongly. If you decide to use Squeak, take a look at Squeak By Example, which isn't too bad.
Since you are on Windows, I will say you should try DCE (Dolphin Community Edition), It has every thing (Including better integration with the OS than Pharo or Squeak, especially the GUI).
The Professional Edition will take you one level up since it contains other extra get-in-the-flow tools plus the Delivery wizard to directly produce executables (in short EXEs).
It's more than enough for learning Smalltalk. It includes a Help file (containing fast intro to Smalltalk, a comprehensive coverage of the environment, pattern usage, and a nice gui example).
If you think you will stay for long on Windows (an environment issue, etc...) or as igouy said 'leverage your Windows experience', then by All means check DCE.
As an extra I suggest you download it, check the intro to Smalltalk in the Help file and later on enjoy these videos:
A Better Hello World
Fun with MS Speech library (ActiveX wizard sample tutorial)
Interfacing with iTunes
Programming Animation with Dolphin (this shows the interactive
nature of Smalltalk in general, still in Dolphin is integrated with
Windows so you can play with Windows's windows and controls in an
easy and thrilling way.)
and by the way it's addictive!
happy small talks with Dolphin Smalltalk ;)
Whichever environment you pick to start playing with, don't forget to check out Stéphane Ducasse's collection of FREE (and LEGAL) Smalltalk books:
Free Smalltalk Books
There is a nice new website called The World of Smalltalk http://www.world.st, where you can find a simple yet comprehensible entry to the Smalltalk world, from introduction and documentation to the blogs, mailing lists, dialects and frameworks.
On Windows there are Win-only Dolphin Smalltalk, free cross-platform Squeak and Pharo, and commercial VisualWorks.
Good luck!
So, what is the best place to start
with regard to smalltalk in a windows
environment?
Perhaps it would be best to leverage your familiarity with MS Windows - "Dolphin Smalltalk X6 is an object-oriented development environment for Microsoft Windows™."
Try the "free for personal/educational use" "Community Edition" of Dolphin Smalltalk.
Getting Started, Programming Cookbook, Tutorials, ...
Squeak, like Neil Butterworth said, and hang out on squeak-dev. The beginners mailing list's a good place to ask questions.
Dolphin Smalltalk Pro is selling for USD 225. Where can I such a powerful, good that price.
My preferences are Smalltalk and Common Lisp, but the Common Lisp IDEs are expensive by comparison.
The only problem is, I'd have to use Windows, but that was a decision I already had made, after years of Linux (going nowhere in the application-selling domain).
To get started, I would recommend a seaside one-click image. Seaside is a most interesting web-framework and the image is based on Pharo. There are a number of screencasts available.
The authors of SQB expanded the book and adapted it to Pharo at Pharo-By-Example.
They have a high-volume development mailing list and a users list. For seaside you'd want the users list. Seaside also has a book and the tutorials by James Foster
which I'd recommend you to look first at.
I do not find significant speed differences between Pharo and Squeak, but Pharo is much cleaner due to its developer focus. Squeak contains a lot more interesting tidbits.
If you find the one-click image (there is also one available in a Squeak version) not fast enough, the introduction of the cog vm will improve performance by a factor two or so.
On Windows you should make sure that your anti-virus software does not try to verify the changes file each time it is written, or your Smalltalk environment gets to be very slow.
For learning a lot (not recommended to start with) you should take a look at the Moose one-click image and the book by Doru.
As Janko said, Pharo and Squeak are good Smalltalk implementations to start with, but I would also like to add Cincom's WebVelocity which is a bit different. It is a VisualWorks/Seaside based Smalltalk IDE in the browser.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I’m new to visual basic.net. I have experience in C++ programming, but never created gui with it so learning vb.net for some quick gui development. and i want to learn vb.net. I can’t install visual basic express on computer cause i’m on shared computer and such huge install is not possible on that computer. So i picked up sharpdevelop.
After searching most of the tutorial, i found out that most of tutorial written for visual studio IDE for vb and vb.net. I’m trying to learn vb.net in depth from command line to gui programs. Any good recommendation of tutorials, book ? I searched google but very few results so far. I’m looking for good learning tutorials that can help learn with sharpdevelop.
any suggestion for tutorial and books that mentions sharpdevelop in their tutorial/guide ?
Firstly - if you are thinking about heading into .net, you might want to consider starting off with c#, especially because with your background it will be a bit easier, but if you need to learn vb.net, ofc there is nothing wrong with it, just in my experience your earning potential is higher with c#, and vb.net is kind of dying out (at least in Europe).
Second point, you should focus on starting your development either for web or for win forms, this will give you a sense of direction. Learning a new language takes some dedication.
I also think you're putting yourself through unnecessary punishment by not using the tools provided by Microsoft for your development. In my experience Visual Studio, MS SQL and Microsoft Word, are the best products to ever come out of Microsoft. Even the express editions are of a good quality. If you can head over to an internet cafe and download it from there, shouldn't cause such a problem surely to have it installed on that computer, after all its going to be used for personal development, not just playing games or wasting time.
might not be the answer you wanted, but its the best advice I can give at this stage, hope it helps....!
Also this is said from personal experience, because I've been down that road, and I promise you I found developing with MS supplied IDE's much more enjoyable, and in the end, kept things viable.
I don't see how a "programming language" (like VB.NET) book is written for a specific IDE (like VS), even if the author mentions some instructions to do with VS (menus, settings, etc.), you should be able to follow along with him, because SharpDevelop simulates VS quite well.
I've never seen a .NET book which talks about doing things in SharpDevelop rather than VS, because VS is far more popular IDE, although some authors mentions the IDE as an alternate to VS.
There's a good book authored by SharpDevelop team which teaches C# techniques using their IDE, and its digital format is free, its name is Dissecting a C# Application: Inside SharpDevelop, although there's no VB.NET version, AFAIK.
Another comment, I don't see why an experienced C++ programmer would learn VB.NET, if you want to learn a robust, quick GUI .NET language, go ahead and learn C#.
Good luck,,
I downloaded Squeak, the Image file, and the Sources file, but I can't figure out how to write Smalltalk code. Is there something obvious I'm missing? Is Squeak even the right IDE for serious Smalltalk development?
Squeak is a great environment for learning Smalltalk, but don't confuse that particular implementation with 'Smalltalk'. Some of the other implementations are very professional, but not surprisingly come at a financial cost.
Squeak is an excellent IDE for serious Smalltalk development. That is not to say that it cannot be improved. The pharo guys are eleminating from the squeak image the parts you might not want for professional development.
Download (or buy) the book Squeak by Example to get started.
I don't think Squeak is really oriented towards "serious Smalltalk development". It's intended as a first programming environment for children. Which isn't to say that you can't do useful stuff with it, it's just not aimed as much towards large-scale development.
Check out the Wiki for getting started tips. It's been a while since I last used Squeak, but I don't remember it being particularly hard to get started.
Squeak is nice to learn the language and to see how creative a system like it can make people, which has two aspects: you see many interesting ideas and new concepts tried, but also a lot of junk and bad looking (some even abandoned) experiments.
I admit that, for a beginner, it may be hard to see the big picture, or if there is any at all. An example is the use of multiple GUI schemes (MVC vs. Morphic): at a time, where the mainstream is junping on MVC (they just understood in Java, what the ST guys talked about 20 yrs ago, and so they went from callbacks and AW to Swing), the Squeak guys are fed with MVC and move on, trying other aproaches. There is also a lack of "professional look" in squeak. And a chaotic community, some of which are quite ego-driven individuals.
It can be argued, if Squeak alltogether is good or bad for Smalltalk's reputation, as it certainly pisses of all those who want to write "conservative" windows apps, with menubars, icons, toolbars etc. Also performance used to be a problem (but since ELiot is working on the VM, is getting better...)
On the other side, there are wonderful applications, which are almost impossible in other environments: look at croquet (having a browser on the wall, with fishes swimming around), Etoys, Scratch, nice Seaside apps etc. And also almost all things which are now considered mainstream have originated from the Smalltalk and the Squeak community. And these guys are moving on...
So please take a look at the other Smalltalk's too: there are at least GNU-ST, Visualworks and Smalltalk/X. The later two are more biased towards blassical business apps, and the language and base libraries are almost the same. VW is not free, for commercial work, though.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
My questions is simple!
Would you start learning Smalltalk if you had the time? Why? Why not?
Do you already know Smalltalk? Why would you recommend Smalltalk? Why not?
Personally I'm a Ruby on Rails programmer and I really like it. However, I'm thinking about Smalltalk because I read various blogs and some people are calling Ruby something like "Smalltalk Light". The second reason why I'm interested in Smalltalk is Seaside.
Maybe someone has made the same transition before?
EDIT: Actually, what got me most excited about Smalltalk/Seaside is the following Episode of WebDevRadio: Episode 52: Randal Schwartz on Seaside (among other things)
If you like Ruby you'll probably like Smalltalk. IIRC Seaside has been ported to the Gemstone VM, which is part of their Gemstone/S OODBMS. This has much better thread support than Ruby, so it is a better back-end for a high-volume system. This might be a good reason to take a close look at it.
Reasons to learn Smalltalk:
It's a really, really nice programming environment. Once you've got your head around it (it tends to be a bit of a culture shock for people used to C++ or Java) you'll find it to be a really good environment to work in. Even a really crappy smalltalk like the Old Digitalk ones I used is a remarkably pleasant system to use. Many of the old XP and O-O guru types like Kent Beck and Martin Fowler cut their teeth on Smalltalk back in the day and can occasionally be heard yearning for the good old days in public (Thanks to Frank Shearer for the citation, +1) - Agile development originated on this platform.
It's one of the most productive development platforms in history.
Several mature implementations exist and there's a surprisingly large code base out there. At one point it got quite trendy in financial market circles where developer productivity and time-to-market is quite a big deal. Up until the mid 1990s it was more or less the only game in town (With the possible exception of LISP) if you wanted a commercially supported high-level language that was suitable for application development.
Deployment is easy - just drop the image file in the appropriate directory.
Not really a reason, but the Gang of Four Book uses Smalltalk for quite a few of their examples.
Reasons not to learn Smalltalk:
It's something of a niche market. You may have trouble finding work. However if you are producing some sort of .com application where you own the servers this might not be an issue.
It's viewed as a legacy system by many. There is relatively little new development on the platform (although Seaside seems to be driving a bit of a renaissance).
It tends not to play nicely with traditional source control systems (at least as of the early-mid 90's when I used it). This may or may not still be the case.
It is somewhat insular and likes to play by itself. Python or Ruby are built for integration from the ground up and tend to be more promiscuous and thus easier to integrate with 3rd party software. However, various other more mainstream systems suffer from this type of insularity to a greater or lesser degree and that doesn't seem to impede their usage much.
Well, since you mentioned me by name, I feel I should chime in.
As I said in that podcast interview, and as I have repeatedly demonstrated in my blog at http://MethodsAndMessages.vox.com/, this is "the year of smalltalk". And having now done Smalltalk advocacy for the past ten months, I can see that it really is happening. More customers are turning to Smalltalk and Seaside, and the Smalltalk vendors are all working hard to capture this new influx of attention. More larger Smalltalk conferences are being planned. More job postings are being posted. More blog postings are being made.
If you turn to Smalltalk today, you are not alone. There are many others who are out there as well.
Edit
Well, a number of years later, I'm now recommending Dart instead. It's a great language originated by Google but now owned by an ECMA committee. It runs serverside in node.js style, but also clientside in modern browsers by transpiling to JavaScript. Lots of good books, blogs, help channels, IDE support, public live pastebin. I think it's definitely got legs... enough so that I'm writing courseware to teach it onsite or online, and I'm pretty sure there's a book or two in the works from me. And Gilad Bracha, an old-time Smalltalker is a major contributor to the design, so there's a lot of Smalltalk in Dart.
Smalltalk is a good language to learn, and the great thing is that it only takes a day to do it. It's a lot more than just an academic language. People are building huge, scalable, replicable applications handling billions of dollars. They just don't talk about it much. See, for instance, GemStone and Orient Overseas Container Lines:
A Shipping Industry Case Study.
Seaside is a good reason to learn Smalltalk, but I don't think you'll find it orders of magnitude better than Rails.
The thing that convinced me was GemStone. I really like Gemstone's GLASS (GemStone, Linux, Apache, Smalltalk, Seaside). The killer part of that is GemStone, which handles all the object persistence for you mostly without you thinking about it. Seeing some of their demos and hearing about what people are doing with GemStone reset my idea of what "big application" meant.
The part that bugs me the most about Rails is the object-relational mapping. That's nothing against Ruby because it sucks just as hard in GLORP (which handles ActiveRecord for Smalltalk), or Perl, or anything else. Mapping objects to database tables is just painful. With GemStone, thinking about the database disappears, so the work with the database disappears too. It's like a huge stone (or a troop of monkeys) is taken off my back.
> couldn't find a Smalltalk development environment that didn't cost both arms and a leg
Google - free smalltalk
Cincom Smalltalk, Squeak, GNU Smalltalk
Learning Smalltalk will give you a grounding in object oriented software development from the perspective of the man who invented OO (Alan Kay). The idea of a overlapping windowing environment came from Smalltalk.
A stumbling block to learning Smalltalk is that it is a message passing system with a strange syntax for flow control like:
i < 60
ifTrue: [ self walk ]
It has a very mature class library that has a consistency I've not seen too many places. The class library in all environments (even commercial Smalltalks) has available source which allows you to learn from the masters of the language. When programming Smalltalk, I always ask the question how is it done in the environment.
Smalltalk is generally implemented in an image which is a live environment for all the objects in your system.
The interactive debugger really seperates Smalltalk from Ruby.
Seaside is the web development framework and has given Smalltalk a new spotlight. It is a continuation based environment that allows for intra-hit debugging and a smooth Rich Client type development experience (top application flow can be designed in a single method). It's integration with script.aculo.us has been done in such a way that it is easily called from within Smalltalk.
Nigel, one quote I have is this:
Although it's now a long time since I did anything with it, I nominate Smalltalk, I still haven't come across anything quite like it for being able to transfer thoughts into computer code. It's not just the language: It's the wonderful browser environment, the libraries, and the culture of writing clear, well-designed code as quickly as anything else can crank out spaghetti. When the participants at JavaOne were extolling how Java was so much more productive than anything else, I needed a brown paper bag. Oh well, back to sorting out my classpaths... -- Martin Fowler (Software Development Magazine, Jan 2001)
I found it here.
Would disagree with the poster who reckons you wouldn’t use Smalltalk for large apps – that’s precisely where it shines. But I have created fairly groovy (note lowercase) prototype apps in under a week too.
I learned OO in ST starting in 92, incredibly glad I did so. It gave me a real background in OO. Thinking in classes. No types. ST has a real emphasis on messaging. If you want to know something send an object a message and get an answer. IMHO, the ethos and the IDE really encourage you to do the right thing with your coupling and cohesion.
In my Java day job, I’m stuck with files, generics, IDE’s like eclipse that are orders of magnitude less productive that any ST IDE. I was using ST the only time I finished a development ahead of schedule. In fact it was so productive, and we got so much reuse I had to be moved off to another project, as I had nothing to do! (Ok, maybe I could have spent time learning to estimate...)
Download squeak, find a good book and play. Only downside is that if your day gig is using Java or C#, you’ll end up wishing you could use ST. You’d get home sooner.
Chris Brooks
I recommend everybody to learn Lisp (Scheme) or Smalltalk.
Smalltalks have wonderful IDEs which you dont want to miss once you got over the culture shock. And yes, there are more than one free ones: Squeak, Dolphin, Smalltalk/X, and Visualworks (Non-Comercial).
Lisp may be even cleaner in its mathematic foundation, though.
regards
PS: actually I recommend learning both !
I do not know Ruby..
Smalltalk is a pure OO language. If you feel the need to really understand OO, and not just the simulated OO of most popular 'OO' languages (like C++, Java, etc), then I would recommend that you play with smalltalk.
In smalltalk everything is an object, with attributes, behavior and meta. In the simulations you have data types that you use in your objects.
I would say play with it, you will only benefit.
I'm totally in your shoes. Im using RoR and looking into Smalltalk land. Here's some pros & cons I find important:
Pros:
Mature & stable environment
Fast development cycle
Makes you think more and write less
Cons:
Requires different thinking
Still didn't quite grasp it
It's quite funny how I got to know about Smalltalk. It was this one thing that keept popping up in Google results when searching for Lisp and Erlang stuff. One day I checked it out and was amazed with nice windows environment. Few moments later I've found Aida/Web framework. I was hooked and started learning Smalltalk through web development with this framework.
Still not quite there, but it's so damn interesting I just can't sit still... :-) I'm having fun again.
Would not start learning it if I had the time. Why not? Because it would be more productive and lucrative financially to learn C# or Java.
On the other hand if your a hobbyist, and would like to go on an archeological dig, then I'd suggest spending some time looking at the What, When, Why and how of smalltalk by researching Alan Kay. Fascinating story and an incredible person (after all, he earned the Turning Award). Then maybe play with squeak a little to get a feeling for the language. After this you might have a newly found respect/understanding of blocks, closures, and Object Oriented principles.
I know and use Smalltalk, have for about 15 years, still maintaining it, and would not recommend Smalltalk to a friend. Why not? Employment is a good thing to have and keep getting. Although you can learn a lot from Smalltalk you can't easily turn that into gainfully being employed in this day and age.
Also, you appeared to be excited over Seaside and I would assume the Seaside/GemStone partnership. I've used GemStone for quite some time and the two together are very appealing. I hope they can get the market share and momentum required to be successful.
Don't! If you really start learning it, you might not want to programm in something else anymore ever.
This may be not true, if you are a lisp programmer.
Absolutely, learn Smalltalk! This is 2015 and Smalltalk is on the rise again, thanks to Pharo. Pharo is FREE. Pharo is evolving quickly into a powerful enterprise tool. At Version 4.0, and soon to be 5.0, it has matured a great deal in just four years!
Then there's Amber, which is Smalltalk for the web. It's also FREE and evolving quickly.
Despite Smalltalk's reputation, this is not your father's Smalltalk. Modern Smalltalk is exciting and promising.
It's true that Smalltalk jobs are not (yet) plentiful. But if enough of you aggregate to a new wave of Smalltalkers, then the industry will adapt to it and we'll see wider adoption of Smalltalk in business. The question is, do you have the vision?
I was taught Smalltalk in one of the first graduate college level Object-Orient Programming courses (circa 1988). The teacher thought it best to start was a "pure" OO langauge,before moving on to a more trendy one (we did a bit of C++ at the end of the semester).
By that measure, it's still best to start with pure OO, although these days we have Java & C#, both of which are "nearly-pure" OO -- close enough that you can get by ignoring the non-OO features of them, and limiting yourself to the Pure-OO subset of the langauges.
If you want a better understanding of Extreme Programming (and even Scrum) I'd say yes.
Why impatient Java programmers need to learn Smalltalk:
http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/
I've been a software engineer for quite a few years now. I've heard people bring up Smalltalk a few times, and certainly Smalltalk has been around since about 1980, but it's one of those languages that's never seemed to make it into the software mainstream. Sort of like Objective C, CLIPS, PL/I, etc--something you may have heard of, but something that most folks have never programmed in.
I probably wouldn't take the time to learn Smalltalk unless I needed to for a particular job. I looked at some Smalltalk tutorials and examples briefly a few years back, and it looks like it has some clear advantages for certain aspects of OO programming (like the message concept seems cool). But sadly, it is not mainstream, and doesn't seem to be gaining much momentum.
This thread has become very actual for me. I'm planning for a Software migration to a web-application. It's a database based software. I'm especially checking the alternatives
1) Rails
2) Seaside
If I can get the figures for the Gemstone/S as Database, I'll consider that also. So for me it means I have to learn Smalltalk (better) than before. Because it could be that it will be my work for the next 15 years. You would (and should not) work with software you don't like for that long ;-). I've the impression Gemstone/S is one of the "killer" applications. But persistence of Objects still is a very difficult field....
1) Yes! It's always good to learn a language. If you are going to learn a language, make it a powerful, influential language that can be learnt easily and quickly.
Smalltalk remains a pre-eminent language and environment for learning OO concepts.
It is all objects, all the way down. This makes for a really consistent approach to working.
Integers are instances of Class Integer. Strings are a collection of character objects. Classes are singleton instance objects for the class they define.
Control structures work by sending get messages to instances of Class Boolean.
Even anonymous methods (blocks of code, aka blocks) are objects.
Everything is done by sending a message to an object. The syntax can be fitted on a postcard.
The clarity of the concepts and their implementation in Smalltalk mean that you can develop ways of thought which transfer directly into Java, Ruby and C#. I expect it's true for Python, too.
It's so good for making the concepts clear that a major UK University used Smalltalk to train 5,000 people a year in object-oriented computing.
Squeak 5, has just been released. It has gained major performance increases from its new Cog/Spur VM, which features with progressive garbage-collection.
Pharo 4 has a lovely clean-looking desktop theme. The next version, Pharo 5, will be released soon. It will move to using the Cog/Spur VM, it will have about 5,000 classes in the release, and additional packages of classes are readily available from the net via the Configuration Browser tool.
Squeak 5 is performant even on first-gen Raspberry Pis, and is almost 50% faster on the new $5 Raspberry Pi zero. $99 buys you a Raspberry Pi 2, screen and case - running a mature, fully feature-complete IDE.
Leading edge research is being done on co-ordinated, distributed OO systems in Smalltalk (e.g. Naiad and Spoon).
Some of the world's largest corporate databases are run on Smalltalk - including tracking of 60% of the world's shipping containers, and trading systems in the world's largest bank.
You can use Smalltalk as a sort of super-powered CoffeeScript, writing in Amber Smalltalk and transpiling to JavaScript, running in the browser.
Squeak, Pharo, and Amber are all Free, Open-source, open-licenced languages and environments.
Squeak and Pharo provide write-once, run anywhere facilities for MacOS, Windows and Linux. (Possibly RiscOS, too).
Dolphin Smalltalk is targetted firmly at native Windows look-and-feel, and lets you compile closed .exes of your finished work for distribution to end users. Further development of Dolphin by the vendor has stopped, but it is completely functional, and, like all Smalltalks, designed to be massively extensible. (Did I mention that Pharo now has 5,000 classes, compared to Squeak's 3,000? Pharo is a fork of Squeak 3.9)
**There is a How-to guide for installing and starting Squeak, Amber, Pharo, Cuis and Dolphin at: **
http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html
The Seaside web framework runs on Squeak and on Pharo. It's a wonderful mature tool, as is the more traditional AidaWeb framework.
VisualAge, VisualWorks and Gemstone all provide enterprise-grade robust systems. Gemstone provides an infinitely scalable object database with transactions and persistence.
2) Yes - I do already use it.
I learnt it via the Open University, and was immediately productive in Ruby (a copy of the Pickaxe book and the library reference by my side). It helped me enormously with Java, and with Xerox Moo-code.
I have just returned to it to write apps to control manage and distribute responsive, massively multi-platform mobile apps.
I expect that soon I'll be re-writing my JavaScript mobile apps using Amber, too.
I don't really know what you're looking for.
If you are looking for a different language to write in, I'd think that would depend heavily on the libraries available. I know neither Ruby nor Smalltalk, but it seems likely that the most efficient way to write Ruby on Rails-sorts of applications may not be Smalltalk.
If you are looking to learn the ideas behind Ruby, this might be a very good move. I don't have anything quantitative, but I always felt better about using tools (such as language systems) if I knew more than just the tools, if I kmew the ideas behind them or how they worked.
If you want to learn different sorts of object-oriented languages, you might well want to learn Smalltalk (if it differs significantly from Ruby), something like Java or C++, and perhaps also the Common Lisp Object System.
If you just want to learn something different, Smalltalk may well be a good choice. I'd also suggest Common Lisp, and other people will doubtless have other suggestions (can you get a good Forth system nowadays?).
Yes, I'm interested in it. Tried to start once already, but couldn't find a Smalltalk development environment that didn't cost both arms and a leg.