Live data from Hacker News

Pharo 7.0 released

pharo.org

191–200 of 236 posts

Re: Pharo 7.0 released

#191
post #153

Earlier quoted context omitted.

Running Pharo (or Cincom Smalltalk or Squeak Smalltalk) on an OS like Windows is similar in many ways to an old Symbolics machine, but Symbolics didn't need to sit on top of an OS, but was lisp all the way down. This existed in the past with Smalltalk as well at Xerox Park where it introduced the GUI and Mouse. I forget the machine's name, but someone on HN rebuilt one recently. The hardware was expensive at the time…

There are emulators for the old Lisp Machines. The best were Medley (for the old Interlisp-D system from Xerox) and Open Genera from Symbolics. They are philosophical relatively near to Pharo. But Pharo has seen more development in the past decade. For Common Lisp there are/were many integrated IDEs: Macintosh Common Lisp, Allegro CL, LispWorks, Clozure CL on the Mac, Corman Lisp on Windows upto McCLIM for several CL…

than $100k for a Symbolics >Lisp Machine with accelerated >color graphics and HDTV >in/out.

Quantel Harry was the competition.

Link below, is for the 1981 Quantel Paintbox, the existence of which is responsible for the direction of my juvenile mind.

I should love to one day get together with like minded folk and assemble a complete ca. '89 broadcast graphics suite. I'm in advertising (London, independent, founder) and I'm not convinced that I couldn't work out the financial arithmetic favourably. I am persuaded by artist friends of the merit, tempered I expect by the reality of the working interfaces, if they actually used a 80s Quantel - we take instantaneous responsiveness for granted.. Time and place required, but I'm serious enough to have scouted premises and allocated budget.

I digress. Sorry.

I only have read about Pharo in the last couple of weeks, but I am taken by the sophistication of the ambitions and delivery thereof. I say this here, rather thanon a Pharo list, because I am unsure of what skills and specialities are required, but I have a professional itch to scratch, which is estimating the work of supporting a new language to the fullest extent possible, in Visual Studio. If this could be accomplished in under half a man year for a senior developer, I really want to know. (result to be released to community, purpose of exercise purely personal curiosity about what consequent effect is possible)

https://en.m.wikipedia.org/wiki/Quantel_Paintbox

Re: Pharo 7.0 released

#192
post #172
post #134

Earlier quoted context omitted.

> How do I run a "hello world" program from the command line? You can load and run a smalltalk source file, at the OS command-line, something like — ./pharo Pharo.image st helloworld.st You can pre-load smalltalk source files, save a memory image, and use default startup behavior to run the saved bytecode — ./pharo helloworld.image > deploy that to another machine It's just moving files (VM + bytecode image) so — rsy…

> I just want a "hello world" example to get an idea what I am actually dealing with. iirc something like — FileStream stdout nextPutAll: 'Hello, world'; cr.

You can do something like: `Stdio stdout nextPutAll: 'Hello, World!'.`

Re: Pharo 7.0 released

#193
post #155

Earlier quoted context omitted.

One thing that struck me a bit odd was, that the website makes it look like I have to buy a book or join a (paid?) mooc to get started, because these are the very first sections under "documentation". I was just looking for a basic examples to get some sense what Pharo is about and what the look and feel are. Without downloading and installing it, I wasn't aware that there is a pretty nice interactive tutorial built…

I don't remember the MOOC costing money, but it was in French with English subtitles which is understandable with them being French researchers at INRIA, but it couldn't keep my attention up due to the gap. The books are all free in PDF form and the lead developer also has another website somewhere where he hosts old Smalltalk textbooks which are largely still relevant. They certainly could work on conveying this bet…

Sorry, if I came off as too negative!

For me it was just the initial perception I got. E.g. I only realized that the books were free after you told me. And yes, this is due to me evidently being too lazy doing an additional click. I don't mind paying for books, but not as a first step.

I did download and tried Pharo because I was intrigued by it from another person, if I just were to land on the website from some random link, I likely wouldn't have.

I think there could be some small changes in wording and presentation that would get a long way for people without any prior knowledge of the language. For example if you compare it to Rust (just content, not design wise)

