Live data from Hacker News

Pharo MOOC

mooc.pharo.org

101–110 of 114 posts

Re: Pharo MOOC

#101

I see many comments talking about teaching objects with Pharo, we used to use it in the UNQ (a university in Argentina), now we use another Smalltalk flavour, because of the complexity of it. It's called CUIS, developed in Argentina too, the first days we use a framework that uses some similar to prototypes, so the students can start learning objects without the overhead of classes and inheritance. And then we switch…

Yes, Juan and community have done a good job with Cuis. Cuis is a fork of Squeak same as Pharo, and all three use the same OpenSmalltalk-VM. Both forks arose to deal with a large technical debt in different ways. Cuis has been paring back class sizes while Pharo has been focused on a full source-code only bootstrap from a null-Image (i.e. no carried over state in an Image, that is one of Smalltalk's typical criticisms), replacing old subsystems, as well as adding new features. I'd say Pharo is more ambitious and we are starting to see the payoffs for this.

btw, which was the CUIS prototype framework you used? There should be little reason it couldn't be made to run on Pharo.

Re: Pharo MOOC

#102
post #32

Earlier quoted context omitted.

I agree that it is a language worth understanding. However the OO model of Ruby is identical. Without the drawbacks of being an image based language. So I'd suggest learning that instead. For those who don't know what I am talking about, there are several families of languages where the state of your program is kept within an image. The upside of this is that you can integrate everything together in a really neat way…

> I agree that it is a language worth understanding. However the OO model of Ruby is identical.... I independently arrived at the same conclusion. The main problem with Pharo is the esoteric tooling; life is too short to struggle with tools. That said, I consider Smalltalk, Objects and Design by Chamond Liu to be one of the best books I ever read on the subject of object oriented programming. Heartily recommended.

I guess it depends on the taste of the developer. I really enjoy seeing newcomers posting in the mail list saying that Pharo makes "programming fun again".

But Pharo is all about the deep integration of the tooling. Its what facilitates such a tight Code->Compile->Run->Debug cycle. It can take a while for the penny to drop. If you do a drive-by taste of Pharo you probably didn't get chance to really get into the flow.

Some say... "The only programming languages worth learning are those that change the way you think about programming." And Pharo/Smalltalk tooling does that.

Re: Pharo MOOC

#103
post #29
post #3

Earlier quoted context omitted.

The only people I've heard of using Smalltalk at all other than in dogfood situations are people using Gemstone. https://en.m.wikipedia.org/wiki/Gemstone_(database)

JPMorgan have a fairly serious Smalltalk app http://www.cincom.com/pdf/CS040819-1.pdf However, only one. Make of that what you will.

They only have on app because Smalltalk if agile enough they build everything they need into it as the need arises - and this has been maintained over many years.

Re: Pharo MOOC

#104

Earlier quoted context omitted.

Thanks for putting this out there. I found some weird things as well when using it, but just figured it was me. I was hoping your notes were from 2014, but it looks like you just went through all this. Another problem with Pharo is the confusion with Bloc, Morphic, and Spec. With C# you have WinForms and that is pretty simple and Java has Swing. With Pharo, I can't seem to find a decent way to build a GUI. Is Spec su…

In C# you have Winforms, WPF versions x,y, z.... and now UWA stuff. And with Xamarin, a slew of other ways. Not that less confusing.

It is actually documented though.

Re: Pharo MOOC

#105
post #76

Earlier quoted context omitted.

unfortunately, it's not really the same as with proper message passing/late binding like in smalltalk.

You could use C# dynamic objects to achieve late binding.

I'm not familiar with these. Are the properties and methods that dynamically add visible in the code editor?

It seems C# work by subclassing the DynamicObject class. What about dynamically extending all the other existing C# classes?

What if I subclassed a C# Queue as MyQueue and then while my days long simulation was running I wanted add an instance variable 'trackCount' to all existing MyQueue instances? In Pharo all you do is this...

Queue subclass: #MyQueue instanceVariableNames: ’trackCount’ classVariableNames: ’’ poolDictionaries: ’’ category: ’Example’

and program keeps running, this definition is updated in the editor.

Re: Pharo MOOC

#106
post #76

Earlier quoted context omitted.

You could use C# dynamic objects to achieve late binding.

Try a become: in C#

Gilad Bracha (co-author of the Java Language Specification) on "#become:" in Smalltalk (https://gbracha.blogspot.com.au/2009/07/miracle-of-become.ht...)

btw, see the section here on "Blub Paradox" (http://www.paulgraham.com/avg.html ) which means I'm not really competent to comment of C#'s dynamic objects.

Re: Pharo MOOC

#107
post #60

Smalltalk was the first language I loved. It was great to write, but I had difficulty understanding the structure of other's code. Even with that great integrated debugger, I couldn't figure out how Morphic actually worked. These days for graphical programming, I prefer C with nuklear ( https://github.com/vurtun/nuklear ) over smalltalk.

Many people find that about the depths of Morphic. It has high technical which Pharo is addressing by creating a new system Bloc (its getting close, but not there yet). Then Morphic will be deprecated.

Re: Pharo MOOC

#108
post #33

Earlier quoted context omitted.

The language itself is simple[1] but the environment and tools aren't. Smalltalk is a world in itself which is both its strength and weakness. https://learnxinyminutes.com/docs/smalltalk/

I am well aware of that as I had my own trouble learning Smalltalk. Yet in hindsight I like the clean design of the language. Nevertheless, I find the argument on their website kinda odd and a bit confusing. I mean, I see a lot of Smalltalk advocates claiming the language is so simple to learn and at the same time I see a lot of programmers having trouble learning it. Maybe it is just wrong to call it 'very easy to l…

I think non-programmers probably learn Smalltalk easier, assuming its natural. Long time programmers maybe have the frustration of unlearning habits.

"The only languages worth learning are those that change the way you think about programming."

Re: Pharo MOOC

#109

I had the "pleasure" of attending an OOP course at uni taught by Stéphane Ducasse. I didn't learn much OOP but i learned that pharo is an utter piece of garbage. The IDE randomly crashes, corrupts images (all your work is in the persistent image) and randomly ignores clicks making it insanely frustrating to use. Git integration is "WIP" which means it sometimes silently deletes files or you just don't get it to work…

I'm double posting since I think its important to rebut with some background around this criticism. I can understand being bitter from bleeding edge subsystems being used for a class, but the content seems to have been decided by the faculty. From our mail list...

Stephane Ducasse wrote:

> I told them NOT to use github.

> I told them that Bloc was alpha. They got a large list of topics and could have picked another one.

> Now of course we should improve and they too.

This is not saying that everything in Pharo is perfect, but in future could you please frame your criticism to indicate your pain with Pharo was with alpha features.

Re: Pharo MOOC

#110
post #58

I've used Pharo, and, way back, programmed professionally in Cincom (then ParkPlace), IBM VisualAge, and whatever the Windows version of Smalltalk was called was called (Visual Smalltalk?). Also tooled-around a bit in Squeak. All three of the professional environments were very good. When Pharo kicked off, it was supposed to have been people building a free Smalltalk you could use to build real world software, as opp…

> As another post described, Pharo is a mess, and it doesn't get more reliable from release to release. Can you share this post, please?

I guess he is referring to the criticisms by martin-t.
Post reply on HN