Smalltalk and the list of popular programming languages

DM
David Mason
Mon, Sep 9, 2019 5:57 PM

I don’t want to fall too far down the language popularity rabbit-hole, but I think it is worth seeing if Pharo Smalltalk has a viable story.

I’m most interested in how we compare with Python, in particular:

"Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow, CNTK, and Theano deep-learning frameworks and tool kits.”

and:

"dramatic increase in computing power found in microcontrollers means that embedded versions of Python, such as CircuitPython and MicroPython, are becoming increasingly popular among makers.”

I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this.

../Dave

I don’t want to fall too far down the language popularity rabbit-hole, but I think it is worth seeing if Pharo Smalltalk has a viable story. I’m most interested in how we compare with Python, in particular: "Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow, CNTK, and Theano deep-learning frameworks and tool kits.” and: "dramatic increase in computing power found in microcontrollers means that embedded versions of Python, such as CircuitPython and MicroPython, are becoming increasingly popular among makers.” I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this. ../Dave
AB
Alexandre Bergel
Tue, Sep 10, 2019 11:56 PM

Hi David,

"Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library https://keras.io/ is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow https://www.tensorflow.org/, CNTK https://docs.microsoft.com/en-us/cognitive-toolkit/, and Theano http://www.deeplearning.net/software/theano/ deep-learning frameworks and tool kits.”

and:

"dramatic increase in computing power https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-enough-for-an-arduino found in microcontrollers means that embedded versions of Python, such as CircuitPython https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-python-into-microcontrollers and MicroPython https://micropython.org/, are becoming increasingly popular among makers.”

I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this.

The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here:

https://github.com/ObjectProfile/PythonBridge https://github.com/ObjectProfile/PythonBridge

This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library:

https://github.com/ObjectProfile/PythonBridge https://github.com/ObjectProfile/PythonBridge

As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries.

One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago.

Cheers,
Alexandre

Hi David, > "Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library <https://keras.io/> is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow <https://www.tensorflow.org/>, CNTK <https://docs.microsoft.com/en-us/cognitive-toolkit/>, and Theano <http://www.deeplearning.net/software/theano/> deep-learning frameworks and tool kits.” > > and: > > "dramatic increase in computing power <https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-enough-for-an-arduino> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-python-into-microcontrollers> and MicroPython <https://micropython.org/>, are becoming increasingly popular among makers.” > > I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this. The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here: https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge> This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library: https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge> As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries. One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago. Cheers, Alexandre
BS
Boris Shingarov
Wed, Sep 11, 2019 8:40 AM

Hi Alexandre,

I went to look at PythonBridge and it promises to be massively
interesting!  Definitely much more systematic than the crude and
primitive PyStGateway I hacked together for the MachineArithmetic package.

However, I must be doing something stupid.  As PythonBridge's "Getting
Started" page tells me, I loaded the metacello:

|Metacello new baseline: 'PythonBridge'; repository:
'github://ObjectProfile/PythonBridge/src'; load.|

so now I have PythonBridge master and Python3Generator v2.0.0 in my
Pharo 7 image.  Ok nice.

However, PBApplication class does not implement
#installPipenvEnvironment, so

