Hello All,
Firstly, let me say that I am enjoying Pharo very much at this point. I wish I would have found the time to look at this a long time ago. I have a few misc. newbie questions. 1. VisualWorks - I am doing a lot of thinking about projects that I could use Smalltalk on. I have a consulting project coming up that might be a good candidate, but I'm sure I would be required to use a commercial Smalltalk version for it. I guess it may be odd to ask about VisualWorks on this list, but I'm not really looking for a comparison to Pharo. What I'm interested in is your opinion of the product. I would like to know if any of you would consider using it on a project. I would appreciate anything y'all could share in the form of experiences good or bad. I am trying to get my hands on it, but Cincom's mail server (windoze) is having issues. I am also having some trouble getting pricing out of them. Anyway, I would like to get your take on the Cincom products. 2. There appear to be some tool choices in the Pharo image. I would like to be able to create a class and it's methods in an editor in one go. I like being able to see all of the class code at once. Is there a way to do this? I just want to be able to type it all in and accept (evaluate?) all at once. 3. I've seen some discussion about images and image sizes. What is the current state of this. Is it possible to strip an image down to just the required components for an application (ie; no world menu, etc.). I would like to be able to run an image that would bring my gui application up filling the image window such that it looks a close as possible to a conventional gui application. 4. I have been reading about something called "Opentalk". It is a way for images to be able to comminucate with each other over the network. I've also seen something callesd "rST" that appears to do a similar thing. In addition, I notice that someone has done some FFI bindings for zeromq. What would y'all recommend as the best option to achieve something like this in Pharo? 5. I'm trying to figure out exactly what the Pharo gui toolkit provides in the way of widgets. Is there a widget gallery type thing somewhere that shows all of them? I know I can play with them in the image, but it would be nice to see a list of what is there with a brief description. 6. I know Pharo doesn't currently support OS threads in an image, but I'm wondering about the FFI. Is it possible to call a foreign function in a separate OS thread or asynchronously in Pharo? Disclaimer: I'm not asking for any how to type answers here. I can do the reading and experimentation myself. I just want to know if these things are possible and where to start looking for a solution. Thanks, Gerry |
I'm new here also so I'll just answer the easy ones.
Gerry Weaver wrote: > 2. There appear to be some tool choices in the Pharo image. I would like to be able to create a class and it's methods in an editor in one go. I like being able to see all of the class code at once. Is there a way to do this? I just want to be able to type it all in and accept (evaluate?) all at once. > > I think GNU smalltalk would be your only option - and would not have everything that you want for a client GUI applicaton. When I first started using Smalltalk I didn't realise that I was used to holding in my mind a "visual map" of where things were in the source files, and for a while I was uncomfortable like I could not "map" Smalltalk the same way. I have now adapted. As well as the differences in language and the live image IDE environment, the development cycle can be quite different. At its extreme, you write the test code first with then run it and before even writing the application code [1]. When the expected runtime error occurs the debugger opens and you add application code from within the debugger with the full context of variables available at that instant against which you experiment with code snippets until you get what you want. [1] http://squeak.preeminent.org/tut2007/html/011.html > 3. I've seen some discussion about images and image sizes. What is the current state of this. Is it possible to strip an image down to just the required components for an application (ie; no world menu, etc.). I would like to be able to run an image that would bring my gui application up filling the image window such that it looks a close as possible to a conventional gui application. > From my perspective, now that ram, disk space and Internet pipes are comparatively huge (to not very long ago) I think that file size of the image is not a real concern for an application. The stripping down of the image is still important for the Pharo "distribution" to reduce You don't need to strip out the IDE - you just turn it off - see [2]. In fact leaving the disabled IDE in the image might be useful if the client has a runtime problem with the application. Rather than "I can't reproduce it" you can potentially get the client to save the application image and send it to you. When you open the application you will have the exact state that the user, on which you can open a debugger. In the "ideal" case, you can fix it in that image and then send the image back to them and they can continue from where they left off. [2] http://squeak.preeminent.org/tut2007/html/205.html |
In reply to this post by sigipa
You can of course write everything in a workspace but that's messy. What you'd do basically is to tell the compiler to compile your class, then add methods (which you would also compile first). I don't know in what places you would have to register all of those things. You could try and look at OB / RB and how it's done in the browser. Anyway, it's not really practical. I haven't come across an editor that works the way you describe it but that doesn't mean there isn't one. Maybe someone else knows something. One idea would maybe be to look at GNU Smalltalk (file based) and see how they do it. Cheers, Max On 06.01.2012, at 06:41, Gerry Weaver wrote: 2. There appear to be some tool choices in the Pharo image. I would like to be able to create a class and it's methods in an editor in one go. I like being able to see all of the class code at once. Is there a way to do this? I just want to be able to type it all in and accept (evaluate?) all at once. |
In reply to this post by sigipa
Gerry,
On 06 Jan 2012, at 06:41, Gerry Weaver wrote: > 1. VisualWorks - I am doing a lot of thinking about projects that I could use Smalltalk on. I have a consulting project coming up that might be a good candidate, but I'm sure I would be required to use a commercial Smalltalk version for it. I guess it may be odd to ask about VisualWorks on this list, but I'm not really looking for a comparison to Pharo. What I'm interested in is your opinion of the product. I would like to know if any of you would consider using it on a project. I would appreciate anything y'all could share in the form of experiences good or bad. I am trying to get my hands on it, but Cincom's mail server (windoze) is having issues. I am also having some trouble getting pricing out of them. Anyway, I would like to get your take on the Cincom products. I asked myself the same questions, 18 to 24 months ago. I could say a lot about this subject, but I guess that in the mean time I am too biased since I took the Pharo road ;-) VisualWorks is a good product, technically and well supported (I guess), but it does cost real money (but nobody knows exactly how much). For hundreds of developers and companies, Pharo is a complete and capable alternative with a very active community. But don't take my word for it: just try it. Welcome! Sven PS: And if you like it, please participate in the community too. |
In reply to this post by sigipa
On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote:
This is an interesting question to me personally. After 15 years of working exclusively in Smalltalk I've recently been forced to start programming in Java, where the source code is always (as far as I know) arranged in the way you describe. This organization just emphasizes the dead and compiled nature of Java (and similar languages), compared to the living objects of Smalltalk, where even methods are objects, created by sending messages to other objects. Source code is relegated to being a mere artifact, which can be saved and organized in any way one wishes, and preferably never shows its ugly face to the coder :-p So my advice is, count yourself lucky that you have the chance to enter the world of real, pure, objects. Go with the flow, let your old idioms and practices go, and have fun! My Smalltalk years were the best time in my professional life, and I am quite envious of anyone that still gets to use Smalltalk professionally. And yes, I really *really* miss a good, object oriented class browser! -- Cheers, Peter |
On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote:
> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: > > 2. There appear to be some tool choices in the Pharo image. I would like to > be able to create a class and it's methods in an editor in one go. I like > being able to see all of the class code at once. Is there a way to do this? > I just want to be able to type it all in and accept (evaluate?) all at > once. > > This is an interesting question to me personally. After 15 years of working > exclusively in Smalltalk I've recently been forced to start programming in > Java, where the source code is always (as far as I know) arranged in the way > you describe. > > This organization just emphasizes the dead and compiled nature of Java (and > similar languages), compared to the living objects of Smalltalk, where even > methods are objects, created by sending messages to other objects. Source > code is relegated to being a mere artifact, which can be saved and organized > in any way one wishes, and preferably never shows its ugly face to the coder > :-p Which of course is no argument why Smalltalk code could not be displayed in a more programmer friendly way as a continuous block of text. There is no technical reason why source ranges in text box couldn't correspond to life method objects. Compared to other languages it is extremely tedious in Smalltalk to get an overview over a project, a package, or even a single class or to navigate between entities. > And yes, I really *really* miss a good, object oriented class browser! Eclipse is pretty good, especially with the Java Browsing Perspective. Lukas -- Lukas Renggli www.lukas-renggli.ch |
2012/1/6 Lukas Renggli <[hidden email]>:
> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: >> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: >> >> 2. There appear to be some tool choices in the Pharo image. I would like to >> be able to create a class and it's methods in an editor in one go. I like >> being able to see all of the class code at once. Is there a way to do this? >> I just want to be able to type it all in and accept (evaluate?) all at >> once. >> >> This is an interesting question to me personally. After 15 years of working >> exclusively in Smalltalk I've recently been forced to start programming in >> Java, where the source code is always (as far as I know) arranged in the way >> you describe. >> >> This organization just emphasizes the dead and compiled nature of Java (and >> similar languages), compared to the living objects of Smalltalk, where even >> methods are objects, created by sending messages to other objects. Source >> code is relegated to being a mere artifact, which can be saved and organized >> in any way one wishes, and preferably never shows its ugly face to the coder >> :-p > > Which of course is no argument why Smalltalk code could not be > displayed in a more programmer friendly way as a continuous block of > text. There is no technical reason why source ranges in text box > couldn't correspond to life method objects. Compared to other > languages it is extremely tedious in Smalltalk to get an overview over > a project, a package, or even a single class or to navigate between > entities. > >> And yes, I really *really* miss a good, object oriented class browser! > > Eclipse is pretty good, especially with the Java Browsing Perspective. > > Lukas > As soon as you would display the code for many methods in a single text pane, you will find file-based-educated people making large refactorings in a single pass... Imagine this leads to many syntax errors, they will soon be willing to save their changes for a later rework... This would be a complete change in programming flow and if we really want to support this, we would have to: - add a way to save syntactically incorrect code - let IDE tools work on partially correct code (syntax highlighting, navigation, etc...) IMHO, these features add a lot of complexity... Is it really worth? I like the discipline of focusing on a single method until it is at least syntactically correct. On the other hand, in Smalltalk we have to transfer the complexity of multi-method changes in the refactoring engines/menus when some simple modify/replace in a file would work. Nicolas > -- > Lukas Renggli > www.lukas-renggli.ch > |
In reply to this post by sigipa
On 06.01.2012 06:41, Gerry Weaver wrote:
> Hello All, > > Firstly, let me say that I am enjoying Pharo very much at this point. I > wish I would have found the time to look at this a long time ago. > > I have a few misc. newbie questions. > > 1. VisualWorks - I am doing a lot of thinking about projects that I > could use Smalltalk on. I have a consulting project coming up that might > be a good candidate, but I'm sure I would be required to use a > commercial Smalltalk version for it. I guess it may be odd to ask about > VisualWorks on this list, but I'm not really looking for a comparison to > Pharo. What I'm interested in is your opinion of the product. I would > like to know if any of you would consider using it on a project. I would > appreciate anything y'all could share in the form of experiences good or > bad. I am trying to get my hands on it, but Cincom's mail server > (windoze) is having issues. I am also having some trouble getting > pricing out of them. Anyway, I would like to get your take on the Cincom > products. > > 2. There appear to be some tool choices in the Pharo image. I would like > to be able to create a class and it's methods in an editor in one go. I > like being able to see all of the class code at once. Is there a way to > do this? I just want to be able to type it all in and accept (evaluate?) > all at once. > > 3. I've seen some discussion about images and image sizes. What is the > current state of this. Is it possible to strip an image down to just the > required components for an application (ie; no world menu, etc.). I > would like to be able to run an image that would bring my gui > application up filling the image window such that it looks a close as > possible to a conventional gui application. > > 4. I have been reading about something called "Opentalk". It is a way > for images to be able to comminucate with each other over the network. > I've also seen something callesd "rST" that appears to do a similar > thing. In addition, I notice that someone has done some FFI bindings for > zeromq. What would y'all recommend as the best option to achieve > something like this in Pharo? > > 5. I'm trying to figure out exactly what the Pharo gui toolkit provides > in the way of widgets. Is there a widget gallery type thing somewhere > that shows all of them? I know I can play with them in the image, but it > would be nice to see a list of what is there with a brief description. > > 6. I know Pharo doesn't currently support OS threads in an image, but > I'm wondering about the FFI. Is it possible to call a foreign function > in a separate OS thread or asynchronously in Pharo? My understanding is with the very latest mt Cog VMs that FFI call-outs happen in a native OS thread. I'm not sure whether the required infrastructure is already in Pharo. Cheers Philippe |
In reply to this post by Nicolas Cellier
On 7 January 2012 14:14, Nicolas Cellier
<[hidden email]> wrote: > 2012/1/6 Lukas Renggli <[hidden email]>: >> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: >>> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: >>> >>> 2. There appear to be some tool choices in the Pharo image. I would like to >>> be able to create a class and it's methods in an editor in one go. I like >>> being able to see all of the class code at once. Is there a way to do this? >>> I just want to be able to type it all in and accept (evaluate?) all at >>> once. >>> >>> This is an interesting question to me personally. After 15 years of working >>> exclusively in Smalltalk I've recently been forced to start programming in >>> Java, where the source code is always (as far as I know) arranged in the way >>> you describe. >>> >>> This organization just emphasizes the dead and compiled nature of Java (and >>> similar languages), compared to the living objects of Smalltalk, where even >>> methods are objects, created by sending messages to other objects. Source >>> code is relegated to being a mere artifact, which can be saved and organized >>> in any way one wishes, and preferably never shows its ugly face to the coder >>> :-p >> >> Which of course is no argument why Smalltalk code could not be >> displayed in a more programmer friendly way as a continuous block of >> text. There is no technical reason why source ranges in text box >> couldn't correspond to life method objects. Compared to other >> languages it is extremely tedious in Smalltalk to get an overview over >> a project, a package, or even a single class or to navigate between >> entities. >> >>> And yes, I really *really* miss a good, object oriented class browser! >> >> Eclipse is pretty good, especially with the Java Browsing Perspective. >> >> Lukas >> > > As soon as you would display the code for many methods in a single text pane, > you will find file-based-educated people making large refactorings in > a single pass... > Imagine this leads to many syntax errors, they will soon be willing to > save their changes for a later rework... > This would be a complete change in programming flow and if we really > want to support this, we would have to: > - add a way to save syntactically incorrect code > - let IDE tools work on partially correct code (syntax highlighting, > navigation, etc...) > > IMHO, these features add a lot of complexity... Is it really worth? > I like the discipline of focusing on a single method until it is at > least syntactically correct. The Pharo community has extremely limited resources so it seems quite fair to me for Pharo to say "yes, but it's up to you because we have no time". It _is_ very useful to be able to see and edit long reams of text: my favourite text editor's been beaten on since the late 70s. It is now very, very good at manipulating text, in multiple programming languages, in multiple human languages, on many platforms. That I can't use this text editor to manipulate a textual representation of my favourite language is extremely annoying! frank > On the other hand, in Smalltalk we have to transfer the complexity of > multi-method changes in the refactoring engines/menus when some simple > modify/replace in a file would work. > > Nicolas > >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> > |
2012/1/7 Frank Shearar <[hidden email]>:
> On 7 January 2012 14:14, Nicolas Cellier > <[hidden email]> wrote: >> 2012/1/6 Lukas Renggli <[hidden email]>: >>> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: >>>> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: >>>> >>>> 2. There appear to be some tool choices in the Pharo image. I would like to >>>> be able to create a class and it's methods in an editor in one go. I like >>>> being able to see all of the class code at once. Is there a way to do this? >>>> I just want to be able to type it all in and accept (evaluate?) all at >>>> once. >>>> >>>> This is an interesting question to me personally. After 15 years of working >>>> exclusively in Smalltalk I've recently been forced to start programming in >>>> Java, where the source code is always (as far as I know) arranged in the way >>>> you describe. >>>> >>>> This organization just emphasizes the dead and compiled nature of Java (and >>>> similar languages), compared to the living objects of Smalltalk, where even >>>> methods are objects, created by sending messages to other objects. Source >>>> code is relegated to being a mere artifact, which can be saved and organized >>>> in any way one wishes, and preferably never shows its ugly face to the coder >>>> :-p >>> >>> Which of course is no argument why Smalltalk code could not be >>> displayed in a more programmer friendly way as a continuous block of >>> text. There is no technical reason why source ranges in text box >>> couldn't correspond to life method objects. Compared to other >>> languages it is extremely tedious in Smalltalk to get an overview over >>> a project, a package, or even a single class or to navigate between >>> entities. >>> >>>> And yes, I really *really* miss a good, object oriented class browser! >>> >>> Eclipse is pretty good, especially with the Java Browsing Perspective. >>> >>> Lukas >>> >> >> As soon as you would display the code for many methods in a single text pane, >> you will find file-based-educated people making large refactorings in >> a single pass... >> Imagine this leads to many syntax errors, they will soon be willing to >> save their changes for a later rework... >> This would be a complete change in programming flow and if we really >> want to support this, we would have to: >> - add a way to save syntactically incorrect code >> - let IDE tools work on partially correct code (syntax highlighting, >> navigation, etc...) >> >> IMHO, these features add a lot of complexity... Is it really worth? >> I like the discipline of focusing on a single method until it is at >> least syntactically correct. > > The Pharo community has extremely limited resources so it seems quite > fair to me for Pharo to say "yes, but it's up to you because we have > no time". It _is_ very useful to be able to see and edit long reams of > text: my favourite text editor's been beaten on since the late 70s. It > is now very, very good at manipulating text, in multiple programming > languages, in multiple human languages, on many platforms. That I > can't use this text editor to manipulate a textual representation of > my favourite language is extremely annoying! > > frank Yeah, but my take was that re-inventing a very narrow subset of these 40 years old text editors in Smalltalk would likely be a failure... (or a big project) There is also this recent related post which touch this subject: http://railsrx.com/2011/12/29/getting-back-to-smalltalk/ Nicolas > >> On the other hand, in Smalltalk we have to transfer the complexity of >> multi-method changes in the refactoring engines/menus when some simple >> modify/replace in a file would work. >> >> Nicolas >> >>> -- >>> Lukas Renggli >>> www.lukas-renggli.ch >>> >> > |
On 7 January 2012 15:11, Nicolas Cellier
<[hidden email]> wrote: > 2012/1/7 Frank Shearar <[hidden email]>: >> On 7 January 2012 14:14, Nicolas Cellier >> <[hidden email]> wrote: >>> 2012/1/6 Lukas Renggli <[hidden email]>: >>>> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: >>>>> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: >>>>> >>>>> 2. There appear to be some tool choices in the Pharo image. I would like to >>>>> be able to create a class and it's methods in an editor in one go. I like >>>>> being able to see all of the class code at once. Is there a way to do this? >>>>> I just want to be able to type it all in and accept (evaluate?) all at >>>>> once. >>>>> >>>>> This is an interesting question to me personally. After 15 years of working >>>>> exclusively in Smalltalk I've recently been forced to start programming in >>>>> Java, where the source code is always (as far as I know) arranged in the way >>>>> you describe. >>>>> >>>>> This organization just emphasizes the dead and compiled nature of Java (and >>>>> similar languages), compared to the living objects of Smalltalk, where even >>>>> methods are objects, created by sending messages to other objects. Source >>>>> code is relegated to being a mere artifact, which can be saved and organized >>>>> in any way one wishes, and preferably never shows its ugly face to the coder >>>>> :-p >>>> >>>> Which of course is no argument why Smalltalk code could not be >>>> displayed in a more programmer friendly way as a continuous block of >>>> text. There is no technical reason why source ranges in text box >>>> couldn't correspond to life method objects. Compared to other >>>> languages it is extremely tedious in Smalltalk to get an overview over >>>> a project, a package, or even a single class or to navigate between >>>> entities. >>>> >>>>> And yes, I really *really* miss a good, object oriented class browser! >>>> >>>> Eclipse is pretty good, especially with the Java Browsing Perspective. >>>> >>>> Lukas >>>> >>> >>> As soon as you would display the code for many methods in a single text pane, >>> you will find file-based-educated people making large refactorings in >>> a single pass... >>> Imagine this leads to many syntax errors, they will soon be willing to >>> save their changes for a later rework... >>> This would be a complete change in programming flow and if we really >>> want to support this, we would have to: >>> - add a way to save syntactically incorrect code >>> - let IDE tools work on partially correct code (syntax highlighting, >>> navigation, etc...) >>> >>> IMHO, these features add a lot of complexity... Is it really worth? >>> I like the discipline of focusing on a single method until it is at >>> least syntactically correct. >> >> The Pharo community has extremely limited resources so it seems quite >> fair to me for Pharo to say "yes, but it's up to you because we have >> no time". It _is_ very useful to be able to see and edit long reams of >> text: my favourite text editor's been beaten on since the late 70s. It >> is now very, very good at manipulating text, in multiple programming >> languages, in multiple human languages, on many platforms. That I >> can't use this text editor to manipulate a textual representation of >> my favourite language is extremely annoying! >> >> frank > > Yeah, but my take was that re-inventing a very narrow subset of these > 40 years old text editors in Smalltalk would likely be a failure... > (or a big project) It would be a fairlly big piece of work although we do have lots of pieces lying around: * Coral's working on a scripting/REPL-like interface, * the Common Lisp community has been using SLIME to provide a REPL to a running image for years while also using files to store their code, * we have Gitocello (which also translates Squeak/Pharo to gst), * we have LanguageBoxes (*) allowing us to permit craziness like storing code outside the image in one format without affecting the entire language (letting us store Smalltalk code in something other than chunk format) (*) watch this space: I'm making progress on breaking up the Helvetia image into a bootstrappable bunch of packages > There is also this recent related post which touch this subject: > > http://railsrx.com/2011/12/29/getting-back-to-smalltalk/ Amusingly, I only just finished reading that in my newsreader. I think _personally_ that I need to port TWM to Squeak because I'm tired of being the window manager, and hopefully that would solve my other pain, which Noel points out - the ability to see multiple methods at a time is _really useful_. (Trivial example: think of how clear code in ML or Haskell looks when pattern matching on type, versus having five browsers open on various subclasses' implementations of #foo.) I guess I'm saying: the rest of the world isn't automatically wrong because they're not using Smalltalk, and I want to bring the best parts of the non-Smalltalk stuff to Smalltalk (like having the _option_ of using my favourite version control system, text editor, IDE, etc.) frank > Nicolas > >> >>> On the other hand, in Smalltalk we have to transfer the complexity of >>> multi-method changes in the refactoring engines/menus when some simple >>> modify/replace in a file would work. >>> >>> Nicolas >>> >>>> -- >>>> Lukas Renggli >>>> www.lukas-renggli.ch >>>> >>> >> > |
In reply to this post by Philippe Marschall-2-3
On Sat, Jan 7, 2012 at 6:32 AM, Philippe Marschall <[hidden email]> wrote: On 06.01.2012 06:41, Gerry Weaver wrote: That's the idea in the MT (multi-threaded) VMs. But its not the case in the standard VM. This makes all FFI calls from the VM thread, blocking the VM until the call returns or calls-back. N.B. the MT VMs are not yet production ready.
best, Eliot |
In reply to this post by Frank Shearar-3
Hello All,
Thank you for all of your responses. They are really helping me get a better picture of Pharo, the environment, and the community. I really like the idea of a REPL type interface. If I understand correctly, all of the functionality that deals with class/method definition is already there. It seems like it would be a matter of writing a little server type application that would communicate via stdin/stdout. I assume one could then send messages to the code that evaluates methods/function definitions and provide result feedback via stdout. Maybe it could also understand some commands like doit and accept. It could be interesting to have a TCP based interface as well. How difficult would it be to do something like this? I may start looking into this. It seems like a good project to jump into the deep end, start paddling, and drinking a little water (hopefully not too much). Is the code that handles this kind of thing readily accessible? I've started looking around a bit. Thanks, Gerry -----Original Message----- > From: "Frank Shearar" <[hidden email]> > To: [hidden email] > Date: 01/07/12 09:28 > Subject: Re: [Pharo-project] Misc. newbie questions > > On 7 January 2012 15:11, Nicolas Cellier > <[hidden email]> wrote: > > 2012/1/7 Frank Shearar <[hidden email]>: > >> On 7 January 2012 14:14, Nicolas Cellier > >> <[hidden email]> wrote: > >>> 2012/1/6 Lukas Renggli <[hidden email]>: > >>>> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: > >>>>> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: > >>>>> > >>>>> 2. There appear to be some tool choices in the Pharo image. I would like to > >>>>> be able to create a class and it's methods in an editor in one go. I like > >>>>> being able to see all of the class code at once. Is there a way to do this? > >>>>> I just want to be able to type it all in and accept (evaluate?) all at > >>>>> once. > >>>>> > >>>>> This is an interesting question to me personally. After 15 years of working > >>>>> exclusively in Smalltalk I've recently been forced to start programming in > >>>>> Java, where the source code is always (as far as I know) arranged in the way > >>>>> you describe. > >>>>> > >>>>> This organization just emphasizes the dead and compiled nature of Java (and > >>>>> similar languages), compared to the living objects of Smalltalk, where even > >>>>> methods are objects, created by sending messages to other objects. Source > >>>>> code is relegated to being a mere artifact, which can be saved and organized > >>>>> in any way one wishes, and preferably never shows its ugly face to the coder > >>>>> :-p > >>>> > >>>> Which of course is no argument why Smalltalk code could not be > >>>> displayed in a more programmer friendly way as a continuous block of > >>>> text. There is no technical reason why source ranges in text box > >>>> couldn't correspond to life method objects. Compared to other > >>>> languages it is extremely tedious in Smalltalk to get an overview over > >>>> a project, a package, or even a single class or to navigate between > >>>> entities. > >>>> > >>>>> And yes, I really *really* miss a good, object oriented class browser! > >>>> > >>>> Eclipse is pretty good, especially with the Java Browsing Perspective. > >>>> > >>>> Lukas > >>>> > >>> > >>> As soon as you would display the code for many methods in a single text pane, > >>> you will find file-based-educated people making large refactorings in > >>> a single pass... > >>> Imagine this leads to many syntax errors, they will soon be willing to > >>> save their changes for a later rework... > >>> This would be a complete change in programming flow and if we really > >>> want to support this, we would have to: > >>> - add a way to save syntactically incorrect code > >>> - let IDE tools work on partially correct code (syntax highlighting, > >>> navigation, etc...) > >>> > >>> IMHO, these features add a lot of complexity... Is it really worth? > >>> I like the discipline of focusing on a single method until it is at > >>> least syntactically correct. > >> > >> The Pharo community has extremely limited resources so it seems quite > >> fair to me for Pharo to say "yes, but it's up to you because we have > >> no time". It _is_ very useful to be able to see and edit long reams of > >> text: my favourite text editor's been beaten on since the late 70s. It > >> is now very, very good at manipulating text, in multiple programming > >> languages, in multiple human languages, on many platforms. That I > >> can't use this text editor to manipulate a textual representation of > >> my favourite language is extremely annoying! > >> > >> frank > > > > Yeah, but my take was that re-inventing a very narrow subset of these > > 40 years old text editors in Smalltalk would likely be a failure... > > (or a big project) > > It would be a fairlly big piece of work although we do have lots of > pieces lying around: > * Coral's working on a scripting/REPL-like interface, > * the Common Lisp community has been using SLIME to provide a REPL to > a running image for years while also using files to store their code, > * we have Gitocello (which also translates Squeak/Pharo to gst), > * we have LanguageBoxes (*) allowing us to permit craziness like > storing code outside the image in one format without affecting the > entire language (letting us store Smalltalk code in something other > than chunk format) > > (*) watch this space: I'm making progress on breaking up the Helvetia > image into a bootstrappable bunch of packages > > > There is also this recent related post which touch this subject: > > > > http://railsrx.com/2011/12/29/getting-back-to-smalltalk/ > > Amusingly, I only just finished reading that in my newsreader. I think > _personally_ that I need to port TWM to Squeak because I'm tired of > being the window manager, and hopefully that would solve my other > pain, which Noel points out - the ability to see multiple methods at a > time is _really useful_. > > (Trivial example: think of how clear code in ML or Haskell looks when > pattern matching on type, versus having five browsers open on various > subclasses' implementations of #foo.) > > I guess I'm saying: the rest of the world isn't automatically wrong > because they're not using Smalltalk, and I want to bring the best > parts of the non-Smalltalk stuff to Smalltalk (like having the > _option_ of using my favourite version control system, text editor, > IDE, etc.) > > frank > > > Nicolas > > > >> > >>> On the other hand, in Smalltalk we have to transfer the complexity of > >>> multi-method changes in the refactoring engines/menus when some simple > >>> modify/replace in a file would work. > >>> > >>> Nicolas > >>> > >>>> -- > >>>> Lukas Renggli > >>>> www.lukas-renggli.ch > >>>> > >>> > >> > > |
On 01/08/2012 02:05 AM, Gerry Weaver wrote:
> Hello All, > > Thank you for all of your responses. They are really helping me get a better picture of Pharo, the environment, and the community. > > > I really like the idea of a REPL type interface. If I understand correctly, all of the functionality that deals with class/method definition is already there. It seems like it would be a matter of writing a little server type application that would communicate via stdin/stdout. I assume one could then send messages to the code that evaluates methods/function definitions and provide result feedback via stdout. Maybe it could also understand some commands like doit and accept. It could be interesting to have a TCP based interface as well. How difficult would it be to do something like this? I may start looking into this. It seems like a good project to jump into the deep end, start paddling, and drinking a little water (hopefully not too much). Is the code that handles this kind of thing readily accessible? I've started looking around a bit. The answer is that it is basically trivial to do and many people have already done it in various forms - I even did a TCP server for Joe Armstrong (one of the creators of Erlang) that does similar things: http://www.squeaksource.com/JoesServer.html ...BUT... when it comes to Joe he wanted to use Squeak from Erlang in order to dynamically create UIs etc. So he had a reasonable use case. ;) ...if you just happe to "like REPLs" then you should really try to use and learn the Squeak/Pharo IDE. Think of it as a full blown live graphic REPL with tons of cool tools. Every text area in Pharo/Squeak is a "REPL" anyway. regards, Göran |
2012/1/8 Göran Krampe <[hidden email]>:
> On 01/08/2012 02:05 AM, Gerry Weaver wrote: >> >> Hello All, >> >> Thank you for all of your responses. They are really helping me get a >> better picture of Pharo, the environment, and the community. >> >> >> I really like the idea of a REPL type interface. If I understand >> correctly, all of the functionality that deals with class/method definition >> is already there. It seems like it would be a matter of writing a little >> server type application that would communicate via stdin/stdout. I assume >> one could then send messages to the code that evaluates methods/function >> definitions and provide result feedback via stdout. Maybe it could also >> understand some commands like doit and accept. It could be interesting to >> have a TCP based interface as well. How difficult would it be to do >> something like this? I may start looking into this. It seems like a good >> project to jump into the deep end, start paddling, and drinking a little >> water (hopefully not too much). Is the code that handles this kind of thing >> readily accessible? I've started looking around a bit. http://lists.gforge.inria.fr/mailman/listinfo/pharo-coral <-- not TCP-based, but it should be trivial to extend it to use a socket instead of stdin/out > The answer is that it is basically trivial to do and many people have > already done it in various forms - I even did a TCP server for Joe Armstrong > (one of the creators of Erlang) that does similar things: > > http://www.squeaksource.com/JoesServer.html > > ...BUT... when it comes to Joe he wanted to use Squeak from Erlang in order > to dynamically create UIs etc. So he had a reasonable use case. ;) > > ...if you just happe to "like REPLs" then you should really try to use and > learn the Squeak/Pharo IDE. Think of it as a full blown live graphic REPL > with tons of cool tools. Every text area in Pharo/Squeak is a "REPL" anyway. You should definitely learn to use the Squeak/Pharo IDE, even apart from the fact that it's the least rubbish way of writing code. The Workspace is, fair enough, a bit like a REPL. Well, no, it IS a REPL. It's just a REPL that requires you to use a GUI. The complicated part of a Smalltalk REPL is Smalltalk's syntax: it's designed to work at the method level, where some code-holding widget's entire contents holds a single method. This is why Coral and GNU Smalltalk alter the core syntax a bit, to allow marking the start and end of a method. For instance, gst has something like Foo extend [ bar [ ^ 'return!' ] ] to add a method #bar to an existing class Foo. (Or: Smalltalk syntax has no "this is the end of a method" marker, beyond the _optional_ ^ statement.) frank > > regards, Göran > |
In reply to this post by sigipa
On Jan 8, 2012, at 2:05 AM, Gerry Weaver wrote: > Hello All, > > Thank you for all of your responses. They are really helping me get a better picture of Pharo, the environment, and the community. > > > I really like the idea of a REPL type interface. If I understand correctly, all of the functionality that deals with class/method definition is already there. It seems like it would be a matter of writing a little server type application that would communicate via stdin/stdout. I assume one could then send messages to the code that evaluates methods/function definitions and provide result feedback via stout. Yes :) With the MTvm you can already do that: talk to the vm via a console :). > Maybe it could also understand some commands like doit and accept. Yes. A doit is somehow no more than Compiler evaluate: asString > It could be interesting to have a TCP based interface as well. How difficult would it be to do something like this? > I may start looking into this. It seems like a good project to jump into the deep end, start paddling, and drinking a little water (hopefully not too much). Is the code that handles this kind of thing readily accessible? I've started looking around a bit. > > > Thanks, > Gerry > > > -----Original Message----- >> From: "Frank Shearar" <[hidden email]> >> To: [hidden email] >> Date: 01/07/12 09:28 >> Subject: Re: [Pharo-project] Misc. newbie questions >> >> On 7 January 2012 15:11, Nicolas Cellier >> <[hidden email]> wrote: >>> 2012/1/7 Frank Shearar <[hidden email]>: >>>> On 7 January 2012 14:14, Nicolas Cellier >>>> <[hidden email]> wrote: >>>>> 2012/1/6 Lukas Renggli <[hidden email]>: >>>>>> On 6 January 2012 11:20, Peter Hugosson-Miller <[hidden email]> wrote: >>>>>>> On 6 jan 2012, at 06:41, "Gerry Weaver" <[hidden email]> wrote: >>>>>>> >>>>>>> 2. There appear to be some tool choices in the Pharo image. I would like to >>>>>>> be able to create a class and it's methods in an editor in one go. I like >>>>>>> being able to see all of the class code at once. Is there a way to do this? >>>>>>> I just want to be able to type it all in and accept (evaluate?) all at >>>>>>> once. >>>>>>> >>>>>>> This is an interesting question to me personally. After 15 years of working >>>>>>> exclusively in Smalltalk I've recently been forced to start programming in >>>>>>> Java, where the source code is always (as far as I know) arranged in the way >>>>>>> you describe. >>>>>>> >>>>>>> This organization just emphasizes the dead and compiled nature of Java (and >>>>>>> similar languages), compared to the living objects of Smalltalk, where even >>>>>>> methods are objects, created by sending messages to other objects. Source >>>>>>> code is relegated to being a mere artifact, which can be saved and organized >>>>>>> in any way one wishes, and preferably never shows its ugly face to the coder >>>>>>> :-p >>>>>> >>>>>> Which of course is no argument why Smalltalk code could not be >>>>>> displayed in a more programmer friendly way as a continuous block of >>>>>> text. There is no technical reason why source ranges in text box >>>>>> couldn't correspond to life method objects. Compared to other >>>>>> languages it is extremely tedious in Smalltalk to get an overview over >>>>>> a project, a package, or even a single class or to navigate between >>>>>> entities. >>>>>> >>>>>>> And yes, I really *really* miss a good, object oriented class browser! >>>>>> >>>>>> Eclipse is pretty good, especially with the Java Browsing Perspective. >>>>>> >>>>>> Lukas >>>>>> >>>>> >>>>> As soon as you would display the code for many methods in a single text pane, >>>>> you will find file-based-educated people making large refactorings in >>>>> a single pass... >>>>> Imagine this leads to many syntax errors, they will soon be willing to >>>>> save their changes for a later rework... >>>>> This would be a complete change in programming flow and if we really >>>>> want to support this, we would have to: >>>>> - add a way to save syntactically incorrect code >>>>> - let IDE tools work on partially correct code (syntax highlighting, >>>>> navigation, etc...) >>>>> >>>>> IMHO, these features add a lot of complexity... Is it really worth? >>>>> I like the discipline of focusing on a single method until it is at >>>>> least syntactically correct. >>>> >>>> The Pharo community has extremely limited resources so it seems quite >>>> fair to me for Pharo to say "yes, but it's up to you because we have >>>> no time". It _is_ very useful to be able to see and edit long reams of >>>> text: my favourite text editor's been beaten on since the late 70s. It >>>> is now very, very good at manipulating text, in multiple programming >>>> languages, in multiple human languages, on many platforms. That I >>>> can't use this text editor to manipulate a textual representation of >>>> my favourite language is extremely annoying! >>>> >>>> frank >>> >>> Yeah, but my take was that re-inventing a very narrow subset of these >>> 40 years old text editors in Smalltalk would likely be a failure... >>> (or a big project) >> >> It would be a fairlly big piece of work although we do have lots of >> pieces lying around: >> * Coral's working on a scripting/REPL-like interface, >> * the Common Lisp community has been using SLIME to provide a REPL to >> a running image for years while also using files to store their code, >> * we have Gitocello (which also translates Squeak/Pharo to gst), >> * we have LanguageBoxes (*) allowing us to permit craziness like >> storing code outside the image in one format without affecting the >> entire language (letting us store Smalltalk code in something other >> than chunk format) >> >> (*) watch this space: I'm making progress on breaking up the Helvetia >> image into a bootstrappable bunch of packages >> >>> There is also this recent related post which touch this subject: >>> >>> http://railsrx.com/2011/12/29/getting-back-to-smalltalk/ >> >> Amusingly, I only just finished reading that in my newsreader. I think >> _personally_ that I need to port TWM to Squeak because I'm tired of >> being the window manager, and hopefully that would solve my other >> pain, which Noel points out - the ability to see multiple methods at a >> time is _really useful_. >> >> (Trivial example: think of how clear code in ML or Haskell looks when >> pattern matching on type, versus having five browsers open on various >> subclasses' implementations of #foo.) >> >> I guess I'm saying: the rest of the world isn't automatically wrong >> because they're not using Smalltalk, and I want to bring the best >> parts of the non-Smalltalk stuff to Smalltalk (like having the >> _option_ of using my favourite version control system, text editor, >> IDE, etc.) >> >> frank >> >>> Nicolas >>> >>>> >>>>> On the other hand, in Smalltalk we have to transfer the complexity of >>>>> multi-method changes in the refactoring engines/menus when some simple >>>>> modify/replace in a file would work. >>>>> >>>>> Nicolas >>>>> >>>>>> -- >>>>>> Lukas Renggli >>>>>> www.lukas-renggli.ch >>>>>> >>>>> >>>> >>> > > > > |
In reply to this post by Frank Shearar-3
Hello All,
I've been thinking about the idea of an alternate IDE quite a bit. What I'm envisioning would be something akin to the Delphi IDE. Delphi is probably the most productive gui based environment I've ever worked in. It would be very interesting to combine Smalltalk with such an environment. My feeling about the current IDE is that it is somewhat dated. It was designed at a time when monitors were the size of port holes. I think an updated environment would go a long way to making the language more interesting and accessible. The difficult part about Smalltalk certainly isn't the language, it's the strange IDE layout. If that barrier were to be removed, then a person could really hit the ground running. The only real difference I would see between the old and the new would be the code editor. The rest would just be a little rearranging of what is already there. I'm slowly talking my self into actually starting down the road a bit. I think I'll try to find a few days that I can spend doing some investigating. Any thoughts? Thanks, Gerry |
Hello Gerry
> Hello All, > > > I've been thinking about the idea of an alternate IDE quite a bit. What I'm envisioning would be something akin to the Delphi IDE. Delphi is probably the most productive gui based environment I've ever worked in. It would be very interesting to combine Smalltalk with such an environment. My feeling about the current IDE is that it is somewhat dated. + 1000000 > It was designed at a time when monitors were the size of port holes. I think an updated environment would go a long way to making the language more interesting and accessible. The difficult part about Smalltalk certainly isn't the language, it's the strange IDE layout. If that barrier were to be removed, then a person could really hit the ground running. The only real difference I would see between the old and the new would be the code editor. The rest would just be a little rearranging of what is already there. I'm slowly talking my self > into actually starting down the road a bit. I think I'll try to find a few days that I can spend doing some investigating. > > Any thoughts? Brainstorm using glamour to prototype something. We definitively need innovation and rethink how we work. I can tell you that what we have is not what I dream of. Stef > > > Thanks, > Gerry > > > > > > > |
In reply to this post by sigipa
Hi Gerry:
On 12 Jan 2012, at 10:13, Gerry Weaver wrote: > I've been thinking about the idea of an alternate IDE quite a bit. What I'm envisioning would be something akin to the Delphi IDE. Delphi is probably the most productive gui based environment I've ever worked in. Could you point me to screenshots? Because I fear that you are talking about what I used to know as Borland Delphi.(http://www.blichmann.de/en/programming/delphi/themeddelphi/luna.png) Not that it is bad, but like Visual Studio and Eclipse, the main concepts are IMO as dated as what you got in Pharo. If you are just looking for a UI designer, have you seen this? https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/designer I would rather be interested in a 'more fluid' version of Hopscotch: http://bracha.org/hopscotch-wasdett.pdf Did not find a good demo without digging to much (there is one somewhere on youtube) but maybe this is already close enough: http://www.youtube.com/watch?feature=player_detailpage&v=gGJ2y0BNkpc#t=1536s Best regards Stefan -- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525 |
but UI building is just one part of the story. If after you just get a long initialize methods then nothing gets really reused. Stef On Jan 12, 2012, at 10:48 AM, Stefan Marr wrote: > Hi Gerry: > > On 12 Jan 2012, at 10:13, Gerry Weaver wrote: > >> I've been thinking about the idea of an alternate IDE quite a bit. What I'm envisioning would be something akin to the Delphi IDE. Delphi is probably the most productive gui based environment I've ever worked in. > > Could you point me to screenshots? > Because I fear that you are talking about what I used to know as Borland Delphi.(http://www.blichmann.de/en/programming/delphi/themeddelphi/luna.png) > Not that it is bad, but like Visual Studio and Eclipse, the main concepts are IMO as dated as what you got in Pharo. > > If you are just looking for a UI designer, have you seen this? https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/designer > > > I would rather be interested in a 'more fluid' version of Hopscotch: > http://bracha.org/hopscotch-wasdett.pdf > > Did not find a good demo without digging to much (there is one somewhere on youtube) > but maybe this is already close enough: http://www.youtube.com/watch?feature=player_detailpage&v=gGJ2y0BNkpc#t=1536s > > Best regards > Stefan > > > -- > Stefan Marr > Software Languages Lab > Vrije Universiteit Brussel > Pleinlaan 2 / B-1050 Brussels / Belgium > http://soft.vub.ac.be/~smarr > Phone: +32 2 629 2974 > Fax: +32 2 629 3525 > > |
Free forum by Nabble | Edit this page |