Pharo 2.0 Released
pharo-project.org
pharo-project.org
I had to come here to learn it was a Smalltalk environment.
Glad to see Pharo making such excellent progress - they're doing wonderful work.
Really, being involved in this is like being tied to a rocket surpassing escape velocity.
Check the real meat here: http://code.google.com/p/pharo/wiki/ActionsInPharo20 https://pharo.fogbugz.com/default.asp?W7
I'm a CS student taking a programming languages course, and for our term project we need to learn a new programming language, write a small project in the language and write a paper on its implementation, features, strengths, weaknesses, etc. After reading about an awful lot of languages, I thought Smalltalk would be an interesting choice, at least on the implementation side, given its relatively unique image-based system, not to mention having a graphical component, essentially an IDE, at the core of the environment.
Since Pharo seemed like the most popular choice, I decided to give it a shot. I was excited to get started, so I figured I could download the "one-click" for version 1.4 and get started right away. After extracting the zip and being given a .app folder, I thought I had mistakenly downloaded the Mac version. Nope, the website clearly says "For OS X, Linux, and Windows". Right off the bat this shows that Mac is probably the "first-class citizen", and it definitely doesn't show that the developers know how to properly distribute their software for multiple platforms (whether or not it's true, that's what it looks like). Since my platform of choice is Linux, and having seen the half-hearted attempts at supporting Linux from so many vendors so many times in the past, I started to get a bad feeling.
I found the README, whose only information is to run the .sh file included. I ran it and was given the helpful message that the "Contents/Linux/pharo" file was missing. Finding that hard to believe, I navigated to where that file was supposed to be located and, sure enough, there it was. After doing some detective work, I found the reason for my missing file message was due to the pharo binary being built for 32-bit systems. NOWHERE on Pharo's home page or download page is this apparent. No warning is given to the new, unsuspecting, 64-bit-OS-having user.
If anyone involved with the Pharo project is reading this, please understand that this is unacceptable. In 2013, if some software is built for 32-bit OS's only, the user should not only be warned before they decide to download the software, but something less cryptic than a misleading "file not found" error when trying to run the software would be helpful. I guess I can't say for sure, but to me this looks like almost no effort was put into helping new users get started.
Still somewhat determined to get this thing running, I installed an incredible amount of 32-bit libraries. Still no luck. I got to the point where a "could not find module vm-display-X11" is displayed. The file does exist, it's just another case of the 32-bit library blues. I installed some additional X11 32-bit compatibility libraries, but still had no luck.
Unable to justify wasting more time getting this thing working, I just gave up. I really wanted to spend some time with Pharo, but I guess the developers don't care about newcomers who don't already know the in's and out's of the system. I'm sorry, but if you want any sort of Smalltalk comeback that I've been reading so much about, this is absolutely NOT the way to do it.
I hope that you'll be able to install that by doing apt-get pharo and be done with it in the near future.
But the 64 bit and 32 bit Linux thing is not really Pharo's fault. A ton of software give problems in Linux 64 if you don't have the 32-bit libraries.
Thanks for the feedback, it is much welcome.
In the meantime, you may be better off with a zeroconf script.
http://pharobooks.gforge.inria.fr/PharoByExampleTwo-Eng/late...
This will also give you the option to run things headless and with a set of very nice options.
Some measures have been taken especially if you run from the commandline use the zeroconf scripts from http://files.pharo.org/scripts. However still some issue remain that are currently not nice!
- no full 64bit support (will be addressed but with a 32bit image format this isn't that straight forward) - missing warning to install 32bit libs under linux (workaround on the way) - proper packaging (rpm / deb) which installs the dependencies is missing (also, there are some attempts there) - you have to explicitly tell the VM to run headless or not (I honestly don't know why! :D)
All in all you caught us, we mostly develop on mac, however our test infrastructure is running on linux hence imperatively Pharo has to run under linux. Yet there is some need for proper explanations, installation requirements!
"yep, I'm already addressing some of the good observations this guy made. In particular, I'm a long time enemy of the one-click images, so I'm killing them (and replacing it for more suitable platform specific builds)." ... "The new scripts produces structures that can fit better into the platforms where they will run.
You can check them here: http://files.pharo.org/platform/
Maybe have another go?
What's missing to have a "nice" (working?) configuration for Pharo 2.0?
But if you like dynamic languages, and being highly productive with a "years ahead" development environment, then Pharo is a good alternative.
Many of the features you see added today to mainstream IDEs, have a background in Smalltalk. Even in Chrome Debugger the "code hot swap" is a showcase feature, whilst Smalltalk have it since decades.
And of course, Smalltalk provides features that no other environment/languages provides yet. So if you want to take advantage of those now, instead of waiting for them reaching mainstream, then it matters to use it now.
Features like those provided by Moose (http://moosetechnology.org/) will take years to be available as an Eclipse Plugin. :)
But beyond that, I think the whole reason Pharo matters is that its team is doggedly bringing Smalltalk out of the historical context. Pharo has libraries for things like XML, JSON, OAuth, Redis, and OpenID so that you can interact with other tools. It has support for command-line applications, comes with an easy-to-use C FFI, and sports a fast JIT so that it's usable for real applications. It has rewritten libraries for speed, breaking backwards compatibility where necessary, and has completely overhauled the UI, while keeping all the pieces that made Smalltalk great. So part of why Pharo matters is that it makes Smalltalk a real, modern language, that can trivially integrate with the massive ecosystem that is existing software. No longer is Smalltalk living in its own little world; it now plays well with others.
As for Smalltalk itself: it still has valuable lessons, even today. Smalltalk is the only system I know where I can trivially save the running app to disk and open that running app, complete with all of its state, on another system to debug what went wrong. It still has some of the best debugging and development tools of any environment I've used for any language. Smalltalk in general, and Pharo in particular, is still one of the most solidly turtles-all-the-way-down environments I have used in my life, where there's no meaningful distinction between your app, and the core system libraries.
Smalltalk may not be for you, but Pharo makes it a genuinely viable choice for real-world development.
That doesn't seem right to me.
There are several open-source Smalltalks that have some of these things, but I believe that Pharo is the only one that does all of them. For example, GNU Smalltalk is the only other Smalltalk I know that has a decent command-line interface, but it lacks a JIT. (If I have this wrong, hopefully Paolo will correct me.) You can absolutely use Squeak to write real-world applications, but the last I checked, you still had to either use the older, slower FFI or write a plugin if you wanted to call C, and the official distributions still do not include a JIT. Cuis is largely a subset of Squeak, and therefore has similar features and drawbacks, and so on and so forth.
If you go closed-source, you do have more options. VisualWorks has a good C FFI and a fast JIT, and might have a great command-line interface (I honestly don't remember), but it's not even free-as-in-beer for hobby projects anymore. Dolphin is likewise fast and has great COM bindings and good libraries, but is proprietary, and has disappeared and come back enough I'm not entirely sure I'd feel comfortable spending money on it.
So, yes, you're right, there are other Smalltalks that fulfill some of these requirements, but Pharo is, as far as I know, the only open-source one that fulfills all.
Nonsense.
"3. License Fees. This license is granted to you for your personal use only. Therefore, no license fees are involved, unless you breach the terms and conditions of this Agreement."
http://www.cincomsmalltalk.com/main/developer-community/tryi...
>> Dolphin ... I'm not entirely sure I'd feel comfortable spending money on it. <<
So don't -- "Dolphin Community Edition is our Smalltalk development environment that is FREE for personal/educational use."
(I didn't ask about Pharo, I complained about promoting Pharo by dissing other Smalltalk implementations.)
Excellent news from the Pharo team! It's the most fun I've had playing with computers for almost a decade - Long may it continue!
Also, on iOS and OSX, one can use a WebView in the VM which is showing HTML/JS genereated amber served from the image.
That's close late binding.
If you never heard of Smalltalk, you can google it. But as a summary I can tell you it is the father of Object-Oriented Programming, BitBlt, the Model-View-Controller pattern, the Unit Testing practice (SUnit), the Refactoring engine, among other things people take for granted today.
I see a lot of mentions of Smalltalk on this page yet 'Smalltalk' doesn't appear on the Pharo home page.
Am I missing something? If I'm not already familiar with Pharo, am I simply not part of the intended audience?
Basically it is a programming language + ide + image based virtual machine.
Huh? Are we looking at the same page? On the home page I see "Pharo's goal is to deliver a clean, innovative, free open-source Smalltalk-inspired environment."
(Note that the HN link is not to the home page, but to the 2.0 download page.)
I ask because I tried running "System update" and that errored off. If I am using an old version of "2" then I will go to the trouble of re-installing and reloading my little project.
During the beta update process it might happen that one or another update fails. Usually that should not happen though.
So: it only took me a minute or two to fileOut my application packages and reload them and data into a new image. I should have done this in he first place :-(
Serves up a bigger notice of stuff that will happen in the next two years... Smalltalk is definitely on upsurge, if Pharo beats up the drum and the momentum like this.
Will look forward to fervent Smalltalk with Pharo in the decade ahead.. through all enterprise works..
Just be careful: once you get deep enough into the beauty of Smalltalk, you will be changed forever and it will be hard to go back.
The current development environments still have some catch up to do with the Smalltalk and Lisp machine offerings.
The only environment I know tried to replicate a similar experience is the family of Oberon operating systems, because Wirth wanted to explorer a similar experience, but using a strong typed language.
Great work!
I see a description is in the title of the page, but that gets cut off in my browser.
"I do enjoy Pharo" is also not a very helpful quote, especially if I don't know who Kent Beck is.
That says more about the ability of your teacher or the fact that you have some kind of history of abuse by whoever than about the Pharo system.
I guess if he would have used Lisp, you'd dislike Lisp, if it was C++, you'd hate C++.
What are you using, out of curiosity?
As someone in a corporate setup, used Pharo since three years as the introductory environment, I realize the pain he feels. It was really brittle for a newbie, it took a while for newbie's work with crashes, recovering code, red boxes with a cross over it, lack of decent FS access, lack of access to code snippets they could simply copy paste and feel good about having some working stuff. There are operations it was slow in..
I then focussed on principles of programming, OOPs, showed them the beauty inside Pharo, feel of the debugger, ironed out the issues they faced with stuff they should not do, how to quickly recover lost code etc..
Showed some cooler stuff like tablet like interface, new IDE interface for code browsing/ writing, interactive UI creation as quick hacked code in a day... that they experienced the difference from Java / C / C++.
Showed Groovy as the Smalltalking Java.. and why its even more cool in Pharo if they bite in deeper.
Even for algorithms, they picked up greater ability than they had in C, but despite it all, there is still peer pressure, some rough edges Pharo will probably take the year ahead to iron out. Then we can stem critical reviews of this kind naturally.
"Pharo-Smalltalk" is a nice, comforting IDE, platform and a language and should be as inviting, easy and natural language to everyone, which is the target the Pharo Team has in my opinion leaped over to since 2009 in great measure. More power to the team to do better in the year ahead.
I will try to do my bit in this year certainly to bring in the past years effort, refactored as required.
Love to see if we get the tide rising by next year, for hordes of converts and new developers.