Behold Pharo: The Modern Smalltalk

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
167 messages Options
12345 ... 9
Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Richard Sargent (again)
Yes. We have tools that are *designed* for reading code and understanding it. But, let's have a ton of dead bits instead.
On Oct 6, 2017, at 15:35, Stephane Ducasse <[hidden email]> wrote:
To get dead objects while we have them live :)

On Fri, Oct 6, 2017 at 8:48 PM, Sven Van Caekenberghe <[hidden email]> wrote:


On 6 Oct 2017, at 19:57, Sean P. DeNigris <[hidden email]> wrote:

Maybe this [1] or this [2] (the two might be the same thing)

1. http://forum.world.st/Online-Pharo-Documentation-tp3468690.html
2. http://forum.world.st/webdoc-tt3654967.html

http://files.pharo.org/doc/4.0/#classList=package/Kernel.html&packageList=package.html&classView=welcome.html

This is only up to Pharo 4.

But the point remains, given an image and all our tools, why go to the web.





Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by horrido
Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP. 

And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less. 

iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment. 

To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality. 

For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why. 

But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!

I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again. 

I really hope that we take this further though. 

On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
Behold Pharo: The Modern Smalltalk
<https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>

If you would like to suggest some edits, I'm all ears. Anything to improve
the impact of the article.

Thanks.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Sven Van Caekenberghe-2
Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.

Come on.

> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
>
> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
>
> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
>
> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
>
> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
>
> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
>
> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
>
> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
>
> I really hope that we take this further though.
>
> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
> Behold Pharo: The Modern Smalltalk
> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
>
> If you would like to suggest some edits, I'm all ears. Anything to improve
> the impact of the article.
>
> Thanks.
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

horrido
To be honest, I didn't know you could do live coding in Python, Ruby, C/C++.
I had only ever heard of "hot swapping" in Java.

At any rate, I'd be surprised if live coding in these languages was as easy
and convenient as in Pharo/Smalltalk.



Sven Van Caekenberghe-2 wrote
> Yes, you are right: Pharo/Smalltalk is more or less the same as
> Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live
> coding.
>
> Come on.
>
>> On 6 Oct 2017, at 23:18, Dimitris Chloupis &lt;

> kilon.alios@

> &gt; wrote:
>>
>> Wise not to mention Ruby and Python and Pick the worst of the worst in
>> OOP. Because frankly the competition for Pharo against those two
>> behemoths can be quite brutal in the flexibility and power of OOP.
>>
>> And no , these language can do live coding with ease. I know because I
>> currently code live coding style with Python for an app I am making. Sure
>> it wont provide you with a live system out of the box, but put in 10
>> lines of code and you already ready to go with hardcore live coding. At
>> least Python , Ruby being practically a rip off of Smalltalk language may
>> need even less.
>>
>> iPython which by the way is by far the most popular Python tool is the
>> real deal, a full blow live coding enviroment.
>>
>> To my suprise its not even hard to do live coding with C/C++ including
>> using image format. To my shock live coding is actually supported by both
>> the OS and the hardware. Hardware has its own exception system , OS has
>> an image flie format called "memory mapped files" used for DLLs and a lot
>> of essential functionality.
>>
>> For some weird reason however its well hidden and not that much utilised
>> by coders. They really love long compile times, dont ask me why.
>>
>> But yeah C++ even though it has come a long way with its template system,
>> its still the king of ugly. That sytax, oh the horrors of that
>> syntax..... yiaks !!!
>>
>> I am so enternal greatful that Pharo introduced me to live coding and
>> opened my eyes to universe of fun and productivity. I cannot imagine
>> coding an other way ever again.
>>
>> I really hope that we take this further though.
>>
>> On Wed, Oct 4, 2017 at 1:31 PM horrido &lt;

> horrido.hobbies@

> &gt; wrote:
>> Behold Pharo: The Modern Smalltalk
>> &lt;https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053&gt;
>>
>> If you would like to suggest some edits, I'm all ears. Anything to
>> improve
>> the impact of the article.
>>
>> Thanks.
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Sean P. DeNigris
Administrator
In reply to this post by Sven Van Caekenberghe-2
Sven Van Caekenberghe-2 wrote
> But the point remains, given an image and all our tools, why go to the
> web.

