[VIDEO TUTORIAL] How to use external code editors to code in Pharo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
49 messages Options
123
Reply | Threaded
Open this post in threaded view
|

[VIDEO TUTORIAL] How to use external code editors to code in Pharo

kilon.alios
Often we have users of emacs and vim that request a way to use their favorite shortcuts or features. Some even ask "Would not be nice if I could use my favorite code editor with Pharo ?"

Actually not only you can do it, its also very easy. So the following video tutorial explains in the first 3 minutes how to do this and then spends another 10 min talking about how this could be automated to be completely automatic and instantaneous.

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Jose San Leandro
Thank you! I'm one of those.

El jue., 24 ene. 2019 a las 12:11, Dimitris Chloupis (<[hidden email]>) escribió:
Often we have users of emacs and vim that request a way to use their favorite shortcuts or features. Some even ask "Would not be nice if I could use my favorite code editor with Pharo ?"

Actually not only you can do it, its also very easy. So the following video tutorial explains in the first 3 minutes how to do this and then spends another 10 min talking about how this could be automated to be completely automatic and instantaneous.

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

peter yoo
wow.. thank you :D
Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Sven Van Caekenberghe-2
In reply to this post by kilon.alios


> On 24 Jan 2019, at 12:10, Dimitris Chloupis <[hidden email]> wrote:
>
> Often we have users of emacs and vim that request a way to use their favorite shortcuts or features. Some even ask "Would not be nice if I could use my favorite code editor with Pharo ?"
>
> Actually not only you can do it, its also very easy. So the following video tutorial explains in the first 3 minutes how to do this and then spends another 10 min talking about how this could be automated to be completely automatic and instantaneous.
>
> https://youtu.be/3YfRhDafIxs 

Everybody is of course totally free to do whatever they want, but really, why the hell would you want to do that ?

You lose so much by doing that, I do not even know where to start.

A big part of what makes Pharo (or any Smalltalk) special is the IDE written in itself.

Editing a .st file has always been possible, it is masochism.

There is for example https://github.com/dmatveev/shampoo-emacs which already makes a bit more sense (but even then).

Really, why do you think all these big IDE environments exist in the first place ?

Sven


Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Adventurer


-----Original Message-----
From: Pharo-users [mailto:[hidden email]] On Behalf Of
Sven Van Caekenberghe
Sent: Thursday, 24 January 2019 15:53
To: Any question about pharo is welcome
Subject: Re: [Pharo-users] [VIDEO TUTORIAL] How to use external code editors
to code in Pharo



>Everybody is of course totally free to do whatever they want, but really,
why the hell would you want to do that ?
>
>You lose so much by doing that, I do not even know where to start.
>
>A big part of what makes Pharo (or any Smalltalk) special is the IDE
written in itself.
>
>Editing a .st file has always been possible, it is masochism.
>
>There is for example https://github.com/dmatveev/shampoo-emacs which
already makes a bit more sense (but even then).
>
>Really, why do you think all these big IDE environments exist in the first
place ?
>
>Sven

Having the entire class in one text file so that you can see all of the
functionality without a ridiculous amount of  clicking around is a huge
bonus.
Especially for those of us that come from a C#/Java environment.  Also,
VS-Code provides a nice self-learning code completion mechanism,
so you don't lose auto-completion.

Win-win.

Craig



Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

darth-cheney
Sven asks an important question: why would anyone want to use an external text editor given the power already present in the system? For most of us on the list this question is rhetorical. But let's take a stab at addressing it with the seriousness that, I think, it actually deserves — particularly in light of the feedback we saw in various forums after the v7 announcement.

