[Pharo-users] Sacrilegeous question : what are compelling use cases for Pharo

2023-01-14 Thread mayur...@kathe.in via Pharo-users
Hello,

This isn't a mail intended to troll this community.

I am genuinely curious about what would be the type of use cases which would be 
exemplary for Pharo?

Now-a-days, anything one could have accomplished solely with Smalltalk (and 
hence Pharo) can be accomplished with a number of modern programming languages 
and their associated frameworks, e.g. Google's Dart with Flutter, Apple Swift 
with SwiftUI, Microsoft's C# with WinUI.
And such languages and their associated frameworks are built from the ground-up 
for a particular platform, while Pharo does not have any such targets, which 
usually renders graphical applications built using Pharo to "look like" aliens.

What does stand-out regarding Smalltalk (and hence Pharo) is the superior 
developer experience furnished as a result of the true object system combined 
with a full graphical environment.
In addition to that, Pharo, specifically, provides advanced tools like Git 
integration, etc.

But, are these things all that there are to be considered enough for 
highlighting the full inherent power of Pharo?

Again, apologies if anyone found the subject line as well as the message body 
to be troll-ish. That has not been the intent.

Kind regards,

~Mayuresh


[Pharo-users] Re: Sacrilegeous question : what are compelling use cases for Pharo

2023-01-14 Thread Noury Bouraqadi
Hi Mayuresh,

It's not about what you can do, but it's about how you do it.
The language and the community culture have a huge influence on the way we 
build software.
They have consequences not only at the implementation level, but also at the 
design level.

The Pharo language and its main libraries are simple, pure OO, highly 
reflective, dynamic...
So, when building software, we tend to adopt the same good practices.

The Pharo powerful IDE addresses all development facets (coding, refactoring, 
debugging, versionning, ...).
It makes it easy to make things right.

This is what makes Pharo compelling.
Noury
On Jan 14 2023, at 9:01 am, mayur...@kathe.in via Pharo-users 
 wrote:
> Hello,
>
> This isn't a mail intended to troll this community.
> I am genuinely curious about what would be the type of use cases which would 
> be exemplary for Pharo?
> Now-a-days, anything one could have accomplished solely with Smalltalk (and 
> hence Pharo) can be accomplished with a number of modern programming 
> languages and their associated frameworks, e.g. Google's Dart with Flutter, 
> Apple Swift with SwiftUI, Microsoft's C# with WinUI.
> And such languages and their associated frameworks are built from the 
> ground-up for a particular platform, while Pharo does not have any such 
> targets, which usually renders graphical applications built using Pharo to 
> "look like" aliens.
>
> What does stand-out regarding Smalltalk (and hence Pharo) is the superior 
> developer experience furnished as a result of the true object system combined 
> with a full graphical environment.
> In addition to that, Pharo, specifically, provides advanced tools like Git 
> integration, etc.
>
> But, are these things all that there are to be considered enough for 
> highlighting the full inherent power of Pharo?
> Again, apologies if anyone found the subject line as well as the message body 
> to be troll-ish. That has not been the intent.
> Kind regards,
> ~Mayuresh

[Pharo-users] Re: Sacrilegeous question : what are compelling use cases for Pharo

2023-01-14 Thread Tim Mackinnon
This question comes up every few years - and it’s a good one to revisit, 
particularly in a new year.

You’ve already had a few good answers - and I’m sure you will get a few more.