It seems like the value would be more as a PR tool than a development tool.



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Offray Vladimir Luna Cárdenas-2
In reply to this post by kilon.alios

Well IPython is not near to Pharo in terms of flexibility and live coding, and I have been a user of it. For example, recently we made a whole book 13 Mb PDF book in a single Grafoscopio file of just ~600k, with a pretty good layout and final design (more details in other recent thread and in [1]). JupyterLab[2] is going in the direction of becoming a more complete IDE, but there are still a lot of stuff that is better done in Pharo, like unit testing, that in JupyterLab. In fact Brian Granger has told that the "I" is for interactive, not for integrated [3]. Of course, after over a decade of hard work and several millions of dollars, Jupyter is doing pretty well on the interactive notebooks front, but Pharo's edge in live coding and moldability, plus a superb small, agile and friendly community allowed a beginner to prototype valuable propositions about reproducible research and computer storytelling, without such background.

[1] http://mutabit.com/repos.fossil/mapeda/
[2] http://jupyterlab.github.io/
[3] https://www.youtube.com/watch?v=Ejh0ftSjk6g

So, I have experienced live coding in IPython/Jupyter and Pharo/Grafoscopio and still I think that Pharo has value proposals hard to find on any behemoths. Live coding there is getting good, but Pharo is even better, and that plus moldability make Pharo unbeatable, when you're changing/exploring a running system.

Cheers,

Offray

On 06/10/17 16:18, Dimitris Chloupis wrote:
Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP. 

And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less. 

iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment. 

To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality. 

For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why. 

But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!

I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again. 

I really hope that we take this further though. 

On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
Behold Pharo: The Modern Smalltalk
<https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>

If you would like to suggest some edits, I'm all ears. Anything to improve
the impact of the article.

Thanks.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by Sven Van Caekenberghe-2
Well live coding is a simple process of reloading code. In Pharo the VM recompiles a method and replace it’s old instance with a new one while code executes. 

Python you basically reload the module. Because Python does not compile per method but per module which means executing code lively. This happens because when you import a module in Python, Python does nothing special than executing the source code. Not before compilation but during execution. Hence live coding, the Python VM replaces objects lively. Python can also compile any size of code including individual methods. 

That happens with one line of code importlib.reload(mymodule) 

The next challenge in live coding is capture the error and not allowing the app to exit, that is 2 lines of code and is a python exception. Python exceptions are heavily used in Python to capture errors. 

Debugging is up to the debugger that Python provides as a library with conditional breakpoints and fully integrated . You can of course ask at any point for any kind of context, global , local, arguments , instance and class variables. The debugger also comes with its own REPL. Again everything is an object.

OOP wise , in Python  everything is an object including procedure. Procedures like blocks in Pharo are objects with one method. Procedures are anonymous but if the name really bothers you you can use lamba functions. Python has bigger syntax than Pharo but anything can be implemented as an object. Global variables are objects, imported modules are objects etc.

Reflection wise , Python is a fully reflective an object can ask itself or others about its live state, methods, bytecode and source code.

Meta programming wiseython allows for fully manipulation of objects down to bytecode level. Python has no need for traits because it allows the live replacement of its methods with procedures or methods from other objects.

Finally like Pharo , Python comes with a very powerful AST library capable of fully manipulating the syntax . HyLang is a Lisp made in Python that compiles to Python bytecode and can use any Python library. 

The one thing Python cannot do at least out of the box is privacy. In Pharo everything is private , methods hide behind messages , variables behind methods. In Python everything is public and privacy is annotated in naming only using double underscores. 

Python also has properties which are methods that override variable assignment , similarly how we use getter and sender methods for object variables in Pharo. 

What Python recently got has been optional static types  but I am not sure if they are real static types , because I am not a fan of static typing anyway. 

I am no expert in OOP but I cannot say I have found a thing that Pharo can do that Python can’t or is more difficult. Python obviously is very heavily inspired by Smalltalk . 

