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

2023-01-15 Thread Stewart MacLean
Hi Mayuresh,

Thanks for sharing your background. My advice would be to simply download
it and "suck it and see".

I've got twenty years on you and have spent my whole career working
with computers (punched cards anyone?). I still get a buzz out of
programming in Smalltalk. The reason it is such a joy is due to the
ultimate simplicity of the grammar of the language. It fits on one page:
http://chronos-st.blogspot.com/2007/12/smalltalk-in-one-page.html.

And also that it is "Turtles all the way down" (
https://en.wikipedia.org/wiki/Turtles_all_the_way_down). Well mostly, but
then there's access to C libraries via the FFI. In other development
environments, you're mostly stuck with what you've got. With Smalltalk, you
can dig under the hood. For Pharo, this is just as well, as some parts of
it are a bit flakey. You mentioned Iceberg. I have had nothing but trouble
with it and it's fair to say put me off using Git with Pharo. Other things
are an absolute joy - check out Roassal for example. One of the highest
quality pieces of code I've come across in my extensive career.

Speaking of which, it has come to an end and what am I doing in my
retirement? - working on a project that I plan on sending out into the real
world! This has its challenges in Pharo, and this is where other platforms
excel and are designed for (along with substantial financial backing), but
I believe it is doable in Pharo. Hopefully it will be a "real world" use
case!

All the best with whatever path you choose...

Cheers,

Stewart

On Sun, Jan 15, 2023 at 7:11 PM mayur...@kathe.in via Pharo-users <
pharo-users@lists.pharo.org> wrote:

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

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

2023-01-15 Thread Tomaž Turk

Hi Mayuresh,

I think that the choice of what programming language one needs to learn 
or use depends today from the goals that you have - and these goals are 
not only tied to specifiic business projects that you (might) pursue but 
also career and self-enrichment missions. Years ago we had programmers 
who did their entire career by knowing and using only one language, 
however this is nowadays almost impossible, in general.


As others already nicely put, Pharo and Smalltalk are, also in my own 
expeirence, the most beautiful and productive programming languages and 
environments. What would be the type of use cases which would be 
exemplary for Pharo? Well, I find Pharo to be a general programming 
language in its true meaning. You can grasp the diversity of what can be 
done by just looking at this list 
https://github.com/pharo-open-documentation/awesome-pharo. You can go 
close to the machine with uFFI and be very "declarative" with Glorp and 
similar packages. You'd like to do the data mining? No problem, except 
that everybody talks about Python and R.


As MIS professor, I'm interested in new technologies, old technolgies in 
new settings, always looking for the best ways to do research about and 
to teach modern concepts, also challenging myself with real, 
"production" cases from the field. Once I learnt the Smalltalk way, the 
challenges for me with Pharo were mostly the following:
- For a specific project, you sooner or later bump into a missing 
functionality in some package or other. Here, it's true that you can 
relatively easy see the inner structures of these packages and add the 
functionality that you need. The challenge here is grasping the 
architecture model and development patterns that the original 
contrubutors and the community already "engraved" into the package, 
trying to understand it and to follow the same patterns - i.e. to 
participate in a constructive manner. My case: PharoWin32 and PharoCOM 
, I had to add the functionality 
that I needed to work on PharoADO .
- There is a constant lag of documentation publishing activities which 
cannot follow the actual development; typical examples that I stumbled 
across are Pharo Spec2 book (but it can be "replaced" by excellent Spec 
Handbook 
), 
the second one the deeper settings of Seaside framework that I needed 
for production environment.


For these challenges, you can always count on really helpful community, 
however it is time consuming and eats away the positive side of 
productivity gains that are brought by the language itself.


So, if you need some occupation, not necessarily one from which you 
would demand financial returns as you put, I suggest that you choose a 
couple of small projects just to try it out and see what happens. Pharo 
is a heavy addition to one's self-enrichment in the sense of not 
learning the tools but learning the concepts and "the big picture". Nice 
examples are the book Learning Object-Oriented Programming, Design and 
TDD  and Pharo MOOC . 
If you pursue into more serious projects (research or productionwise), 
the community would be grateful.


Best wishes,
Tomaz

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

2023-01-15 Thread Sebastian Jordan Montano
Hola Juan, 

Good to hear that you are interested in Pharo. 
The equivalent of Matplotlib is Roassal. You can check this video that we did 
(7min) of using Roassal for making visualizations for football data: [ 
https://www.youtube.com/watch?v=LOn9jVGa83c | 
https://www.youtube.com/watch?v=LOn9jVGa83c ] :) 
For data mining we have some algorithms in pharo-ai [ 
https://github.com/pharo-ai/wiki | https://github.com/pharo-ai/wiki ] (wiki not 
updated at 100%) we also have some other machine learning stuffs. 
And we also have PolyMath : [ https://github.com/PolyMathOrg/PolyMath | 
https://github.com/PolyMathOrg/PolyMath ] for scientific computations :) 

Regards, 
Sebastian Jordan 

> De: "Juan Cruz" 
> À: "pharo-users" 
> Envoyé: Dimanche 15 Janvier 2023 01:10:34
> Objet: [Pharo-users] New to Pharo: Some questions

> 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: Causal profiling

2023-01-15 Thread Sebastian Jordan Montano
Hello Mayuresh,

As you said, in Pharo we don't have an implementation of a casual profiler at 
the moments. I don't know if someone will implement one in a near future.

We have other profilers in Pharo: MessageTally and AndreasProfiler, both 
already in the image, are profilers that use sampling to get an estimated 
execution time for each method. Now we are working on a prototype of a memory 
profiler that we are going to release soon.

Regards,
Sebastian Jordan

- Mail original -
> De: "mayur...@kathe.in via Pharo-users" 
> À: "pharo-users" 
> Cc: mayur...@kathe.in
> Envoyé: Dimanche 15 Janvier 2023 07:28:57
> Objet: [Pharo-users] Causal profiling

> 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


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

2023-01-15 Thread Juan Cruz
Hi,
Thanks for your response. The size of datasets is not an issue, but my 
intention is not to bridge to Python. The reason behind the question is that 
(and sorry for those who love it) I think Python is an ugly language. It's very 
powerful due to its libraries: Yes. But as a language, I find it ugly and not 
very expressive. Besides, the fact that indentation has syntax meaning is 
really annoying.
I tried Haskell, beautiful. Also Closure and Ruby. Love those. But Smalltalk 
caught my attention as I read in different sources that it was actively used in 
the financial industry, so I figure out that there were some advanced libraries 
out there...Probably they exist and are proprietary or secret haha.
Thanks so much I will keep toying with Pharo, these days have been really fun. 
It is really fun to code in Pharo...and easy!!
No need to set up environments, select editors, plugins, or debuggers..it´s all 
there!
Have a great Sunday
Juan P. Cruz


From: Jupiter Jones 
Sent: Sunday, January 15, 2023 3:20 AM
To: Any question about pharo is welcome 
Subject: [Pharo-users] Re: New to Pharo: Some questions

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] Re: New to Pharo: Some questions

2023-01-15 Thread Juan Cruz
Thanks, Sebastian for pointing to these libraries. For sure I will take a look 
at them!
Best,
Juan P. Cruz

From: Sebastian Jordan Montano 
Sent: Sunday, January 15, 2023 9:13 AM
To: Any question about pharo is welcome 
Subject: [Pharo-users] Re: New to Pharo: Some questions

Hola Juan,

Good to hear that you are interested in Pharo.
The equivalent of Matplotlib is Roassal. You can check this video that we did 
(7min) of using Roassal for making visualizations for football data: 
https://www.youtube.com/watch?v=LOn9jVGa83c :)
For data mining we have some algorithms in pharo-ai 
https://github.com/pharo-ai/wiki (wiki not updated at 100%) we also have some 
other machine learning stuffs.
And we also have PolyMath : https://github.com/PolyMathOrg/PolyMath for 
scientific computations :)

Regards,
Sebastian Jordan


De: "Juan Cruz" 
À: "pharo-users" 
Envoyé: Dimanche 15 Janvier 2023 01:10:34
Objet: [Pharo-users] New to Pharo: Some questions
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: Creating tiny Pharo images

2023-01-15 Thread erik . stel
Hi all.\
\
I added a 'dynamic' image to the TinyBootstrap repo. It is a tiny image 
containing a pre-installed code loader. This code loader allows you to load 
additional classes and methods and (optionally) save this in the image. Code 
(in the form of a class method) can be executed from the command line. Once the 
image has the required content and functions as expected, it can be 'fused' in 
which case the code loader is removed from the image and only the defined 
functionality remains. To allow code to be installed from a regular Pharo 10 
image, a small TinyTools repo is available which allows generation of code 
files. It also contains a small 'Inspector' class which simply prints out all 
classes (and optionally methods) which are present in the image. Installing 
this class is explained in the TinyTools readme.\
\
The encoder/decoder combi used is an adapted version of the encoder/decoder in 
CodeParadise which are used to send code and objects between browser and 
application server. \
\
Have fun Smalltalking to tiny images! \
[https://github.com/ErikOnBike/TinyTools](https://github.com/ErikOnBike/TinyTools
 "https://github.com/ErikOnBike/TinyTools";)\
[https://github.com/ErikOnBike/TinyBootstrap/blob/main/README.md#dynamic-image](https://github.com/ErikOnBike/TinyBootstrap/blob/main/README.md#dynamic-image
 
"https://github.com/ErikOnBike/TinyBootstrap/blob/main/README.md#dynamic-image";)


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

2023-01-15 Thread Serge Stinckwich
Hi Juan,

you might have a look to PolyMath:
https://github.com/PolyMathOrg/PolyMath

We are trying to build something equivalent to pandas et other scientific
libraries in Python.
Arms to help us are welcome ;-)
Regards,

