Smalltalk and the list of popular programming languages

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

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-en...> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-...> 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 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

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

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

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-en...> found in microcontrollers means that embedded versions of Python, such as CircuitPython <https://spectrum.ieee.org/at-work/tech-careers/scott-shawcroft-is-squeezing-...> 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

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
participants (6)
-
Alejandro Infante
-
Alexandre Bergel
-
Boris Shingarov
-
David Mason
-
Serge Stinckwich
-
Stéphane Ducasse