The very brief look I gave Ruby looked to me that it is even closer to Smalltalk.

On Sat, 7 Oct 2017 at 01:17, Sven Van Caekenberghe <[hidden email]> wrote:
Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.

Come on.

> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
>
> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
>
> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
>
> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
>
> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
>
> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
>
> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
>
> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
>
> I really hope that we take this further though.
>
> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
> Behold Pharo: The Modern Smalltalk
> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
>
> If you would like to suggest some edits, I'm all ears. Anything to improve
> the impact of the article.
>
> Thanks.
>
>
>
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Offray Vladimir Luna Cárdenas-2
Hi,


On 06/10/17 20:41, Dimitris Chloupis wrote:
> I am no expert in OOP but I cannot say I have found a thing that Pharo
> can do that Python can’t or is more difficult. Python obviously is
> very heavily inspired by Smalltalk .

I can find one: creating an environment for reproducible research and
literate computing (interactive documentation). It can be done on both, 
but is harder and a lot more complicated in Python that in Pharo, as
experience have shown [1]

[1]
http://mutabit.com/offray/static/blog/output/posts/grafoscopio-idea-and-initial-progress.html

Cheers,

Offray

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by horrido
Well any code you execute right now is to a degree live code. DLL are dynamically loaded libraries which means you reload code real time. DLLs are everywhere and of course even Pharo heavily relies on them. 

Yes in Python live coding is as easy , I already explained in previous post. 

On Sat, 7 Oct 2017 at 01:51, horrido <[hidden email]> wrote:
To be honest, I didn't know you could do live coding in Python, Ruby, C/C++.
I had only ever heard of "hot swapping" in Java.

At any rate, I'd be surprised if live coding in these languages was as easy
and convenient as in Pharo/Smalltalk.



Sven Van Caekenberghe-2 wrote
> Yes, you are right: Pharo/Smalltalk is more or less the same as
> Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live
> coding.
>
> Come on.
>
>> On 6 Oct 2017, at 23:18, Dimitris Chloupis &lt;

> kilon.alios@

> &gt; wrote:
>>
>> Wise not to mention Ruby and Python and Pick the worst of the worst in
>> OOP. Because frankly the competition for Pharo against those two
>> behemoths can be quite brutal in the flexibility and power of OOP.
>>
>> And no , these language can do live coding with ease. I know because I
>> currently code live coding style with Python for an app I am making. Sure
>> it wont provide you with a live system out of the box, but put in 10
>> lines of code and you already ready to go with hardcore live coding. At
>> least Python , Ruby being practically a rip off of Smalltalk language may
>> need even less.
>>
>> iPython which by the way is by far the most popular Python tool is the
>> real deal, a full blow live coding enviroment.
>>
>> To my suprise its not even hard to do live coding with C/C++ including
>> using image format. To my shock live coding is actually supported by both
>> the OS and the hardware. Hardware has its own exception system , OS has
>> an image flie format called "memory mapped files" used for DLLs and a lot
>> of essential functionality.
>>
>> For some weird reason however its well hidden and not that much utilised
>> by coders. They really love long compile times, dont ask me why.
>>
>> But yeah C++ even though it has come a long way with its template system,
>> its still the king of ugly. That sytax, oh the horrors of that
>> syntax..... yiaks !!!
>>
>> I am so enternal greatful that Pharo introduced me to live coding and
>> opened my eyes to universe of fun and productivity. I cannot imagine
>> coding an other way ever again.
>>
>> I really hope that we take this further though.
>>
>> On Wed, Oct 4, 2017 at 1:31 PM horrido &lt;

> horrido.hobbies@

> &gt; wrote:
>> Behold Pharo: The Modern Smalltalk
>> &lt;https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053&gt;
>>
>> If you would like to suggest some edits, I'm all ears. Anything to
>> improve
>> the impact of the article.
>>
>> Thanks.
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by Offray Vladimir Luna Cárdenas-2
Care to explain what difficulty you experienced in live coding with Python. Or what Pharo can do that Python can’t live code wise ? Maybe I will learn something. 