Of the languages you cite - I’ve tried 2 of them (C# and Swift) - and they are 
just too complicated. They don’t share the elegance of Smalltalk, it’s such a 
compact, simple and approachable language. But it’s not just the language - 
it’s the tools which are all built and self hosted in the language as well , 
meaning they serve as great examples in how to do most things and also enable 
you to trivially get in there and extend your programming experience. Even 
deeper - they let you gradually understand how everything works - even down to 
the compiler and debugger. Then you understand there is no incomprehensible 
magic, it’s just straight forward code and messages. I rarely find average C# 
or Swift programmers who understand how things work in their language - it’s 
all voodoo and stack overflow for them, whereas most Smalltalkers after 6 
months will understand how conditional logic works and many other lower level 
concepts.

It’s also not surprising that many computing innovations (more than most 
languages I’d say) trace back to Smalltalk (and continue to do so). That 
simplicity and elegance just inspires creative thinking.

While many languages have borrowed ideas from Smalltalk (which none of us mind) 
- they just got awkwardly bolted on. As an example - most languages now have 
closures , but the ethos of them is never properly embraced. For example, while 
we have exceptions - they dont get used as much as other languages because the 
convention (pervasive in all libraries) is to carry an error closure along with 
an operation - so on an error condition you can evaluate some code exactly 
where you need it vs winding back up the stack. Eg #at:ifAbsent: or 
#detect:ifNone: (and as previously mentioned, you can see how these work, and 
implement your own similar conventions in your models too). In fact Boolean 
logic follows suit. This has far reaching implications which just lead to 
beautiful, compact, readable code.

I keep looking at new languages hoping to find the same elegance, but it seems 
that such simplicity is just not appreciated (I think lisp is one of the few 
that does - and it’s a cousin of Smalltalk). 

Finally, it’s just a joyful language, and so fun. It makes me smile just to 
write this. And when I read about how the community continues to strive make it 
even simpler - I punch the air.

If you haven’t tried it, I encourage you to dip a toe in the water. Even if you 
use other things, we all seem to find that we just come back to Smalltalk as 
it’s so deceptively addictive.

Tim

> On 14 Jan 2023, at 08:01, mayur...@kathe.in via Pharo-users 
>  wrote:
> 
> Hello,
> 
> This isn't a mail intended to troll this community.
> 
> I am genuinely curious about what would be the type of use cases which would 
> be exemplary for Pharo?
> 
> Now-a-days, anything one could have accomplished solely with Smalltalk (and 
> hence Pharo) can be accomplished with a number of modern programming 
> languages and their associated frameworks, e.g. Google's Dart with Flutter, 
> Apple Swift with SwiftUI, Microsoft's C# with WinUI.
> And such languages and their associated frameworks are built from the 
> ground-up for a particular platform, while Pharo does not have any such 
> targets, which usually renders graphical applications built using Pharo to 
> "look like" aliens.
> 
> What does stand-out regarding Smalltalk (and hence Pharo) is the superior 
> developer experience furnished as a result of the true object system combined 
> with a full graphical environment.
> In addition to that, Pharo, specifically, provides advanced tools like Git 
> integration, etc.
> 
> But, are these things all that there are to be considered enough for 
> highlighting the full inherent power of Pharo?
> 
> Again, apologies if anyone found the subject line as well as the message body 
> to be troll-ish. That has not been the intent.
> 
> Kind regards,
> 
> ~Mayuresh


[Pharo-users] Re: Sacrilegeous question : what are compelling use cases for Pharo

2023-01-14 Thread Jupiter Jones
Hey Tim,

> On 15 Jan 2023, at 4:59 am, Tim Mackinnon  wrote:
> 
> In fact Boolean logic follows suit. This has far reaching implications which 
> just lead to beautiful, compact, readable code.

This is one of the first things I introduce new Smalltalkers to, typically 
after the question “How do you do an if / then?”

More often than not, it leads to a “mind-blown” moment. They come to understand 
that C++, or Swift, or Java, or Dart, or whatever quasi-oop language they know 
has really only added a few OOP concepts to their development (and sometimes 
runtime) workflow.

Understanding Smalltalk makes you a better developer in other languages, and 
makes it easier to learn new languages, since you clearly see the line between 
pure Object Oriented, and Language idiosyncrasies.

> Finally, it’s just a joyful language, and so fun. It makes me smile just to 
> write this. And when I read about how the community continues to strive make 
> it even simpler - I punch the air.