https://www.rust-lang.org/learn

Re: Pharo 7.0 released

#194

Where 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 p…

I looked for any useful documentation for a few minutes and just gave up. I don't want to read a book. I don't want to watch a video. This is not my first programming language, thank you. I just want a "hello world" example to get an idea what I am actually dealing with. How do I run a "hello world" program from the command line? How can I deploy that to another machine that doesn't necessarily have a GUI?

Not from command line - but this will hopefully get you up and running in the IDE and have an idea what Pharo can do. or To deploy on another machine you simply copy the image file - so they can run from pharo. The image can be run headless (doesnt display GUI) if you need to deploy on a server.

Run PharoLauncher and Load a Pharo image instance.

Once the Pharo Desktop IDE appears type CTRL+O+T to open Transcript - the system log console abnd type CTRL+O+W to open playground - Playground is a window into which you can type. It can be used for any purpose, but is most often used for typing Pharo expressions and equickly executing them.

(There are windows /icon menu entries for these as well)

In playground window type:

     Transcript show: 'Hello World'


and press the play 'do it' icon at the top of the playground window to evaluate it

You should now see Hello World appear in the transcript window.

What you just did was send the Transcript objects show method the message 'Hello World'

Lets do a slightly more complex Cut and paste the following code into the Playground window and click the play button. The first part installs the Roassal visualization framework. It only needs to be run once. The second part uses ROassal's Mondrian API which offers facilities to describe and render graphs. Mondrian allows mapping of metric values and properties into visual dimensions, such as shape and colors. Cut and paste the second piece of code into playground and hit play doit icon to evaluate. In the view panel you should see a simple tree class browser of the installed classes in the Pharo image with size of class coloured and scaled to represent number of source code lines in each class. Note lines in speach marks are comments.

"-------------------------------------"

"install Roassal visualization engine"

"-------------------------------------"

Gofer it

  smalltalkhubUser: 'ObjectProfile' project: 'Roassal2';
configurationOf: 'Roassal2';

	    loadStable.
"---------------------------------------------------"

"- Make a Simple interactiver Class Tree Browser -"

"---------------------------------------------------"

myBrowser := RTMondrian new.

myBrowser nodes: Collection withAllSubclasses.

myBrowser edges connectFrom: #superclass.

myBrowser normalizer

  normalizeSize: #numberOfMethods;

  normalizeColor: #numberOfLinesOfCode.

myBrowser layout tree.

myBrowser

Re: Pharo 7.0 released

#195

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

It'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.

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

Re: Pharo 7.0 released

#197
post #69

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

>I couldn't understand the fascination with the integrated environments though. The only thing I can recommend it watching some Alan Kay videos or Pharo demos. Windows and Linux UI conditioned everyone to think of UI as a crutch for incompetent users, rather than a tool useful in its own right. This cannot be undone in a single reply, no matter how elaborate it will be. Traditional tools are definitely more polished…

What the Smalltalk and apparently now the Pharo people don't seem to understand is that the entire OS is the IDE, "the image".

My OS and all of its rules, tools and configuration, the UNIX philosophy, the POSIX standard, all of its history and convention: _that_ is my dev environment and it's as LIVE as anything can be.

Not some one-off unicorn IDE - no matter how awesome it is, sorry guys.

My entire toolchain in all of its diversity is one big living ecosystem. That is not, as you eloquently hinted at, a bunch of refined steam engines. It is maglev-level awesomeness. Some pointy-clicky IDE where you can inspect objects with trivial properties is not impressive. It was in the 90s, but now now. Ironically Pharo itself, to me, evokes the admittedly beautiful image of a bunch of refined steam engines. A beautiful thing of the past. Impressive, but obsolete - not unlike France itself.