On Sat, 7 Oct 2017 at 04:36, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:

Well IPython is not near to Pharo in terms of flexibility and live coding, and I have been a user of it. For example, recently we made a whole book 13 Mb PDF book in a single Grafoscopio file of just ~600k, with a pretty good layout and final design (more details in other recent thread and in [1]). JupyterLab[2] is going in the direction of becoming a more complete IDE, but there are still a lot of stuff that is better done in Pharo, like unit testing, that in JupyterLab. In fact Brian Granger has told that the "I" is for interactive, not for integrated [3]. Of course, after over a decade of hard work and several millions of dollars, Jupyter is doing pretty well on the interactive notebooks front, but Pharo's edge in live coding and moldability, plus a superb small, agile and friendly community allowed a beginner to prototype valuable propositions about reproducible research and computer storytelling, without such background.

[1] http://mutabit.com/repos.fossil/mapeda/
[2] http://jupyterlab.github.io/
[3] https://www.youtube.com/watch?v=Ejh0ftSjk6g

So, I have experienced live coding in IPython/Jupyter and Pharo/Grafoscopio and still I think that Pharo has value proposals hard to find on any behemoths. Live coding there is getting good, but Pharo is even better, and that plus moldability make Pharo unbeatable, when you're changing/exploring a running system.

Cheers,

Offray


On 06/10/17 16:18, Dimitris Chloupis wrote:
Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP. 

And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less. 

iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment. 

To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality. 

For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why. 

But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!

I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again. 

I really hope that we take this further though. 

On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
Behold Pharo: The Modern Smalltalk
<https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>

If you would like to suggest some edits, I'm all ears. Anything to improve
the impact of the article.

Thanks.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by Offray Vladimir Luna Cárdenas-2
Again very generic statements , and I see you refer to tools and libraries instead of OOP. We talking here Pharo vs Python on the language level because Python obviously does not come with an IDE. But then Pharo does not come with literate programming tools or libraries as well. 

I rather not go down the rabbit hole of third party libraries because obviously I cannot participate in a discussion about libraries and areas of coding, I know nothing about. Plus Python has countless of libraries which makes a very longer discussion even if I was familiar with them and Pharo has much less but still quite a lot of libraries as well. 

On Sat, 7 Oct 2017 at 04:46, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:
Hi,


On 06/10/17 20:41, Dimitris Chloupis wrote:
> I am no expert in OOP but I cannot say I have found a thing that Pharo
> can do that Python can’t or is more difficult. Python obviously is
> very heavily inspired by Smalltalk .

I can find one: creating an environment for reproducible research and
literate computing (interactive documentation). It can be done on both, 
but is harder and a lot more complicated in Python that in Pharo, as
experience have shown [1]

[1]
http://mutabit.com/offray/static/blog/output/posts/grafoscopio-idea-and-initial-progress.html

Cheers,

Offray

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Stephane Ducasse-3
In reply to this post by Sven Van Caekenberghe-2
Hi sven

Do the same than me, trash this thread and let us focus on making Pharo better.
This is far better productive and energy positive.

Stef

On Sat, Oct 7, 2017 at 12:16 AM, Sven Van Caekenberghe <[hidden email]> wrote:

> Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.
>
> Come on.
>
>> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
>>
>> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
>>
>> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
>>
>> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
>>
>> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
>>
>> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
>>
>> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
>>
>> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
>>
>> I really hope that we take this further though.
>>
>> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
>> Behold Pharo: The Modern Smalltalk
>> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
>>
>> If you would like to suggest some edits, I'm all ears. Anything to improve
>> the impact of the article.
>>
>> Thanks.
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Stephane Ducasse-3
In reply to this post by horrido
> To be honest, I didn't know you could do live coding in Python, Ruby, C/C++.
> I had only ever heard of "hot swapping" in Java.

Me neither :)
Do not worry and let us continue to work on making Pharo better.
I did not know that a.out and core.dmp where live programming :)

Stef

> At any rate, I'd be surprised if live coding in these languages was as easy
> and convenient as in Pharo/Smalltalk.