First, outside users are coming from the (as we'd say, outmoded) paradigm. Multiple generations have now been inculcated with the idea that editing text is the primary kinesthetic part of programming. We need to think about ways that newcomers can "ease in" to something like Pharo, rather than shock therapy. They can pick up the advantages over time.

Second, programmers are attached to their text editor of choice. It seems silly when said aloud, but it's the truth. When doing non-ST work, I like Emacs. Some people like vim. Others like any number of available text editors. They can move around quickly in them when it comes to editing text. Editing text, as much as we like to brush it aside, is something that still happens in Pharo. Again, we should ease people in as best as possible.

Third, the text in most external editors looks nicer than it does in Pharo. This is not a small matter. If you have to stare at code all day, it really helps to have smoothly displayed typefaces and some choice (and easy configuration) about how things are displayed. Sure, it's possible to change the typeface in the current version of Pharo, but as many many people pointed out on HN, it does not look crisp. Programmers today are used to good looking text. Hopefully Bloc etc will be able to address this, but it goes again towards that presentation/visual aspect of the system that turns a lot of newcomers off. They think it looks cartoonish. Several responders online even indicated that the community does not take graphics / visual design seriously at all (which we know isn't true, but that's the impression people have).

Fourth, there don't seem to be any *reasonable* or *easy* methods for editing remotely. With vim and emacs, editing code on a remote machine is so easy it's barely considered a feature. In editors like VS Code this is an easy enough feature to add. For Pharo it's hard to tell what's out there — how would a newcomer even know where to look to find out how to do this? Again, forum posters complained about out of date blog posts being the only accessible place to get information. I know about projects like Telepharo — but how does it work? Who is using it regularly? How would we explain it to someone who just completed the MOOC or PBE? And yes, I know about shampoo and it seems great, but I've never been able to get it to work properly with Pharo.

I say all of this as someone who is using Pharo as much as I can in my daily work and who absolutely appreciates the system and philosophy behind it. Where it's reasonable, we should take the criticisms like these seriously. What we think matters might not matter to newcomers and vice versa.

On Thu, Jan 24, 2019 at 9:13 AM Craig <[hidden email]> wrote:


-----Original Message-----
From: Pharo-users [mailto:[hidden email]] On Behalf Of
Sven Van Caekenberghe
Sent: Thursday, 24 January 2019 15:53
To: Any question about pharo is welcome
Subject: Re: [Pharo-users] [VIDEO TUTORIAL] How to use external code editors
to code in Pharo



>Everybody is of course totally free to do whatever they want, but really,
why the hell would you want to do that ?
>
>You lose so much by doing that, I do not even know where to start.
>
>A big part of what makes Pharo (or any Smalltalk) special is the IDE
written in itself.
>
>Editing a .st file has always been possible, it is masochism.
>
>There is for example https://github.com/dmatveev/shampoo-emacs which
already makes a bit more sense (but even then).
>
>Really, why do you think all these big IDE environments exist in the first
place ?
>
>Sven

Having the entire class in one text file so that you can see all of the
functionality without a ridiculous amount of  clicking around is a huge
bonus.
Especially for those of us that come from a C#/Java environment.  Also,
VS-Code provides a nice self-learning code completion mechanism,
so you don't lose auto-completion.

Win-win.

Craig





--
Eric
Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Sven Van Caekenberghe-2
In reply to this post by Adventurer


> On 24 Jan 2019, at 15:12, Craig <[hidden email]> wrote:
>
>
>
> -----Original Message-----
> From: Pharo-users [mailto:[hidden email]] On Behalf Of
> Sven Van Caekenberghe
> Sent: Thursday, 24 January 2019 15:53
> To: Any question about pharo is welcome
> Subject: Re: [Pharo-users] [VIDEO TUTORIAL] How to use external code editors
> to code in Pharo
>
>
>
>> Everybody is of course totally free to do whatever they want, but really,
> why the hell would you want to do that ?
>>
>> You lose so much by doing that, I do not even know where to start.
>>
>> A big part of what makes Pharo (or any Smalltalk) special is the IDE
> written in itself.
>>
>> Editing a .st file has always been possible, it is masochism.
>>
>> There is for example https://github.com/dmatveev/shampoo-emacs which
> already makes a bit more sense (but even then).
>>
>> Really, why do you think all these big IDE environments exist in the first
> place ?
>>
>> Sven
>
> Having the entire class in one text file so that you can see all of the
> functionality without a ridiculous amount of  clicking around is a huge
> bonus.

In practice, it turns out that most well written object code is distributed over several classes anyway, browsers were invented to help there - they are the solution, not the problem.

> Especially for those of us that come from a C#/Java environment.  Also,
> VS-Code provides a nice self-learning code completion mechanism,
> so you don't lose auto-completion.
>
> Win-win.
>
> Craig

I don't know where you are coming from and how much exposure you already got to Pharo or Smalltalk (if you are new, welcome!), but it is only after learning to work in the IDE and then doing it a bit for real (that will be strange at first, there is a non trivial learning curve), that you will appreciate the differences.

Working with Smalltalk code in a foreign editor/IDE is simply a terrible experience. (Although it sometimes might be useful in extreme/fallback situations).

Sven


Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

kilon.alios
In reply to this post by Jose San Leandro
"Thank you! I'm one of those"
"wow.. thank you :D"

"Everybody is of course totally free to do whatever they want, but really, why the hell would you want to do that ?"

I can think a few million reasons. Vim and Emacs for example with tons of internal and external tools , handling code, documentation, unit testing, integration with other languages. The list is very long.

I think for me that I am not a shortcuts person which is usually the reason why people want to do this, I really like the idea of Workspaces/Projects in Visual Code. They are great for managing big project especially if you mix several languages together. Another good reason is dealing with markdown which is a popular way of documentation and quite convenient. Git support is extremely well done Visual Code for example tells me each line what commit is related to and direct acccess with good visualisation of remote git repositories.

"A big part of what makes Pharo (or any Smalltalk) special is the IDE written in itself."

There is no doubt that IDE wise Pharo is best to handle refactoring pharo code, debug etc. But my approach does not lock you down on a single editor. As I demonstrated in the video you can move easily between Pharo and VS code and thats the whole point, you can take advantage of the best of both worlds.

"There is for example https://github.com/dmatveev/shampoo-emacs which already makes a bit more sense (but even then)."

I am fully aware of emacs shampoo I used to recommend it but not any more for the simple fact it has not been updated for 6 years. Shampoo also is not just about code editing its also a port of the smalltalk IDE to emacs.

I am talking strictly code editing here and various other tools that can be found in those editors that simply do not exist in Pharo, I am not talking about IDEs. Why not have your cake and eat it too if you can ?

The whole point of my video was how to use external editor with Pharo and not to replace Pharo completely which I think what you talking about here. Coding editing in Pharo has still a long way to go, we do not even have an easy way to setup keyboard shortcuts which is essential not for me but at least for others.

We all want to live completely inside the image but in reality those features take time to implement and is a lot of work for our small community.

By the way neither Emacs, Vim or Visual Studio Code are IDEs.Just powerful editors with some IDE features and usually most of the features come in form of extensions that you have install and configure properly.

In any case I will repeat once again the point of the video is how to taker advantage of nice features in code editors without having to abandon Pharo. If this convince people to stick with Pharo I think its a win win situation. Wouldnt you agree ?
Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

EstebanLM
Honestly, Pharo without the environment (and the “live objects” approach) is just another dynamic language without much interest. 
Thinking the IDE is just autocompletion is a poor idea of what a live environment can do for you.

Esteban

On 24 Jan 2019, at 15:37, Dimitris Chloupis <[hidden email]> wrote:

"Thank you! I'm one of those"
"wow.. thank you :D"

"Everybody is of course totally free to do whatever they want, but really, why the hell would you want to do that ?"

I can think a few million reasons. Vim and Emacs for example with tons of internal and external tools , handling code, documentation, unit testing, integration with other languages. The list is very long.

I think for me that I am not a shortcuts person which is usually the reason why people want to do this, I really like the idea of Workspaces/Projects in Visual Code. They are great for managing big project especially if you mix several languages together. Another good reason is dealing with markdown which is a popular way of documentation and quite convenient. Git support is extremely well done Visual Code for example tells me each line what commit is related to and direct acccess with good visualisation of remote git repositories.

"A big part of what makes Pharo (or any Smalltalk) special is the IDE written in itself."

There is no doubt that IDE wise Pharo is best to handle refactoring pharo code, debug etc. But my approach does not lock you down on a single editor. As I demonstrated in the video you can move easily between Pharo and VS code and thats the whole point, you can take advantage of the best of both worlds.

"There is for example https://github.com/dmatveev/shampoo-emacs which already makes a bit more sense (but even then)."

I am fully aware of emacs shampoo I used to recommend it but not any more for the simple fact it has not been updated for 6 years. Shampoo also is not just about code editing its also a port of the smalltalk IDE to emacs.

I am talking strictly code editing here and various other tools that can be found in those editors that simply do not exist in Pharo, I am not talking about IDEs. Why not have your cake and eat it too if you can ?

The whole point of my video was how to use external editor with Pharo and not to replace Pharo completely which I think what you talking about here. Coding editing in Pharo has still a long way to go, we do not even have an easy way to setup keyboard shortcuts which is essential not for me but at least for others.

We all want to live completely inside the image but in reality those features take time to implement and is a lot of work for our small community.

By the way neither Emacs, Vim or Visual Studio Code are IDEs.Just powerful editors with some IDE features and usually most of the features come in form of extensions that you have install and configure properly.

In any case I will repeat once again the point of the video is how to taker advantage of nice features in code editors without having to abandon Pharo. If this convince people to stick with Pharo I think its a win win situation. Wouldnt you agree ?

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Sven Van Caekenberghe-2
In reply to this post by kilon.alios


> On 24 Jan 2019, at 15:37, Dimitris Chloupis <[hidden email]> wrote:
>
> "Thank you! I'm one of those"
> "wow.. thank you :D"
>
> "Everybody is of course totally free to do whatever they want, but really, why the hell would you want to do that ?"
>
> I can think a few million reasons. Vim and Emacs for example with tons of internal and external tools , handling code, documentation, unit testing, integration with other languages. The list is very long.
>
> I think for me that I am not a shortcuts person which is usually the reason why people want to do this, I really like the idea of Workspaces/Projects in Visual Code. They are great for managing big project especially if you mix several languages together. Another good reason is dealing with markdown which is a popular way of documentation and quite convenient. Git support is extremely well done Visual Code for example tells me each line what commit is related to and direct acccess with good visualisation of remote git repositories.
>
> "A big part of what makes Pharo (or any Smalltalk) special is the IDE written in itself."
>
> There is no doubt that IDE wise Pharo is best to handle refactoring pharo code, debug etc. But my approach does not lock you down on a single editor. As I demonstrated in the video you can move easily between Pharo and VS code and thats the whole point, you can take advantage of the best of both worlds.
>
> "There is for example https://github.com/dmatveev/shampoo-emacs which already makes a bit more sense (but even then)."
>
> I am fully aware of emacs shampoo I used to recommend it but not any more for the simple fact it has not been updated for 6 years. Shampoo also is not just about code editing its also a port of the smalltalk IDE to emacs.
>
> I am talking strictly code editing here and various other tools that can be found in those editors that simply do not exist in Pharo, I am not talking about IDEs. Why not have your cake and eat it too if you can ?
>
> The whole point of my video was how to use external editor with Pharo and not to replace Pharo completely which I think what you talking about here. Coding editing in Pharo has still a long way to go, we do not even have an easy way to setup keyboard shortcuts which is essential not for me but at least for others.
>
> We all want to live completely inside the image but in reality those features take time to implement and is a lot of work for our small community.
>
> By the way neither Emacs, Vim or Visual Studio Code are IDEs.Just powerful editors with some IDE features and usually most of the features come in form of extensions that you have install and configure properly.
>
> In any case I will repeat once again the point of the video is how to taker advantage of nice features in code editors without having to abandon Pharo. If this convince people to stick with Pharo I think its a win win situation. Wouldnt you agree ?

These are all valid points (and I started by saying that everybody is free to do whatever they want), but wouldn't you agree that the best experience is

- Java in IntelliJ's IDEA
- Objective-C / Swift in XCode
- The Mathematica language inside Mathematica
- Common Lisp in Emacs or LispWorks
- etc ..

Even though in each case you can edit code in any editor, you will miss out of so much by doing so.

Many languages are 'strange' and have their own style of working - as a newcomer you have to learn that and immerse yourself into that new world, in order to really appreciate/get it.

'Textual Smalltalks' have been done before (GNU Smalltalk for example), [as have many forms of Typed Smalltalk], IMHO they do not give you the real deal.

The allure of Pharo/Smalltalk should be 'learn something new that will blow your mind and change forever how you think'.

Giving people a subpar entry into our world will probably not convince them that there is something cool to be seen there.

Sven


Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

K K Subbu
In reply to this post by kilon.alios
On 24/01/19 4:40 PM, Dimitris Chloupis wrote:
> Actually not only you can do it, its also very easy. So the following
> video tutorial explains in the first 3 minutes how to do this and then
> spends another 10 min talking about how this could be automated to be
> completely automatic and instantaneous.
>
> https://youtu.be/3YfRhDafIxs

Nice clip - short and sweet. You may want to point people to about chunk
file format in the description to alert people who may break chunk
syntax by accident and get confused when fileIn breaks (been there, done
that :-(). Also a caveat not to edit *.changes or *.sources though they
look very similar to *.st files.

BTW, if the command is all in one line, you don't need to select it
before doIt. It is implied. Even if it is spread over a couple of lines,
just press SHIFT-HOME after finishing typing the text and use the arrow
keys to select multiple lines and then doIt. Very nifty!

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

K K Subbu
In reply to this post by Sven Van Caekenberghe-2
On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
> Everybody is of course totally free to do whatever they want, but
> really, why the hell would you want to do that ?
Because text has many uses other than just feeding into a compiler for
translation to machine code? People who come from Unix/Linux world are
used to using a rich collection of tools that deal with text in various
ways.

> You lose so much by doing that, I do not even know where to start.

Live coding (i.e. coding in the presence of instances) is undoubtedly
more powerful than edit-compile-run cycle. Text is used to direct IDE to
edit live objects. But text has many more uses than just issuing
commands.  If beginners start using vim just to edit code due to
established habits, they will soon realize the ease of live coding and
remain in IDE. This is a self-correcting error.

> Editing a .st file has always been possible, it is masochism.Vim is much more than just a typewriter. It can leverage a whole set of
text-based tools. One could use it to auto generate methods, clean them
up and then file into Pharo.

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Sven Van Caekenberghe-2


> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>
> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>> Everybody is of course totally free to do whatever they want, but
>> really, why the hell would you want to do that ?
> Because text has many uses other than just feeding into a compiler for translation to machine code? People who come from Unix/Linux world are used to using a rich collection of tools that deal with text in various ways.

I am myself a server/linux guy, an emacs user, I know what is all possible and what the unix philosophy is.

I also know how to integrate Pharo into that world, and this is super important.

>> You lose so much by doing that, I do not even know where to start.
>
> Live coding (i.e. coding in the presence of instances) is undoubtedly more powerful than edit-compile-run cycle. Text is used to direct IDE to edit live objects. But text has many more uses than just issuing commands.  If beginners start using vim just to edit code due to established habits, they will soon realize the ease of live coding and remain in IDE. This is a self-correcting error.

Well, I don't think so.

The users that you are going to attract in this way (the ones that don't want to leave their own IDE/editor), will look at textual Pharo and find it very strange and ill suited to textual editing (and they are absolutely right), they will not discover the power, will not learn (from this experience alone) what object design/programming/power is, and will ask for more (e.g. give me C style compiler errors, better/easier structure of the file, fixed the !! escape issue, etc, ...).

>> Editing a .st file has always been possible, it is masochism.Vim is much more than just a typewriter. It can leverage a whole set of
> text-based tools. One could use it to auto generate methods, clean them up and then file into Pharo.
>
> Regards .. Subbu
>


Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

kilon.alios
"Honestly, Pharo without the environment (and the “live objects” approach) is just another dynamic language without much interest. 
Thinking the IDE is just autocompletion is a poor idea of what a live environment can do for you."

And I repeat once more, I NEVER said use external editor instead of Pharo, I said use external editor with Pharo. No idea how to make this any more clear. With my approach you sacrifice nothing from Pharo.

"These are all valid points (and I started by saying that everybody is free to do whatever they want), but wouldn't you agree that the best experience is"

Nothing absolutely nothing in my book comes remotely close to how polished Delphi and amazingly powerful IDE with great GUI design,
No I dont agree emacs is an IDE at all, even setting up its tools is a huge pain. I tried to set it up for Python coding and it tooks me ages to reach absolutely zero. Vim is nowhere near to being an IDE. Lispworks I have no idea never used it , same story with mathematica. I have used PyCharm which is I think is the equivelant of IntelliJ, well designed IDE but too weak for my taste. XCode only supports ObjC and Swift and as an IDE , even though an Apple product it lets a lot to be desired in GUI design and also not impressive.

So for me its first Delphi or its open source variant Free Pascal/Lazarus and then is Pharo. Suprisingly Visual Studio is a nice IDE (just nice) but not VSCode which I currently use which is 100% code editor.

To be sincere I have given up on the idea of IDEs mainly because even with Pharo it was a huge pain to customise them, usual coding problem of lack of documentation, no code comments etc. Nowdays I design my own dev tools from scratch, they are not pretty but get the job done partially and at least I know the code well enough to easily improve it.

My livecoding lib has become quite usable lately and now I am slowly venturing into the territory of memory managment and data visualisation.

The IDE for me is a very personal experience, of course that does not mean that Pharo and Delphi are not still my idols. Love them both. They are amazing restaurants, with the best chefs in the world but in the end nothing is like home made food.

I dont agree that Smalltalk without an IDE is a Smalltalk, thus I do not consider GNU Smalltalk a Smalltalk at all.

"Giving people a subpar entry into our world will probably not convince them that there is something cool to be seen there."

I think my video tutorials have given more than enough good reason to use Pharo and even more to love Pharo. I find it hard to believe that one video tutorial going to change that. I never hidden my love for Pharo. Also for me live coding has become mandatory anyway which why I went to such great extends to implement it in Python and C. Mind you nowhere near the Pharo's elegance but it works.

"Nice clip - short and sweet. You may want to point people to about chunk
file format in the description to alert people who may break chunk
syntax by accident and get confused when fileIn breaks (been there, done
that :-(). Also a caveat not to edit *.changes or *.sources though they
look very similar to *.st files."

I have explicitly said to edit only st files, no idea how to make myself any more clear. Although sometime making mistakes is a great excuse to learn something. Because I never intended this to be a replacement for Pharo , I thought unnecessary to focus on the syntax of the st file format.

I think I should add a warning to the video "WARNING!!!! THIS IS NO REPLACEMENT FOR PHARO BUT AN EXTENSION".

"The users that you are going to attract in this way (the ones that don't want to leave their own IDE/editor), will look at textual Pharo and find it very strange and ill suited to textual editing (and they are absolutely right), they will not discover the power, will not learn (from this experience alone) what object design/programming/power is, and will ask for more (e.g. give me C style compiler errors, better/easier structure of the file, fixed the !! escape issue, etc, ...)."

I think you are a bit too optimistic. People if they dont like something they just give up and move on. When was the last time you saw a post here by a person saying "I like to use Pharo but I will not because it does not have X". Rarely if not never, because these type of people you describe are gone in 50 seconds.

To be sincere if my video makes them leave, awesome, we dont need people who dont use Pharo complaining about Pharo. And plus I would love someone to even mention C, I have like an army of complains about this language and I have to use it everyday. Well at least is not as bad as C++. Thank God !!!!!

By they way we had this discussion before in the community. When I first mentioned Git and Github (2011) back when using Git with Pharo and especially an external website to upload code was unthinkable , if not heretic,  I can remember how many told me that this would be an excuse for people not to learn Pharo. I did not buy it then , I did not buy it now.

If you search for Pharo you will find Pharo, its that simple. The rest is just excuses.

Pharo should not be afraid of other technologies , other technologies should be afraid of Pharo. Assimilate, resistance is futile.
Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

K K Subbu
In reply to this post by Sven Van Caekenberghe-2
On 24/01/19 9:47 PM, Sven Van Caekenberghe wrote:

>
>
>> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>>
>> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>>> Everybody is of course totally free to do whatever they want,
>>> but really, why the hell would you want to do that ?
>> Because text has many uses other than just feeding into a compiler
>> for translation to machine code? People who come from Unix/Linux
>> world are used to using a rich collection of tools that deal with
>> text in various ways.
>
> I am myself a server/linux guy, an emacs user, I know what is all
> possible and what the unix philosophy is.


No offense intended. Just wanted to point out that text can have
different purposes. Historically, Smalltalk presented itself as a
OS+IDE. Today, that is no longer true. Pharo is just a multi-platform IDE.

> I also know how to integrate Pharo into that world, and this is super
> important.
Thanks. This is what I intended to bring out.

>>> You lose so much by doing that, I do not even know where to
>>> start.
>>
>> Live coding (i.e. coding in the presence of instances) is
>> undoubtedly more powerful than edit-compile-run cycle. Text is used
>> to direct IDE to edit live objects. But text has many more uses
>> than just issuing commands.  If beginners start using vim just to
>> edit code due to established habits, they will soon realize the
>> ease of live coding and remain in IDE. This is a self-correcting
>> error.
>
> Well, I don't think so.
> The users that you are going to attract in this way (the ones that
> don't want to leave their own IDE/editor), will look at textual Pharo
> and find it very strange and ill suited to textual editing (and they
> are absolutely right), they will not discover the power, will not
> learn (from this experience alone) what object
> design/programming/power is, and will ask for more (e.g. give me ,
> style compiler errors, better/easier structure of the file, fixed the
> !! escape issue, etc, ...).

I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes.

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Jose San Leandro
In reply to this post by kilon.alios
I am one of those that Dimitris Chloupis calls "shortcut guys". Actually, I think using the mouse is a performance killer.
I agree with the argument that editing files instead of manipulating the image wouldn't make sense, if I could edit code as fast as I do in Emacs or Vim. In those editors, you have macros. They are explicitly designed to be usable without the mouse. At some point, you manipulate text without thinking. That's nowhere near what you can accomplish with Nautilus (or Calypso, I suspect).

Having said that, I don't use Emacs or Vim to edit .st files, but in specific cases when I know what I'm doing and it's not dealing with live objects, but with bootstrapping images.

In the past, I felt I was missing Emacs because I wasn't yet fully immersed in a live environment. I was uncomfortable editing code in Pharo, but it was tolerable. Of course, it would have been much more tolerable if I didn't know Emacs, so I wasn't aware of what I was missing.

I expect to be able to customize the keybindings (which would be a huge boost for me) in Nautilus or Calypso, and once that happens my life in Pharo would be much much happier.

In summary, if someone misses Emacs or Vim when working with Pharo, it could be due to:
- being stuck in the file-based way to think of coding.
- or, missing the productivity aids that are not present on Pharo.

Besides that, is there an easy way to run an image in text-only mode, with a REPL or a playground or something like that?

El jue., 24 ene. 2019 a las 17:59, Dimitris Chloupis (<[hidden email]>) escribió:
"Honestly, Pharo without the environment (and the “live objects” approach) is just another dynamic language without much interest. 
Thinking the IDE is just autocompletion is a poor idea of what a live environment can do for you."

And I repeat once more, I NEVER said use external editor instead of Pharo, I said use external editor with Pharo. No idea how to make this any more clear. With my approach you sacrifice nothing from Pharo.

"These are all valid points (and I started by saying that everybody is free to do whatever they want), but wouldn't you agree that the best experience is"

Nothing absolutely nothing in my book comes remotely close to how polished Delphi and amazingly powerful IDE with great GUI design,
No I dont agree emacs is an IDE at all, even setting up its tools is a huge pain. I tried to set it up for Python coding and it tooks me ages to reach absolutely zero. Vim is nowhere near to being an IDE. Lispworks I have no idea never used it , same story with mathematica. I have used PyCharm which is I think is the equivelant of IntelliJ, well designed IDE but too weak for my taste. XCode only supports ObjC and Swift and as an IDE , even though an Apple product it lets a lot to be desired in GUI design and also not impressive.

So for me its first Delphi or its open source variant Free Pascal/Lazarus and then is Pharo. Suprisingly Visual Studio is a nice IDE (just nice) but not VSCode which I currently use which is 100% code editor.

To be sincere I have given up on the idea of IDEs mainly because even with Pharo it was a huge pain to customise them, usual coding problem of lack of documentation, no code comments etc. Nowdays I design my own dev tools from scratch, they are not pretty but get the job done partially and at least I know the code well enough to easily improve it.

My livecoding lib has become quite usable lately and now I am slowly venturing into the territory of memory managment and data visualisation.

The IDE for me is a very personal experience, of course that does not mean that Pharo and Delphi are not still my idols. Love them both. They are amazing restaurants, with the best chefs in the world but in the end nothing is like home made food.

I dont agree that Smalltalk without an IDE is a Smalltalk, thus I do not consider GNU Smalltalk a Smalltalk at all.

"Giving people a subpar entry into our world will probably not convince them that there is something cool to be seen there."

I think my video tutorials have given more than enough good reason to use Pharo and even more to love Pharo. I find it hard to believe that one video tutorial going to change that. I never hidden my love for Pharo. Also for me live coding has become mandatory anyway which why I went to such great extends to implement it in Python and C. Mind you nowhere near the Pharo's elegance but it works.

"Nice clip - short and sweet. You may want to point people to about chunk
file format in the description to alert people who may break chunk
syntax by accident and get confused when fileIn breaks (been there, done
that :-(). Also a caveat not to edit *.changes or *.sources though they
look very similar to *.st files."

I have explicitly said to edit only st files, no idea how to make myself any more clear. Although sometime making mistakes is a great excuse to learn something. Because I never intended this to be a replacement for Pharo , I thought unnecessary to focus on the syntax of the st file format.

I think I should add a warning to the video "WARNING!!!! THIS IS NO REPLACEMENT FOR PHARO BUT AN EXTENSION".

"The users that you are going to attract in this way (the ones that don't want to leave their own IDE/editor), will look at textual Pharo and find it very strange and ill suited to textual editing (and they are absolutely right), they will not discover the power, will not learn (from this experience alone) what object design/programming/power is, and will ask for more (e.g. give me C style compiler errors, better/easier structure of the file, fixed the !! escape issue, etc, ...)."

I think you are a bit too optimistic. People if they dont like something they just give up and move on. When was the last time you saw a post here by a person saying "I like to use Pharo but I will not because it does not have X". Rarely if not never, because these type of people you describe are gone in 50 seconds.

To be sincere if my video makes them leave, awesome, we dont need people who dont use Pharo complaining about Pharo. And plus I would love someone to even mention C, I have like an army of complains about this language and I have to use it everyday. Well at least is not as bad as C++. Thank God !!!!!

By they way we had this discussion before in the community. When I first mentioned Git and Github (2011) back when using Git with Pharo and especially an external website to upload code was unthinkable , if not heretic,  I can remember how many told me that this would be an excuse for people not to learn Pharo. I did not buy it then , I did not buy it now.

If you search for Pharo you will find Pharo, its that simple. The rest is just excuses.

Pharo should not be afraid of other technologies , other technologies should be afraid of Pharo. Assimilate, resistance is futile.
Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

kilon.alios
In reply to this post by K K Subbu
"I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes."

I could not agree more , I find the column GUI weird and a waste of space. This is why I have ended up relying a lot on GTSpotter (finder) which help me browse classes a lot faster than the class browser. Kinda ironic.

I am using Pharo since 2011. I am still dont like Class Browser :D

"In summary, if someone misses Emacs or Vim when working with Pharo, it could be due to:
- being stuck in the file-based way to think of coding.
"
Its a common misconception that Pharo does not heavily rely on text files, it actually does. Not only the source file makes it possible to view the code even the oldest method of version control tha Pharo being a fork, inherited from Squeak, the known mcz files they may look small binary files like the Pharo image but they are merely zip files with source code text files with the st extension.

The image is merely the bytecode, the VMs machine code sort of, the actually source works the same way as other languages. Like other languages you dont need the source code to execute , only the bytecode. What makes the image special is that its one file and its a memory dump which makes it easy to store both live code and live state. Which is very helpful, technically its mandatory for true live coding, but still Pharo has to rely on source code files to make our lives easy. From there on is just a question whether you break the source code files in several small ones, or keep one large.

"Besides that, is there an easy way to run an image in text-only mode, with a REPL or a playground or something like that?"

Yeap its possible and has been around for a very long time. Pharo also makes it dead easy to expose any method as command line argument, so its possible to code completely from the command line although definitely not recommended.

Deep Into Pharo book explains how.

On Thu, Jan 24, 2019 at 7:17 PM K K Subbu <[hidden email]> wrote:
On 24/01/19 9:47 PM, Sven Van Caekenberghe wrote:
>
>
>> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>>
>> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>>> Everybody is of course totally free to do whatever they want,
>>> but really, why the hell would you want to do that ?
>> Because text has many uses other than just feeding into a compiler
>> for translation to machine code? People who come from Unix/Linux
>> world are used to using a rich collection of tools that deal with
>> text in various ways.
>
> I am myself a server/linux guy, an emacs user, I know what is all
> possible and what the unix philosophy is.


No offense intended. Just wanted to point out that text can have
different purposes. Historically, Smalltalk presented itself as a
OS+IDE. Today, that is no longer true. Pharo is just a multi-platform IDE.

> I also know how to integrate Pharo into that world, and this is super
> important.
Thanks. This is what I intended to bring out.

>>> You lose so much by doing that, I do not even know where to
>>> start.
>>
>> Live coding (i.e. coding in the presence of instances) is
>> undoubtedly more powerful than edit-compile-run cycle. Text is used
>> to direct IDE to edit live objects. But text has many more uses
>> than just issuing commands.  If beginners start using vim just to
>> edit code due to established habits, they will soon realize the
>> ease of live coding and remain in IDE. This is a self-correcting
>> error.
>
> Well, I don't think so.
> The users that you are going to attract in this way (the ones that
> don't want to leave their own IDE/editor), will look at textual Pharo
> and find it very strange and ill suited to textual editing (and they
> are absolutely right), they will not discover the power, will not
> learn (from this experience alone) what object
> design/programming/power is, and will ask for more (e.g. give me ,
> style compiler errors, better/easier structure of the file, fixed the
> !! escape issue, etc, ...).

I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes.

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Jose San Leandro
I was aware of that. I was imaging a way to use the tools available in Pharo, but within a REPL session.
Probably a bad idea anyway. I just think the mouse is useful when exploring, but it's ridiculously inefficient once you know exactly what you want to do.
In my 4k monitor I often feel like if I was saying "no, I want to resize the window, not moving it, not changing the focus, thanks". I have to waste time being accurate enough with the mouse, because it's the expected way to communicate with live objects. Mouse, then keyboard. Not good.

El jue., 24 ene. 2019 a las 18:36, Dimitris Chloupis (<[hidden email]>) escribió:
"I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes."

I could not agree more , I find the column GUI weird and a waste of space. This is why I have ended up relying a lot on GTSpotter (finder) which help me browse classes a lot faster than the class browser. Kinda ironic.

I am using Pharo since 2011. I am still dont like Class Browser :D

"In summary, if someone misses Emacs or Vim when working with Pharo, it could be due to:
- being stuck in the file-based way to think of coding.
"
Its a common misconception that Pharo does not heavily rely on text files, it actually does. Not only the source file makes it possible to view the code even the oldest method of version control tha Pharo being a fork, inherited from Squeak, the known mcz files they may look small binary files like the Pharo image but they are merely zip files with source code text files with the st extension.

The image is merely the bytecode, the VMs machine code sort of, the actually source works the same way as other languages. Like other languages you dont need the source code to execute , only the bytecode. What makes the image special is that its one file and its a memory dump which makes it easy to store both live code and live state. Which is very helpful, technically its mandatory for true live coding, but still Pharo has to rely on source code files to make our lives easy. From there on is just a question whether you break the source code files in several small ones, or keep one large.

"Besides that, is there an easy way to run an image in text-only mode, with a REPL or a playground or something like that?"

Yeap its possible and has been around for a very long time. Pharo also makes it dead easy to expose any method as command line argument, so its possible to code completely from the command line although definitely not recommended.

Deep Into Pharo book explains how.

On Thu, Jan 24, 2019 at 7:17 PM K K Subbu <[hidden email]> wrote:
On 24/01/19 9:47 PM, Sven Van Caekenberghe wrote:
>
>
>> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>>
>> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>>> Everybody is of course totally free to do whatever they want,
>>> but really, why the hell would you want to do that ?
>> Because text has many uses other than just feeding into a compiler
>> for translation to machine code? People who come from Unix/Linux
>> world are used to using a rich collection of tools that deal with
>> text in various ways.
>
> I am myself a server/linux guy, an emacs user, I know what is all
> possible and what the unix philosophy is.


No offense intended. Just wanted to point out that text can have
different purposes. Historically, Smalltalk presented itself as a
OS+IDE. Today, that is no longer true. Pharo is just a multi-platform IDE.

> I also know how to integrate Pharo into that world, and this is super
> important.
Thanks. This is what I intended to bring out.

>>> You lose so much by doing that, I do not even know where to
>>> start.
>>
>> Live coding (i.e. coding in the presence of instances) is
>> undoubtedly more powerful than edit-compile-run cycle. Text is used
>> to direct IDE to edit live objects. But text has many more uses
>> than just issuing commands.  If beginners start using vim just to
>> edit code due to established habits, they will soon realize the
>> ease of live coding and remain in IDE. This is a self-correcting
>> error.
>
> Well, I don't think so.
> The users that you are going to attract in this way (the ones that
> don't want to leave their own IDE/editor), will look at textual Pharo
> and find it very strange and ill suited to textual editing (and they
> are absolutely right), they will not discover the power, will not
> learn (from this experience alone) what object
> design/programming/power is, and will ask for more (e.g. give me ,
> style compiler errors, better/easier structure of the file, fixed the
> !! escape issue, etc, ...).

I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes.

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

kilon.alios
Playground is a REPL inside Pharo so I am not sure I understand what you are asking. Everything in Pharo is just Classes and methods so you can do whatever you want. If you are a bit more descriptive maybe I can help you more. There is no such thing as a bad idea, just an idea that has not mature enough :D

On Thu, Jan 24, 2019 at 7:53 PM Jose San Leandro <[hidden email]> wrote:
I was aware of that. I was imaging a way to use the tools available in Pharo, but within a REPL session.
Probably a bad idea anyway. I just think the mouse is useful when exploring, but it's ridiculously inefficient once you know exactly what you want to do.
In my 4k monitor I often feel like if I was saying "no, I want to resize the window, not moving it, not changing the focus, thanks". I have to waste time being accurate enough with the mouse, because it's the expected way to communicate with live objects. Mouse, then keyboard. Not good.

El jue., 24 ene. 2019 a las 18:36, Dimitris Chloupis (<[hidden email]>) escribió:
"I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes."

I could not agree more , I find the column GUI weird and a waste of space. This is why I have ended up relying a lot on GTSpotter (finder) which help me browse classes a lot faster than the class browser. Kinda ironic.

I am using Pharo since 2011. I am still dont like Class Browser :D

"In summary, if someone misses Emacs or Vim when working with Pharo, it could be due to:
- being stuck in the file-based way to think of coding.
"
Its a common misconception that Pharo does not heavily rely on text files, it actually does. Not only the source file makes it possible to view the code even the oldest method of version control tha Pharo being a fork, inherited from Squeak, the known mcz files they may look small binary files like the Pharo image but they are merely zip files with source code text files with the st extension.

The image is merely the bytecode, the VMs machine code sort of, the actually source works the same way as other languages. Like other languages you dont need the source code to execute , only the bytecode. What makes the image special is that its one file and its a memory dump which makes it easy to store both live code and live state. Which is very helpful, technically its mandatory for true live coding, but still Pharo has to rely on source code files to make our lives easy. From there on is just a question whether you break the source code files in several small ones, or keep one large.

"Besides that, is there an easy way to run an image in text-only mode, with a REPL or a playground or something like that?"

Yeap its possible and has been around for a very long time. Pharo also makes it dead easy to expose any method as command line argument, so its possible to code completely from the command line although definitely not recommended.

Deep Into Pharo book explains how.

On Thu, Jan 24, 2019 at 7:17 PM K K Subbu <[hidden email]> wrote:
On 24/01/19 9:47 PM, Sven Van Caekenberghe wrote:
>
>
>> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>>
>> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>>> Everybody is of course totally free to do whatever they want,
>>> but really, why the hell would you want to do that ?
>> Because text has many uses other than just feeding into a compiler
>> for translation to machine code? People who come from Unix/Linux
>> world are used to using a rich collection of tools that deal with
>> text in various ways.
>
> I am myself a server/linux guy, an emacs user, I know what is all
> possible and what the unix philosophy is.


No offense intended. Just wanted to point out that text can have
different purposes. Historically, Smalltalk presented itself as a
OS+IDE. Today, that is no longer true. Pharo is just a multi-platform IDE.

> I also know how to integrate Pharo into that world, and this is super
> important.
Thanks. This is what I intended to bring out.

>>> You lose so much by doing that, I do not even know where to
>>> start.
>>
>> Live coding (i.e. coding in the presence of instances) is
>> undoubtedly more powerful than edit-compile-run cycle. Text is used
>> to direct IDE to edit live objects. But text has many more uses
>> than just issuing commands.  If beginners start using vim just to
>> edit code due to established habits, they will soon realize the
>> ease of live coding and remain in IDE. This is a self-correcting
>> error.
>
> Well, I don't think so.
> The users that you are going to attract in this way (the ones that
> don't want to leave their own IDE/editor), will look at textual Pharo
> and find it very strange and ill suited to textual editing (and they
> are absolutely right), they will not discover the power, will not
> learn (from this experience alone) what object
> design/programming/power is, and will ask for more (e.g. give me ,
> style compiler errors, better/easier structure of the file, fixed the
> !! escape issue, etc, ...).

I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes.

Regards .. Subbu

Reply | Threaded
Open this post in threaded view
|

Re: [VIDEO TUTORIAL] How to use external code editors to code in Pharo

Jose San Leandro
I don't want to hijack this thread, but it would be useful for me to have a cheatsheet to allow me to do the usual operations I do with the mouse, programatically. I've had some difficulties with simple things in the past. For example, to delete all Transcript or Playground windows, I use calls such as

(World submorphs select: [ :w | ((w model printString beginsWith: 'a GTPlayground') or: [ w model printString beginsWith: 'Transcript' ]) not ]) do: [ :w | w delete ].

I'm missing ways to query World submorphs to know exactly my target instance. For example:
- Which is the leftmost window?
- Which window has the focus?
- Which windows have "grouping" enabled?
- Which Playground instance I used more recently?

And operations such as:
- Maximize morph.
- Activate "class side" in Nautilus.
- Select "accessing" protocol.
- Select package X.
- Select "Hierarchy".
- Choose the next child when "hierarchy" is active.
- Resize the method panel.

Also, basic things like:
- Move to the next word.
- Highlight previous word.
- Highlight current line.

That would be very helpful for me. I'm not saying it's difficult to do, I'm just saying for me it'd be helpful.
That's basically why I love Emacs, because I can do with the keyboard anything that can be done with the mouse, and more.

Thanks!

El jue., 24 ene. 2019 a las 19:05, Dimitris Chloupis (<[hidden email]>) escribió:
Playground is a REPL inside Pharo so I am not sure I understand what you are asking. Everything in Pharo is just Classes and methods so you can do whatever you want. If you are a bit more descriptive maybe I can help you more. There is no such thing as a bad idea, just an idea that has not mature enough :D

On Thu, Jan 24, 2019 at 7:53 PM Jose San Leandro <[hidden email]> wrote:
I was aware of that. I was imaging a way to use the tools available in Pharo, but within a REPL session.
Probably a bad idea anyway. I just think the mouse is useful when exploring, but it's ridiculously inefficient once you know exactly what you want to do.
In my 4k monitor I often feel like if I was saying "no, I want to resize the window, not moving it, not changing the focus, thanks". I have to waste time being accurate enough with the mouse, because it's the expected way to communicate with live objects. Mouse, then keyboard. Not good.

El jue., 24 ene. 2019 a las 18:36, Dimitris Chloupis (<[hidden email]>) escribió:
"I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes."

I could not agree more , I find the column GUI weird and a waste of space. This is why I have ended up relying a lot on GTSpotter (finder) which help me browse classes a lot faster than the class browser. Kinda ironic.

I am using Pharo since 2011. I am still dont like Class Browser :D

"In summary, if someone misses Emacs or Vim when working with Pharo, it could be due to:
- being stuck in the file-based way to think of coding.
"
Its a common misconception that Pharo does not heavily rely on text files, it actually does. Not only the source file makes it possible to view the code even the oldest method of version control tha Pharo being a fork, inherited from Squeak, the known mcz files they may look small binary files like the Pharo image but they are merely zip files with source code text files with the st extension.

The image is merely the bytecode, the VMs machine code sort of, the actually source works the same way as other languages. Like other languages you dont need the source code to execute , only the bytecode. What makes the image special is that its one file and its a memory dump which makes it easy to store both live code and live state. Which is very helpful, technically its mandatory for true live coding, but still Pharo has to rely on source code files to make our lives easy. From there on is just a question whether you break the source code files in several small ones, or keep one large.

"Besides that, is there an easy way to run an image in text-only mode, with a REPL or a playground or something like that?"

Yeap its possible and has been around for a very long time. Pharo also makes it dead easy to expose any method as command line argument, so its possible to code completely from the command line although definitely not recommended.

Deep Into Pharo book explains how.

On Thu, Jan 24, 2019 at 7:17 PM K K Subbu <[hidden email]> wrote:
On 24/01/19 9:47 PM, Sven Van Caekenberghe wrote:
>
>
>> On 24 Jan 2019, at 17:04, K K Subbu <[hidden email]> wrote:
>>
>> On 24/01/19 7:23 PM, Sven Van Caekenberghe wrote:
>>> Everybody is of course totally free to do whatever they want,
>>> but really, why the hell would you want to do that ?
>> Because text has many uses other than just feeding into a compiler
>> for translation to machine code? People who come from Unix/Linux
>> world are used to using a rich collection of tools that deal with
>> text in various ways.
>
> I am myself a server/linux guy, an emacs user, I know what is all
> possible and what the unix philosophy is.


No offense intended. Just wanted to point out that text can have
different purposes. Historically, Smalltalk presented itself as a
OS+IDE. Today, that is no longer true. Pharo is just a multi-platform IDE.

> I also know how to integrate Pharo into that world, and this is super
> important.
Thanks. This is what I intended to bring out.

>>> You lose so much by doing that, I do not even know where to
>>> start.
>>
>> Live coding (i.e. coding in the presence of instances) is
>> undoubtedly more powerful than edit-compile-run cycle. Text is used
>> to direct IDE to edit live objects. But text has many more uses
>> than just issuing commands.  If beginners start using vim just to
>> edit code due to established habits, they will soon realize the
>> ease of live coding and remain in IDE. This is a self-correcting
>> error.
>
> Well, I don't think so.
> The users that you are going to attract in this way (the ones that
> don't want to leave their own IDE/editor), will look at textual Pharo
> and find it very strange and ill suited to textual editing (and they
> are absolutely right), they will not discover the power, will not
> learn (from this experience alone) what object
> design/programming/power is, and will ask for more (e.g. give me ,
> style compiler errors, better/easier structure of the file, fixed the
> !! escape issue, etc, ...).

I am sure there will always be skeptics. But my own experience was
different. For me, the most weird thing about Squeak (and now Pharo) IDE
is its insistence in showing only one method at a time. A method is too
small a chunk of code. It is easy to miss the forest for the trees. In
Dimitris video, you see lots more code in one glance in vim session. So
there are pragmatic reasons why some coders fallback to using fileOuts
for browsing classes.

Regards .. Subbu

123