9 ms·
Pharo 4.0 Released
- estebanlor 11y agoPharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.
- svc 11y agoGreat ! Congratulation to the whole Pharo community.
- philippeback 11y agoYeah! Pharo, the 1500HP engine for livecoding.
- seanmcdirmid 11y agoIs anyone using a smalltalk for live coding? It seems like the toplap community [1] who claim to be the home of live coding, are mostly into LISPs. [1] http://toplap.org http://toplap.org
- fstephany 11y agoBasically all Smalltalker do live coding. It's not live coding in the sense of building a scene or composing music tough. The parent probably means live coding his app. If you do Ruby, think about creating your whole program in IRB. You can dump the memory anytime and reload the dump to continue from where you left. Coding in IRB means that you have access to all the introspection and dynamic analysis while you're coding.
- seanmcdirmid 11y agoThe meaning of live coding is quite specific, I mean, there is toplap and even a whole conference on it coming up. Gilad Bracha likes to push live programming in smalltalk via his newspeak work. No time travel though, which I don't think is supported by any smalltalk environment yet (you can change code via fix and continue, or objects via direct manipulation, but code changes do not update objects retroactively). So the Bret Victor style of live programming probably isn't supportable (without changes to be model/runtime).
- igouy 11y ago>>but code changes do not update objects retroactively<< Can you explain what you mean by that? iirc You can step back through the execution stack in the debugger, change code or variable values; and when you resume the new code is used and the new values are used.
- amarsahinovic 11y agoUpdated Pharo by Example book https://github.com/SquareBracketAssociates/UpdatedPharoByExample https://github.com/SquareBracketAssociates/UpdatedPharoByExa...
- kilon 11y agohere is the pdf https://ci.inria.fr/pharo-contribution/view/Books/job/UpdatedPharoByExample/lastSuccessfulBuild/artifact/book-result/UpdatedPharoByExample.pdf https://ci.inria.fr/pharo-contribution/view/Books/job/Update...
- klibertp 11y agoThe changelog is here: https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo40ChangeLogs.md https://github.com/pharo-project/pharo-changelogs/blob/maste... Things that I find especially interesting, from new stuff: > TxModel, a modern text model who works with Athens (Preview) This is very, very nice. New text model was in the works for quite some time now and I'm glad it finally landed. Easy and powerful text editing is important, even in primarily GUI-driven environments. Pharo was a bit behind the times in this regard, which resulted in, for example, Shampoo (http://dmitrymatveev.co.uk/shampoo/ http://dmitrymatveev.co.uk/shampoo/). > OSWindow, a new way to handle windows and input events (Preview) This allows for creating OS level windows from inside Pharo. IIRC it's supported only on Windows right now, but it's a very nice feature and will make creating apps that "look natively" easier. > Slots model instance variables as first class enities and enable meta-programming on this level. This looks rather important and I remember reading about it some time ago. There's a paper about it: http://scg.unibe.ch/archive/papers/Verw11bFlexibleObjectLayouts.pdf http://scg.unibe.ch/archive/papers/Verw11bFlexibleObjectLayo... - I'll need to read it again now that it's implemented. Then there are updated things, all very nice too. Congratulations to the team and contributors!
- estebanlor 11y agoOSWindow is working nice for the three major platforms, using a SDL2 backend.
- logicchains 11y ago>Slots model instance variables as first class enities and enable meta-programming on this level. That sounds similar to Self, where everything was expressed with slots, including instance variables. I believe Self also had a way to mark slots as immutable, which would be an awesome feature to get in Pharo.
- lispm 11y agoIt still has a strange non-native user interface. Why would I want another window system in a window in 2015?
- deleted 11y ago[deleted]
- schemezealot 11y agoSo does iTunes on windows and Qt (since v. 4) on everything. But I agree the single-window MDI is a major drawback. I keep checking out Pharo periodically and hoping a UI with multiple, native windows will be present or at least in the works, but sadly that is not yet the case. There was actually a project many years ago for Squeak to give it native OS windows called Cheese, and the Squeak people, if you can believe this, actually told the author (Boris Shingarov) not to bother, and that if he wanted native windows, he should go use some other Smalltalk instead. They actually preferred their ugly, unprofessional, cartoonish UI that nearly everyone new to Squeak complained about. I think Pharo is on the right track, but it's sad the developers have to spend so much time paying off the technical debt the Squeak project ran up.
- estebanlor 11y agoWith the new OSWindows you can create multiple native windows. But... this is cool to allow people to do their stuff, but it does not match very well with the development philosophy of Pharo, where we open many windows at the same time. Imagine 20+ browsers, inspectors, playgrounds opened, all mixed with your regular browsers, mail, any kind of applications and you will understand why we prefer to keep the MDI. Said that... we actually want to support SDI also for development (optional for users), but this is a lot of work and will take a lot of effort. But we'll arrive there, with time (and help).
- schemezealot 11y agoMultiple (native) windows + tabbed browsing is IMO better than a single-window MDI. Remember Linux and other Unix desktops already support multiple virtual desktops to manage many windows; you shouldn't try to reinvent this in Pharo.
- plinkplonk 11y agoDid the compiler overhaul happen in this version?
- estebanlor 11y agoit happened previous version (3.0), this version we started to actually use it :)
- plinkplonk 11y agoVery nice! I missed that. Thanks!
- zura 11y agoAnyone using this professionally?
- logicchains 11y agohttp://pharo.org/success http://pharo.org/success
- StevePerkins 11y agoNot having heard of Pharo before 10 minutes ago, I wish this website did a better job of explaining what it is. "... an object-oriented programming language and a powerful environment... (think IDE and OS rolled into one)" An IDE and OS rolled into one? What does that even mean? I had to go to Wikipedia to learn that this is basically a modern Smalltalk implementation. So why not just say that on the main page? I once took a glance at IBM's Smalltalk about 20 years ago (in fact, these IDE screenshots remind me of the "VisualAge" IDE that eventually morphed from Smalltalk to Java and was then re-invented as Eclipse). However, I don't know enough about Smalltalk itself for this website to be informative. Does it compile to executables, or does it require an interpreter or VM at runtime? Can applications be built from command-line (or a build script on a CI server), or is it tightly coupled with the IDE? The Wikipedia article mentions some web frameworks, but the Pharo website shows screenshots of what appear to be desktop GUI applications (or maybe data visualizations running inside the IDE, a la R with RStudio?). Maybe someone with some hands-on experience could provide a TL;DR, for those who aren't willing to read the full book just to get a high-level sense of this?
- schemezealot 11y ago"Does it compile to executables, or does it require an interpreter or VM at runtime?" It looks like they are still using (since 2010) the COG VM, which is a fast jitting VM, but I think they have others in works to replace/improve it.
- kilon 11y agoCOG JIT VM is still the main VM, though the old one is also supported for mobile platforms like Raspbery Pi. There is also work to move Pharo to 64 bit.
- fstephany 11y agoThey hesitate to include "Spur", a new memory manager in the VM. Check Clement Bera's blog post for more: https://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/ https://clementbera.wordpress.com/2014/02/06/7-points-summar... This is the first step towards a 64bits VM (yay!)
- agentultra 11y agoAwesome work! I gave Pharo a test drive a few months ago and was pleasantly surprised when I had a little window with a table listing out all of the links and titles on the front page of HN in an afternoon. I really enjoyed the experience of "filling in the blanks," style programming that it introduced to me. I just started by instantiating an object and calling the entry point method... and landed in the debugger. But I was able to fill in the missing methods and data-structures until it finally came out of the debugger and I had a working application. Can't wait to check out the release notes. I highly recommend spending an afternoon with it just to see what can be done.
- jsgrahamus 11y agoI installed this for Ubuntu 12.04. When I fired it up, it requested I choose and build a source file (different from Pharo 3). Then when it started, it said, "Pharo cannot locate the source file named /usr/lib/pharo-vm/PharoV40.sources. Any ideas what to do? TIA, Steve
- seandenigris 11y agoI forwarded you question to the dev list
- dcassou 11y agoSorry about that. The Ubuntu PPA is not yet up-to-date. Please download http://files.pharo.org/sources/PharoV40.sources.zip http://files.pharo.org/sources/PharoV40.sources.zip and extract it in /usr/lib/pharo-vm/PharoV40.sources. You may have to throw your image away and start a new one.