Me too but they are catching up so let us continue to make Pharo super cool.

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Sven Van Caekenberghe-2


> On 7 Oct 2017, at 10:15, Stephane Ducasse <[hidden email]> wrote:
>
>> To be honest, I didn't know you could do live coding in Python, Ruby, C/C++.
>> I had only ever heard of "hot swapping" in Java.
>
> Me neither :)
> Do not worry and let us continue to work on making Pharo better.
> I did not know that a.out and core.dmp where live programming :)

With gdb and assembler you can do live coding & OOP too ;-)

> Stef
>
>> At any rate, I'd be surprised if live coding in these languages was as easy
>> and convenient as in Pharo/Smalltalk.
>
> Me too but they are catching up so let us continue to make Pharo super cool.
>


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by Stephane Ducasse-3
I agree, ignore that crazy dude that he is all talk and non sense excluding the fact the original article uses a graphic he made with love for Pharo and with over 5 years of active contribution to Pharo documentation and libraries. OR the fact that he said nothing negative about Pharo in this thread. 

Or the fact that he said that is enternal greatful for Pharo introducing him to the art and fun of live coding. What's more negative than that , right ? 

On Sat, Oct 7, 2017 at 11:14 AM Stephane Ducasse <[hidden email]> wrote:
Hi sven

Do the same than me, trash this thread and let us focus on making Pharo better.
This is far better productive and energy positive.

Stef

On Sat, Oct 7, 2017 at 12:16 AM, Sven Van Caekenberghe <[hidden email]> wrote:
> Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.
>
> Come on.
>
>> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
>>
>> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
>>
>> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
>>
>> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
>>
>> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
>>
>> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
>>
>> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
>>
>> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
>>
>> I really hope that we take this further though.
>>
>> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
>> Behold Pharo: The Modern Smalltalk
>> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
>>
>> If you would like to suggest some edits, I'm all ears. Anything to improve
>> the impact of the article.
>>
>> Thanks.
>>
>>
>>
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Sven Van Caekenberghe-2
Your contribution to Pharo are much appreciated. And indeed you did not directly say anything negative.

But you have to agree that you often discuss about Python, C++, Blender, ... in mailing lists that are not for that purpose. You are absolutely free to do whatever you want and to give your opinions freely, but this is not the right place.

> On 7 Oct 2017, at 10:42, Dimitris Chloupis <[hidden email]> wrote:
>
> I agree, ignore that crazy dude that he is all talk and non sense excluding the fact the original article uses a graphic he made with love for Pharo and with over 5 years of active contribution to Pharo documentation and libraries. OR the fact that he said nothing negative about Pharo in this thread.
>
> Or the fact that he said that is enternal greatful for Pharo introducing him to the art and fun of live coding. What's more negative than that , right ?
>
> On Sat, Oct 7, 2017 at 11:14 AM Stephane Ducasse <[hidden email]> wrote:
> Hi sven
>
> Do the same than me, trash this thread and let us focus on making Pharo better.
> This is far better productive and energy positive.
>
> Stef
>
> On Sat, Oct 7, 2017 at 12:16 AM, Sven Van Caekenberghe <[hidden email]> wrote:
> > Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.
> >
> > Come on.
> >
> >> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
> >>
> >> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
> >>
> >> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
> >>
> >> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
> >>
> >> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
> >>
> >> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
> >>
> >> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
> >>
> >> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
> >>
> >> I really hope that we take this further though.
> >>
> >> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
> >> Behold Pharo: The Modern Smalltalk
> >> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
> >>
> >> If you would like to suggest some edits, I'm all ears. Anything to improve
> >> the impact of the article.
> >>
> >> Thanks.
> >>
> >>
> >>
> >> --
> >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >>
> >
> >
>


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
The dicussion is about Pharo's live coding and OOP compared to other languages. 

IF you look at all my threads you will see I ALWAYS mention Python , Blender , Unreal for relevant topics. I do not remember hi jackig a thread with random remarks just for the shake of mentioning those things.

