Live data from Hacker News

Pharo 7.0 released

pharo.org

51–60 of 236 posts

Re: Pharo 7.0 released

#51
post #29

Earlier quoted context omitted.

Why 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…

For what it's worth I think these are decent questions to ask, even if others think they're worthy of a downvote. As far as I understand it: it doesn't necessarily compile in that sense. You are constructing an 'image', which is basically a living environment that your program runs in, and maybe it corresponds somewhat to a VM. But you're not really treating the code that the VM runs as separate to the VM itself. In…

Smalltalk system consists of a VirtualMachine and an image. An image is just some Smalltalk code compiled into a form suitable for VM to read it into memory. The initial image contains all the standard classes of Smalltalk plus the GUI and various tools. When you add a method to some class inside the GUI, it gets compiled and added to the image held by the VM in memory. Later, you can dump the modified image to disk, producing a new initial image you can later use.

This is indeed similar to Common Lisp and Emacs.

Back to the original question: the VM runs on Windows/Mac/Linux and on some IoT devices. The code is compiled to bytecode which can then be JIT compiled further on some architectures/OSes. The compiler and the whole infrastructure is exposed and available on runtime.

Pharo has classes for easy FFI to C and for bundling native libraries. I don't know if it's possible to call back from C to Pharo, but I assume yes (many libraries require this). There is no FFI or other integration with any other language (at least as a built-in, there are RPC interfaces for some langs as add-on packages).

As for "standalone binaries" - almost, as you need to bundle the VM with the image; there are some helper scripts for bundling and then launching images.

The most obvious use case is GUI programming, there's also old-school Web programming with Seaside, data crunching and visualization with Roassal. Other than these killer-apps, Pharo is just as capable as any other high-level language, although with a much smaller selection of libraries available.

Re: Pharo 7.0 released

#52
The 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?

Re: Pharo 7.0 released

#53
post #37
post #11

Earlier quoted context omitted.

Pharo 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.

> 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?

One 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).

Re: Pharo 7.0 released

#54
post #27

Earlier quoted context omitted.

Why 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…

The download page clearly shows Windows, Mac and Linux.

But that's the development environemnt/compiler and tooling. It still could generate binaries for microcontrolers for example.

Re: Pharo 7.0 released

#55
post #27

Earlier quoted context omitted.

The download page clearly shows Windows, Mac and Linux.

But that's the development environemnt/compiler and tooling. It still could generate binaries for microcontrolers for example.

No, it couldn't. It's image-based. Your application is the development environment. That's the point of Smalltalk.

Re: Pharo 7.0 released

#56
post #8

What is this thing - is it a programming language or an operating system or a desktop environment?

"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

Re: Pharo 7.0 released

#57

"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?

Pharo is making some moves in this direction with: * the CI first bootstrapping a non-GUI image as a separate artifact prior to loading the GUI and IDE into the release product. * good progress on stripping graphical elements out of the VM so it could be embedded in other systems (e.g. as a game scripting engine). * using git to manage sources. * some community `vi` keyboard bindings (I haven't tried) But still there is not yet an easy access to use separate tools. The benefit of using Pharo IDE is being able to mold your tools... http://www.humane-assessment.com/blog/the-moldable-gtinspect...
Post reply on HN