OMG Yes! I sometimes think of myself as a lazy programmer since the thought of 
having "to go back to" C++ or C# or Go makes me wince - It’s just too much work 
and not enough fun! :)

I’d also add that once you adopt Smalltalk end-to-end you gain another 
significant advantage - no matter the role, your developers can actually 
support each other right down to the code.

This isn’t possible with the mish-mash of more “popular” languages and 
technologies. The entire development industry has largely become a sausage 
factory with jobs so specific in nature that they provide no joy, no diversity, 
and no clear path for advancement.

Cheers,

J

PS The missing piece of the puzzle for Smalltalk ubiquity is a VM with native 
UI's on major platforms (MacOS / iOS / Linux / Android / Windows). If we had 
that, there’d be no reason / excuse to use any other language :)

[Pharo-users] New to Pharo: Some questions

2023-01-14 Thread Juan Cruz
Hello,
I hope everyone is doing well. I am new to Pharo but not to programming. I have 
a background in Python, and Javascript mostly. I mostly use Python due to the 
data, plotting, and math libraries.
But after toying a little with Pharo, the language I came to appreciate its 
beauty of it and how expressive the language is.
I was wondering if there are libraries equivalent to Matplotlib, Pandas, Numpy, 
etc. I mostly apply Python to finance -in particular to quantitative finance.
I read somewhere that top investment banks use Smalltalk as their secret 
weapon, so I'm sure that there are some users that have some insights to share 
on this subject.
Thanks to all and all the best for this 2023.
Greetings
Juan P. Cruz



[Pharo-users] Re: [Pharo-users] Sacrilegeous question : what are compelling use cases for Pharo

2023-01-14 Thread mayur...@kathe.in via Pharo-users
Hello,

In response to my email below, I received 5 interesting responses. I thank 
those people for writing-in.

Here is my take on what I've understood and why I am still hesitant to go along.
My comments on those responses are further below, but, at the moment, let me 
explain my situation.

I am a 46 year-old who has been programming computers since the age of 16.
I used to be a highly sought-after programmer till the year 2000, when due to 
circumstances beyond my control, my life and career got destroyed completely.
In fact, I was so highly valued, that in spite of me being from India, I was 
pursued by Verizon US.
I am now confined to my home (mostly) and I have very little to do, in the past 
12 years I have not programmed anything beyond a basic prime-number tester and 
a fibonacci-sequence generator in C.
I am getting my life back in order and I need some occupation, though, not 
necessarily one from which I would demand financial returns.
I have been dilly-dallying on a decision, primarily because I am unable to take 
a call on whether to pursue my love for the low-level (x64 assembler + Forth) 
or the extremely high-level (work involving reasoning using symbolic inference) 
using a Smalltalk (either Squeak or Pharo).

The above is not meant to elicit sympathy, but has been tacked-in just to give 
potential advisers an idea about my state.

Onward to my take on the responses I received to my first email.

As Noury Bouraqadi and Stephane Ducasse mentioned:
It's not about what you can do, but it's about how you do it.
I'd say, that is the basic problem with all Smalltalk aficionados.
The whole environment is such a joy to work with that it is addictive, to the 
extent that developers forget that it is the "what you can do" which is of 
utmost importance.

Jupiter Jones email provided the most amount of real-world use-cases.
Though, I am interested in understanding how to use Pharo as the development 
tool to be able to release code via GemStone Smalltalk.
Is it so that Seaside runs identically on Pharo as well as GemStone Smalltalk?
So, in a sense, Seaside would to Smalltalk, what "Ruby on Rails" is to Ruby.

Tim Mackinnon is very correct in observing that relative to C# and Swift, 
Smalltalk (and hence Pharo) is very compact, simple and approachable.
Though, I did not understand his statement about conditional logic becoming 
easier to understand after working especially with Smalltalk. Would he care to 
elaborate?
Also, on Tim's allusion to Lisp being a cousin, well, Smalltalkers had better 
acknowledge the fact that most Lispers "look down" upon Smalltalk and do not 
spare any opportunity to berate its users/developers (this is from personal 
experience).