On Mon, 16 Jan 2023 at 04:10, Juan Cruz  wrote:

> Hi,
> Thanks for your response. The size of datasets is not an issue, but my
> intention is not to bridge to Python. The reason behind the question is
> that (and sorry for those who love it) I think Python is an ugly language.
> It's very powerful due to its libraries: Yes. But as a language, I find it
> ugly and not very expressive. Besides, the fact that indentation has syntax
> meaning is really annoying.
> I tried Haskell, beautiful. Also Closure and Ruby. Love those. But
> Smalltalk caught my attention as I read in different sources that it was
> actively used in the financial industry, so I figure out that there were
> some advanced libraries out there...Probably they exist and are proprietary
> or secret haha.
> Thanks so much I will keep toying with Pharo, these days have been really
> fun. It is really fun to code in Pharo...and easy!!
> No need to set up environments, select editors, plugins, or
> debuggers..it´s all there!
> Have a great Sunday
> Juan P. Cruz
>
> --
> *From:* Jupiter Jones 
> *Sent:* Sunday, January 15, 2023 3:20 AM
> *To:* Any question about pharo is welcome 
> *Subject:* [Pharo-users] Re: New to Pharo: Some questions
>
> 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
>
>
>

-- 
Serge Stinckwic
h​
https://twitter.com/SergeStinckwich
​