Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 6 participants
- 50351 messages
Re: [Pharo-users] [ann] pillar support in gtinspector
by Sven Van Caekenberghe
Beautiful work, great collaboration, inspiring !
On 07 Sep 2014, at 15:41, Tudor Girba <tudor(a)tudorgirba.com> wrote:
> Hi,
>
> Documentation is important. To make it more likely and more enjoyable for people to write more of it, I teamed up with Andrei and Jan to build up support for Pillar in the GTInspector.
>
> The current solution brings the following:
> - Pillar specific syntax highlighting including Shout highlighting for code snippets
> - Embedded files validation and preview possibility
> - Quick browsing of Pillar book projects when inspecting the book folder
> - Class comment rendering using Pillar syntax when inspecting the class object
> - Text editor support for custom highlighting in Glamour (using Rubric for now)
> - Island parsing for quick specification of incomplete parser
>
> You can learn more about it here:
> http://www.humane-assessment.com/blog/writing-pillar-books-with-the-gtinspe…
>
> <pillar-book-picture.png>
>
> There is much more to do in this direction, and I would be happy to inspire some of you to join forces. Please let us know what you think.
>
> Cheers,
> Doru
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by kilon alios
A Python bridge is what I am working on with my project Ephestos, using a
socket server / client relationship between Pharo and Python. So far it
has been going quite well and is already usable for calling python
libraries etc. It seems to work very well even for more complex python
code, like class definition , function definitions etc. I use it to
communicate with and control Blender. The same concept could well apply to
any other languages Its definitely a project I am very interested so
Python libraries are coming to Pharo sooner or later. Probably sooner ;)
On Sun, Sep 7, 2014 at 9:34 PM, Offray Vladimir Luna Cárdenas <
offray(a)riseup.net> wrote:
> Hi,
>
> Really nice to see this talks here. My two cents would be around
> supporting a model that can grow with the user and trying to create a
> connected experience. I have been previously teaching Introduction to
> Informatics to young (17-21 years old) newbies and they include
> introductory programming. For that I have taught with Scheme, Python,
> Scratch/Etoys/Bots Inc and recently I been creating some data narratives on
> health with IPython. From this two experience (newbies teaching and data
> narratives) separated like ten years between them, I think that the idea of
> a continuous environment one that not only is connected across time
> (supporting your learning in time) but also in space, connecting several
> ways of programming and other environments. The idea of programming as a
> kind of literacy has point me to visual data narratives as a practical way
> to build this two axes continuum, of course, video games and (web) app
> building are others, but I think they're more specialized.
>
> I think that Pharo now with Roassal and Moose can be vehicles for this
> visual data narratives, with the advantage that once you learn the language
> to tell this stories, you can also change the tools for build/express your
> understanding of the world, making use of the turtles all the way down
> metaphor, but for that we need exploring the say that Pharo can play better
> with others (for example pharo/python bridges).
>
> Cheers,
>
> Offray
>
>
>
> On 09/07/2014 05:29 AM, kilon alios wrote:
>
>> Python has no competition. Sure there are languages that are more popular
>> than
>> Python for their own reasons. There have been simpler languages before
>> python,
>> there have been more popular languages, more cross platform languages etc
>> etc
>> but Python fills a gap that no language was able to fill before it , easy
>> to use
>> very powerful well documented libraries. Python is a language that you
>> can teach
>> to a kid now and make a living later on using until his or her old age.
>> Its not
>> because the language is simple , its simple enough but not the simplest.
>> Its
>> because the culture surrounding the creation of libraries . That culture
>> has a
>> name its called "pythonic"
>>
>> Beautiful is better than ugly.
>> Explicit is better than implicit.
>> Simple is better than complex.
>> Complex is better than complicated.
>> Flat is better than nested.
>> Sparse is better than dense.
>> Readability counts.
>> Special cases aren't special enough to break the rules.
>> Although practicality beats purity.
>> Errors should never pass silently.
>> Unless explicitly silenced.
>> In the face of ambiguity, refuse the temptation to guess.
>> There should be one-- and preferably only one --obvious way to do
>> it.
>> Although that way may not be obvious at first unless you're Dutch.
>> Now is better than never.
>> Although never is often better than *right* now.
>> If the implementation is hard to explain, it's a bad idea.
>> If the implementation is easy to explain, it may be a good idea.
>> Namespaces are one honking great idea -- let's do more of those!
>>
>>
>> this kind of ideology is why Python has been so successful. It has also
>> inspired jokes like this
>>
>>
>> http://xkcd.com/353/
>>
>> it may look funny and it says thinks about overestimating the simplicity
>> of those libraries but python does feel at times as simple as this, as
>> simple as importing antigravity.
>>
>> So if a kid comes to me and ask me "what language should I learn" , I
>> will recommend a language that is fairly easy to learn , has powerful
>> library , easy to use libraries , well documented and its a language that
>> will able to keep using even if his or her needs change, forever. For that
>> only Python is the language that has been able to succeed and I think its
>> adoption will continue to progress in educational institutions pretty much
>> everywhere on the planet.
>>
>>
>> Referring to the rest of your post I dont agree that we need to separate
>> Data from Code, I think quite opossite that a kid needs to be taught why
>> Code and Data are one and what that means in practice. I also don't agree
>> that OO or functional programming or any other programming paradigm I am
>> aware of are the future. They are simple solutions for simpler times. The
>> coding community at large the way I see it is in denial hoping to apply
>> simple recipes to solve complex problems. We need very complex solutions to
>> very complex problems , we need tools that can interact with the user in
>> many diffirent ways.
>>
>> Pharo is definitely showing the future, the close integration of IDE ,
>> language and environment. But thats is just the start, the next step is
>> powerful tools that can deeply interact with code and solve automagically
>> logical coding problems. Obviously all that has to be wrapped to an easy
>> enough interface for the user even if the solutions is very complex.
>>
>> Fortunately this where the rest of the coding world is heading. For
>> example iPython is one of the most popular python projects right and it
>> offers a highly interactive environment for python coders that shares a lot
>> of similarities with Pharo though the implementation is very different.
>>
>> So the future is no longer languages , is no longer IDEs , its not even
>> environments but tools that are produced in these environments that can
>> vastly automate coding and hide the increasing complexity of coding
>> solutions. Maybe one day a child will be able to describe to a computer
>> what kind of software he or she needs and the computer automatically
>> generate the code for it. That day is not close enough but is where we are
>> heading.
>>
>>
>>
>> On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <trygver(a)ifi.uio.no
>> <mailto:trygver@ifi.uio.no>> wrote:
>>
>> I have for some time been pondering two problems. One is to
>> identify the
>> fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming.
>> There
>> are many contenders for the kids' first step. I believe the English
>> government has chosen Phyton as a first language. Scratch has a
>> certain
>> popularity, there are many others. My concern is "what comes next"?
>> I want
>> the kid to gradually build a mental model of what computing is all
>> about.
>> Learn a little, do a little, lean more, do more, etc. up do old age.
>> This
>> goes much deeper than any programming language. It's a bit as
>> learning to
>> read. Personally, I "broke the reading code"at an early age. Since
>> then, I
>> have been learning more and more. What I read today would have been
>> incomprehensible to me 75 years ago. But my basic mental model of
>> what
>> reading is all about has remained unchanged. I have never had to
>> unlearn
>> anything.
>>
>> I suggest that true object orientation (not class orientation) can
>> form the
>> foundation for the human mental model of computing. Internalize it
>> and live
>> with it forever.
>> -------------------------------------
>> The other problem is to find a better example for DCI presentations.
>> It should
>>
>> 1. Be executable and have a cool demo effect.
>> 2. Its domain model should be obvious from the demo.
>> 3. It should have very few and very simple Data classes.
>> 4. It should have a Context that is clearly and obviously
>> separate
>> from the Data.
>> 5. It should scale to any number of Contexts (use cases)
>> without
>> changing the Data classes.
>>
>> -----------------------------------------
>> /Last night I got an idea for an example: A waltzing couple. (See the
>> attached for a picture and Wikipedia for a movie of the use case)./
>>
>> The program needs one simple class for a moveable shape and a DCI
>> Context
>> for each dance (waltz, foxtrot, tango, ... for two role, polonaise
>> for
>> more.) The example will clearly demonstrate the wisdom in
>> separating what
>> the system IS from what the system DOES since the simple Shape class
>> would
>> be overloaded with instance methods for all dances.
>>
>> What do you think?
>>
>> --Trygve
>>
>>
>>
>> --
>>
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:
>> trygver(a)ifi.uio.no>
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> N-0378 Oslo http://fullOO.info
>> Norway Tel: (+47) 22 49 57 27
>> <tel:%28%2B47%29%2022%2049%2057%2027>
>>
>>
>>
>
>
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by Offray Vladimir Luna Cárdenas
Hi,
Really nice to see this talks here. My two cents would be around
supporting a model that can grow with the user and trying to create a
connected experience. I have been previously teaching Introduction to
Informatics to young (17-21 years old) newbies and they include
introductory programming. For that I have taught with Scheme, Python,
Scratch/Etoys/Bots Inc and recently I been creating some data narratives
on health with IPython. From this two experience (newbies teaching and
data narratives) separated like ten years between them, I think that the
idea of a continuous environment one that not only is connected across
time (supporting your learning in time) but also in space, connecting
several ways of programming and other environments. The idea of
programming as a kind of literacy has point me to visual data narratives
as a practical way to build this two axes continuum, of course, video
games and (web) app building are others, but I think they're more
specialized.
I think that Pharo now with Roassal and Moose can be vehicles for this
visual data narratives, with the advantage that once you learn the
language to tell this stories, you can also change the tools for
build/express your understanding of the world, making use of the turtles
all the way down metaphor, but for that we need exploring the say that
Pharo can play better with others (for example pharo/python bridges).
Cheers,
Offray
On 09/07/2014 05:29 AM, kilon alios wrote:
> Python has no competition. Sure there are languages that are more popular than
> Python for their own reasons. There have been simpler languages before python,
> there have been more popular languages, more cross platform languages etc etc
> but Python fills a gap that no language was able to fill before it , easy to use
> very powerful well documented libraries. Python is a language that you can teach
> to a kid now and make a living later on using until his or her old age. Its not
> because the language is simple , its simple enough but not the simplest. Its
> because the culture surrounding the creation of libraries . That culture has a
> name its called "pythonic"
>
> Beautiful is better than ugly.
> Explicit is better than implicit.
> Simple is better than complex.
> Complex is better than complicated.
> Flat is better than nested.
> Sparse is better than dense.
> Readability counts.
> Special cases aren't special enough to break the rules.
> Although practicality beats purity.
> Errors should never pass silently.
> Unless explicitly silenced.
> In the face of ambiguity, refuse the temptation to guess.
> There should be one-- and preferably only one --obvious way to do it.
> Although that way may not be obvious at first unless you're Dutch.
> Now is better than never.
> Although never is often better than *right* now.
> If the implementation is hard to explain, it's a bad idea.
> If the implementation is easy to explain, it may be a good idea.
> Namespaces are one honking great idea -- let's do more of those!
>
>
> this kind of ideology is why Python has been so successful. It has also inspired jokes like this
>
>
> http://xkcd.com/353/
>
> it may look funny and it says thinks about overestimating the simplicity of those libraries but python does feel at times as simple as this, as simple as importing antigravity.
>
> So if a kid comes to me and ask me "what language should I learn" , I will recommend a language that is fairly easy to learn , has powerful library , easy to use libraries , well documented and its a language that will able to keep using even if his or her needs change, forever. For that only Python is the language that has been able to succeed and I think its adoption will continue to progress in educational institutions pretty much everywhere on the planet.
>
>
> Referring to the rest of your post I dont agree that we need to separate Data from Code, I think quite opossite that a kid needs to be taught why Code and Data are one and what that means in practice. I also don't agree that OO or functional programming or any other programming paradigm I am aware of are the future. They are simple solutions for simpler times. The coding community at large the way I see it is in denial hoping to apply simple recipes to solve complex problems. We need very complex solutions to very complex problems , we need tools that can interact with the user in many diffirent ways.
>
> Pharo is definitely showing the future, the close integration of IDE , language and environment. But thats is just the start, the next step is powerful tools that can deeply interact with code and solve automagically logical coding problems. Obviously all that has to be wrapped to an easy enough interface for the user even if the solutions is very complex.
>
> Fortunately this where the rest of the coding world is heading. For example iPython is one of the most popular python projects right and it offers a highly interactive environment for python coders that shares a lot of similarities with Pharo though the implementation is very different.
>
> So the future is no longer languages , is no longer IDEs , its not even environments but tools that are produced in these environments that can vastly automate coding and hide the increasing complexity of coding solutions. Maybe one day a child will be able to describe to a computer what kind of software he or she needs and the computer automatically generate the code for it. That day is not close enough but is where we are heading.
>
>
>
> On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <trygver(a)ifi.uio.no
> <mailto:trygver@ifi.uio.no>> wrote:
>
> I have for some time been pondering two problems. One is to identify the
> fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming. There
> are many contenders for the kids' first step. I believe the English
> government has chosen Phyton as a first language. Scratch has a certain
> popularity, there are many others. My concern is "what comes next"? I want
> the kid to gradually build a mental model of what computing is all about.
> Learn a little, do a little, lean more, do more, etc. up do old age. This
> goes much deeper than any programming language. It's a bit as learning to
> read. Personally, I "broke the reading code"at an early age. Since then, I
> have been learning more and more. What I read today would have been
> incomprehensible to me 75 years ago. But my basic mental model of what
> reading is all about has remained unchanged. I have never had to unlearn
> anything.
>
> I suggest that true object orientation (not class orientation) can form the
> foundation for the human mental model of computing. Internalize it and live
> with it forever.
> -------------------------------------
> The other problem is to find a better example for DCI presentations. It should
>
> 1. Be executable and have a cool demo effect.
> 2. Its domain model should be obvious from the demo.
> 3. It should have very few and very simple Data classes.
> 4. It should have a Context that is clearly and obviously separate
> from the Data.
> 5. It should scale to any number of Contexts (use cases) without
> changing the Data classes.
>
> -----------------------------------------
> /Last night I got an idea for an example: A waltzing couple. (See the
> attached for a picture and Wikipedia for a movie of the use case)./
>
> The program needs one simple class for a moveable shape and a DCI Context
> for each dance (waltz, foxtrot, tango, ... for two role, polonaise for
> more.) The example will clearly demonstrate the wisdom in separating what
> the system IS from what the system DOES since the simple Shape class would
> be overloaded with instance methods for all dances.
>
> What do you think?
>
> --Trygve
>
>
>
> --
>
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:trygver@ifi.uio.no>
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway Tel: (+47) 22 49 57 27
> <tel:%28%2B47%29%2022%2049%2057%2027>
>
>
Sept. 7, 2014
Re: [Pharo-users] Gettext with pharo 3 and seaside 3.1.2
by stepharo
On 7/9/14 15:32, Peter Schorsch wrote:
> Hi,
>
> Just started with pharo and seaside.
Welcome!
> Now I want to write an example
> seaside-application but with a multi lingual interface. So I installed
> pharo3 and then seaside via configuration browser.
>
> But then I had to realize that the seaside-gettext package was not
> installed; and also no gettext package. I found a gettext package in
> the repository http://smalltalkhub.com/mc/PharoExtras/Gettext.
>
> I installed the package ConfigurationOfGettext, but the
> configuraitonof-browser does not show it.
The configuration browser only shows the configurations that are
published in a given repository.
> So I installed the package
> Gettext via monticello.
I think that people will reply to you. I know that there was a conflict
between one class in the getText and one in Pharo30.
> Then I found the seaside-gettext packages in the repository
> http://smalltalkhub.com/mc/Seaside/Seaside30Addons and installed via
> monticello the packages Seaside-Gettext-Core and
> Seaside-Gettext-Examples.
>
> Then I open a webbrowser to watch the gettext example. But there I only
> see:
>
> fontsize
>
> * locale
> * locale
> * locale
> * locale
> * locale
>
> That looks for me like gettext is not working with pharo3 and seaside
> 3.1.2
>
> Any help is welcome - best a mini howto for gettext with pharo3 and
> seaside 3.1.2
>
> Thanks in advance
>
>
Sept. 7, 2014
Re: [Pharo-users] Gettext with pharo 3 and seaside 3.1.2
by Ben Coman
I don't know anything about Seaside or Gettext packages, however I
notice one thing (below)...
Peter Schorsch wrote:
> Hi,
>
> Just started with pharo and seaside. Now I want to write an example
> seaside-application but with a multi lingual interface. So I installed
> pharo3 and then seaside via configuration browser.
>
> But then I had to realize that the seaside-gettext package was not
> installed; and also no gettext package. I found a gettext package in
> the repository http://smalltalkhub.com/mc/PharoExtras/Gettext.
>
> I installed the package ConfigurationOfGettext, but the
> configuraitonof-browser does not show it.
The Pharo 3 Configuration Browser only looks at one repository...
http://smalltalkhub.com/#!/~Pharo/MetaRepoForPharo30
That repository is open for anyone to drop in a Configuration that works
for Pharo 3. There is a goal that some CI process will validate these
Configurations, but its not there yet.
However what you tried to do makes A LOT of cognitive sense. I'd never
thought of it that way, but it might be good if Configuration Browser
picked up Configurations manually loaded into the Image.
cheers -ben
> So I installed the package
> Gettext via monticello.
>
> Then I found the seaside-gettext packages in the repository
> http://smalltalkhub.com/mc/Seaside/Seaside30Addons and installed via
> monticello the packages Seaside-Gettext-Core and
> Seaside-Gettext-Examples.
>
> Then I open a webbrowser to watch the gettext example. But there I only
> see:
>
> fontsize
>
> * locale
> * locale
> * locale
> * locale
> * locale
>
> That looks for me like gettext is not working with pharo3 and seaside
> 3.1.2
>
> Any help is welcome - best a mini howto for gettext with pharo3 and
> seaside 3.1.2
>
> Thanks in advance
>
>
>
Sept. 7, 2014
[ann] pillar support in gtinspector
by Tudor Girba
Hi,
Documentation is important. To make it more likely and more enjoyable for
people to write more of it, I teamed up with Andrei and Jan to build up
support for Pillar in the GTInspector.
The current solution brings the following:
- Pillar specific syntax highlighting including Shout highlighting for code
snippets
- Embedded files validation and preview possibility
- Quick browsing of Pillar book projects when inspecting the book folder
- Class comment rendering using Pillar syntax when inspecting the class
object
- Text editor support for custom highlighting in Glamour (using Rubric for
now)
- Island parsing for quick specification of incomplete parser
You can learn more about it here:
http://www.humane-assessment.com/blog/writing-pillar-books-with-the-gtinspe…
[image: Inline image 1]
There is much more to do in this direction, and I would be happy to inspire
some of you to join forces. Please let us know what you think.
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
Sept. 7, 2014
Gettext with pharo 3 and seaside 3.1.2
by Peter Schorsch
Hi,
Just started with pharo and seaside. Now I want to write an example
seaside-application but with a multi lingual interface. So I installed
pharo3 and then seaside via configuration browser.
But then I had to realize that the seaside-gettext package was not
installed; and also no gettext package. I found a gettext package in
the repository http://smalltalkhub.com/mc/PharoExtras/Gettext.
I installed the package ConfigurationOfGettext, but the
configuraitonof-browser does not show it. So I installed the package
Gettext via monticello.
Then I found the seaside-gettext packages in the repository
http://smalltalkhub.com/mc/Seaside/Seaside30Addons and installed via
monticello the packages Seaside-Gettext-Core and
Seaside-Gettext-Examples.
Then I open a webbrowser to watch the gettext example. But there I only
see:
fontsize
* locale
* locale
* locale
* locale
* locale
That looks for me like gettext is not working with pharo3 and seaside
3.1.2
Any help is welcome - best a mini howto for gettext with pharo3 and
seaside 3.1.2
Thanks in advance
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by Alain Busser
Strangely, I am preparing a Python session for pupils who are supposed ti
know almost nothing about programming; and I finally came up with the
turtle module! I realized that
*COBOL has been invented so that people who work in banks and do not know
how to program, can program
*Basic was supposed to be usable by beginners (hence the "b" letter); which
imho is false
*LOGO has been invented so that such silly creatures as robots could
program; and of course children could program in LOGO (and even, as I read,
tech programmation at the age of 4)
*Smalltalk has been created to cope with the mice and windows, but thinking
about programmation for children (hence, Etoys and Scratch)
*In France there was a thing called "LSE" which was supposed to help
writing the program in a language neighboring French language. No one
remembers that, but there were other experiments like "execalgo" or
"algobox" (not mentionning MathsOntologie ;-))
Seeing that, I realize that a programming tool especially made for children
is not really a new idea, but Python is cool for that. In France too Python
is heavily used, especially for students. What surprises me is that the
English government choose Python for *children* instead of, say, Scratch. I
would not use xMaxima to teach fractions just because xMaxima is able to
compute integrals!
To conclude, for me, Phratch on Android is the future in that domain ;-)
Alain
On Sun, Sep 7, 2014 at 2:29 PM, kilon alios <kilon.alios(a)gmail.com> wrote:
> Python has no competition. Sure there are languages that are more popular
> than Python for their own reasons. There have been simpler languages before
> python, there have been more popular languages, more cross platform
> languages etc etc but Python fills a gap that no language was able to fill
> before it , easy to use very powerful well documented libraries. Python is
> a language that you can teach to a kid now and make a living later on using
> until his or her old age. Its not because the language is simple , its
> simple enough but not the simplest. Its because the culture surrounding the
> creation of libraries . That culture has a name its called "pythonic"
>
> Beautiful is better than ugly.
> Explicit is better than implicit.
> Simple is better than complex.
> Complex is better than complicated.
> Flat is better than nested.
> Sparse is better than dense.
> Readability counts.
> Special cases aren't special enough to break the rules.
> Although practicality beats purity.
> Errors should never pass silently.
> Unless explicitly silenced.
> In the face of ambiguity, refuse the temptation to guess.
> There should be one-- and preferably only one --obvious way to do it.
> Although that way may not be obvious at first unless you're Dutch.
> Now is better than never.
> Although never is often better than *right* now.
> If the implementation is hard to explain, it's a bad idea.
> If the implementation is easy to explain, it may be a good idea.
> Namespaces are one honking great idea -- let's do more of those!
>
>
> this kind of ideology is why Python has been so successful. It has also inspired jokes like this
>
>
> http://xkcd.com/353/
>
> it may look funny and it says thinks about overestimating the simplicity of those libraries but python does feel at times as simple as this, as simple as importing antigravity.
>
> So if a kid comes to me and ask me "what language should I learn" , I will recommend a language that is fairly easy to learn , has powerful library , easy to use libraries , well documented and its a language that will able to keep using even if his or her needs change, forever. For that only Python is the language that has been able to succeed and I think its adoption will continue to progress in educational institutions pretty much everywhere on the planet.
>
>
> Referring to the rest of your post I dont agree that we need to separate Data from Code, I think quite opossite that a kid needs to be taught why Code and Data are one and what that means in practice. I also don't agree that OO or functional programming or any other programming paradigm I am aware of are the future. They are simple solutions for simpler times. The coding community at large the way I see it is in denial hoping to apply simple recipes to solve complex problems. We need very complex solutions to very complex problems , we need tools that can interact with the user in many diffirent ways.
>
> Pharo is definitely showing the future, the close integration of IDE , language and environment. But thats is just the start, the next step is powerful tools that can deeply interact with code and solve automagically logical coding problems. Obviously all that has to be wrapped to an easy enough interface for the user even if the solutions is very complex.
>
> Fortunately this where the rest of the coding world is heading. For example iPython is one of the most popular python projects right and it offers a highly interactive environment for python coders that shares a lot of similarities with Pharo though the implementation is very different.
>
> So the future is no longer languages , is no longer IDEs , its not even environments but tools that are produced in these environments that can vastly automate coding and hide the increasing complexity of coding solutions. Maybe one day a child will be able to describe to a computer what kind of software he or she needs and the computer automatically generate the code for it. That day is not close enough but is where we are heading.
>
>
>
> On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <trygver(a)ifi.uio.no>
> wrote:
>
>> I have for some time been pondering two problems. One is to identify
>> the fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming.
>> There are many contenders for the kids' first step. I believe the English
>> government has chosen Phyton as a first language. Scratch has a certain
>> popularity, there are many others. My concern is "what comes next"? I want
>> the kid to gradually build a mental model of what computing is all about.
>> Learn a little, do a little, lean more, do more, etc. up do old age. This
>> goes much deeper than any programming language. It's a bit as learning to
>> read. Personally, I "broke the reading code"at an early age. Since then, I
>> have been learning more and more. What I read today would have been
>> incomprehensible to me 75 years ago. But my basic mental model of what
>> reading is all about has remained unchanged. I have never had to unlearn
>> anything.
>>
>> I suggest that true object orientation (not class orientation) can form
>> the foundation for the human mental model of computing. Internalize it and
>> live with it forever.
>> -------------------------------------
>> The other problem is to find a better example for DCI presentations. It
>> should
>>
>> 1. Be executable and have a cool demo effect.
>> 2. Its domain model should be obvious from the demo.
>> 3. It should have very few and very simple Data classes.
>> 4. It should have a Context that is clearly and obviously
>> separate from the Data.
>> 5. It should scale to any number of Contexts (use cases) without
>> changing the Data classes.
>>
>> -----------------------------------------
>> *Last night I got an idea for an example: A waltzing couple. (See the
>> attached for a picture and Wikipedia for a movie of the use case).*
>>
>> The program needs one simple class for a moveable shape and a DCI Context
>> for each dance (waltz, foxtrot, tango, ... for two role, polonaise for
>> more.) The example will clearly demonstrate the wisdom in separating what
>> the system IS from what the system DOES since the simple Shape class would
>> be overloaded with instance methods for all dances.
>>
>> What do you think?
>>
>> --Trygve
>>
>>
>>
>> --
>>
>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no
>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>> N-0378 Oslo http://fullOO.info
>> Norway Tel: (+47) 22 49 57 27
>>
>
>
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by kilon alios
Python has no competition. Sure there are languages that are more popular
than Python for their own reasons. There have been simpler languages before
python, there have been more popular languages, more cross platform
languages etc etc but Python fills a gap that no language was able to fill
before it , easy to use very powerful well documented libraries. Python is
a language that you can teach to a kid now and make a living later on using
until his or her old age. Its not because the language is simple , its
simple enough but not the simplest. Its because the culture surrounding the
creation of libraries . That culture has a name its called "pythonic"
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
this kind of ideology is why Python has been so successful. It has
also inspired jokes like this
http://xkcd.com/353/
it may look funny and it says thinks about overestimating the
simplicity of those libraries but python does feel at times as simple
as this, as simple as importing antigravity.
So if a kid comes to me and ask me "what language should I learn" , I
will recommend a language that is fairly easy to learn , has powerful
library , easy to use libraries , well documented and its a language
that will able to keep using even if his or her needs change, forever.
For that only Python is the language that has been able to succeed and
I think its adoption will continue to progress in educational
institutions pretty much everywhere on the planet.
Referring to the rest of your post I dont agree that we need to
separate Data from Code, I think quite opossite that a kid needs to be
taught why Code and Data are one and what that means in practice. I
also don't agree that OO or functional programming or any other
programming paradigm I am aware of are the future. They are simple
solutions for simpler times. The coding community at large the way I
see it is in denial hoping to apply simple recipes to solve complex
problems. We need very complex solutions to very complex problems , we
need tools that can interact with the user in many diffirent ways.
Pharo is definitely showing the future, the close integration of IDE ,
language and environment. But thats is just the start, the next step
is powerful tools that can deeply interact with code and solve
automagically logical coding problems. Obviously all that has to be
wrapped to an easy enough interface for the user even if the solutions
is very complex.
Fortunately this where the rest of the coding world is heading. For
example iPython is one of the most popular python projects right and
it offers a highly interactive environment for python coders that
shares a lot of similarities with Pharo though the implementation is
very different.
So the future is no longer languages , is no longer IDEs , its not
even environments but tools that are produced in these environments
that can vastly automate coding and hide the increasing complexity of
coding solutions. Maybe one day a child will be able to describe to a
computer what kind of software he or she needs and the computer
automatically generate the code for it. That day is not close enough
but is where we are heading.
On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <trygver(a)ifi.uio.no>
wrote:
> I have for some time been pondering two problems. One is to identify the
> fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming. There
> are many contenders for the kids' first step. I believe the English
> government has chosen Phyton as a first language. Scratch has a certain
> popularity, there are many others. My concern is "what comes next"? I want
> the kid to gradually build a mental model of what computing is all about.
> Learn a little, do a little, lean more, do more, etc. up do old age. This
> goes much deeper than any programming language. It's a bit as learning to
> read. Personally, I "broke the reading code"at an early age. Since then, I
> have been learning more and more. What I read today would have been
> incomprehensible to me 75 years ago. But my basic mental model of what
> reading is all about has remained unchanged. I have never had to unlearn
> anything.
>
> I suggest that true object orientation (not class orientation) can form
> the foundation for the human mental model of computing. Internalize it and
> live with it forever.
> -------------------------------------
> The other problem is to find a better example for DCI presentations. It
> should
>
> 1. Be executable and have a cool demo effect.
> 2. Its domain model should be obvious from the demo.
> 3. It should have very few and very simple Data classes.
> 4. It should have a Context that is clearly and obviously separate
> from the Data.
> 5. It should scale to any number of Contexts (use cases) without
> changing the Data classes.
>
> -----------------------------------------
> *Last night I got an idea for an example: A waltzing couple. (See the
> attached for a picture and Wikipedia for a movie of the use case).*
>
> The program needs one simple class for a moveable shape and a DCI Context
> for each dance (waltz, foxtrot, tango, ... for two role, polonaise for
> more.) The example will clearly demonstrate the wisdom in separating what
> the system IS from what the system DOES since the simple Shape class would
> be overloaded with instance methods for all dances.
>
> What do you think?
>
> --Trygve
>
>
>
> --
>
> Trygve Reenskaug mailto: trygver(a)ifi.uio.no
> Morgedalsvn. 5A http://folk.uio.no/trygver/
> N-0378 Oslo http://fullOO.info
> Norway Tel: (+47) 22 49 57 27
>
Sept. 7, 2014