Along those lines, I would also like to get an explanation from Jupiter Jones' 
for "how do you do an if/then?" which as he states leads to a "mind-blown" 
moment.

Thank you,

~Mayuresh

On Saturday, January 14, 2023 01:31 PM IST, "mayur...@kathe.in via Pharo-users" 
 wrote:

> Hello,
>
> This isn't a mail intended to troll this community.
>
> I am genuinely curious about what would be the type of use cases which would 
> be exemplary for Pharo?
>
> Now-a-days, anything one could have accomplished solely with Smalltalk (and 
> hence Pharo) can be accomplished with a number of modern programming 
> languages and their associated frameworks, e.g. Google's Dart with Flutter, 
> Apple Swift with SwiftUI, Microsoft's C# with WinUI.
> And such languages and their associated frameworks are built from the 
> ground-up for a particular platform, while Pharo does not have any such 
> targets, which usually renders graphical applications built using Pharo to 
> "look like" aliens.
>
> What does stand-out regarding Smalltalk (and hence Pharo) is the superior 
> developer experience furnished as a result of the true object system combined 
> with a full graphical environment.
> In addition to that, Pharo, specifically, provides advanced tools like Git 
> integration, etc.
>
> But, are these things all that there are to be considered enough for 
> highlighting the full inherent power of Pharo?
>
> Again, apologies if anyone found the subject line as well as the message body 
> to be troll-ish. That has not been the intent.
>
> Kind regards,
>
> ~Mayuresh


[Pharo-users] Re: New to Pharo: Some questions

2023-01-14 Thread Jupiter Jones
This may seem a little over simplistic, but the basics of what NumPy and Pandas 
offer can be achieved with the standard Smalltalk collection hierarchy. If your 
data fits in memory, then Pharo will handle the job. If not, then GemStone may 
do the trick.

That said, there’s a bunch of quite specialised stuff in those libraries, some 
of which is not trivial to implement. Or you may have gigantic existing 
datasets that you want to leverage. So you can always call the python libraries 
directly from Smalltalk using the PythonBridge [1]. It’s been a long time since 
I’ve used it, so hopefully someone else can let you know if it’s still well 
maintained.

There are a bunch of options for plotting. Maybe start by checking out Roassal 
[2].

You may even want to check out Glamorous Toolkit [3]. It may change your life ;)

[1] https://objectprofile.github.io/PythonBridge/
[2] http://agilevisualization.com 
[3] https://gtoolkit.com 


> On 15 Jan 2023, at 12:10 pm, Juan Cruz  wrote:
> 
> Hello,
> I hope everyone is doing well. I am new to Pharo but not to programming. I 
> have a background in Python, and Javascript mostly. I mostly use Python due 
> to the data, plotting, and math libraries.
> But after toying a little with Pharo, the language I came to appreciate its 
> beauty of it and how expressive the language is.
> I was wondering if there are libraries equivalent to Matplotlib, Pandas, 
> Numpy, etc. I mostly apply Python to finance -in particular to quantitative 
> finance.
> I read somewhere that top investment banks use Smalltalk as their secret 
> weapon, so I'm sure that there are some users that have some insights to 
> share on this subject.
> Thanks to all and all the best for this 2023.
> Greetings
> Juan P. Cruz



[Pharo-users] Causal profiling

2023-01-14 Thread mayur...@kathe.in via Pharo-users
People here might have heard about the work of Prof Emery Berger on the causal 
profiling technology.
Here's a paper presenting Coz, a causal profiler.
https://www.sigops.org/s/conferences/sosp/2015/current/2015-Monterey/printable/090-curtsinger.pdf

They have also release a profiler for Python using the same technology.
It is called Scalene: https://github.com/plasma-umass/scalene

In case Pharo does not have such a profiler, maybe an expert could work on it?

Best,

~Mayuresh