Plus 99% of the times I mention Python is about Atlas , my library for using Python libraries from inside Pharo.  Atlas is a "trojan horse" for Pharo to invade Python projects. 

Also I have been very clear that I consider C++ an abomination syntax wise and Python weaker than Smalltalk, language wise.Mainly because of Smalltalk's minimal syntax and of course offering live coding outside the box with no special setup from the coder.

My point is that indeed you can do with EASE live coding in a numerous languages, at least to my experience. I have tried only Python and C/C++. Is it as easy or as flexible as Pharo ? I do not know because live coding as you know is about workflow and we dont code all the same way. For example I was never comfortable with coding solely from inside Pharo debugger as some of you are doing. I am more a Class Browser guy and I rarely use Workspace/Playground/REPL as well. 

My questions were sincere even though I was sarcastic because I always want to learn more about live coding and things I do not know about OOP. My sarcasm was an effort to be funny not to be rude.  

I am also certain that many experienced coders coming from other language will ask the same questions as well. What Pharo can give me OO wise that I cannot get in my X language ?  What exactly is live coding for Pharo ? Is doing X things in that Y language live coding or is it something else ? What's the real purpose of message passing ? How it benefits me compared to just using method calls ? 

I am suprised that there has not been an article about live coding workflows. I think it could greatly benefit Pharo to demostrate its uniqueness. 

People prefer to be shown that something is better than being told. 

Most people also not bother at all coming to the mailing list and ask questions, they will  ignore things they dont understand and carry on. 

So its not important to say that Pharo special but why Pharo is special and after 5 year I feel will still struggle in this area, not because of the fault of the community but because live coding and OOP can be an extremely wide field that you can easily get lost into. 

We have also to be fair with othe programming languages, respect them, to the degree they deserve our respect and not exaggerate our claims because that harms Pharo reputation. 

On Sat, Oct 7, 2017 at 11:50 AM Sven Van Caekenberghe <[hidden email]> wrote:
Your contribution to Pharo are much appreciated. And indeed you did not directly say anything negative.

But you have to agree that you often discuss about Python, C++, Blender, ... in mailing lists that are not for that purpose. You are absolutely free to do whatever you want and to give your opinions freely, but this is not the right place.

> On 7 Oct 2017, at 10:42, Dimitris Chloupis <[hidden email]> wrote:
>
> I agree, ignore that crazy dude that he is all talk and non sense excluding the fact the original article uses a graphic he made with love for Pharo and with over 5 years of active contribution to Pharo documentation and libraries. OR the fact that he said nothing negative about Pharo in this thread.
>
> Or the fact that he said that is enternal greatful for Pharo introducing him to the art and fun of live coding. What's more negative than that , right ?
>
> On Sat, Oct 7, 2017 at 11:14 AM Stephane Ducasse <[hidden email]> wrote:
> Hi sven
>
> Do the same than me, trash this thread and let us focus on making Pharo better.
> This is far better productive and energy positive.
>
> Stef
>
> On Sat, Oct 7, 2017 at 12:16 AM, Sven Van Caekenberghe <[hidden email]> wrote:
> > Yes, you are right: Pharo/Smalltalk is more or less the same as Ruby/Python/C/C++ in terms of power & flexibility of OOP and in live coding.
> >
> > Come on.
> >
> >> On 6 Oct 2017, at 23:18, Dimitris Chloupis <[hidden email]> wrote:
> >>
> >> Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP.
> >>
> >> And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less.
> >>
> >> iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment.
> >>
> >> To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality.
> >>
> >> For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why.
> >>
> >> But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!
> >>
> >> I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again.
> >>
> >> I really hope that we take this further though.
> >>
> >> On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
> >> Behold Pharo: The Modern Smalltalk
> >> <https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>
> >>
> >> If you would like to suggest some edits, I'm all ears. Anything to improve
> >> the impact of the article.
> >>
> >> Thanks.
> >>
> >>
> >>
> >> --
> >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> >>
> >
> >
>


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

horrido
> My point is that indeed you can do with EASE live coding in a numerous
languages, at least to my experience. I have tried only Python and C/C++.

