Hello.
In this lecture I want to show you the vision behind Pharo.
Why are people taking part in Pharo?
This will help you to understand
where Pharo is going and why people use it.
The basic idea is to create
a tool, an infrastructure,
which will enable people to reinvent their future,
to use the web in new ways,
to create new tools, new forms of computation and so on...
For this, the notion of an engine is very important.
It means the infrastructure, the compiler, the services
and that sort of thing.
On a twin track, there's the idea of creating an ecosystem
in which innovation creates new things
to give us a competitive edge,
and in which business can bloom.
So how do we understand this metaphor of ecosystem?
Via the teachers. There are 30 universities around the world
which teach Pharo.
Via the research groups.
There are 15 or so research groups
doing software engineering, but not only that,
around the world.
And via the companies.
The basic idea of Pharo
is not to be an academic language,
but to be a language used by people in order to make money
and live off their programming.
You can see some success stories on the website.
Here's the address.
You can really see what people do with it.
I'm often surprised at what people do with Pharo.
It's not just cool because we say it is.
People do real stuff with it.
You have to realise that for the development team
Pharo is a vehicle.
We're the guys in black around the Formula 1 car.
We improve it every day.
Pharo isn't something finished,
it's something that's constantly being improved.
It's quite young for a programming language.
It began in 2008.
The more it advances, the more exciting its future looks.
I'll say a bit about that.
Most companies do web content now with Pharo
because the web stack is excellent.
We're going to use Seaside
in this course, but we can also use REST.
There are several HTTP servers that are used.
It's a company that developed Pharo the HTTP server.
There's the micro server Teapot.
You have the WebSockets and identifications.
Metadescription of data to avoid generating automatic forms.
Connections to databases, whether SQL or relational.
And loads of protocols. Some come out every day.
People make packages which cover these functions.
Pharo is open.
What this means is that you can help and have an impact,
but at least read and have access to Pharo.
One important thing
which people have trouble putting into concrete terms
is that Pharo is a system which enables you.
Here I'm showing you a quotation from an American
who changed a very fundamental aspect of Pharo:
the delay.
It's a function for adjusting the concurrency in the system.
He found that it couldn't be tested in isolation.
He suggested changes in Pharo
so these functions could be tested individually.
And his changes were incorporated into Pharo.
What's really interesting - I'll let you read the quotation -
is that he says he was really amazed
that he could simply think of doing it and do it.
And similarly, with this slide, Turtles all the way down,
meaning there are objects all the way down,
the creator of Seaside, who knew ruby, python, scheme, objective-C,
developed Seaside in Pharo's ancestor.
I asked him why he used Pharo. He said, "Because I could."
"I can manipulate the stack behind the programmers' backs
"and suggest an abstraction I couldn't in another language."
This empowering is really very interesting.
I want to talk about the mid-term vision of Pharo.
What will Pharo be in about 5 years?
The core will be bootstrapped.
Meaning we'll be able to reconstruct it from itself.
Which isn't possible at the moment.
We'll have a better integration with OSes and C.
We can imagine launching a Pharo app in any C application.
It'll be a more modular system with validated distributions.
If someone writes an XML parser, for example,
you'll want to know if it's passed all the tests,
if it functions in whatever version of Pharo,
if the non-regression rules are satisfied...
So really using software engineering to validate
what is made around the world,
so the people using Pharo can be assured of the level of quality.
There's an effort now to make tools more powerful than they presently are.
The idea is to have a system
that can adapt as well to a coffee machine
as to the cloud.
The Pharo development team is working on this sort of thing.
It'll soon be available for everyone.
So Pharo, with its aim to have an impact on real life
and involve companies,
has created an industrial consortium.
The idea is to promote Pharo,
to sustain its constant development,
to improve its visibility and provide support.
Here are some members of the Pharo consortium.
There are small companies but big ones too, like Lam Research and Thales.
And a lot of universities and research groups.