You have to interact with dozens of systems for even the simplest applications now. Databases, HTTP APIs, knowledge systems, OS'es, all kinds of IoT and machinery, all of which have their own standards, their own philosophies, their own tools, their own way of doing things. None of this would ever work if one tool decides it has the Truth and all other should conform to it. Without the UNIX philosophy none of this would even get off the ground. Because that is wat Pharo is, a tool, _inside_ an already living ecosystem. That is exactly why you get programmers asking, why can't I use my tools, why can't I use the "shell", do this do that.. This tool does not fit the UNIX mindset: it's just another tool, but it pretends to be an entire ecosystem that handles everything. An OS inside an OS. This does not make sense to anyone (but the Smalltalk people apparently). Also, as an aside, that is exactly why emacs sucks (take that HN!!).

For some reason some people think programming is hard because you have to create some classes and struggle with basic syntax. Inspecting trivial object and deciding the value of its sole attribute is "2" or "A" is not what makes our work hard.

And yes, UI _is_ a crutch. Only visual tasks need visual interfaces, think Photoshop. Visual UIs slow you down, that's just a physical fact - how fast is you hand? - and it is totally reasonable for new/incompetent users and/or users that perform visual tasks, but programming is not a visual task. Programmers think in abstractions, in symbols. GUIs have their place to be sure, without autocomplete I would be useless, so there's that, but beyond that, nope, useless crutch for incompetent users. Take that, society.

~Angry Engineer

Re: Pharo 7.0 released

#198
post #126

Earlier quoted context omitted.

This 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 (…

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

The entire subsystems were rewritten from scratch, there are huge lengths of deprecated and/or poorly documented code, however, this hidpi bug remains unfixed for 5 years or more.

This is not about having too few contributors; this is about different priorities. This is why Pharo remains an obscure project on the margins of the industry, despite all its potential.

Re: Pharo 7.0 released

#199
post #69

Earlier quoted context omitted.

>I couldn't understand the fascination with the integrated environments though. The only thing I can recommend it watching some Alan Kay videos or Pharo demos. Windows and Linux UI conditioned everyone to think of UI as a crutch for incompetent users, rather than a tool useful in its own right. This cannot be undone in a single reply, no matter how elaborate it will be. Traditional tools are definitely more polished…

What the Smalltalk and apparently now the Pharo people don't seem to understand is that the entire OS is the IDE, "the image". My OS and all of its rules, tools and configuration, the UNIX philosophy, the POSIX standard, all of its history and convention: _that_ is my dev environment and it's as LIVE as anything can be. Not some one-off unicorn IDE - no matter how awesome it is, sorry guys. My entire toolchain in all…

> Without the UNIX philosophy none of this would even get off the ground.

So the UNIX philosophy was the only possible way computing could have gone to result in a diverse set of systems that communicate with each other? Is there some sort of CS proof of this claim? Or was it just how history played out?

> For some reason some people think programming is hard because you have to create some classes and struggle with basic syntax. Inspecting trivial object and deciding the value of its sole attribute is "2" or "A" is not what makes our work hard.

Alan Kay and some others have thought programming would be more productive if it took place at a higher level than manipulating text and files. You might not agree with that, but the reason you have such good tools for text and file manipulation is because the Unix way prevailed. Magnitudes more effort has been poured into making that tooling than alternative approaches.

> Visual UIs slow you down, that's just a physical fact - how fast is you hand? - and it is totally reasonable for new/incompetent users and/or users that perform visual tasks, but programming is not a visual task.

Well, ask someone with a lot of VB or Smalltalk experience how much the environment slows them down in comparison. Because you often hear the opposite.

> GUIs have their place to be sure, without autocomplete I would be useless, so there's that, but beyond that, nope, useless crutch for incompetent users

I guess debuggers, refactoring and class browsers aren't useful, then.

> Impressive, but obsolete - not unlike France itself.

LOL, wat?

Re: Pharo 7.0 released

#200
post #192
post #172

Earlier quoted context omitted.

> I just want a "hello world" example to get an idea what I am actually dealing with. iirc something like — FileStream stdout nextPutAll: 'Hello, world'; cr.

You can do something like: `Stdio stdout nextPutAll: 'Hello, World!'.`

Are you suggesting that `FileStream stdout` doesn't work, or that using `Stdio stdout` is in some way better, or that `nextPutAll:` will add a newline, or that … ?
Post reply on HN