Until I came upon this thread, I never knew you could do live coding in
Python and C/C++. And I was a professional C/C++ programmer for over 15
years!

It is certainly a well-kept secret. I have found very little information on
the web about doing live coding in these languages (in fact, none). This
leads me to believe that the vast majority of Python and C/C++ developers
don't know about, or don't do, live coding.

Whether it's "easy" is rather subjective. I suspect it's not as easy nor as
convenient as in Pharo. If it were, then live coding ought to be much more
prevalent in the Python and C/C++ communities. After all, what developer
doesn't want to improve their productivity or increase their velocity of
development?

The key differentiator here, I think, is that live coding is baked into
Pharo/Smalltalk, thus making it natural to use. It is not natural for Python
and C/C++ programmers. It would be difficult to convince the IT industry to
adopt live coding en masse.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
Yes I agree with this

Pharo is a live coding BASED enviroment. For Pharo live coding is not just an easy to use feature it based its entire mentality around the idea of live coding.

Even though Smalltalk borrowed live coding and image format from Lisp we are more "pure" in that regard even compared to Lisp. 

But one thing to note here is that live coding is not really that useful when used always. At least for me I rely a lot on it for debugging and experimenting. But when I work based on a plan , or code just works I do not care so much about it. 

So my workflow in the end is semi-live coding because I dont feel I need live coding 24/7 to be super productive. 

Of course that creates some barriers in the end when tools are not made to work 24/7 on a live coding context. To that extend Pharo is definetly superior and a true live coding enviroment.

You are suprised that you can do live coding in C++ but I was trully shocked. 

My saga to do live coding in C++ started as a joke, something to use to mock C++ ugliness and weakness. But oh boy it did slap it back to my face. 

The process is again simple, you wrap eveything inside a main loop,and call in this loop functions (C has no objects obvious) or methods if you use C++ from DLLs. Those DLLs obviously contain 99.9% of your code. Because a DLL can be reloaded it allows you not to stop executing and replace code on the fly. The main loop is wrapped inside an exception to make sure the an error will never crash your application, C/C++ exceptions are more powerful than Pharo live coding in that regard because in Pharo if you do anything bad with UFFI and crash it , it will crash for sure. 

If you keep the DLL small and  you use tons of small dlls your compile times will be almost instantenous. You can also with very view lines detect date signature change in source file and trigger background compilation. Again few lines of code. The last mountain is live state, in this case the executable pass a single pointer and instead of the executable handling the memory its actually the dlls that handle it but the executable because it cannot crash or exit will keep the live state running. You can also use memory mapped file to store live state as they perform pure memory dumps. 

All in all you will end up with 100 lines of code that can be wrapped into a library and reused in the next project with zero setup. Its an one time pain. 

Will I would recommend C++ over Pharo for live coding .... helll no.... C++ obviously misses a hugely important live coding ingredient which is reflection. We do live coding because we want to interact with those objects ask questions about what is going on and why our code does not work as intended

However Python has no such limitation following a very similar design to Smalltalk and being much more powerful language than C++. Python follow very closely the Smalltalk paradigm even though there is not a single mention of Smalltalk , anywhere in the Python community or of live coding.
 
Live coding in C++ has become a huge deal in game development mainly because game development tend to want to change things on the fly and games are so big with extremely long compile times. Unreal has made a huge deal over its ability to hot reload C++  code in its editor , though I do not like its approach so much.

Bottom line is yes its easy and simple to do live coding in other languages, not recommended so much in C++ because of its static compiled nature and lack of reflection but for dynamic language like Python it can come pretty close and I speak from experience. 

At least I have not found something in Python that made me wish I was live  coding in Pharo so far, but then yes I still think its better to have a full blown live coding. Also from my limited understanding I have figured out that pretty much every language out there allows for reloading code which is pretty much a very large requirement for live coding. 

So yes you can live code to an extend, lesser in languages like C++ , more so in language like Python, Ruby etc. Can you get the Pharo experience ? In a dynamic language with the creation of a live coding library you could get pretty close but never exactly the same.