|(Smalltalk at: #PBApplication) installPipenvEnvironment|

results in MNU.  In fact there are no implementors of
#installPipenvEnvironment.

How would you suggest to debug this?

Regards,

Boris

Hi Alexandre, I went to look at PythonBridge and it promises to be massively interesting!  Definitely much more systematic than the crude and primitive PyStGateway I hacked together for the MachineArithmetic package. However, I must be doing something stupid.  As PythonBridge's "Getting Started" page tells me, I loaded the metacello: |Metacello new baseline: 'PythonBridge'; repository: 'github://ObjectProfile/PythonBridge/src'; load.| so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo 7 image.  Ok nice. However, PBApplication class does not implement #installPipenvEnvironment, so |(Smalltalk at: #PBApplication) installPipenvEnvironment| results in MNU.  In fact there are no implementors of #installPipenvEnvironment. How would you suggest to debug this? Regards, Boris
SS
Serge Stinckwich
Wed, Sep 11, 2019 8:43 AM

On Wed, Sep 11, 2019 at 10:41 AM Boris Shingarov boris@shingarov.com
wrote:

Hi Alexandre,

I went to look at PythonBridge and it promises to be massively
interesting!  Definitely much more systematic than the crude and primitive
PyStGateway I hacked together for the MachineArithmetic package.

However, I must be doing something stupid.  As PythonBridge's "Getting
Started" page tells me, I loaded the metacello:

Metacello new
baseline: 'PythonBridge';
repository: 'github://ObjectProfile/PythonBridge/src';
load.

so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo
7 image.  Ok nice.

However, PBApplication class does not implement #installPipenvEnvironment,
so

(Smalltalk at: #PBApplication) installPipenvEnvironment

results in MNU.  In fact there are no implementors of
#installPipenvEnvironment.

How would you suggest to debug this?

I already got this problem. Normally you don't have to do anymore:
(Smalltalk at: #PBApplication) installPipenvEnvironment

Just run the tests after your load PythonBridge in your image.

Regards,

--
Serge Stinckwic
h

Int. Research Unit
on Modelling/Simulation of Complex Systems (UMMISCO)
Sorbonne University
(SU)
French National Research Institute for Sustainable Development (IRD)
U
niversity of Yaoundé I, Cameroon
"Programs must be written for people to read, and only incidentally for
machines to execute."
https://twitter.com/SergeStinckwich

On Wed, Sep 11, 2019 at 10:41 AM Boris Shingarov <boris@shingarov.com> wrote: > Hi Alexandre, > > I went to look at PythonBridge and it promises to be massively > interesting! Definitely much more systematic than the crude and primitive > PyStGateway I hacked together for the MachineArithmetic package. > > However, I must be doing something stupid. As PythonBridge's "Getting > Started" page tells me, I loaded the metacello: > > Metacello new > baseline: 'PythonBridge'; > repository: 'github://ObjectProfile/PythonBridge/src'; > load. > > so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo > 7 image. Ok nice. > > However, PBApplication class does not implement #installPipenvEnvironment, > so > > (Smalltalk at: #PBApplication) installPipenvEnvironment > > results in MNU. In fact there are no implementors of > #installPipenvEnvironment. > > How would you suggest to debug this? > I already got this problem. Normally you don't have to do anymore: (Smalltalk at: #PBApplication) installPipenvEnvironment Just run the tests after your load PythonBridge in your image. Regards, -- Serge Stinckwic h Int. Research Unit on Modelling/Simulation of Complex Systems (UMMISCO) Sorbonne University (SU) French National Research Institute for Sustainable Development (IRD) U niversity of Yaoundé I, Cameroon "Programs must be written for people to read, and only incidentally for machines to execute." https://twitter.com/SergeStinckwich
AI
Alejandro Infante
Wed, Sep 11, 2019 11:55 AM

Hi Boris,

In the current version of PythonBridge it is not required to execute (Smalltalk at: #PBApplication) installPipenvEnvironment since the piping environment is installed automatically on the first start up of the bridge (which may take a couple minutes depending on you machine and connection).

I will review the GitHub pages website because I changed that last week and the change hasn’t come live…

Feel free to ask any doubts and we expect documentation improvements these weeks :)

Cheers!
Alejandro

On Sep 11, 2019, at 5:40 AM, Boris Shingarov boris@shingarov.com wrote:

Hi Alexandre,

I went to look at PythonBridge and it promises to be massively interesting!  Definitely much more systematic than the crude and primitive PyStGateway I hacked together for the MachineArithmetic package.

However, I must be doing something stupid.  As PythonBridge's "Getting Started" page tells me, I loaded the metacello:

Metacello new
baseline: 'PythonBridge';
repository: 'github://ObjectProfile/PythonBridge/src';
load.
so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo 7 image.  Ok nice.

However, PBApplication class does not implement #installPipenvEnvironment, so

(Smalltalk at: #PBApplication) installPipenvEnvironment
results in MNU.  In fact there are no implementors of #installPipenvEnvironment.

How would you suggest to debug this?

Regards,

Boris


Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org

Hi Boris, In the current version of PythonBridge it is not required to execute (Smalltalk at: #PBApplication) installPipenvEnvironment since the piping environment is installed automatically on the first start up of the bridge (which may take a couple minutes depending on you machine and connection). I will review the GitHub pages website because I changed that last week and the change hasn’t come live… Feel free to ask any doubts and we expect documentation improvements these weeks :) Cheers! Alejandro > On Sep 11, 2019, at 5:40 AM, Boris Shingarov <boris@shingarov.com> wrote: > > Hi Alexandre, > > I went to look at PythonBridge and it promises to be massively interesting! Definitely much more systematic than the crude and primitive PyStGateway I hacked together for the MachineArithmetic package. > > However, I must be doing something stupid. As PythonBridge's "Getting Started" page tells me, I loaded the metacello: > > Metacello new > baseline: 'PythonBridge'; > repository: 'github://ObjectProfile/PythonBridge/src'; > load. > so now I have PythonBridge master and Python3Generator v2.0.0 in my Pharo 7 image. Ok nice. > > However, PBApplication class does not implement #installPipenvEnvironment, so > > (Smalltalk at: #PBApplication) installPipenvEnvironment > results in MNU. In fact there are no implementors of #installPipenvEnvironment. > > How would you suggest to debug this? > > Regards, > > Boris > > > > _______________________________________________ > Esug-list mailing list > Esug-list@lists.esug.org > http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
SD
Stéphane Ducasse
Thu, Sep 12, 2019 7:26 AM

you have also the solution of vincent arenaga that smoothly let you manipulate Python object in Pharo and the inverse
a bit like a reflective oriented corba layers…

On 11 Sep 2019, at 01:56, Alexandre Bergel abergel@dcc.uchile.cl wrote:

Hi David,

"Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library https://keras.io/ is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow https://www.tensorflow.org/, CNTK https://docs.microsoft.com/en-us/cognitive-toolkit/, and Theano http://www.deeplearning.net/software/theano/ deep-learning frameworks and tool kits.”

and:

"dramatic increase in computing power https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-enough-for-an-arduino found in microcontrollers means that embedded versions of Python, such as CircuitPython https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-python-into-microcontrollers and MicroPython https://micropython.org/, are becoming increasingly popular among makers.”

I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this.

The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here:

https://github.com/ObjectProfile/PythonBridge https://github.com/ObjectProfile/PythonBridge

This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library:

https://github.com/ObjectProfile/PythonBridge https://github.com/ObjectProfile/PythonBridge

As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries.

One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago.

Cheers,
Alexandre


Esug-list mailing list
Esug-list@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org


Stéphane Ducasse
http://stephane.ducasse.free.fr
http://www.synectique.eu / http://www.pharo.org
03 59 35 87 52
Assistant: Julie Jonas
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley,
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France

you have also the solution of vincent arenaga that smoothly let you manipulate Python object in Pharo and the inverse a bit like a reflective oriented corba layers… > On 11 Sep 2019, at 01:56, Alexandre Bergel <abergel@dcc.uchile.cl> wrote: > > Hi David, > >> "Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library <https://keras.io/> is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow <https://www.tensorflow.org/>, CNTK <https://docs.microsoft.com/en-us/cognitive-toolkit/>, and Theano <http://www.deeplearning.net/software/theano/> deep-learning frameworks and tool kits.” >> >> and: >> >> "dramatic increase in computing power <https://spectrum.ieee.org/geek-life/hands-on/machine-learning-thats-light-enough-for-an-arduino> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-python-into-microcontrollers> and MicroPython <https://micropython.org/>, are becoming increasingly popular among makers.” >> >> I’d love to be able to say, when people challenge me about Smalltalk, that we have those, or the logical equivalent of this. > > > The Python library catalog is indeed very appealing. Making Python libraries accessible in Smalltalk is an obvious and significant gain for Smalltalk. This is exactly the problem we worked on. We built the Python Bridge, available here: > > https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge> > > This Python Bridge can be specialized for particular Python libraries, in particular all the AI libraries. We did this for the Keras library: > > https://github.com/ObjectProfile/PythonBridge <https://github.com/ObjectProfile/PythonBridge> > > As benefit, you can use Keras (and therefore Google’s tensorflow) without even knowing that you are talking to a Python libraries. > > One of the cool aspect of our work, is that it works for both VisualWorks and Pharo, as it was demonstrated at ESUG a few weeks ago. > > Cheers, > Alexandre > _______________________________________________ > Esug-list mailing list > Esug-list@lists.esug.org > http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org -------------------------------------------- Stéphane Ducasse http://stephane.ducasse.free.fr http://www.synectique.eu / http://www.pharo.org 03 59 35 87 52 Assistant: Julie Jonas FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France
SD
Stéphane Ducasse
Thu, Sep 12, 2019 7:30 AM

I often reply to people by saying that if we all use the same tools then we will invent the same.
So this is important to have different approaches.

Because else we need less researchers because they will all come up with the same ideas :)

I also mention that in biology the wealth of an ecosystem is the number of endemic species.
England: 49
Socrota island: 700
guess which one I would keep if I need to choose.

S.

BTW dave it would be cool to have Ryerson part of the Pharo consortium

I often reply to people by saying that if we all use the same tools then we will invent the same. So this is important to have different approaches. Because else we need less researchers because they will all come up with the same ideas :) I also mention that in biology the wealth of an ecosystem is the number of endemic species. England: 49 Socrota island: 700 guess which one I would keep if I need to choose. S. BTW dave it would be cool to have Ryerson part of the Pharo consortium