19 ms·
Pharo 7.0 released
- deleted 8y ago[deleted]
- svc 8y agoA significant milestone, worth exploring for getting a new perspective on working with objects. Congratulations ! Sven
- norberthartl 8y agoFinal steps have been taken to make it useful from small devices up to enterprise usage. Still the best working environment ever encountered. Congrats to this gem!
- butterisgood 8y agoBeen a fan for years of this work - though distant. I’d love to get more time to really build something interesting in Pharo.
- vanderZwan 8y ago> IoT is now an important part of Pharo. Installing PharoThings (https://github.com/pharo-iot/PharoThings https://github.com/pharo-iot/PharoThings) provides an impressive amount of tools to develop applications in small devices. On that GH repo[0] I see: > Raspberry driven by WiringPi library > Arduino driven by Firmata, soon > Beaglebone, soon Has anyone played with this? [0] https://github.com/pharo-iot/PharoThings https://github.com/pharo-iot/PharoThings
- ben-coman 8y agoI haven't yet. Plan to soon. Here is a demo... https://www.youtube.com/watch?v=ezfjditHjq4&t=344s https://www.youtube.com/watch?v=ezfjditHjq4&t=344s
- AllegedAlec 8y agoI have Pharo installed on my laptop to try some stuff out with it, but I haven't gotten around to it yet. Maybe this is as good a time as any to start it up again.
- collyw 8y agoFirst time I have heard of this. What does it offer that other languages don't? What are the downsides?
- snazz 8y agoPharo is the most actively developed and used Smalltalk environment. There’s plenty of evangelism and information on the Web about it in a similar way to Lisp. Pharo takes the “integrated” in IDE to a whole new level, which is one of its selling points. You can find plenty more information about how Smalltalk-style OOP is superior to Java-style OOP, so I won’t rehash that here.
- sigzero 8y ago> Pharo is the most actively developed and used Smalltalk environment. Is that true? VisualWorks isn't used more places? Where are you getting that information from?
- d-mason 8y agoOne of the key words in that statement was "actively developed". Cincom, Instantiations, and GemTalk have some great people working on them, but Pharo7 had 75 different people contributing - including probably almost as many full-time people as the commercial developers (maybe more).
- sigzero 8y agoI love Pharo, so don't take this as me trying to take anything away. Cincom "actively develops" VW as well. I keep in touch with that side just for my own information. Pharo is doing a phenomenal job.
- collyw 8y agoI didn't get that it was a version of Smalltalk from the linked page. I have heard of Smalltalk and it does get a lot of positive attention.
- shubb 8y agoWhat is this thing - is it a programming language or an operating system or a desktop environment?
- verytrivial 8y agoYes. (/SmalltalkHumor)
- Godel_unicode 8y agoI honestly think this is one of the main barriers to smalltalk being more widely adopted; the meta is almost completely impenetrable to outsiders.
- coldtea 8y agoWhat's Emacs?
- 4thaccount 8y agoFully extensible editor written in a lisp dialect. Old and good with regular updates. Rival to Vim.
- sus_007 8y ago"Pharo is a mininal, elegant, pure, reflective object language with a goal to deliver a clean, innovative, free and open-source immersive environment." [1] [1] : https://pharo.org/about https://pharo.org/about
- ben-coman 8y agoMostly consider it a programming language and deeply integrated development environment. However its a flavor of Smalltalk which ran as the operating system on mini-computers circa 1980s. Pharo retains some of that influence. For example the whole runtime state of your application can be saved to disk and moved around like you would move a VMWare image.
- Gene_Parmesan 8y ago
- thekingofh 8y ago"Everything's an object" is object oriented programming done right and I can see why Ruby and other languages used those ideas from Smalltalk. I couldn't understand the fascination with the integrated environments though. It was my biggest stumbling block. Is there a pathway to use Pharo with my traditional tools?
- Tomte 8y agoIf you want Smalltalk without the image, GNU Smalltalk is probably your best bet.
- infinite8s 8y agoIt's more than "everything is an object", though. It's "everything is a live object", which is why you need the entire integrated environment with it.
- pavlov 8y agoYes, that's the real point of Smalltalk. I'm incredibly frustrated by environments like Ruby on Rails which pay lip service to the idea of "everything is an object" — but those objects are just a cesspool of hollow non-evolving throwaways that get built up and torn down on every request. It's the difference between a castle made out of toy blocks and the Buckingham Palace.
- dmux 8y agoThe liveness of the environment is really stellar. Other languages have REPLs, but once you've entered your code, it gets compiled and saved in some internal format. In most languages I've tried, there's been no way to retrieve the originally written code. That's possible with Smalltalk.
- krylon 8y agoThat was a real eye-opener for me. In most languages (Java, C#, ...) the standard library is like a mountain range - you can climb it, but you cannot change or move it. In Smalltalk, it is like a living room, where I change or move the furniture around as I please.
- klibertp 8y agoDetailed changelog: https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo70ChangeLogs.md https://github.com/pharo-project/pharo-changelogs/blob/maste... Sounds incredible! Git integration and related code management changes are especially nice, 64-bit by default is great and support for binary packages is also important. New, extensible code browser (Calypso) also sounds impressive, but I'll have to see it in action first. Pharo is an incredibly productive environment. Fully inspectable everything (on the language level, but also on GUI level - you can inspect all kinds of widgets interactively) and the Debugger where you can define your logic as needed make for incredible programming experience. Plus, it's Smalltalk, which is a beautiful language in its own right. With this release, it looks like Pharo may finally become more than just a toy. Looking forward to it!
- lukego 8y agoGToolkit is also an exciting new development that's happening in parallel with the mainline Pharo. This is a reimagined programming workflow for Smalltalk with new UIs for coding, debugging, documenting, example browsing, testing, etc. Likely the best bits of this environment will be cherry-picked into future Pharo releases, but meanwhile it is available here at https://gtoolkit.com/ https://gtoolkit.com/ and I for one am building an application on it.
- vanderZwan 8y agoAre there any screencasts or similar videos out there? Looks promising but it probably "clicks" more if you see it in action with a more complete example.
- nudpiedo 8y agoWhere does the Pharo runtime run? To which platforms can I bring its solutions? are these standalone binaries or can I create libraries or code which play well with other languages and systems? Every time I look at a programming language, and at the HN it is every second day, I think about what kind of problems can it solve, and for what kind of platforms these compile/run their runtimes.. and surprisingly not many programming languages inform properly about the most basic feature, and prefer to go deeper into their.
- nudpiedo 8y agoWhy the downvotes? is there anything wrong in my question? I read the webpage and the answer is nowhere (at least I could not find it), and looking at the docs is not so easy to find this information, it seems that I have to get deep in a chapter of a book or a video in order to find out whether this tool has anything to do with my work, tool or area at all. Does it compile to other platforms? Binary code, compile to C, to LLVM? Does it compile to other VMs like Java and it is compatible with javascript engines? For me this is a basic aspect of a language.
- Tomte 8y agoThe download page clearly shows Windows, Mac and Linux.
- stunt 8y agoTheir website is down atm. https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo70ChangeLogs.md https://github.com/pharo-project/pharo-changelogs/blob/maste...
- ben-coman 8y agohttps://pharo.org https://pharo.org was down. Its now back.
- m_mueller 8y agoGenuinely curious: Is there any industry usage going on for Pharo?
- klibertp 8y agoI seem to recall Pharo was used in logistics somewhere. Plus, here are some more stories: https://pharo.org/success https://pharo.org/success
- pjmlp 8y agoThere is, if you consider it is a Smalltalk dialect. http://www.cincomsmalltalk.com/main/ http://www.cincomsmalltalk.com/main/ https://gemtalksystems.com/ https://gemtalksystems.com/ So you can learn Smalltalk with Pharo and then get into the big boys Smalltalk. However expect the typical enterprise projects where Oracle DB licenses are footnotes on the overall budget.
- igrekel 8y agoI deployed a few web apps running on gemstone based on their community edition starter license. You can get a lot going just based on that and it really isn't as expensive as Oracle.
- pjmlp 8y agoThe Oracle example was more a kind of figure of speech regarding the kind of clients that are willing to pay for commercial Smalltalk, based on the listed customers use cases. How was your experience?
- igrekel 8y agoWell, I never got to needing a paid license so it never was a worry. I found the database size tended to grow more slowly than what I expected from past experience with MariaDB/MySql and PostgreSQL. All and all I found the killer really was the ability to store situations where an exception was raised and being able to replay it later. It saved a ton of time for debugging.
- ARandomerDude 8y ago> Pharo is a pure object-oriented programming language Aaaand you lost me.
- m3kw9 8y agoWhy would I use this instead of C++ for example
- Gene_Parmesan 8y agoIt's a totally separate domain. Pharo/Smalltalk is essentially pure OOP in the way that Scheme is pure FP/LISP. So for me personally, I've used to increase the depth of my understanding of programming. It can also be good for prototyping class hierarchies and the like. You can find examples of people using Pharo in production (and far more examples of people using other, more industrial-grade Smalltalk dialects), but I personally haven't been able to think of a way to use it on real projects. But that doesn't mean that it isn't worth studying.
- goatlover 8y agoOne reason would be for trying out the environment, which represents a totally different approach to programming than the traditional file based and textual approach, instead of having your coding and runtime as part of the same environment, where you're communicating with live objects.
- mhd 8y agoA few years back Pharo's predecessor/sibling Squeak was garnering some interest due to its "Seaside" web framework, which used continuations and so made some interactions easier to program. But after the rise of JavaScript, this became a lot less important.
- bulutsuzku 8y agoThat's true, but considering the amount of money was invested into JavaScript it was also expected. However there is a PharoJS project too: https://pharojs.github.io/ https://pharojs.github.io/
- typon 8y agoAny good examples of open source tools made using Pharo?
- offray 8y agoMany of them a listed here: https://pharo.org/success/ https://pharo.org/success/
- AdmiralAsshat 8y agoThe Pharo website has zero mention of its relation to Smalltalk, although the Wiki article calls it a dialect. So how close are the two in reality? Is the syntax from your standard Smalltalk-80 textbook largely portable/compatible to Pharo, or is Pharo merely "inspired" by Smalltalk?
- emaringolo 8y agoThe syntax is similar, and for the most part, compatible. Pharo's syntax has a few extra extensions, but nothing incompatible. But Pharo's is inspired by Smalltalk, and I myself consider it Smalltalk, but the purpose of the detachment is to not be constrained by having to continue being Smalltalk. E.g. in Pharo instance variables are first class objects (called "Slots").
- ben-coman 8y agoSqueak is directly descended from ST-80. Ten years ago Pharo forked from Squeak due to conflict around adding features outside the ANSI standard. Pharo wanted to distinguish itself from Smalltalk to avoid constraint by the standard so minimises mention of it. But Essentially Pharo is Smalltalk plus...
- zestyping 8y agoWhy isn't Smalltalk mentioned on the front page? It seems that simply mentioning that Pharo is based on Smalltalk would immediately convey a lot of useful information to people who are new to Pharo.
- fxfan 8y agohttps://web.archive.org/web/20190122153012/https://pharo.org/news/pharo7.0-released https://web.archive.org/web/20190122153012/https://pharo.org...
- ahmedalsudani 8y agoDocumentation if, like me, you want to find out more about the language http://web.archive.org/web/20190118083918/http://pharo.org/documentation/ http://web.archive.org/web/20190118083918/http://pharo.org/d...
- bunderbunder 8y agoFor anyone interested in learning Pharo/Smalltalk, there is a pretty decent MOOC: https://mooc.pharo.org https://mooc.pharo.org
- agumonkey 8y agoold article about calypso class browser https://dionisiydk.blogspot.com/2016/12/calypso-new-system-browser-for-pharo.html https://dionisiydk.blogspot.com/2016/12/calypso-new-system-b...
- allwein 8y agoAfter reading this line: > Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback. and seeing the initial screenshot on the announcement, I thought that this was a joke post. How you can call this "focused on simplicity" while showing that horrific hodge podge of a screen shot is beyond me.
- ben-coman 8y agoThanks for your feedback. Maybe it would be better to show the three tools in separate screen shots rather than overlapping. One aspect of simplicity is its minimal syntax... https://en.wikipedia.org/wiki/File:Pharo_syntax_postcard.svg https://en.wikipedia.org/wiki/File:Pharo_syntax_postcard.svg
- wolfgang42 8y agoThat's a pretty chaotic postcard. I think I get the point that it's trying to make, but at first glance it doesn't exactly convey the idea of simplicity.
- nyrulez 8y agoI like what I see, but they do a poor job of explaining the use cases, which is a common issue for most technical projects. Is this for: - learning? - developing personal projects? - developing business projects? - can be deployed to desktop platforms? mobile ? web? - Has GUI library support? Without a clear break down of use cases, I am just lost in the cool technology without any way of determining if it fits my needs. A good example of how to do this well is GameMaker Studio: https://www.yoyogames.com/gamemaker https://www.yoyogames.com/gamemaker
- rajula96reddy 8y agoHey! In fact, Pharo pretty much can do everything you asked for. It is just amazing to learn a lot of CS concepts. Just so know, Pharo is a great tool to teach. I am a student and this is how I came across Pharo about a few years back. And you can build both Business applications (http://pharo.org/Companies http://pharo.org/Companies) or personal applications. Take a look at the catalogue here http://catalog.pharo.org/ http://catalog.pharo.org/ and http://smalltalkhub.com/list http://smalltalkhub.com/list. You can do almost everything in Pharo. Imagination is the limit to what you can do in Pharo. And also there is a good list of use cases at http://pharo.org/success http://pharo.org/success. HTH
- zem 8y agodoes it have decent hidpi support yet? I remember trying out pharo 6 briefly and being unable to get it usable on my laptop.
- armitron 8y agoThis has been a point of contention for lots of people, including myself. From what I remember, it was supposed to happen for Pharo 7 but now I see that it didn't. Squeak and Pharo are great but the font rendering is terrible, I can't stress how bad it looks on hidpi screens. That makes it unusable for me since it gives me headaches. It's a shame too since they have spent a lot of time working on related frameworks (athens?, brick?, bloc?) that alas don't seem to go anywhere (or nobody is in the position to bring everything together). Last I checked they were trying to use a native library from Mozilla (Moz2D which is the backend of Firefox!?!?) to do all rendering, which is highly problematic and disappointing if it ends up being used. The clusterfuck of libraries that they have layered together should clearly point out that this is not the right approach. On macOS, the graphics stack looks like: CoreGraphics <- Skia <- Moz2D <- Sparta <- Bloc <- Brick Alan Kay would have a seizure. Aliaksei Syrel: What happened to keeping things simple? I really hope the graphics issues get resolved since I'm pretty sure they are costing them a lot of users. The regular Pharo devs by virtue of using Pharo every day are (probably) not in the position to realize how a new user coming from environments with great font rendering, UI speed/smoothness, reacts to Pharo. Initial impressions are everything.
- zestyping 8y agoI haven't evaluated the appearance of text in Pharo, but I agree with the importance of the issue. Poor text rendering in any application or environment would be an immediate dealbreaker for me.
- scroot 8y agoI agree that the appearance of the system in this regard probably turns off lots of users. There are some in the Pharo community who are quite aware of this fact, but there are simply not enough contributors at the moment to deal with it on their own. I am more hopeful about Bloc, however. The stack is not any more insane than that of a web browser.
- jug 8y agoI was going to say that it sounds a little like that Smalltalk IDE Squeak, and then it dawned upon me that this is actually a Smalltalk dialect too. :D I'm going to throw this in here: "Squeak or Pharo for the beginning Smalltalker?" https://stackoverflow.com/questions/8426981/squeak-or-pharo-for-the-beginning-smalltalker https://stackoverflow.com/questions/8426981/squeak-or-pharo-... And a third option that is much leaner and maybe less overwhelming especially if you are interested in actually learning Smalltalk itself to begin with: https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
- sigzero 8y agoPharo forked from Squeak a long while ago.
- idahasen 8y agoBig fan of Pharo!
- deleted 8y ago[deleted]
- register 8y agoThe main issues that prevents me to have an interest in Pharo are the following two: - There is no real multithreading support - It's not easily embeddable I believe that there are attempts to tackle these problems but what is the status?
- ben-coman 8y agoThe traditional problem embedding is that the VM did a lot of window configuration before the image started. This has all been stripped out of the "minheadless" builds, which have defined a "virtual machine interface" used like... https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/platforms/minheadless/common/sqVirtualMachineInterface.c https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/p... and... https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/platforms/minheadless/common/sqMain.c https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/p...
- diegoperini 8y agoI lol'd when the quote, "Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.", is accompanied with a relatively chaotic artwork of the development environment. Anyways, the dedication of the team is really remarkable. It looks like a really useful learning/teaching tool for OOP. I'll try and hopefully beat my prejudice.
- shobith 8y agoFor someone who's familiar with the "IDE" shown in the artwork, I was able to quickly parse the different components and it conveyed a vague sense of excitement :).
- bitwize 8y agoIndeed. It harks back to the "holy shit, look at all the stuff you can do with our tool!" marketing of the 80s and 90s. Microsoft used to market advanced versions of their BASIC -- such as QuickBASIC for DOS -- by having it open several windows on the screen and draw or animate something different in each. A similar program shipped as a demo for Microsoft's AmigaBASIC.
- shobith 8y agoIn any case, I'm not one to judge a programming system by its artwork. I hope people don't get discouraged by it and not try it out, It's a phenomenal system for translating thoughts to programs.
- vanderZwan 8y agoSure, but then you might not be the ideal target audience since you're already sold on the concept
- crdrost 8y agoI need to caution against using a Smalltalk dialect like Pharo to teach OOP. The essential problem is that Smalltalk does OOP "right" and what one sees called OOP in the broader community generally does not have that same ideological purity. In addition Smalltalks are a deeply different vision of programming. I don't think I've ever shown a programmer a Smalltalk and had them go "Oh yeah this all makes sense." I have to preface it... "This is a different vision of programming than you are used to, go ahead and run the executable." "Um, it opened a desktop?" "Yeah. So this is the program you are writing." "What is?" "This blank canvas." "Oh, this is a text editor?" "No, like, the program is running live right now." "Well can I shut it down and edit it?" "You edit it while it's still running. Here, go ahead and right click something..." There's invariably some form of disbelief: surely we wouldn't have made this whole programming thing hard for no reason, so surely this approach to "everything is alive and you are mutating the ecosystem" is impossible for the simple reason that it is not ubiquitous.
- int_19h 8y agoEvery time I try a Smalltalk (++) implementation, the custom UI framework is what kills it for me. Not only are they completely non-native in look and feel, but they also lag behind on features - e.g. Pharo is apparently non-high-DPI aware on Windows.
- aldanor 8y agoPlus the lack of vim mode.
- kgrimes2 8y agoLooks interesting. Getting a weird error when installing it via Homebrew, though: "“Pharo6.1-64” is damaged and can’t be opened. You should move it to the Trash." Anyone experience anything similar?
- scroot 8y agoI think this is some BS that has to do with OSX's "security" and that applications like this are required to be in the Applications folder. I could be wrong.
- dangom 8y agoHow does this feel compared to programming in Emacs? (It's an honest question, from someone who'd love to try out Pharo)
- cnasc 8y agoI use Emacs, and I played around with Pharo, Squeak, and Cuis. I would go so far as to say the Emacs is an acceptable Smalltalk, but the Smalltalk environment’s defaults are far better. It’s worth playing with it to experience it (see just how good TDD can be)
- klibertp 8y agoIt's more like "programming Emacs" instead of "programming in Emacs". Try writing a mode for Emacs, something like Helm or NeoTree or Dired, in Emacs and you'll get pretty much the same experience you'd get from Pharo, although with a lot less visual feedback. Emacs is concerned mainly with text and it's naturally reflected in its APIs, but the fact that you can live-edit any function or advice and see its results change immediately after pressing C-M-x is exactly what Smalltalk/Pharo does. It's magical, in both versions. Smalltalk was designed for GUI first, so its APIs for manipulating graphical objects are much like Emacs APIs for text manipulation: vast, rather complete, also a bit arcane due to decades of history. There's one thing that Emacs lacks and that would be support for restarting code execution from any place (possibly edited in the meantime) on the call-stack after exception: Pharo's debugger lets you do that, which is a thing worth experiencing at least once as a programmer. :)
- i_feel_great 8y agoBy the way, how do I update pharolauncher to pick this up?
- zionpi 8y agoIs there any progress on porting to mobile system.[This](https://medium.com/@richardeng/mobile-smalltalk-c6f0cc712909)mobile https://medium.com/@richardeng/mobile-smalltalk-c6f0cc712909... SmallTalk seems to be the furthest endeavor.
- claystu 8y agoTLDR: Pharo needs mountains of high-quality documentation equal to Python's docs or Java's docs if it seriously hopes to attract server-side or desktop mindshare among developers. Long Version: In 1980, Smalltalk had some of the best documentation of any language out there. In 2019, it basically has none. By 2019 standards, Pharo 7 ships without any documentation at all. That's a game-stopper. Pharo 7 looks really polished. It sounds like the design team put in tons of hard work over the past year and half to produce this release. Moreover, since it's smalltalk, Pharo is also probably very powerful for both web and desktop development. BUT NONE OF THAT MATTERS IF DEVELOPERS CAN'T FIGURE OUT HOW TO USE IT!!! (pardon the all caps, but I want to emphasize my point) Here is my message for the development team: if you really want developers to start building stuff with Pharo, then you absolutely must (1) write detailed, soup-to-nuts, high quality docs for web design and (2) write another set of detailed, soup-to-nuts, high quality docs for desktop GUI programming. The Pharo book doesn't cut it--not even close. It's not a very good book. The Pharo MOOC doesn't cut it--again, not even close. Who wants to learn that way? ProfStef is just a fancy hello world; it's really not a tutorial and it doesn't lead anywhere. I realize that what I'm saying comes across as pretty strong medicine, but please understand, that's because I actually think Pharo looks amazing and would like to use it. In my opinion, you should stop development on Pharo and document what you've built instead. Write docs for a year. Today's release announcement states that the Pharo 7 team closed 2142 issues. Brag in 2020 about the fact that you wrote 2142 pages of documentation and tutorials over the past year. Make your documentation coverage as thorough as your testing coverage. Imagine what might happen if Smalltalk 2020 was as thoroughly documented as Smalltalk 80.
- offray 8y agoThanks for the feedback. Have you seen [1] and specifically [2]? [1] https://pharo.org/documentation https://pharo.org/documentation [2] http://books.pharo.org/ http://books.pharo.org/ Do you have a particular example of a site where the kind of documentation that you would like to find is published for other language (lets say Python)? This could help to understand better which are the expectations and why current books and MOOC are not enough.
- 8y ago
- qwerty456127 8y agoIs it possible to integrate Pharo with KDE so the windows won't be trapped inside the Pharo window (I don't really like MDI) and would have system-set decorations (I love using "keep above", "keep below" and "shade" buttons I've added via the window manager configuration)?