Hi folks
I've been playing with Pharo recently, and really enjoying writing some programs in the Pharo environment. As a result, I've been wondering if I can use Pharo the way I would use Emacs, as an environment for doing everything. For example, can I use Pharo to: * Send emails to this mailing list? * Use IRC? * Start Bash? * Read the Pharo documentation (e.g. Pharo By Example)? If these things do exist, how do I discover them? Is there a package manager I can use to find new tools I can use in Pharo? |
"Hi folks I've been playing with Pharo recently, and really enjoying writing some programs in the Pharo environment." Hello and welcome to the Pharo family "As a result, I've been wondering if I can use Pharo the way I would use Emacs, as an environment for doing everything."
No Pharo is a different beast, but beast none the less. Each one has its pros and cons. Emacs is more for CL and text editing stuff and excels at that . Pharo is more for GUI and Graphics stuff and it excels at that. Emacs is more popular and more actively developed but Pharo comes with a very powerful programming language and much more performant than elisp. Personally I use both Emacs and Pharo , I love both and I find both awesome. I use emacs for documenting stuff for Pharo , like my contribution to updating the Pharo By Example book to Pharo 3 and 4.
"* Send emails to this mailing list?"
I think there are libraries for dealing with emails, I dont think there is an actual email client for Pharo though if my memory serves me correctly I remember a email client for Squeak. So its definitely doable with Pharo.
"* Use IRC?"
Again I think there is no client for this, definitely a cool project , again doable with Pharo because it has very good support for sockets and IRC is a rather simple socket protocol. I use sockets extensively for my project "Ephestos" to make Pharo talk to Python and use Python libraries from inside Pharo even with Pharo syntax. Using sockets is actually very simple.
"Start Bash?" Pharo has a command shell, similar to emacs eshell. But I dont know how powerful it is and if it has full shell support but for basic stuff it works as I have tested it personally but I prefer using Xterm 2 .
If you mean call shell scripts thats doable too, also pharo can be called from the terminal and used as a bash tool , so you have many options here.
" Read the Pharo documentation (e.g. Pharo By Example)?"
No you cant read (AFAIK) Pharo By Example from inside Pharo but there is a help tool similar to emacs help tool. Unfortunately it has not been the preferred choice for documenting stuff. On the other hand Pillar which is a quite popular choice for Pharo documentation works on top of Latex and can export to html , markdown and pdf and of course text files. So documentation wise I think Pharo is more powerful than Emacs in what it can do.
Because I happen to use Pillar a lot for updating Pharo By Example I really like it so far and I think Pharo devs have done a very good job with it. I think also because pillar syntax is very simple it should not be too hard to make pillar files viewable from inside Pharo. So I think we are close with that target too.
" Is there a package manager I can use to find new tools I can use in Pharo"
yes its called "configuration browser" and comes included with Pharo. If you get a latest Pharo 3 image you should already seen a lot of packages in the configuration browser, Installing them is also a single action process.
"If these things do exist, how do I discover them?"
the old trusted process of googling . Here some links that google returned to me
|
Administrator
|
This is the dream - the Dynabook vision. Smalltalk was a protoype exploration of JCR Licklider's dream, articulated in the early 60s "to become interactive intellectual amplifiers for all people", or as Dan Ingalls put it "to provide computer support for the creative spirit in everyone". There is no reason why Pharo should not be able to do this. Indeed it is why its lineage exists in the first place. The only thing necessary is the effort to implement the features that matter to you. I remember there is at least one project, but would probably have to be ported to a current Pharo version I've experimented with it quite a bit. The features are very impressive when you dig into it. This - unfortunately - is the weakest point of all the features you have mentioned. While multimedia is an essential part of the Dynabook vision, standards and formats have been moving so quickly and becoming so complicated that our community's resources are overwhelmed, and it seems we have mostly conceded here, although there are some bits and pieces lying around and now-a-days with all the FFI/NB advancements, a quick hack would be to wrap existing external libraries. We are moving closer and closer to this, but don't yet have one central catalog. Anyway, welcome! What you're suggesting is a dream for many of us. We've been focusing these last few years on infrastructure to make it more practical. Let's make it happen :) - Sean
Cheers,
Sean |
For Emac and Pharo is common practice to build a monolithic environment where everything is reimplemented. Emacs has its own email client, git client, command shell, irc client etc etc. But then this lead me to ask the question "Why fight them when you can join them" . The problem with existing solutions , however clumsy , inconvenient and uncool they are. They are just that, solutions. I get how Alan Kay disapproves of modern iPads and many other modern technologies BUT his dynabook is vaporware. However emacs and pharo are cool and powerful they cannot compete with those specialised tools that have been in development in some cases for decades .
So that led me to my second question "Why fight them , when you can join them ?" which is why it started with emacs eshell and ended up with Xterm2. However still missing all the coolness of Pharo and the language and the tools it has triggered a new question "why join when you can enslave them ?". Parasites after all are difficult to like but they happen to be one of the most powerful organisms on this planet and they are very efficient ,like viruses.
So now I am exploring the concept of how Pharo can control all these apps without me having to reimplement these apps in Pharo which is just an insane amount of work to code and maintain. In my case it was not difficult to reach this conclusion since reimplementing Blender in Pharo would be an insane if not impossible amount of work for a single developer. At first I was very sceptical trying to use sockets as a way to control Blender but now I see this actually can work very well. It has its limitations but its light years easier and more efficient than the alternative.
It raises some interesting questions, how Pharo can control gmail, or thunderbird, or irc client like mirc and KVIRC and XChat, or the web browser (amber could play a very important role here) or many thousands of apps out there. We certainly have the libraries to do this.
On Sun, Aug 24, 2014 at 2:47 AM, Sean P. DeNigris <[hidden email]> wrote: kilon.alios wrote |
In reply to this post by WilfredHughes
> Hi folks Welcome :) > > I've been playing with Pharo recently, and really enjoying writing > some programs in the Pharo environment. I'm happy to hear that. > As a result, I've been wondering if I can use Pharo the way I would > use Emacs, as an environment for doing everything. Basically yes. > For example, can I use Pharo to: > > * Send emails to this mailing list? Yes. In the past there was Celeste an email client. > * Use IRC? There was a client somewhere > * Start Bash? If you ask me, I would like to we able to write pharo programs and run them headless and one error get a debugger, edit/debug the script and press continue and gte my script fixed. > * Read the Pharo documentation (e.g. Pharo By Example)? With GT-inspector you can edit pillar file and we were thinking that it should not be that difficult to write a little renderer > > If these things do exist, how do I discover them? Is there a package > manager I can use to find new tools I can use in Pharo? Some of them are old - look on squeakmap (they may not work directly in Pharo_ - look on squeaksource - look on smalltalkhub Now we are slwoly building an infrstructure where published packages will be validated for a distribution and a catalog will be automatically built. stef |
This post was updated on .
This a very interesting topic.
Some time ago I was taking a look at a Tektronik flyer I found on the Internet and seems that in those days, the concept of Smalltalk was that it completely replaced the OS. Or perhaps is more accurate to say that Smalltalk was the OS and the Development Environment. I would love to see some kind of Pharo OS with applications inside Pharo. The OS could be done using the Linux Kernel and some GNU tools. Now I bet that for this project would be perfect to have a 64bit VM, isn't it? I'm too was looking to read pdfs, read and manage email, surf the web, etc. best Ichiro PS: BTW, Wilfred. Is that a GO board? ;) |
SqueakNOS went towards that direction On Sun, Aug 24, 2014 at 11:34 PM, Ichiseki <[hidden email]> wrote: This a very interesting topic. |
Administrator
|
In reply to this post by kilon.alios
The Dynabook is a vision of what computing could be, not a product, and so can not be vaporware i.e. announced but not delivered. Looked at another way, you are using a Dynabook, since Smalltalk was an iteration of an attempt to implement of this vision. The problem is that "them" = "a pile of code so complicated that it's beyond the ability of a single human being to understand". When you make a choice to use [ GNU/Linux | OS X | Windows ] + "suite of applications that are so cool I can't live without", you end up with LOC equivalent to the entire Library of Congress, impossible to understand, and requiring countless context switches for all the languages and technologies involved. After spending the time to dig into this mess in a few places where you want to customize, you are lucky if you have any energy left over to create whatever your vision originally was, for which the computer seemed like the perfect tool. Of course this is better than nothing ;) It's a great way to fast-forward to the system of our dreams - make it work, then make it right. And at the same time I think it's important to remember that Smalltalk exists as a reaction to the unworkability of this software we are plugging into, and that the dream is still to see it all replaced, and then to see Smalltalk itself replaced by Frank or whatever the next distillation is of "what a computer really is". My 2c... Obviously my recovery is not going well and idealism has crept back in ;)
Cheers,
Sean |
I agree that reimplementing things in Pharo is a good solution, if that means a cleaner and more flexible design that brings more clarity to anyone viewing the code. Definetly Pharo promotes those things or else I would have little reason to keep using it. Yes agree , my solution is a temporary solution, more like a sensible compromise, but a compromise non the less. Having ideals and dreams is really important. "Flying" once sounded ridiculous and it was that crazy idea that brought us the airplanes, took a long time but it eventually happened. After all there is room to implement things and there is room to take advantage existing technology , both have a lot of benefits to offer to the user.
On Sun, Aug 24, 2014 at 11:59 PM, Sean P. DeNigris <[hidden email]> wrote: kilon.alios wrote |
In reply to this post by Ichiseki
Run Pharo on top of Tiny Core linux total of about 50+ MB and you would have what you wish.. On Mon, Aug 25, 2014 at 2:04 AM, Ichiseki <[hidden email]> wrote: This a very interesting topic. |
In reply to this post by WilfredHughes
I don't think the current Smalltalk architecture can meet all your
computing needs because security isn't part of its core and because
it is inconceivable that all the necessary programs can be developed
within its boundaries.
Like several people I met at ESUG, my goal is the Dynabook and the Dynabook shall, by definition, meet all your needs. A Dynabook must be safe so that its owner is protected from hackers and other evildoers. The Dynabook SW architecture must be open so that owners can safely install functionality ('apps') that is available in a marketplace. (The i-pad with its hardware and its marketplace for apps is at the back of my mind.) I can only see one path from here to there. Start from e.g., Pharo and simplify it to create a Dynabook architecture with owner programming and with opening for safely adding functionality safely ad lib. (I suppose this is an ST based OS?) Any takers? --Trygve On 23.08.2014 17:04, Wilfred Hughes
wrote:
|
" The Dynabook SW architecture must be open so that owners can safely install functionality ('apps') that is available in a marketplace. (The i-pad with its hardware and its marketplace for apps is at the back of my mind.)" Can the intent be expanded a bit more. Is this an intent to have a Pharo / ST / Dynabook based marketplace or more extensive ? On Mon, Aug 25, 2014 at 3:33 PM, Trygve Reenskaug <[hidden email]> wrote:
|
Sounds like the Dynabook goal rather overlaps with that of Lisp Machines. The idea of a single system that allows you to modify any part at runtime, inspect any part, or drop into a debugger anywhere is extremely powerful and wonderful to work with. Emacs gets quite close to this, but... it's Emacs lisp. I've used worse languages, but elisp was not intended to be a general purpose application programming language. Smalltalk is, which is why Pharo excites me.On 25 August 2014 15:15, S Krish <[hidden email]> wrote:
|
Hi Wilfred and welcome,
I have been lurking at the Smalltalk/Squeak community like from ten years when I used Etoys, Bots Inc and Scratch to teach newbies an introductory course on "informatics" (which has a part related with programming) and after a while I got here at the Pharo community, where I lurked here for a while but now, because of my PhD research, which is related with mutual modification between communities and digital artifacts, I try to explore Pharo as a medium for exploring some ideas about that and I think it can't be done without a first hands on experience on the environment and the actual code writing, so I'm trying to become a more active participant, but I'm still a newbie. Anyway, from newbie to newbie, welcome again. About the dynabook and its vision I would recommend "Tracing the Dynabook: A Study of Technocultural Transformations" by John W Maxwell at [1]. In fact, on this book Maxwell claims that Smalltalk didn't loose (in popularity and defining the common computer experience) against another programming languages, it lost against the Operative System paradigm, and its idea of having different small tools connected mainly by pipes and files, mainly non-interactive, mainly binary and without any unifying conceptual framework beyond files and pipes. I think he's right. [1] http://tkbr.ccsp.sfu.ca/dynabook/ Besides SqueakNOS you can see some ideas inspired in Smalltak and the Dynabook vision in the EtoileOS[2]. The authors are not trying to repeat the OS paradigm, but trying to rethink it from a Smalltalk perspective, with practical considerations about bridging what we have now in C [3] and the apps world [4] with what can be done/thought from a Dynabook inspired vision. [2] http://etoileos.com/ [3] http://etoileos.com/news/archive/2012/08/19/1308/ [4] http://etoileos.com/news/archive/2012/04/30/1825/ Regarding myself and my own approach to make this ideas viable in my current context, specifically on what is concerned with creation of rich documentation and something like a modest "Dynabooklet", I'm trying to get the writing experience of Leo[5], which is an outliner that has the property of making it's own tree structure available to make it scriptable in Python (any node of the tree can contain python code which can traverse and process the tree in particular ways) to something similar in Smalltalk, with the advantage of an integrated and explorable inmersive dynamic environment. My idea is to make and environment where I can write my own PhD thesis[7] (at this moment I'm writing it with Leo + LaTeX with advances like this [8]), but also to teach some Data Narratives[9] and Indie Web[10][11]. I'm trying to combine Python and Smalltalk in modest ways or at least to create some cross-pollination of ideas. [5] http://leoeditor.com/ [6] http://smalltalkhub.com/#!/~Offray/Ubakye/ [7] http://mutabit.com/offray/static/blog/output/posts/la-forma-en-que-escribo-para-el-doctorado.html [8] http://mutabit.com/deltas/repos.fossil/doctorado-offray/doc/tip/Tesis/ExamenCandidatura/Escrito2/luna-offray-ecologia-de-saberes-en-diseno.pdf [9] http://mutabit.com/offray/static/blog/output/posts/borrachos-bochinche-futbol.html [10] http://mutabit.com/offray/static/blog/output/posts/indie-science-indie-web-opengarage-science.html [11] http://indiewebcamp.com/ So, I think Pharo can bootstrap the dynabook vision of and environment for your computer needs and make it viable in different ways, even for a single person or a small community if this is connected with the rest of the environment and experiences on what we have now. My examples are just humble approaches on my attempts to do that, but I hope that this can show you a lot of interesting stuff that can be done as a novice or as an expert with the help of the community and the persons here. Cheers, Offray On 08/25/2014 06:33 PM, Wilfred Hughes wrote: > Sounds like the Dynabook goal rather overlaps with that of Lisp Machines. The > idea of a single system that allows you to modify any part at runtime, inspect > any part, or drop into a debugger anywhere is extremely powerful and wonderful > to work with. > > Emacs gets quite close to this, but... it's Emacs lisp. I've used worse > languages, but elisp was not intended to be a general purpose application > programming language. Smalltalk is, which is why Pharo excites me. > > Once you start 'living' in a single environment, you customise it to meet your > needs and can contribute the reusable parts to the wider community. This > produces a virtuous circle of the tools getting better. A package manager that > makes it easy to distribute your work is crucial in this. > > Sounds like the first step for me is to start using the Pharo file browser and > command shell and to see how it fits my workflow :) > > > On 25 August 2014 15:15, S Krish <[hidden email] > <mailto:[hidden email]>> wrote: > > > " The Dynabook SW architecture must be open so that owners can safely > install functionality ('apps') that is available in a marketplace. (The > i-pad with its hardware and its marketplace for apps is at the back of my > mind.)" > > > Can the intent be expanded a bit more. Is this an intent to have a Pharo / > ST / Dynabook based marketplace or more extensive ? > > > > On Mon, Aug 25, 2014 at 3:33 PM, Trygve Reenskaug <[hidden email] > <mailto:[hidden email]>> wrote: > > I don't think the current Smalltalk architecture can meet all your > computing needs because security isn't part of its core and because it > is inconceivable that all the necessary programs can be developed within > its boundaries. > > Like several people I met at ESUG, my goal is the Dynabook and the > Dynabook shall, by definition, meet all your needs. A Dynabook must be > safe so that its owner is protected from hackers and other evildoers. > The Dynabook SW architecture must be open so that owners can safely > install functionality ('apps') that is available in a marketplace. (The > i-pad with its hardware and its marketplace for apps is at the back of > my mind.) > > I can only see one path from here to there. Start from e.g., Pharo and > simplify it to create a Dynabook architecture with owner programming and > with opening for safely adding functionality safely ad lib. (I suppose > this is an ST based OS?) > > Any takers? > --Trygve > > > > On 23.08.2014 17:04, Wilfred Hughes wrote: >> Hi folks >> >> I've been playing with Pharo recently, and really enjoying writing >> some programs in the Pharo environment. >> >> As a result, I've been wondering if I can use Pharo the way I would >> use Emacs, as an environment for doing everything. >> >> For example, can I use Pharo to: >> >> * Send emails to this mailing list? >> * Use IRC? >> * Start Bash? >> * Read the Pharo documentation (e.g. Pharo By Example)? >> >> If these things do exist, how do I discover them? Is there a package >> manager I can use to find new tools I can use in Pharo? > > > |
In reply to this post by S Krish
It's very vague; I'm thinking as I write. My off-the-cuff answer:
Start from Alan's definition of object orientation: "... Thus its semantics are a bit like having
thousands and thousands of computers all hooked together by a
very fast network." The BOOK consists of its own
objects as well as objects anywhere on the net. The remote objects
may be written by anybody in any language, but they communicate with
the BOOK according to a fixed message interaction contract.
(Contrast with procedure call interfaces).
There will be many ways for linking users with producers. Google? Alan Kay once said something like "an operating system is what the language designers omitted to include in their language". Smalltalk was built directly on top of the hardware microcode; it was its own operating system rather than an app. The BOOK should be similar. More like iOS than an app. This is fun --Trygve ------------------- I am using the term BOOK rather than Dynabook because Alan Kay has the moral copyright to the latter and he may not agree with what we are doing. On 25.08.2014 16:15, S Krish wrote:
|
In reply to this post by WilfredHughes
On 26 Aug 2014, at 01:33, Wilfred Hughes <[hidden email]> wrote: > Sounds like the Dynabook goal rather overlaps with that of Lisp Machines. The idea of a single system that allows you to modify any part at runtime, inspect any part, or drop into a debugger anywhere is extremely powerful and wonderful to work with. +10 That is, for me, one of the core points. Open source means nothing if you cannot read the code, do not understand it, cannot change it - easily. It is not just about being able to do it, but how big the barrier is. And it also includes the idea of documentation, tools, environment, live objects and being able to learn. Sven -- Sven Van Caekenberghe http://stfx.eu Smalltalk is the Red Pill |
Administrator
|
In reply to this post by Trygve
That's a great one! Dan Ingalls put it this way in Design Principles Behind Smalltalk (http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html): Operating System: An operating system is a collection of things that don't fit into a language. There shouldn't be one.
Cheers,
Sean |
Administrator
|
In reply to this post by Sven Van Caekenberghe-2
Yes!!! This is why just open sourcing a bad idea like an OS (see GNU/Linux) doesn't cut it. Even though theoretically you have access to the whole system, you can judge the practicality of doing so by looking at how few people actually do so. Compare that with Smalltalk, where it seems a rarity to find someone who /doesn't/ take advantage of modifying the core (granted Smalltalkers are somewhat self-selected). The system must be distilled down and unified until it is easily understandable and changeable by a single person. We'll know we're there when we have the equivalent functionality of "an OS + Standard Suite of Common Applications" in which it is commonplace for users to dig down and modify any level.
Cheers,
Sean |
Personally I think the direction Moose is going is the right one, with visualising code for understanding its overall structure. I do think however that a system can help a user understand is an AI system, not in the strict sense of the word but a system that can understand user needs and act accordingly. Something like the Star Trek computer, where you can talk to a computer and reply back. Coding was great so far but it has become too complicated for mere humans to manage. So I think if Pharo is the future then we need to focus more and invest more on intelligent software, not software that is build in intelligent way but rather a software that can evolve and react to user's needs. This wont be easy or a short term goal.
On Tue, Aug 26, 2014 at 3:26 PM, Sean P. DeNigris <[hidden email]> wrote: Sven Van Caekenberghe-2 wrote |
In reply to this post by Sean P. DeNigris
Yes, yes, yes.
BTW: Readable code is the goal of DCI. On 26.08.2014 14:26, Sean P. DeNigris
wrote:
Sven Van Caekenberghe-2 wroteOpen source means nothing if you cannot read the code, do not understand it, cannot change it - easily.Yes!!! This is why just open sourcing a bad idea like an OS (see GNU/Linux) doesn't cut it. Even though theoretically you have access to the whole system, you can judge the practicality of doing so by looking at how few people actually do so. Compare that with Smalltalk, where it seems a rarity to find someone who /doesn't/ take advantage of modifying the core (granted Smalltalkers are somewhat self-selected). The system must be distilled down and unified until it is easily understandable and changeable by a single person. We'll know we're there when we have the equivalent functionality of "an OS + Standard Suite of Common Applications" in which it is commonplace for users to dig down and modify any level. ----- Cheers, Sean -- View this message in context: http://forum.world.st/Can-Pharo-meet-all-your-computing-needs-tp4774250p4774868.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. --
Trygve Reenskaug mailto: [hidden email] Morgedalsvn. 5A http://folk.uio.no/trygver/ N-0378 Oslo http://fullOO.info Norway Tel: (+47) 22 49 57 27 |
Free forum by Nabble | Edit this page |