Hi guys
Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy behind pharo: the idea that we systematically want to make the system better. In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where only skilled adventurers can make it through. Stef |
I understand the sense of your words.
And I agree with the need of a more easy to understand/extend system......I think that is a thing we need in these days, may be with some helper tools, I don't know, but I hear a lot of times people saying "No, I had a look to (put here Squeak/Pharo/Dolphin/other flavour) but was not able of develop anything". I know most of this sensation has to do with knowledgment about OO technology, but still if we can have a lower intro barrier, may be better for a lot of people (myself included of course.... in topics as .... Morphic :) ). Just my thoughts. Another forever newbie: Germán :) 2011/1/29 Stéphane Ducasse <[hidden email]>: > Hi guys > > Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy > behind pharo: the idea that we systematically want to make the system better. > In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use > to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also > less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but > I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. > I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests > comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. > So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where > only skilled adventurers can make it through. > > Stef > |
On the permanent noob front: I have years of experience as a beginning skier. I like it that way: no broken bones. Besides, I don't get to do it often enough to develop an attitude about it.
As for Smalltalk in general, I have pointed new users to the Digitalk tutorials, telling them to stop when they reach the graphics, after which I started them into specific projects with lots of mentoring until they "got it." Visual Basic, PHP, Java, any # language except maybe S#, R (statistics), etc., all try to be easy to use. Hello world is a mere line or two, and teaches NOTHING. Understanding of Smalltalk comes a little slowly, but the rewards are immense (as you all know). Visual Basic has syntax for everything one might want to do; once dug out of documentation or a forum post, the trick of the day might not be useful for much else. Everything is easy: learning to do anything is a daunting task. The things to be learned about Smalltalk are comparatively few and invariably widely applicable; there are some specialized techniques (FFI, finalization), but very few tricks. Smalltalk is (mostly) consistent throughout, and its inconsistencies (Character, SmallInteger, #ifTrue:ifFalse:, MetaClass) are hidden fairly well and, with hindsight, make sense IMHO. Exception handling is new since Smalltalk 80, it is done wonderfully and fits with Smalltalk style. The newbie sees some "syntax" - we see #on:do: sent to a block, note the elegance, and get back to work. Traits are new and welcome. I am not saying that we can't extend the system; I think we should be careful about changing the language. Does Alan still have that piece of paper with the original specification? Pharo can use some work, of course. I am still overwhelmed when I begin to create a GUI for something, probably because I have written only two or three of them. I have some scraps of code that are learning toward an MVP framework. Just this past week, I encountered some communications code (non-graphical) that needed an aspect value adapter. I wrote a simple one, which is another piece of that puzzle. Things worth learning take effort. I doubt we can get around that. We can offer good tutorials, and where the tutorials look scruffy, make the code better. Bill ________________________________________ From: [hidden email] [[hidden email]] On Behalf Of Germán Arduino [[hidden email]] Sent: Saturday, January 29, 2011 9:29 AM To: [hidden email] Subject: Re: [Pharo-project] Vision I understand the sense of your words. And I agree with the need of a more easy to understand/extend system......I think that is a thing we need in these days, may be with some helper tools, I don't know, but I hear a lot of times people saying "No, I had a look to (put here Squeak/Pharo/Dolphin/other flavour) but was not able of develop anything". I know most of this sensation has to do with knowledgment about OO technology, but still if we can have a lower intro barrier, may be better for a lot of people (myself included of course.... in topics as .... Morphic :) ). Just my thoughts. Another forever newbie: Germán :) 2011/1/29 Stéphane Ducasse <[hidden email]>: > Hi guys > > Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy > behind pharo: the idea that we systematically want to make the system better. > In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use > to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also > less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but > I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. > I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests > comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. > So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where > only skilled adventurers can make it through. > > Stef > |
Well.. my experience as a newby in Smalltalk was simple. because he had a strong theoretical base of object-oriented programming. There he is the center of the question.. the Paradigm..
Esteban Lorenzano and JJ Evangelista taught me seaside in 2 hours, And deployed the first application in 3 days :) Unfortunately, not many universities, and why not, business .. OOP is used,they only a mixture of classes with large procedural methods. Well, key success feature of Java, to introduce in the market was this.. you can do something programming.. prodecural old fashion.. May be, the to mass is make "Wrong" example and Step by Step..Driving back to learning the proper OOP programming. Introduce common element in the main stream example might be a way too. The tipical wizard to generata a CRUD from database ("puaj... i feel sick").. is a good think to make newby more confotable with the enviroment and language. Best. On Sat, Jan 29, 2011 at 12:28 PM, Schwab,Wilhelm K <[hidden email]> wrote: On the permanent noob front: I have years of experience as a beginning skier. I like it that way: no broken bones. Besides, I don't get to do it often enough to develop an attitude about it. |
In reply to this post by Stéphane Ducasse
Hello,
I will print this kind of memorandum and distribute it to the students and other computing guys that are disappointed. I feel good ;-) INRia's guys you probably have exciting discussions that permit such "way of life" (Pharo lifestyle). Herve On 29 janv. 2011, at 13:44, Stéphane Ducasse <[hidden email]> wrote: > Hi guys > > Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy > behind pharo: the idea that we systematically want to make the system better. > In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use > to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also > less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but > I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. > I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests > comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. > So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where > only skilled adventurers can make it through. > > Stef > |
In reply to this post by Diogenes Moreira
One can certainly write bad code in Smalltalk. Some of the ugliest procedural junk I have seen has been in the corners of Smalltalk images. I doubt it buys us anything to show how to use a "funny" language to write code that looks different and is no better than stuff written every day in other languages. However, to some extent, that's what Digitalk did in their tutorial that I like so much for newbies, so don't lose that idea too quickly. One could progress from there to more elegant code as the reader becomes able to absorb it. However, the reader comes to us wanting something different, or they go off doing something mainstream in the first place.
I found Smalltalk by reading (gasp<g>) about it. Something gave me the idea of using it to create GUIs and to manage data for my research, and to do the number crunching in C, and that's pretty much what I have been doing for a long time now. It was an interesting journey, but I knew there had to be a better way than doing everything in C or Pascal, and Smalltalk turned up. At the time, it was resource hungry and very expensive. Those things are now fixed. As far as a CRUD wizard, I don't see that as a bad thing. I really dislike relational databases, but they have their uses. I built something on one of them a couple of years ago, and it was the right call. Something that helps people do that when it's the right thing would be of great value. It could be presented along with SIXX and other mechanisms that most programmers seem to not even realize are so much as possible. Bill ________________________________________ From: [hidden email] [[hidden email]] On Behalf Of Diogenes Moreira [[hidden email]] Sent: Saturday, January 29, 2011 11:21 AM To: [hidden email] Subject: Re: [Pharo-project] Vision Well.. my experience as a newby in Smalltalk was simple. because he had a strong theoretical base of object-oriented programming. There he is the center of the question.. the Paradigm.. Esteban Lorenzano and JJ Evangelista taught me seaside in 2 hours, And deployed the first application in 3 days :) Unfortunately, not many universities, and why not, business .. OOP is used,they only a mixture of classes with large procedural methods. Well, key success feature of Java, to introduce in the market was this.. you can do something programming.. prodecural old fashion.. May be, the to mass is make "Wrong" example and Step by Step..Driving back to learning the proper OOP programming. Introduce common element in the main stream example might be a way too. The tipical wizard to generata a CRUD from database ("puaj... i feel sick").. is a good think to make newby more confotable with the enviroment and language. Best. On Sat, Jan 29, 2011 at 12:28 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: On the permanent noob front: I have years of experience as a beginning skier. I like it that way: no broken bones. Besides, I don't get to do it often enough to develop an attitude about it. As for Smalltalk in general, I have pointed new users to the Digitalk tutorials, telling them to stop when they reach the graphics, after which I started them into specific projects with lots of mentoring until they "got it." Visual Basic, PHP, Java, any # language except maybe S#, R (statistics), etc., all try to be easy to use. Hello world is a mere line or two, and teaches NOTHING. Understanding of Smalltalk comes a little slowly, but the rewards are immense (as you all know). Visual Basic has syntax for everything one might want to do; once dug out of documentation or a forum post, the trick of the day might not be useful for much else. Everything is easy: learning to do anything is a daunting task. The things to be learned about Smalltalk are comparatively few and invariably widely applicable; there are some specialized techniques (FFI, finalization), but very few tricks. Smalltalk is (mostly) consistent throughout, and its inconsistencies (Character, SmallInteger, #ifTrue:ifFalse:, MetaClass) are hidden fairly well and, with hindsight, make sense IMHO. Exception handling is new since Smalltalk 80, it is done wonderfully and fits with Smalltalk style. The newbie sees some "syntax" - we see #on:do: sent to a block, note the elegance, and get back to work. Traits are new and welcome. I am not saying that we can't extend the system; I think we should be careful about changing the language. Does Alan still have that piece of paper with the original specification? Pharo can use some work, of course. I am still overwhelmed when I begin to create a GUI for something, probably because I have written only two or three of them. I have some scraps of code that are learning toward an MVP framework. Just this past week, I encountered some communications code (non-graphical) that needed an aspect value adapter. I wrote a simple one, which is another piece of that puzzle. Things worth learning take effort. I doubt we can get around that. We can offer good tutorials, and where the tutorials look scruffy, make the code better. Bill ________________________________________ From: [hidden email]<mailto:[hidden email]> [[hidden email]<mailto:[hidden email]>] On Behalf Of Germán Arduino [[hidden email]<mailto:[hidden email]>] Sent: Saturday, January 29, 2011 9:29 AM To: [hidden email]<mailto:[hidden email]> Subject: Re: [Pharo-project] Vision I understand the sense of your words. And I agree with the need of a more easy to understand/extend system......I think that is a thing we need in these days, may be with some helper tools, I don't know, but I hear a lot of times people saying "No, I had a look to (put here Squeak/Pharo/Dolphin/other flavour) but was not able of develop anything". I know most of this sensation has to do with knowledgment about OO technology, but still if we can have a lower intro barrier, may be better for a lot of people (myself included of course.... in topics as .... Morphic :) ). Just my thoughts. Another forever newbie: Germán :) 2011/1/29 Stéphane Ducasse <[hidden email]<mailto:[hidden email]>>: > Hi guys > > Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy > behind pharo: the idea that we systematically want to make the system better. > In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use > to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also > less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but > I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. > I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests > comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. > So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where > only skilled adventurers can make it through. > > Stef > |
In reply to this post by Herve Verjus
> I will print this kind of memorandum and distribute it to the students and other computing guys that are disappointed. I feel good ;-)
> > INRia's guys you probably have exciting discussions that permit such "way of life" (Pharo lifestyle). Herve you lost me. ;) What I just wanted to say is that we want to build a cool system = nice, easy to use and robust. Stef >> Hi guys >> >> Some days ago we were chatting with igor and he made an interesting remark about a kind of hidden philosophy >> behind pharo: the idea that we systematically want to make the system better. >> In fact I realized that what we are doing is to make a system nice, robust and powerful so that everybody can use >> to realize their goals. But we want to have a system where not only smart guys can manage to do something with it but also >> less talented people like me (I know that some of you will say but stef you are good, I'm a newbie in a lot of domains but >> I learn fast if I can get a chance to avoid to bump on the walls). I want a system that let me learn from itself. >> I think that lot of things fall naturally in place from this vision (documentation, oo practices - not having car inheriting from wheel, tests >> comments, adequate abstractions, modularity). I want a system that everybody can nicely build his own software. >> So in short I want pharo to be like a nice garden with greenhouses for building new garden with tools versus a jungle where >> only skilled adventurers can make it through. >> >> Stef >> > > |
In reply to this post by Stéphane Ducasse
I DO like this Vision. I remember myself about 8 years ago trying to give my first steps in Smalltalk on my own. Despite I had solid OOP knowledge it took a while to understand that there was no "main" function. All my experience was with Java and C++ and I couldn't understand where was the entry point of my application if there were no main.
Of course, today things are totally different, there are many resources on the web but I think that we still can improve that, implementing improvements in the environment and generating more and better training resources.
Saludos! Nico. blog: nicopaez.wordpress.com
|
I think the main point that we are not making software for some
virtual users. We are making it for ourselves. For example - i was needed some level of guarantees from image when running in headless mode, so i can easily detect any problems and address them quickly. This lead me to implementing non-interactive ui manager stuff. So, now when image runs on Hudson server, any unexpected errors/behavior could be observed and fixed afterwards. -- Best regards, Igor Stasenko AKA sig. |
Free forum by Nabble | Edit this page |