Pharo still is the undisputed king of live coding. 

Why live coding is not a huge thing in coding in general, I am willing to bet it has more to do with coder mentality than language limitation. When you are used to "dead  code" workflow it difficult to switch. I struggle a lot to get use to the live coding workflow of Pharo because I had to rewire my brain. But in the end you cannot avoid live coding, there will be always scenarios you would want to change things on the fly, reload code, store live state etc. 

In the end it more a coder flaw than it is a language flaw. I know we love to blame languages for our mistakes. 

But in our back of our head we all know we debate over languages that we barely use only 0.000001% of their true potential. We are too lazy and sometimes we need someone to slam our face to the truth to actually see it. And by we I dont mean the Pharo community but human nature by itself.  That's exactly what Pharo did for me that motivated me exploring live coding in other languages. 

If it was not for Pharo I would still be doing the old slow method of correct, compile, restart and repeat till you hate yourself. 

On Sat, Oct 7, 2017 at 1:57 PM horrido <[hidden email]> wrote:
> My point is that indeed you can do with EASE live coding in a numerous
languages, at least to my experience. I have tried only Python and C/C++.

Until I came upon this thread, I never knew you could do live coding in
Python and C/C++. And I was a professional C/C++ programmer for over 15
years!

It is certainly a well-kept secret. I have found very little information on
the web about doing live coding in these languages (in fact, none). This
leads me to believe that the vast majority of Python and C/C++ developers
don't know about, or don't do, live coding.

Whether it's "easy" is rather subjective. I suspect it's not as easy nor as
convenient as in Pharo. If it were, then live coding ought to be much more
prevalent in the Python and C/C++ communities. After all, what developer
doesn't want to improve their productivity or increase their velocity of
development?

The key differentiator here, I think, is that live coding is baked into
Pharo/Smalltalk, thus making it natural to use. It is not natural for Python
and C/C++ programmers. It would be difficult to convince the IT industry to
adopt live coding en masse.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Offray Vladimir Luna Cárdenas-2
In reply to this post by kilon.alios


On 06/10/17 21:00, Dimitris Chloupis wrote:
> Again very generic statements , and I see you refer to tools and
> libraries instead of OOP. We talking here Pharo vs Python on the
> language level because Python obviously does not come with an IDE. But
> then Pharo does not come with literate programming tools or libraries
> as well.

No. We were talking about things "that Pharo can do that Python can't do
or is most difficult". And, for me that includes the (community &
computing) environment provided by Pharo that allow you to go from and
idea to its implementation. In my case the idea was to provide an
experience which mix outlining (a la Leo Editor) with literate computing
(a la Jupyter, IPython) [1]. Even if the original pieces where already
there in Python, mixing them was a nighmare (at least 3 years ago) and
Pharo was more empowering for going from idea to prototype and now Pharo
has literate *computing* (not literate programming [2]) tools.
Grafoscopio is one of them. GT Documenter, in alpha now, is promising.
You can not have a single document for complex books in Jupyter. You
need to split/storage a single work in a "pile of files" metaphor. You
can, today, with Grafoscopio put a 300 pages long PDF in a single
notebook. So yes, there are things that are more complex in one
technology that in other (of course all computer languages are the same
at enough distance, because all them are Turing complete and all that stuff)

[1]
http://mutabit.com/offray/static/blog/output/posts/on-deepness-and-complexity-of-ipython-documents.html
[2] http://blog.fperez.org/2013/04/literate-computing-and-computational.html

>
> I rather not go down the rabbit hole of third party libraries because
> obviously I cannot participate in a discussion about libraries and
> areas of coding, I know nothing about. Plus Python has countless of
> libraries which makes a very longer discussion even if I was familiar
> with them and Pharo has much less but still quite a lot of libraries
> as well.

One of the advantages of being in a community is learning from others
experiences. You said that in your experience you have not found a place
where Python were more difficult that in Pharo. I have shown that in
*my* experience there are. And agree, is unwise to discuss about places
where one has no experience, when is better to learn from those who have it.

Cheers,

Offray


12345 ... 9