Discussion:
[Pharo-project] Popularity of Smalltalk in Software Industry
sourav roy
2011-05-05 05:38:28 UTC
Permalink
Hi All,I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEADlanguage for the industry. I may be wrong but i need some clarification about it. I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of one if he/she is into Smalltalk development.Looking for some positive note so that it may give me some entho for working with Smalltalk. Thanks&Regards, Sourav RoyGet Yourself a cool, short @in.com Email ID now!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/32d2d956/attachment.html>
Noury Bouraqadi
2011-05-05 06:32:02 UTC
Permalink
HI Sourav,

Smalltalk is unfortunately not main stream, one reason is that there were no free version until the end of the 90's.
Still there are companies using it some of them since the 80's and doing only Smalltalk.
You can find a list here :
http://www.esug.org/wiki/pier/Smaltalk/Companies

You can meet some of them at Smalltalk events such as the ESUG yearly conference (the 19th edition will take place next august in UK), Smalltalks conf in argentina (fall) or Smalltalk Solution in the US (last march). At such conferences, one can see the energy of the community and all great innovations that are made possible by using Smalltalk.

You can have a list of Smalltalk success stories in business on sites such as :
-http://www.pharo-project.org/about/success-stories
-http://www.stic.st/successes/ (STIC is the Smalltalk Industry Council).

Best,
Noury
http://car.mines-douai.fr/noury
--
-6th National Conference on
?Control Architecture of Robots?
24-25 may 2011, Grenoble area, France
http://car2011.inrialpes.fr/

-19th ESUG International Smalltalk Conference
22-26 August 2011, Edinburgh, UK
http://www.esug.org/Conferences/2011
On 5 mai 2011, at 07:38, sourav roy wrote:

>
> Hi All,
>
> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>
> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>
> language for the industry. I may be wrong but i need some clarification about it.
>
>
> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>
> one if he/she is into Smalltalk development.
>
> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>
> Thanks&Regards,
>
> Sourav Roy
>
>
>
> Get Yourself a cool, short @in.com Email ID now!
Casimiro de Almeida Barreto
2011-05-05 19:25:52 UTC
Permalink
Good evening Roy.

One thing that always amazes me a lot is that so many experienced
solution providers (ie. people who develop solutions either to be sold
as OTSCS or embedded as a more or less autonomous part of a bigger
system) mind about if something is "mainstream" or something else.

For several reasons extensively discussed in this forum, smalltalk
didn't "hit the market" like java did. It has nothing to do regarding to
smalltalk qualities or lack of them. It has to do with good marketing
vs. bad marketing, shorter learning curve for things like java and the
fact that java was more apt to be used in personal computers of the
1990ies. Besides that, large part of smalltalk community at that time
had the "king inside their bellies" and that just made the technology
less attractive to outsiders (look: 1990ies language wars).

Smalltalk is a really nice technology supporting fast development of
complex (and performative) solutions and demanding much smaller teams to
do so. It has evident advantages in the fields of code testing,
profiling, maintenance and reuse. Most common families of smalltalk like
pharo/squeak/Cincom VW/ are cross platform (Windows, Linux, OS X, iOS).
Important families of smalltalk are open source (pharo, squeak, gnu
smalltalk and dedicated derivatives like OpenCobalt).

Smalltak is far from dead. If you investigate you'll see that pharo (for
instance) is supported by important universities (listed among 100 best
universities in world). In recent years we have witnessed amazing things
in smalltalk world. For reasons that can be summarized as immature
product adoption in the 1990ies and ugly commercial practices by
suppliers, smalltalk is not as popular as java or python. IMHO time will
correct this situation.

Now, if you want to deploy solutions you have no reason to fear
smalltalk except by the fact that it's highly addictive: you start
producing and do it fast and clean and just don't want to stop... but,
like any d-dealer would say: "don't trust me, you just have to try it...
just once... and look: first time is for free !!!" Ok, enough kidding:
if you want to deploy solutions you'll see that for the same investment
(time & material resources) you do more with smalltalk. You'll loose
much less time debugging things, documenting things, figuring out what
other people did before... you'll spend much less money in debuggers,
profilers, testers, etc... You'll see that reusing and integrating
things is just pleasant. And you'll be amazed by performance.

That are my 2?

CdAB
Toon Verwaest
2011-05-05 07:58:54 UTC
Permalink
Hi,

I can tell you that independent of how the industry might perceive the
language Smalltalk, learning Smalltalk will make you personally a better
software engineer. And this is what the industry does want. You will
look at programming from a new angle and this will give you an edge.

This is also true for learning other old languages like Scheme or Lisp.
As long as you stay within your Java / .NET bubble you will be one in a
billion. If you learn Smalltalk, the fact you know something that other
people might not makes you more special. The only negative part of
learning Smalltalk while working on other types of applications is that
you will eat your shoe 95% of the time hating that Java / .NET aren't
more evolved and flexible :)

As it seems that you are already working on a project revolving around
Smalltalk, be very happy that you are getting the opportunity to learn
it; you'll come out for the better.

Lastly, don't care too much about popularity within industry. If you
take the time to learn the systems for yourself you will probably learn
to understand the differences yourself. You are currently also part of
industry and obviously don't know Smalltalk well yet; how informed was
your decision to not know Smalltalk? You are part of "the industry"
making other people not choose Smalltalk based on your (non-)choice of
not using Smalltalk; if they would all think this way! Sheep won't
change anything :)

cheers,
Toon

On 05/05/2011 07:38 AM, sourav roy wrote:
>
>
> Hi All,
>
> I have just started my career in Software/IT industry and got into a
> project which involes enhancement/maintainance of product built in
> Smalltalk.
>
> I was never exposed to this language before and have no idea if it is
> used in the Industry as popularly as JAVA and .NET and looks like its
> a DEAD
>
> language for the industry. I may be wrong but i need some
> clarification about it.
>
>
> I just want to know that why smalltalk is not so popular as the other
> OOPs Languages and what is the future prospect of
>
> one if he/she is into Smalltalk development.
>
> Looking for some positive note so that it may give me some entho for
> working with Smalltalk.
>
> Thanks&Regards,
>
> Sourav Roy
>
>
>
> Get Yourself a cool, short *@in.com* Email ID now!
> <http://mail.in.com/mails/new_reg.php?utm_source=invite&utm_medium=outgoing>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/0dc86c69/attachment.html>
Sven Van Caekenberghe
2011-05-05 08:07:19 UTC
Permalink
On 05 May 2011, at 09:58, Toon Verwaest wrote:

> Hi,
>
> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>
> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>
> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>
> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>
> cheers,
> Toon

Very well written, Toon!

And like you say, there is a danger: Smalltalk is the Red Pill, once you know it and get it, you will never want to go back.

You have been warned.

Sven
Peter Hugosson-Miller
2011-05-05 08:21:37 UTC
Permalink
On 5 maj 2011, at 10:07, Sven Van Caekenberghe <sven at beta9.be> wrote:

>
> On 05 May 2011, at 09:58, Toon Verwaest wrote:
>
>> Hi,
>>
>> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>>
>> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>>
>> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>>
>> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>>
>> cheers,
>> Toon
>
> Very well written, Toon!
>
> And like you say, there is a danger: Smalltalk is the Red Pill, once you know it and get it, you will never want to go back.

This is all too true! :-/

--
Cheers,
Peter

>
> You have been warned.
>
> Sven
>
>
Toon Verwaest
2011-05-05 08:44:14 UTC
Permalink
> Very well written, Toon!
>
Thanks!
> And like you say, there is a danger: Smalltalk is the Red Pill, once you know it and get it, you will never want to go back.
>
To say it in the words of people more famous than me:

"A language that doesn't affect the way you think about programming, is
not worth knowing"
-- Alan Perlis

For me, Java and .NET have never really been worth knowing.

cheers,
Toon
Germán Arduino
2011-05-05 23:02:31 UTC
Permalink
2011/5/5 Toon Verwaest <toon.verwaest at gmail.com>:
>
>
> For me, Java and .NET have never really been worth knowing.
>
+1

I can't really imagine anything worse than the artifacts of .net "technology".
Olivier Auverlot
2011-05-05 09:45:11 UTC
Permalink
Le 05/05/11 10:07, Sven Van Caekenberghe a ?crit :
> And like you say, there is a danger: Smalltalk is the Red Pill, once you know it and get it, you will never want to go back

+1

Yes, it's true. I discovered Smalltalk since six month and I'm digitally
addicted ;-)

Before, I thought that Smalltalk was a dinosaur but I was wrong. There
are many projects, the community is really cool and the language is very
impressive.

Olivier
www.auverlot.fr
Johan Brichau
2011-05-05 08:57:09 UTC
Permalink
That is a superb response, Toon!
I could not agree more.

Let me add to that Smalltalk is not dead. It's the stealth weapon of mass productivity used by small technology startups ;-)

Johan

On 05 May 2011, at 09:58, Toon Verwaest wrote:

> Hi,
>
> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>
> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>
> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>
> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>
> cheers,
> Toon
>
> On 05/05/2011 07:38 AM, sourav roy wrote:
>>
>> Hi All,
>>
>> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>>
>> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>>
>> language for the industry. I may be wrong but i need some clarification about it.
>>
>>
>> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>>
>> one if he/she is into Smalltalk development.
>>
>> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>>
>> Thanks&Regards,
>>
>> Sourav Roy
>>
>>
>>
>> Get Yourself a cool, short @in.com Email ID now!
>
Carlo
2011-05-05 09:42:24 UTC
Permalink
Hi

While I agree with everyone's sentiments I think that practically If I ware starting my career off again I would still go into Java or .NET.

To get a job as a Smalltalk developer is difficult simply because they are so scarce. Yes technically Smalltalk has design and philosophical merits but, for someone starting their career, a more mainstream language would be best. It is still too difficult to make Smalltalk do enterprise scale integration and there is a serious lack of libraries; something that the Java and .NET (even Ruby) world does not suffer from. i'm not saying That Smalltalk can't do these things but rather that it is more difficult to integrate with the outside world; it's ecosystem is small compared to the J2EE ecosystem.

My advice would be to start off with Java or .NET and then when you've gained practical development experience (+-5 years) decide where you want to take your career. During this time you should be looking at other languages and practices, such as Smalltalk, software methodologies, DDD, FP etc, and learn from them to make you a better software engineer.
A career in development is so much more than simply the programming language.

BTW I'm still regretting not taking a Smalltalk position here in South Africa when I had the chance :) Maybe I will still...
Cheers
Carlo

On 05 May 2011, at 10:57 AM, Johan Brichau wrote:

That is a superb response, Toon!
I could not agree more.

Let me add to that Smalltalk is not dead. It's the stealth weapon of mass productivity used by small technology startups ;-)

Johan

On 05 May 2011, at 09:58, Toon Verwaest wrote:

> Hi,
>
> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>
> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>
> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>
> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>
> cheers,
> Toon
>
> On 05/05/2011 07:38 AM, sourav roy wrote:
>>
>> Hi All,
>>
>> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>>
>> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>>
>> language for the industry. I may be wrong but i need some clarification about it.
>>
>>
>> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>>
>> one if he/she is into Smalltalk development.
>>
>> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>>
>> Thanks&Regards,
>>
>> Sourav Roy
>>
>>
>>
>> Get Yourself a cool, short @in.com Email ID now!
>
Toon Verwaest
2011-05-05 13:09:25 UTC
Permalink
I do agree in the current setup. That's why I'm working very hard on
changing this. I want Smalltalk to be completely compatible at all
levels with other languages, so that we can use their libraries rather
than having to rewrite them.

I'm working on it. Stay tuned ;)

On 05/05/2011 11:42 AM, Carlo wrote:
> Hi
>
> While I agree with everyone's sentiments I think that practically If I ware starting my career off again I would still go into Java or .NET.
>
> To get a job as a Smalltalk developer is difficult simply because they are so scarce. Yes technically Smalltalk has design and philosophical merits but, for someone starting their career, a more mainstream language would be best. It is still too difficult to make Smalltalk do enterprise scale integration and there is a serious lack of libraries; something that the Java and .NET (even Ruby) world does not suffer from. i'm not saying That Smalltalk can't do these things but rather that it is more difficult to integrate with the outside world; it's ecosystem is small compared to the J2EE ecosystem.
>
> My advice would be to start off with Java or .NET and then when you've gained practical development experience (+-5 years) decide where you want to take your career. During this time you should be looking at other languages and practices, such as Smalltalk, software methodologies, DDD, FP etc, and learn from them to make you a better software engineer.
> A career in development is so much more than simply the programming language.
>
> BTW I'm still regretting not taking a Smalltalk position here in South Africa when I had the chance :) Maybe I will still...
> Cheers
> Carlo
>
> On 05 May 2011, at 10:57 AM, Johan Brichau wrote:
>
> That is a superb response, Toon!
> I could not agree more.
>
> Let me add to that Smalltalk is not dead. It's the stealth weapon of mass productivity used by small technology startups ;-)
>
> Johan
>
> On 05 May 2011, at 09:58, Toon Verwaest wrote:
>
>> Hi,
>>
>> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>>
>> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>>
>> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>>
>> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>>
>> cheers,
>> Toon
>>
>> On 05/05/2011 07:38 AM, sourav roy wrote:
>>> Hi All,
>>>
>>> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>>>
>>> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>>>
>>> language for the industry. I may be wrong but i need some clarification about it.
>>>
>>>
>>> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>>>
>>> one if he/she is into Smalltalk development.
>>>
>>> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>>>
>>> Thanks&Regards,
>>>
>>> Sourav Roy
>>>
>>>
>>>
>>> Get Yourself a cool, short @in.com Email ID now!
>
>
>
Serge Stinckwich
2011-05-05 14:41:08 UTC
Permalink
Le 5 mai 2011 ? 20:09, Toon Verwaest <toon.verwaest at gmail.com> a ?crit :

> I do agree in the current setup. That's why I'm working very hard on changing this. I want Smalltalk to be completely compatible at all levels with other languages, so that we can use their libraries rather than having to rewrite them.
>
> I'm working on it. Stay tuned ;)
>

Whaooo !
Smalltalk as an universal syntax too access all the libraries. What a great perspective :-)


> On 05/05/2011 11:42 AM, Carlo wrote:
>> Hi
>>
>> While I agree with everyone's sentiments I think that practically If I ware starting my career off again I would still go into Java or .NET.
>>
>> To get a job as a Smalltalk developer is difficult simply because they are so scarce. Yes technically Smalltalk has design and philosophical merits but, for someone starting their career, a more mainstream language would be best. It is still too difficult to make Smalltalk do enterprise scale integration and there is a serious lack of libraries; something that the Java and .NET (even Ruby) world does not suffer from. i'm not saying That Smalltalk can't do these things but rather that it is more difficult to integrate with the outside world; it's ecosystem is small compared to the J2EE ecosystem.
>>
>> My advice would be to start off with Java or .NET and then when you've gained practical development experience (+-5 years) decide where you want to take your career. During this time you should be looking at other languages and practices, such as Smalltalk, software methodologies, DDD, FP etc, and learn from them to make you a better software engineer.
>> A career in development is so much more than simply the programming language.
>>
>> BTW I'm still regretting not taking a Smalltalk position here in South Africa when I had the chance :) Maybe I will still...
>> Cheers
>> Carlo
>>
>> On 05 May 2011, at 10:57 AM, Johan Brichau wrote:
>>
>> That is a superb response, Toon!
>> I could not agree more.
>>
>> Let me add to that Smalltalk is not dead. It's the stealth weapon of mass productivity used by small technology startups ;-)
>>
>> Johan
>>
>> On 05 May 2011, at 09:58, Toon Verwaest wrote:
>>
>>> Hi,
>>>
>>> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>>>
>>> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>>>
>>> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>>>
>>> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>>>
>>> cheers,
>>> Toon
>>>
>>> On 05/05/2011 07:38 AM, sourav roy wrote:
>>>> Hi All,
>>>>
>>>> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>>>>
>>>> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>>>>
>>>> language for the industry. I may be wrong but i need some clarification about it.
>>>>
>>>>
>>>> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>>>>
>>>> one if he/she is into Smalltalk development.
>>>>
>>>> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>>>>
>>>> Thanks&Regards,
>>>>
>>>> Sourav Roy
>>>>
>>>>
>>>>
>>>> Get Yourself a cool, short @in.com Email ID now!
>>
>>
>>
>
>
Tudor Girba
2011-05-05 09:49:42 UTC
Permalink
Hi,

When people are asking me why I work in Smalltalk (especially after Moose presentations), I answer:
"It's great to have a competitive advantage that is hidden in plain sight :)"

Cheers,
Doru



On 5 May 2011, at 10:57, Johan Brichau wrote:

> That is a superb response, Toon!
> I could not agree more.
>
> Let me add to that Smalltalk is not dead. It's the stealth weapon of mass productivity used by small technology startups ;-)
>
> Johan
>
> On 05 May 2011, at 09:58, Toon Verwaest wrote:
>
>> Hi,
>>
>> I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at programming from a new angle and this will give you an edge.
>>
>> This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)
>>
>> As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.
>>
>> Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to not know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non-)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)
>>
>> cheers,
>> Toon
>>
>> On 05/05/2011 07:38 AM, sourav roy wrote:
>>>
>>> Hi All,
>>>
>>> I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk.
>>>
>>> I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>>>
>>> language for the industry. I may be wrong but i need some clarification about it.
>>>
>>>
>>> I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect of
>>>
>>> one if he/she is into Smalltalk development.
>>>
>>> Looking for some positive note so that it may give me some entho for working with Smalltalk.
>>>
>>> Thanks&Regards,
>>>
>>> Sourav Roy
>>>
>>>
>>>
>>> Get Yourself a cool, short @in.com Email ID now!
>>
>
>

--
www.tudorgirba.com

"We can create beautiful models in a vacuum.
But, to get them effective we have to deal with the inconvenience of reality."
sourav roy
2011-05-05 10:12:37 UTC
Permalink
Hi Toon, I agreeto what have you said but as i am a beginner to smalltalk i need lot of help to get a good grip over it and moreover unlike other mainstream languages there are not much documents or professional from which i can get some guidance about it. And i feel as Smalltalk is quite vast and different in structure from the other mail(with my two month experiance and i may be wrong), a beginner needs some proper guidance to get his hands over smalltalk. So, i just request you to kindly guide me to how should i get into smalltalk. Thanks&Regards, Sourav Original message From:"Toon Verwaest"< toon.verwaest at gmail.com >Date: 5 May 11 13:29:11Subject: Re: [Pharoproject] Popularity of Smalltalk in Software IndustryTo: pharoproject at lists.gforge.inria.frHi,I can tell you that independent of how the industry might perceive the language Smalltalk, learning Smalltalk will make you personally a better software engineer. And this is what the industry does want. You will look at prog
ramming from a new angle and this will give you an edge. This is also true for learning other old languages like Scheme or Lisp. As long as you stay within your Java / .NET bubble you will be one in a billion. If you learn Smalltalk, the fact you know something that other people might not makes you more special. The only negative part of learning Smalltalk while working on other types of applications is that you will eat your shoe 95% of the time hating that Java / .NET aren't more evolved and flexible :)As it seems that you are already working on a project revolving around Smalltalk, be very happy that you are getting the opportunity to learn it; you'll come out for the better.Lastly, don't care too much about popularity within industry. If you take the time to learn the systems for yourself you will probably learn to understand the differences yourself. You are currently also part of industry and obviously don't know Smalltalk well yet; how informed was your decision to no
t know Smalltalk? You are part of "the industry" making other people not choose Smalltalk based on your (non)choice of not using Smalltalk; if they would all think this way! Sheep won't change anything :)cheers,ToonOn 05/05/2011 07:38 AM, sourav roy wrote:Hi All, I have just started my career in Software/IT industry and got into a project which involes enhancement/maintainance of product built in Smalltalk. I was never exposed to this language before and have no idea if it is used in the Industry as popularly as JAVA and .NET and looks like its a DEADlanguage for the industry. I may be wrong but i need some clarification about it. I just want to know that why smalltalk is not so popular as the other OOPs Languages and what is the future prospect ofone if he/she is into Smalltalk development.Looking for some positive note so that it may give me some entho for working with Smalltalk. Thanks&Regards, Sourav Roy Get Yourself a cool, short @in.com Email ID now!Get Yourself a cool
, short @in.com Email ID now!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/0fb4e9ae/attachment.html>
Nick Ager
2011-05-05 10:39:57 UTC
Permalink
Hi Sourav,

Laurent's Pharocasts (http://www.pharocasts.com) are a great place to start.
Here are a couple to get you started:

http://www.pharocasts.com/2010/08/install-pharo-on-windows.html
http://www.pharocasts.com/2010/01/learn-smalltalk-with-profstef.html


Good luck and welcome

Nick

On 5 May 2011 11:12, sourav roy <sourav_pharo at in.com> wrote:

> Hi Toon,
>
> I agree to what have you said but as i am a beginner to smalltalk i need
> lot of help to get a good grip over it and moreover unlike other mainstream
> languages there are not much documents or professional from which i can get
> some guidance about it. And i feel as Smalltalk is quite vast and different
> in structure from the other mail(with my two month experiance and i may be
> wrong), a beginner needs some proper guidance to get his hands over
> smalltalk. So, i just request you to kindly guide me to how should i get
> into smalltalk.
>
> Thanks&Regards,
>
> Sourav
>
>
> ---------- Original message ----------
> From:"Toon Verwaest"< toon.verwaest at gmail.com >
> Date: 5 May 11 13:29:11
> Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry
> To: pharo-project at lists.gforge.inria.fr
>
> Hi,
>
> I can tell you that independent of how the industry might perceive the
> language Smalltalk, learning Smalltalk will make you personally a better
> software engineer. And this is what the industry does want. You will look at
> programming from a new angle and this will give you an edge.
>
> This is also true for learning other old languages like Scheme or Lisp. As
> long as you stay within your Java / .NET bubble you will be one in a
> billion. If you learn Smalltalk, the fact you know something that other
> people might not makes you more special. The only negative part of learning
> Smalltalk while working on other types of applications is that you will eat
> your shoe 95% of the time hating that Java / .NET aren't more ev olved and
> flexible :)
>
>
> As it seems that you are already working on a project revolving around
> Smalltalk, be very happy that you are getting the opportunity to learn it;
> you'll come out for the better.
>
> Lastly, don't care too much about popularity within industry. If you take
> the time to learn the systems for yourself you will probably learn to
> understand the differences yourself. You are currently also part of industry
> and obviously don't know Smalltalk well yet; how informed was your decision
> to not know Smalltalk? You are part of "the industry" making other people
> not choose Smalltalk based on your (non-)choice of not using Smalltalk; if
> they would all think this way! Sheep won't change anything :)
>
> cheers,
> Toon
>
> On 05/05/2011 07:38 AM, sourav roy wrote:
>
>
> Hi All,
>
> I have just started my career in Software/IT industry and got into a
> project which involes enhancement/maintainance of product built in
> Smalltalk.
>
> I was never exposed to this language before and have no idea if it is used
> in the Industry as popularly as JAVA and .NET and looks like its a DEAD
>
> language for the industry. I may be wrong but i need some clarification
> about it.
>
>
> I just want to know that why smalltalk is not so popular as the other OOPs
> Languages and what is the future prospect of
>
> one if he/she is into Smalltalk development.
>
> Looking for some positive note so that it may give me some entho for
> working with Smalltalk.
>
> Thanks&Regards,
>
> Sourav Roy
>
>
> Get Yourself a cool, short *@in.com* Email ID now!<http://mail.in.com/mails/new_reg.php?utm_source=invite&utm_medium=outgoing>
>
>
>
>
> Get Yourself a cool, short *@in.com* Email ID now!<http://mail.in.com/mails/new_reg.php?utm_source=invite&utm_medium=outgoing>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/304b7721/attachment.html>
Henrik Sperre Johansen
2011-05-05 10:45:55 UTC
Permalink
On 05.05.2011 12:12, sourav roy wrote:
>
> Hi Toon,
>
> I agree to what have you said but as i am a beginner to smalltalk i
> need lot of help to get a good grip over it and moreover unlike other
> mainstream languages there are not much documents or professional from
> which i can get some guidance about it. And i feel as Smalltalk is
> quite vast and different in structure from the other mail(with my two
> month experiance and i may be wrong), a beginner needs some proper
> guidance to get his hands over smalltalk. So, i just request you to
> kindly guide me to how should i get into smalltalk.
>
> Thanks&Regards,
>
> Sourav
>

The Daily podcasts James Robertson made while at Cincom are also
available, covering a wide range of topics (in VW ST at least), from
familiarizing with the tools, to use of specific libraries:
http://www.cincomsmalltalk.com/main/developer-community/tutorials/

He's also made (re)made alot of the introductory ones for multiple
different dialects:
http://jarober.com/blog/st4u.ssp

Cheers,
Henry
Mariano Martinez Peck
2011-05-05 12:11:33 UTC
Permalink
Books: Pharo By Example: http://pharobyexample.org/
http://stephane.ducasse.free.fr/FreeBooks.html

On Thu, May 5, 2011 at 12:45 PM, Henrik Sperre Johansen <
henrik.s.johansen at veloxit.no> wrote:

> On 05.05.2011 12:12, sourav roy wrote:
>
>>
>> Hi Toon,
>>
>> I agree to what have you said but as i am a beginner to smalltalk i need
>> lot of help to get a good grip over it and moreover unlike other mainstream
>> languages there are not much documents or professional from which i can get
>> some guidance about it. And i feel as Smalltalk is quite vast and different
>> in structure from the other mail(with my two month experiance and i may be
>> wrong), a beginner needs some proper guidance to get his hands over
>> smalltalk. So, i just request you to kindly guide me to how should i get
>> into smalltalk.
>>
>> Thanks&Regards,
>>
>> Sourav
>>
>>
> The Daily podcasts James Robertson made while at Cincom are also available,
> covering a wide range of topics (in VW ST at least), from familiarizing with
> the tools, to use of specific libraries:
> http://www.cincomsmalltalk.com/main/developer-community/tutorials/
>
> He's also made (re)made alot of the introductory ones for multiple
> different dialects:
> http://jarober.com/blog/st4u.ssp
>
> Cheers,
> Henry
>
>


--
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/279e1f48/attachment.html>
Steve Taylor
2011-05-05 22:55:35 UTC
Permalink
On 05/05/11 22:11, Mariano Martinez Peck wrote:

> http://stephane.ducasse.free.fr/FreeBooks.html

And of those many good books I'd put in a particular word for "Smalltalk
By Example" by Alex Sharp. I found it particularly straightforward and
helpful when I was starting out.

http://stephane.ducasse.free.fr/FreeBooks/ByExample/





Steve
Toon Verwaest
2011-05-05 13:03:49 UTC
Permalink
On 05/05/2011 12:12 PM, sourav roy wrote:
>
> Hi Toon,
>
> I agree to what have you said but as i am a beginner to smalltalk i
> need lot of help to get a good grip over it and moreover unlike other
> mainstream languages there are not much documents or professional from
> which i can get some guidance about it. And i feel as Smalltalk is
> quite vast and different in structure from the other mail(with my two
> month experiance and i may be wrong), a beginner needs some proper
> guidance to get his hands over smalltalk. So, i just request you to
> kindly guide me to how should i get into smalltalk.
>
> Thanks&Regards,
>
> Sourav
>
In addition to the links that were sent to you, this mailing list is a
good access point to get the information you might need.

I don't know where you are based exactly, but you might be able to find
people in your neighborhood that can help you out. If you live close to
Bern, CH; you are always welcome to pass by my office and I can give you
a tutoring session when you are stuck ;) Or you can just follow the
Smalltalk course at our university.

I'm pretty sure other people are open to helping you as well.

cheers,
Toon
Dave Mason
2011-05-05 13:07:52 UTC
Permalink
On May 5, 2011, at 06:12, sourav roy wrote:

> I agree to what have you said but as i am a beginner to smalltalk i need lot of help to get a good grip over it

I was talking with one of my grad students yesterday, who was in a similar boat.

A big difference between Smalltalk and Java/C# (and worse, C++) is that it has a minimalist syntax. If you have been programming in those syntaxy languages, you have grown to pattern-match that syntax to give you the structure of a method. In Smalltalk, everything is a message send to some object (except assignment and return, and ignoring internal compiler optimizations) - so figuring out what is going on is a matter of following the message sends.

Another big difference is that classes are objects too, so 'self' could be a class or an instance. This is a big advantage, but initially can make it harder to follow the message send trail. Pay attention to whether you're looking at a class method or an instance method.

A third big difference is that the class hierarchy is much, much, richer, so messages are often sent to methods that are defined in super-classes or sub-classes of the method you're currently looking at. This is particularly true for class methods, because there isn't any inheritance of class methods in the syntaxy languages. You may find the hierarchy browser to be a good friend here. Hierarchies in the syntaxy languages are usually <=3 deep. In Smalltalk, 8-10 is not unusual.

Lastly, most Smalltalk systems are image based. That means all the code is there for you to look at - you just have to find it! Because the code (the ultimate documentation :-) is there, it has meant that documentation has been seen as less important. The Pharo community has been working to address that, both in books and in internal documentation (see the COTD postings)

> and moreover unlike other mainstream languages there are not much documents or professional from which i can get some guidance about it.

As others have pointed out, there actually is quite a bit... just not from Amazon.

> And i feel as Smalltalk is quite vast and different in structure from the other mail(with my two month experiance and i may be wrong), a beginner needs some proper guidance to get his hands over smalltalk. So, i just request you to kindly guide me to how should i get into smalltalk.

Hope this helps.

As others have said, Smalltalk is worth it - it will make you a better programmer. As will several other languages, most of which you'll find discussed on the lambda-the-ultimate.org blog.

../Dave
Cédrick Béler
2011-05-05 15:26:10 UTC
Permalink
> Lastly, most Smalltalk systems are image based...

...which makes you feel the system is "alive", hence one **huge benefit** of Smalltalk: its debugger which enables on the fly debbuging... and also test driven development (real one [1]) where you can run incomplete code and code what's missing iteratively when you need it (Smalltalk is a live system, not only a language as somebody said lately).

C?drick

[1] see in particular this webcast: http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/dc273116/attachment.html>
Toon Verwaest
2011-05-05 15:32:54 UTC
Permalink
On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>
>> Lastly, most Smalltalk systems are image based...
>
> ...which makes you feel the system is "alive", hence one **huge
> benefit** of Smalltalk: its debugger which enables on the fly
> debbuging... and also test driven development (real one [1]) where you
> can run incomplete code and code what's missing iteratively when you
> need it (Smalltalk is a live system, not only a language as somebody
> said lately).
>
> C?drick
>
> [1] see in particular this webcast:
> http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
Seriously ... these points in favor of the image are so m00t. Lets see
how it would work without an image:

I write a C application which I link to GCC. Now I run GDB on my
application, and while running I have the whole GCC compiler collection
at my disposal while running. While debugging (at some breakpoint) I
just let the GCC library compile some C code for me; I turn on the
executable flag and whooptidoo, I have a Smalltalk like debugger for C.

This is totally unrelated to having an image; it's just a great debugger
implementation. 2 completely different things. No reason why this
wouldn't work for C; except for the fact that they didn't do it yet
(those lazy bastards).
Cédrick Béler
2011-05-05 15:39:41 UTC
Permalink
Le 5 mai 2011 ? 17:32, Toon Verwaest a ?crit :

> On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>>
>>> Lastly, most Smalltalk systems are image based...
>>
>> ...which makes you feel the system is "alive", hence one **huge benefit** of Smalltalk: its debugger which enables on the fly debbuging... and also test driven development (real one [1]) where you can run incomplete code and code what's missing iteratively when you need it (Smalltalk is a live system, not only a language as somebody said lately).
>>
>> C?drick
>>
>> [1] see in particular this webcast: http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
> Seriously ... these points in favor of the image are so m00t. Lets see how it would work without an image:
>
> I write a C application which I link to GCC. Now I run GDB on my application, and while running I have the whole GCC compiler collection at my disposal while running. While debugging (at some breakpoint) I just let the GCC library compile some C code for me; I turn on the executable flag and whooptidoo, I have a Smalltalk like debugger for C.
>
> This is totally unrelated to having an image; it's just a great debugger implementation. 2 completely different things. No reason why this wouldn't work for C; except for the fact that they didn't do it yet (those lazy bastards).

ok, true :)

but, it's not only the debugger... getting senders, implementers, class that use it, methods that contains this word, ...
of course, this is doable with files (see eclipse *sigh*), but I prefer the snappy feeling of an image for that...
Camillo Bruni
2011-05-05 15:47:18 UTC
Permalink
On 2011-05-05, at 17:39, C?drick B?ler wrote:

>
> Le 5 mai 2011 ? 17:32, Toon Verwaest a ?crit :
>
>> On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>>>
>>>> Lastly, most Smalltalk systems are image based...
>>>
>>> ...which makes you feel the system is "alive", hence one **huge benefit** of Smalltalk: its debugger which enables on the fly debbuging... and also test driven development (real one [1]) where you can run incomplete code and code what's missing iteratively when you need it (Smalltalk is a live system, not only a language as somebody said lately).
>>>
>>> C?drick
>>>
>>> [1] see in particular this webcast: http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
>> Seriously ... these points in favor of the image are so m00t. Lets see how it would work without an image:
>>
>> I write a C application which I link to GCC. Now I run GDB on my application, and while running I have the whole GCC compiler collection at my disposal while running. While debugging (at some breakpoint) I just let the GCC library compile some C code for me; I turn on the executable flag and whooptidoo, I have a Smalltalk like debugger for C.
>>
>> This is totally unrelated to having an image; it's just a great debugger implementation. 2 completely different things. No reason why this wouldn't work for C; except for the fact that they didn't do it yet (those lazy bastards).
>
> ok, true :)
>
> but, it's not only the debugger... getting senders, implementers, class that use it, methods that contains this word, ...
> of course, this is doable with files (see eclipse *sigh*), but I prefer the snappy feeling of an image for that...

the snappiness could be easily achieved with a fulltext search index (just look how fast spotlight works on a couple of millions of files on my machine...)
The main issue of the image, is that it locks you out, making it close to impossible to use other tools than smalltalk.
Though the nice thing about the image is that you can start up your IDE in less than a second, and again, this is not necessarily linked to Smalltalk and could be achieved for C programs as well.
Dave Mason
2011-05-05 15:46:25 UTC
Permalink
On May 5, 2011, at 11:32, Toon Verwaest wrote:

> This is totally unrelated to having an image; it's just a great debugger implementation. 2 completely different things. No reason why this wouldn't work for C; except for the fact that they didn't do it yet (those lazy bastards).

... and that it's an order of magnitude more difficult!

Yes, there are certainly other aspects of being image-based that are way cool, but iterative code development and debugging is a big part of it.

(I am teaching a Java course right now with BlueJ, which is a cool environment (at least if you're not used to an image-based system like Smalltalk). It provides a little UML diagram of your classes, and you can create an object by clicking on the appropriate class, and inspect, and call methods. Objects that you create appear on a "workbench". So I had build up a little example with a few objects, found a bug, and edited the class, hit "compile" and *poof* empty workbench. Yes, in Java they probably could have emulated the image, but it's a lot of work!)

../Dave
Toon Verwaest
2011-05-05 15:50:42 UTC
Permalink
On 05/05/2011 05:46 PM, Dave Mason wrote:
> On May 5, 2011, at 11:32, Toon Verwaest wrote:
>
>> This is totally unrelated to having an image; it's just a great debugger implementation. 2 completely different things. No reason why this wouldn't work for C; except for the fact that they didn't do it yet (those lazy bastards).
> ... and that it's an order of magnitude more difficult!
>
> Yes, there are certainly other aspects of being image-based that are way cool, but iterative code development and debugging is a big part of it.
>
> (I am teaching a Java course right now with BlueJ, which is a cool environment (at least if you're not used to an image-based system like Smalltalk). It provides a little UML diagram of your classes, and you can create an object by clicking on the appropriate class, and inspect, and call methods. Objects that you create appear on a "workbench". So I had build up a little example with a few objects, found a bug, and edited the class, hit "compile" and *poof* empty workbench. Yes, in Java they probably could have emulated the image, but it's a lot of work!)
>
> ../Dave
It's more difficult because it's not integrated yet. Suppose that this
was already integrated within GDB? Suppose GDB looked like a Smalltalk
debugger? Is there anything technical that stands in your way?

C is annoying for many other reasons, but not for that one.
Jimmie Houchin
2011-05-05 16:57:00 UTC
Permalink
On 5/5/2011 10:32 AM, Toon Verwaest wrote:
> On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>>> Lastly, most Smalltalk systems are image based...
>>
>> ...which makes you feel the system is "alive", hence one **huge
>> benefit** of Smalltalk: its debugger which enables on the fly
>> debbuging... and also test driven development (real one [1]) where
>> you can run incomplete code and code what's missing iteratively when
>> you need it (Smalltalk is a live system, not only a language as
>> somebody said lately).
>>
>> C?drick
>>
>> [1] see in particular this webcast:
>> http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
> Seriously ... these points in favor of the image are so m00t. Lets see
> how it would work without an image:
>
> I write a C application which I link to GCC. Now I run GDB on my
> application, and while running I have the whole GCC compiler
> collection at my disposal while running. While debugging (at some
> breakpoint) I just let the GCC library compile some C code for me; I
> turn on the executable flag and whooptidoo, I have a Smalltalk like
> debugger for C.
>
> This is totally unrelated to having an image; it's just a great
> debugger implementation. 2 completely different things. No reason why
> this wouldn't work for C; except for the fact that they didn't do it
> yet (those lazy bastards).

Disclaimer, I am not a professional programmer and I have not programmed
in C or any other static compiled language at all. So I may not have any
idea what I am talking about. :)

What I don't see in your example, but what I experience in my
programming is often in the *use* of my application during development.
Part of my application is written in Python (so I can interface I
library I can't from Pharo) and part in Pharo. (*use*, ie: the
application is compiled and ready for a *user* and I am the user and
encounter the bug.

My Python app connects to a server on the net and downloads data and
inserts it into a PostgreSQL database. It also provides live data to my
Pharo app via an http interface.

While experimenting with NumPy and running some statistical analysis on
a GB or two of data. The analysis took 10-12 hours to run. I start it up
and walk away. I get back to it only to find that at the end of all the
analysis it exited with a stacktrace. Ugh! I concatenated a string
using a ',' instead of a '+'. Switching between Pharo and Python bit
me. :) This was at the very end of all the analysis and the generation
of a report. The last line of the code had the bug. I lost the 12hours
of analysis. This bug passed the syntax checker and the Python compiler
when I imported the module. It wasn't until it was live and running and
encountered in execution that it was discovered.

In Pharo, the same situation, I fix it in the debugger and my report is
generated and I continue. All my data is still resident in the image and
I can explore and continue. In Python (and I presume most any other dead
language) all is lost and I have to rerun.

Now as I said I am not a professional. Certain processes would have
helped in this situation, but not necessarily all. And I have limited
experience with the best other systems or languages have to offer.

But how many programming languages/environments handle that well?

I am still so very tired of every time an application on my computer
says, "You just updated. Do you want to restart?"

Why do most every single web application outside of the Smalltalk world
require shutdowns and restarts for bug fixes and upgrades?

Why does NetBeans consume 200mb, take 3-5minutes to startup, and do a
much, much poorer job with syntax, autocomplete, etc. on a single 500
line Python file?

I don't think the world out there is anywhere near what Smalltalk has.
Nor do they have the vision for it. They are happy with files, and
restarts and all their processes to reduce their pain due to not having
a live environment.

I am a single guy with a vision, an idea, that I want to implement for
my business. I have seen nothing that gives me the productivity that
Smalltalk does. Not Java, Python, Clojure, Scala, Lua, etc.

I have never seen any other language accomplish so much with so few. I
look at other languages and apps built with them and look at the armies
they have to do so. Then I look at Seaside, etc. with just a small group
of guys with an idea of something better.

While I desperately want Squeak/Pharo to be able to interface outside
systems better. I have seen nothing that is better or comes close. And
as I said, I have a business requirement to interface a proprietary
library written in C, which why I am connected with Python (and Windows)
against my will. So I do understand.

I understand, as does everybody else here, that Pharo/Smalltalk is not
perfect and has huge areas where we have not done things well or right.
But I don't think this is one of them. I think this is one where the
rest of the world is behind us.

Squeak/Pharo/Smalltalk is empowering.

JMHO, take with a grain of salt. :)

Jimmie
Igor Stasenko
2011-05-05 17:21:20 UTC
Permalink
On 5 May 2011 18:57, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> On 5/5/2011 10:32 AM, Toon Verwaest wrote:
>>
>> On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>>>>
>>>> Lastly, most Smalltalk systems are image based...
>>>
>>> ...which makes you feel the system is "alive", hence one **huge benefit**
>>> of Smalltalk: its debugger which enables on the fly debbuging... and also
>>> test driven development (real one [1]) where you can run incomplete code and
>>> code what's missing iteratively when you need it (Smalltalk is a live
>>> system, not only a language as somebody said lately).
>>>
>>> C?drick
>>>
>>> [1] see in particular this webcast:
>>> http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
>>
>> Seriously ... these points in favor of the image are so m00t. Lets see how
>> it would work without an image:
>>
>> I write a C application which I link to GCC. Now I run GDB on my
>> application, and while running I have the whole GCC compiler collection at
>> my disposal while running. While debugging (at some breakpoint) I just let
>> the GCC library compile some C code for me; I turn on the executable flag
>> and whooptidoo, I have a Smalltalk like debugger for C.
>>
>> This is totally unrelated to having an image; it's just a great debugger
>> implementation. 2 completely different things. No reason why this wouldn't
>> work for C; except for the fact that they didn't do it yet (those lazy
>> bastards).
>
> Disclaimer, I am not a professional programmer and I have not programmed in
> C or any other static compiled language at all. So I may not have any idea
> what I am talking about. :)
>
> What I don't see in your example, but what I experience in my programming is
> often in the *use* of my application during development. Part of my
> application is written in Python (so I can interface I library I can't from
> Pharo) and part in Pharo. ?(*use*, ie: ?the application is compiled and
> ready for a *user* and I am the user and encounter the bug.
>
> My Python app connects to a server on the net and downloads data and inserts
> it into a PostgreSQL database. It also provides live data to my Pharo app
> via an http interface.
>
> While experimenting with NumPy and running some statistical analysis on a GB
> or two of data. The analysis took 10-12 hours to run. I start it up and walk
> away. I get back to it only to find that at the end of all the analysis it
> exited with a stacktrace. Ugh! ?I concatenated a string using a ',' instead
> of a '+'. ? Switching between Pharo and Python bit me. :) ?This was at the
> very end of all the analysis and the generation of a report. The last line
> of the code had the bug. I lost the 12hours of analysis. This bug passed the
> syntax checker and the Python compiler when I imported the module. It wasn't
> until it was live and running and encountered in execution that it was
> discovered.
>
> In Pharo, the same situation, I fix it in the debugger and my report is
> generated and I continue. All my data is still resident in the image and I
> can explore and continue. In Python (and I presume most any other dead
> language) all is lost and I have to rerun.
>
> Now as I said I am not a professional. Certain processes would have helped
> in this situation, but not necessarily all. And I have limited experience
> with the best other systems or languages have to offer.
>
> But how many programming languages/environments handle that well?
>
> I am still so very tired of every time an application on my computer says,
> "You just updated. Do you want to restart?"
>
> Why do most every single web application outside of the Smalltalk world
> require shutdowns and restarts for bug fixes and upgrades?
>
> Why does NetBeans consume 200mb, take 3-5minutes to startup, and do a much,
> much poorer job with syntax, autocomplete, etc. on a single 500 line Python
> file?
>
> I don't think the world out there is anywhere near what Smalltalk has. Nor
> do they have the vision for it. They are happy with files, and restarts and
> all their processes to reduce their pain due to not having a live
> environment.
>
> I am a single guy with a vision, an idea, that I want to implement for my
> business. I have seen nothing that gives me the productivity that Smalltalk
> does. Not Java, Python, Clojure, Scala, Lua, etc.
>
> I have never seen any other language accomplish so much with so few. I look
> at other languages and apps built with them and look at the armies they have
> to do so. Then I look at Seaside, etc. with just a small group of guys with
> an idea of something better.
>
> While I desperately want Squeak/Pharo to be able to interface outside
> systems better. I have seen nothing that is better or comes close. And as I
> said, I have a business requirement to interface a proprietary library
> written in C, which why I am connected with Python (and Windows) against my
> will. So I do understand.
>
> I understand, as does everybody else here, that Pharo/Smalltalk is not
> perfect and has huge areas where we have not done things well or right. But
> I don't think this is one of them. I think this is one where the rest of the
> world is behind us.
>
> Squeak/Pharo/Smalltalk is empowering.
>

Well said.
Except that i'm not sharing your view that its hard to interface with
foreign libraries.
Its not hard at all. Of course to connect two different worlds, you
need to have knowledge
in both of them. But this requirement not a bit different when you
take any other pair of languages and try to
connect them.

> JMHO, take with a grain of salt. :)
>
> Jimmie
>
>



--
Best regards,
Igor Stasenko AKA sig.
Jimmie Houchin
2011-05-05 19:39:11 UTC
Permalink
On 5/5/2011 12:21 PM, Igor Stasenko wrote:
> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> wrote:
[Big Snip]
> Well said.
> Except that i'm not sharing your view that its hard to interface with
> foreign libraries.
> Its not hard at all. Of course to connect two different worlds, you
> need to have knowledge
> in both of them. But this requirement not a bit different when you
> take any other pair of languages and try to
> connect them.

Thanks,

I have no knowledge of either the knowledge or the challenges involved
in using external libraries in Pharo or Squeak. I have no knowledge of
FFI/Alien or using C/C++/C# or compilers.

However, this is my experience in Python.

Navigate to the directory containing the script makepy.py or if it is a
part of your Python's sys.path, execute the script. It generates a
Python module which is on

It pops up a dialogue which prompts you to select the library you wish
to interface.

Then to use in a script simply
import Dispatch
self.mylib = Dispatch("MyLibrary")

This will expose all the functionality of the library.

All provided by the python win32 extensions. It was very successful for
my needs. I do not know what limitations it may or may not have.

Very easy for non-expert programmers. I would love this level of ability
to interface outside libraries in Squeak. But I have no idea the effort
required to automate the generation of a class or classes which
interface the external library.

In my particular instance this is obviously for a Windows library. I
don't know if Python has anything comparable for Linux or OSX.

In this particular instance, Python was enabling for me, for which I am
grateful. Otherwise I might be stuck writing my app in VisualBasic. But
despite my gratefulness, I spend as little time in Python as possible.
Despite Python not requiring a compiler, I really hate going to an
editor and writing code. Then to an interpreter to run code. Hit my
stacktrace. Go back to the editor. Reload the module in the interpreter
and run again, and if that doesn't succeed due to the reload not really
reloading the new code, open in a new interpreter. Ugh!!! Where's my
Smalltalk. Give my live object system. :)

Jimmie
Stéphane Ducasse
2011-05-05 20:21:41 UTC
Permalink
Thanks Jimmie
Thanks to kick our asses like that!
I would love to have that too in Pharo.

Stef

> Thanks,
>
> I have no knowledge of either the knowledge or the challenges involved in using external libraries in Pharo or Squeak. I have no knowledge of FFI/Alien or using C/C++/C# or compilers.
>
> However, this is my experience in Python.
>
> Navigate to the directory containing the script makepy.py or if it is a part of your Python's sys.path, execute the script. It generates a Python module which is on
>
> It pops up a dialogue which prompts you to select the library you wish to interface.
>
> Then to use in a script simply
> import Dispatch
> self.mylib = Dispatch("MyLibrary")
>
> This will expose all the functionality of the library.
>
> All provided by the python win32 extensions. It was very successful for my needs. I do not know what limitations it may or may not have.
>
> Very easy for non-expert programmers. I would love this level of ability to interface outside libraries in Squeak. But I have no idea the effort required to automate the generation of a class or classes which interface the external library.
>
> In my particular instance this is obviously for a Windows library. I don't know if Python has anything comparable for Linux or OSX.
>
> In this particular instance, Python was enabling for me, for which I am grateful. Otherwise I might be stuck writing my app in VisualBasic. But despite my gratefulness, I spend as little time in Python as possible. Despite Python not requiring a compiler, I really hate going to an editor and writing code. Then to an interpreter to run code. Hit my stacktrace. Go back to the editor. Reload the module in the interpreter and run again, and if that doesn't succeed due to the reload not really reloading the new code, open in a new interpreter. Ugh!!! Where's my Smalltalk. Give my live object system. :)
>
> Jimmie
>
>
Igor Stasenko
2011-05-05 21:25:15 UTC
Permalink
On 5 May 2011 21:39, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>>
>> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> ?wrote:
>
> [Big Snip]
>>
>> Well said.
>> Except that i'm not sharing your view that its hard to interface with
>> foreign libraries.
>> Its not hard at all. Of course to connect two different worlds, you
>> need to have knowledge
>> in both of them. But this requirement not a bit different when you
>> take any other pair of languages and try to
>> connect them.
>
> Thanks,
>
> I have no knowledge of either the knowledge or the challenges involved in
> using external libraries in Pharo or Squeak. I have no knowledge of
> FFI/Alien or using C/C++/C# or compilers.
>
> However, this is my experience in Python.
>
> Navigate to the directory containing the script makepy.py or if it is a part
> of your Python's sys.path, execute the script. It generates a Python module
> which is on
>
> It pops up a dialogue which prompts you to select the library you wish to
> interface.
>
> Then to use in a script simply
> import Dispatch
> self.mylib = Dispatch("MyLibrary")
>
> This will expose all the functionality of the library.
>
> All provided by the python win32 extensions. It was very successful for my
> needs. I do not know what limitations it may or may not have.
>
> Very easy for non-expert programmers. I would love this level of ability to
> interface outside libraries in Squeak. But I have no idea the effort
> required to automate the generation of a class or classes which interface
> the external library.
>
> In my particular instance this is obviously for a Windows library. I don't
> know if Python has anything comparable for Linux or OSX.
>
> In this particular instance, Python was enabling for me, for which I am
> grateful. Otherwise I might be stuck writing my app in VisualBasic. But
> despite my gratefulness, I spend as little time in Python as possible.
> Despite Python not requiring a compiler, I really hate going to an editor
> and writing code. Then to an interpreter to run code. Hit my stacktrace. Go
> back to the editor. Reload the module in the interpreter and run again, and
> if that doesn't succeed due to the reload not really reloading the new code,
> open in a new interpreter. Ugh!!! ?Where's my Smalltalk. Give my live object
> system. :)
>

Haha.. i have strong suspicion that here you are talking about quite
specific set of libraries,
which using OLE/COM interfaces. Indeed, one could implement an
automatic "import/connect" tool
for it, because a library itself contain enough information reflecting
it interface(s).
You can check Dolphin smalltalk which works only on windows and has
integrated solution for that for years:
In same way like you described, you just pick the library, click "ok"
and its done & ready for use.

But that would be too easy if you could do same with any other library
in your system.
So, if you feel adventurous, try to check what Python can do with
libraries like Kernel32.dll
or User32.dll. I am sure it can do as little as Smalltalk in this
regard, but you are free to check it yourself :)


> Jimmie
>

--
Best regards,
Igor Stasenko AKA sig.
Jimmie Houchin
2011-05-05 23:03:41 UTC
Permalink
On 5/5/2011 4:25 PM, Igor Stasenko wrote:
> On 5 May 2011 21:39, Jimmie Houchin<jlhouchin at gmail.com> wrote:
>> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>>> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> wrote:
>> [Big Snip]
>>> Well said.
>>> Except that i'm not sharing your view that its hard to interface with
>>> foreign libraries.
>>> Its not hard at all. Of course to connect two different worlds, you
>>> need to have knowledge
>>> in both of them. But this requirement not a bit different when you
>>> take any other pair of languages and try to
>>> connect them.
>> Thanks,
>>
>> I have no knowledge of either the knowledge or the challenges involved in
>> using external libraries in Pharo or Squeak. I have no knowledge of
>> FFI/Alien or using C/C++/C# or compilers.
>>
>> However, this is my experience in Python.
>>
>> Navigate to the directory containing the script makepy.py or if it is a part
>> of your Python's sys.path, execute the script. It generates a Python module
>> which is on
>>
>> It pops up a dialogue which prompts you to select the library you wish to
>> interface.
>>
>> Then to use in a script simply
>> import Dispatch
>> self.mylib = Dispatch("MyLibrary")
>>
>> This will expose all the functionality of the library.
>>
>> All provided by the python win32 extensions. It was very successful for my
>> needs. I do not know what limitations it may or may not have.
>>
>> Very easy for non-expert programmers. I would love this level of ability to
>> interface outside libraries in Squeak. But I have no idea the effort
>> required to automate the generation of a class or classes which interface
>> the external library.
>>
>> In my particular instance this is obviously for a Windows library. I don't
>> know if Python has anything comparable for Linux or OSX.
>>
>> In this particular instance, Python was enabling for me, for which I am
>> grateful. Otherwise I might be stuck writing my app in VisualBasic. But
>> despite my gratefulness, I spend as little time in Python as possible.
>> Despite Python not requiring a compiler, I really hate going to an editor
>> and writing code. Then to an interpreter to run code. Hit my stacktrace. Go
>> back to the editor. Reload the module in the interpreter and run again, and
>> if that doesn't succeed due to the reload not really reloading the new code,
>> open in a new interpreter. Ugh!!! Where's my Smalltalk. Give my live object
>> system. :)
> Haha.. i have strong suspicion that here you are talking about quite
> specific set of libraries,
> which using OLE/COM interfaces. Indeed, one could implement an
> automatic "import/connect" tool
> for it, because a library itself contain enough information reflecting
> it interface(s).
> You can check Dolphin smalltalk which works only on windows and has
> integrated solution for that for years:
> In same way like you described, you just pick the library, click "ok"
> and its done& ready for use.
>
> But that would be too easy if you could do same with any other library
> in your system.
> So, if you feel adventurous, try to check what Python can do with
> libraries like Kernel32.dll
> or User32.dll. I am sure it can do as little as Smalltalk in this
> regard, but you are free to check it yourself :)

As I said, I am totally unaware of the limitations of the system, but
that it did what I need, and would have liked to do that from
Pharo/Squeak. I know Dolphin has/had certain capabilities. But I don't
prefer to use non-open source software if at all possible for
development. I also am very preferential towards cross-platform
software. Dolphin fails on all accounts. I would choose my Python/Pharo
blend over Dolphin any day. I know it introduces some pain, but I am
willing to accept the pain. I like tools that allow me to use them where
ever I am and whatever I am doing.

However, that said, when I look at the facilities Python offers for such
capabilities it on appearances looks quite impressive.

http://docs.python.org/library/ctypes.html

"""
ctypes is a foreign function library for Python. It provides C
compatible data types, and allows calling functions in DLLs or shared
libraries. It can be used to wrap these libraries in pure Python.


15.18.1.1. Loading dynamic link libraries

ctypes exports the /cdll/, and on Windows /windll/ and /oledll/ objects,
for loading dynamic link libraries.

You load libraries by accessing them as attributes of these objects.
/cdll/ loads libraries which export functions using the standard cdecl
calling convention, while /windll/ libraries call functions using the
stdcall calling convention. /oledll/ also uses the stdcall calling
convention, and assumes the functions return a Windows HRESULT error
code. The error code is used to automatically raise a WindowsError
exception when the function call fails.

Here are some examples for Windows. Note that msvcrt is the MS standard
C library containing most standard C functions, and uses the cdecl
calling convention:

>>> from ctypes import *
>>> print windll.kernel32 # doctest: +WINDOWS
<WinDLL 'kernel32', handle ... at ...>
>>> print cdll.msvcrt # doctest: +WINDOWS
<CDLL 'msvcrt', handle ... at ...>
>>> libc = cdll.msvcrt # doctest: +WINDOWS
>>

"""

It has examples for windows and linux.

I didn't read it all as I am unqualified to assess its capabilities or
limitations, nor do I presently need it as the win32 extensions do
easily and well what I presently need to do.

Hopefully it can inform us as to what is expected and doable in
alternative languages which are dynamic like Smalltalk.

Jimmie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110505/3f7cd8f9/attachment.html>
Igor Stasenko
2011-05-06 01:19:30 UTC
Permalink
On 6 May 2011 01:03, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>
> On 5 May 2011 21:39, Jimmie Houchin <jlhouchin at gmail.com> wrote:
>
> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>
> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> ?wrote:
>
> [Big Snip]
>
> Well said.
> Except that i'm not sharing your view that its hard to interface with
> foreign libraries.
> Its not hard at all. Of course to connect two different worlds, you
> need to have knowledge
> in both of them. But this requirement not a bit different when you
> take any other pair of languages and try to
> connect them.
>
> Thanks,
>
> I have no knowledge of either the knowledge or the challenges involved in
> using external libraries in Pharo or Squeak. I have no knowledge of
> FFI/Alien or using C/C++/C# or compilers.
>

So, read about it. It doesn't bites. :)

> As I said, I am totally unaware of the limitations of the system, but that
> it did what I need, and would have liked to do that from Pharo/Squeak. I
> know Dolphin has/had certain capabilities. But I don't prefer to use
> non-open source software if at all possible for development. I also am very
> preferential towards cross-platform software. Dolphin fails on all accounts.
> I would choose my Python/Pharo blend over Dolphin any day. I know it
> introduces some pain, but I am willing to accept the pain. I like tools that
> allow me to use them where ever I am and whatever I am doing.
>
> However, that said, when I look at the facilities Python offers for such
> capabilities it on appearances looks quite impressive.
>
> http://docs.python.org/library/ctypes.html
>
> """
> ctypes is a foreign function library for Python. It provides C compatible
> data types, and allows calling functions in DLLs or shared libraries. It can
> be used to wrap these libraries in pure Python.
>
> 15.18.1.1. Loading dynamic link libraries
>
> ctypes exports the cdll, and on Windows windll and oledll objects, for
> loading dynamic link libraries.
>
> You load libraries by accessing them as attributes of these objects. cdll
> loads libraries which export functions using the standard cdecl calling
> convention, while windll libraries call functions using the stdcall calling
> convention. oledll also uses the stdcall calling convention, and assumes the
> functions return a Windows HRESULT error code. The error code is used to
> automatically raise a WindowsError exception when the function call fails.
>
> Here are some examples for Windows. Note that msvcrt is the MS standard C
> library containing most standard C functions, and uses the cdecl calling
> convention:
>
>>>> from ctypes import *
>>>> print windll.kernel32 # doctest: +WINDOWS
> <WinDLL 'kernel32', handle ... at ...>
>>>> print cdll.msvcrt # doctest: +WINDOWS
> <CDLL 'msvcrt', handle ... at ...>
>>>> libc = cdll.msvcrt # doctest: +WINDOWS
>>>
>

So? Why do you think that you cannot do the same in Pharo?
Have you digested what is available before doing it in Python?


> """
>
> It has examples for windows and linux.
>

I feel that you are seriously under-informed.
Just try googling for:

Squeak + FFI
Alien

NativeBoost

and just check what you can do using it:

http://www.squeaksource.com/NBOpenGL/

also check mail archives.

Forgive me, but i really can't understand , why you can't just look
for what you need by yourself?
Are google.com banned by your ISP?

For me this subject is interested in aspect, why this information
(while being available openly) didn't catch your
attention , so you using python instead.
(Okay, you might miss some functionality like being able to
automatically generate bindings to COM interfaces).
But again, i am sure that if you surf the net or ask right questions
on mailing list, you will probably discover that
there is already work being done in that direction.
And at last, if you feel that there is missing some key functionality
which you want, and you expect that it is also
could be useful to community, you can always implement it and share
with people (instead of using Python ;).
So, next who will come after you won't find himself in a desert with
couple of oasises few hundred miles away.

> I didn't read it all as I am unqualified to assess its capabilities or
> limitations, nor do I presently need it as the win32 extensions do easily
> and well what I presently need to do.
>
> Hopefully it can inform us as to what is expected and doable in alternative
> languages which are dynamic like Smalltalk.
>
> Jimmie
>



--
Best regards,
Igor Stasenko AKA sig.
laurent laffont
2011-05-06 05:11:08 UTC
Permalink
On Fri, May 6, 2011 at 3:19 AM, Igor Stasenko <siguctua at gmail.com> wrote:

> On 6 May 2011 01:03, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> > On 5/5/2011 4:25 PM, Igor Stasenko wrote:
> >
> > On 5 May 2011 21:39, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> >
> > On 5/5/2011 12:21 PM, Igor Stasenko wrote:
> >
> > On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> wrote:
> >
> > [Big Snip]
> >
> > Well said.
> > Except that i'm not sharing your view that its hard to interface with
> > foreign libraries.
> > Its not hard at all. Of course to connect two different worlds, you
> > need to have knowledge
> > in both of them. But this requirement not a bit different when you
> > take any other pair of languages and try to
> > connect them.
> >
> > Thanks,
> >
> > I have no knowledge of either the knowledge or the challenges involved in
> > using external libraries in Pharo or Squeak. I have no knowledge of
> > FFI/Alien or using C/C++/C# or compilers.
> >
>
> So, read about it. It doesn't bites. :)
>
> > As I said, I am totally unaware of the limitations of the system, but
> that
> > it did what I need, and would have liked to do that from Pharo/Squeak. I
> > know Dolphin has/had certain capabilities. But I don't prefer to use
> > non-open source software if at all possible for development. I also am
> very
> > preferential towards cross-platform software. Dolphin fails on all
> accounts.
> > I would choose my Python/Pharo blend over Dolphin any day. I know it
> > introduces some pain, but I am willing to accept the pain. I like tools
> that
> > allow me to use them where ever I am and whatever I am doing.
> >
> > However, that said, when I look at the facilities Python offers for such
> > capabilities it on appearances looks quite impressive.
> >
> > http://docs.python.org/library/ctypes.html
> >
> > """
> > ctypes is a foreign function library for Python. It provides C compatible
> > data types, and allows calling functions in DLLs or shared libraries. It
> can
> > be used to wrap these libraries in pure Python.
> >
> > 15.18.1.1. Loading dynamic link libraries
> >
> > ctypes exports the cdll, and on Windows windll and oledll objects, for
> > loading dynamic link libraries.
> >
> > You load libraries by accessing them as attributes of these objects. cdll
> > loads libraries which export functions using the standard cdecl calling
> > convention, while windll libraries call functions using the stdcall
> calling
> > convention. oledll also uses the stdcall calling convention, and assumes
> the
> > functions return a Windows HRESULT error code. The error code is used to
> > automatically raise a WindowsError exception when the function call
> fails.
> >
> > Here are some examples for Windows. Note that msvcrt is the MS standard C
> > library containing most standard C functions, and uses the cdecl calling
> > convention:
> >
> >>>> from ctypes import *
> >>>> print windll.kernel32 # doctest: +WINDOWS
> > <WinDLL 'kernel32', handle ... at ...>
> >>>> print cdll.msvcrt # doctest: +WINDOWS
> > <CDLL 'msvcrt', handle ... at ...>
> >>>> libc = cdll.msvcrt # doctest: +WINDOWS
> >>>
> >
>
> So? Why do you think that you cannot do the same in Pharo?
> Have you digested what is available before doing it in Python?
>
>
> > """
> >
> > It has examples for windows and linux.
> >
>
> I feel that you are seriously under-informed.
> Just try googling for:
>
> Squeak + FFI
> Alien
>
> NativeBoost
>
> and just check what you can do using it:
>
> http://www.squeaksource.com/NBOpenGL/
>
> also check mail archives.
>
> Forgive me, but i really can't understand , why you can't just look
> for what you need by yourself?
> Are google.com banned by your ISP?
>
> For me this subject is interested in aspect, why this information
> (while being available openly) didn't catch your
> attention , so you using python instead.
> (Okay, you might miss some functionality like being able to
> automatically generate bindings to COM interfaces).
> But again, i am sure that if you surf the net or ask right questions
> on mailing list, you will probably discover that
> there is already work being done in that direction.
>


Indeed, one thing FFI / Alien / NB don't have is a documentation as nice as
http://docs.python.org/library/ctypes.html in
http://book.pharo-project.org/

FFI / Alien / NB may be powerful, it seems I've never managed to do what I
want, even with all mailing lists support (search mails on yaz / z3950 or
id3taglib). In Python it works on OSX out of the box (I've just tried :)


But when I was working with Python and Ruby several years ago things was
easy (for my needs), I think because of documentation.

Laurent


And at last, if you feel that there is missing some key functionality
> which you want, and you expect that it is also
> could be useful to community, you can always implement it and share
> with people (instead of using Python ;).
> So, next who will come after you won't find himself in a desert with
> couple of oasises few hundred miles away.
>
> > I didn't read it all as I am unqualified to assess its capabilities or
> > limitations, nor do I presently need it as the win32 extensions do easily
> > and well what I presently need to do.
> >
> > Hopefully it can inform us as to what is expected and doable in
> alternative
> > languages which are dynamic like Smalltalk.
> >
> > Jimmie
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/415be375/attachment.html>
Igor Stasenko
2011-05-06 14:01:30 UTC
Permalink
On 6 May 2011 07:11, laurent laffont <laurent.laffont at gmail.com> wrote:
>
> On Fri, May 6, 2011 at 3:19 AM, Igor Stasenko <siguctua at gmail.com> wrote:
>>
>> On 6 May 2011 01:03, Jimmie Houchin <jlhouchin at gmail.com> wrote:
>> > On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 21:39, Jimmie Houchin <jlhouchin at gmail.com> wrote:
>> >
>> > On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> ?wrote:
>> >
>> > [Big Snip]
>> >
>> > Well said.
>> > Except that i'm not sharing your view that its hard to interface with
>> > foreign libraries.
>> > Its not hard at all. Of course to connect two different worlds, you
>> > need to have knowledge
>> > in both of them. But this requirement not a bit different when you
>> > take any other pair of languages and try to
>> > connect them.
>> >
>> > Thanks,
>> >
>> > I have no knowledge of either the knowledge or the challenges involved
>> > in
>> > using external libraries in Pharo or Squeak. I have no knowledge of
>> > FFI/Alien or using C/C++/C# or compilers.
>> >
>>
>> So, read about it. It doesn't bites. :)
>>
>> > As I said, I am totally unaware of the limitations of the system, but
>> > that
>> > it did what I need, and would have liked to do that from Pharo/Squeak. I
>> > know Dolphin has/had certain capabilities. But I don't prefer to use
>> > non-open source software if at all possible for development. I also am
>> > very
>> > preferential towards cross-platform software. Dolphin fails on all
>> > accounts.
>> > I would choose my Python/Pharo blend over Dolphin any day. I know it
>> > introduces some pain, but I am willing to accept the pain. I like tools
>> > that
>> > allow me to use them where ever I am and whatever I am doing.
>> >
>> > However, that said, when I look at the facilities Python offers for such
>> > capabilities it on appearances looks quite impressive.
>> >
>> > http://docs.python.org/library/ctypes.html
>> >
>> > """
>> > ctypes is a foreign function library for Python. It provides C
>> > compatible
>> > data types, and allows calling functions in DLLs or shared libraries. It
>> > can
>> > be used to wrap these libraries in pure Python.
>> >
>> > 15.18.1.1. Loading dynamic link libraries
>> >
>> > ctypes exports the cdll, and on Windows windll and oledll objects, for
>> > loading dynamic link libraries.
>> >
>> > You load libraries by accessing them as attributes of these objects.
>> > cdll
>> > loads libraries which export functions using the standard cdecl calling
>> > convention, while windll libraries call functions using the stdcall
>> > calling
>> > convention. oledll also uses the stdcall calling convention, and assumes
>> > the
>> > functions return a Windows HRESULT error code. The error code is used to
>> > automatically raise a WindowsError exception when the function call
>> > fails.
>> >
>> > Here are some examples for Windows. Note that msvcrt is the MS standard
>> > C
>> > library containing most standard C functions, and uses the cdecl calling
>> > convention:
>> >
>> >>>> from ctypes import *
>> >>>> print windll.kernel32 # doctest: +WINDOWS
>> > <WinDLL 'kernel32', handle ... at ...>
>> >>>> print cdll.msvcrt # doctest: +WINDOWS
>> > <CDLL 'msvcrt', handle ... at ...>
>> >>>> libc = cdll.msvcrt # doctest: +WINDOWS
>> >>>
>> >
>>
>> So? Why do you think that you cannot do the same in Pharo?
>> Have you digested what is available before doing it in Python?
>>
>>
>> > """
>> >
>> > It has examples for windows and linux.
>> >
>>
>> I feel that you are seriously under-informed.
>> Just try googling for:
>>
>> Squeak + FFI
>> Alien
>>
>> NativeBoost
>>
>> and just check what you can do using it:
>>
>> http://www.squeaksource.com/NBOpenGL/
>>
>> also check mail archives.
>>
>> Forgive me, but i really can't understand , why you can't just look
>> for what you need by yourself?
>> Are google.com banned by your ISP?
>>
>> For me this subject is interested in aspect, why this information
>> (while being available openly) didn't catch your
>> attention , so you using python instead.
>> (Okay, you might miss some functionality like being able to
>> automatically generate bindings to COM interfaces).
>> But again, i am sure that if you surf the net or ask right questions
>> on mailing list, you will probably discover that
>> there is already work being done in that direction.
>
>
> Indeed, one thing FFI / Alien / NB don't have is a documentation as nice
> as?http://docs.python.org/library/ctypes.html
> ?in?http://book.pharo-project.org/
> FFI / Alien / NB may be powerful, it seems I've never managed to do what I
> want, even with all mailing lists support (search mails on yaz / z3950 or
> id3taglib). In Python it works on OSX out of the box (I've just tried :)
>

Is it works because someone already provided a bindings for libraries
you mention,
or you did it by yourself?

Here a first hit from google search:

http://lists.indexdata.dk/pipermail/yazlist/2002-May/000269.html

<quote>
I wrote these files for more than 2 years ago to play with SWIG and PERL, they
are far from being used, but I have just done a fast perl test and the results
were just fine.

zclient.c
zclient.h
zclinet.i swig interface file

The zclient_wrap.c will be created as

> swig -python zclient.i

which should be compiled and linked with the rest
</quote>

So? Do you think it was easy in first place to a guy who did it from scratch?
Now you can easily use it (and its just works out of the box). But it
is because someone did it before you!

And if you gonna repeat same from scratch, then you will have to learn:
- C
- SWIG
- Python

so, do you still think that it easier to do that in Python than in Smalltalk?

> But when I was working with Python and Ruby several years ago things was
> easy (for my needs), I think because of documentation.
> Laurent
>



--
Best regards,
Igor Stasenko AKA sig.
laurent laffont
2011-05-06 16:45:49 UTC
Permalink
On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com> wrote:

> On 6 May 2011 07:11, laurent laffont <laurent.laffont at gmail.com> wrote:
> >
> > On Fri, May 6, 2011 at 3:19 AM, Igor Stasenko <siguctua at gmail.com>
> wrote:
> >>
> >> On 6 May 2011 01:03, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> >> > On 5/5/2011 4:25 PM, Igor Stasenko wrote:
> >> >
> >> > On 5 May 2011 21:39, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> >> >
> >> > On 5/5/2011 12:21 PM, Igor Stasenko wrote:
> >> >
> >> > On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> wrote:
> >> >
> >> > [Big Snip]
> >> >
> >> > Well said.
> >> > Except that i'm not sharing your view that its hard to interface with
> >> > foreign libraries.
> >> > Its not hard at all. Of course to connect two different worlds, you
> >> > need to have knowledge
> >> > in both of them. But this requirement not a bit different when you
> >> > take any other pair of languages and try to
> >> > connect them.
> >> >
> >> > Thanks,
> >> >
> >> > I have no knowledge of either the knowledge or the challenges involved
> >> > in
> >> > using external libraries in Pharo or Squeak. I have no knowledge of
> >> > FFI/Alien or using C/C++/C# or compilers.
> >> >
> >>
> >> So, read about it. It doesn't bites. :)
> >>
> >> > As I said, I am totally unaware of the limitations of the system, but
> >> > that
> >> > it did what I need, and would have liked to do that from Pharo/Squeak.
> I
> >> > know Dolphin has/had certain capabilities. But I don't prefer to use
> >> > non-open source software if at all possible for development. I also am
> >> > very
> >> > preferential towards cross-platform software. Dolphin fails on all
> >> > accounts.
> >> > I would choose my Python/Pharo blend over Dolphin any day. I know it
> >> > introduces some pain, but I am willing to accept the pain. I like
> tools
> >> > that
> >> > allow me to use them where ever I am and whatever I am doing.
> >> >
> >> > However, that said, when I look at the facilities Python offers for
> such
> >> > capabilities it on appearances looks quite impressive.
> >> >
> >> > http://docs.python.org/library/ctypes.html
> >> >
> >> > """
> >> > ctypes is a foreign function library for Python. It provides C
> >> > compatible
> >> > data types, and allows calling functions in DLLs or shared libraries.
> It
> >> > can
> >> > be used to wrap these libraries in pure Python.
> >> >
> >> > 15.18.1.1. Loading dynamic link libraries
> >> >
> >> > ctypes exports the cdll, and on Windows windll and oledll objects, for
> >> > loading dynamic link libraries.
> >> >
> >> > You load libraries by accessing them as attributes of these objects.
> >> > cdll
> >> > loads libraries which export functions using the standard cdecl
> calling
> >> > convention, while windll libraries call functions using the stdcall
> >> > calling
> >> > convention. oledll also uses the stdcall calling convention, and
> assumes
> >> > the
> >> > functions return a Windows HRESULT error code. The error code is used
> to
> >> > automatically raise a WindowsError exception when the function call
> >> > fails.
> >> >
> >> > Here are some examples for Windows. Note that msvcrt is the MS
> standard
> >> > C
> >> > library containing most standard C functions, and uses the cdecl
> calling
> >> > convention:
> >> >
> >> >>>> from ctypes import *
> >> >>>> print windll.kernel32 # doctest: +WINDOWS
> >> > <WinDLL 'kernel32', handle ... at ...>
> >> >>>> print cdll.msvcrt # doctest: +WINDOWS
> >> > <CDLL 'msvcrt', handle ... at ...>
> >> >>>> libc = cdll.msvcrt # doctest: +WINDOWS
> >> >>>
> >> >
> >>
> >> So? Why do you think that you cannot do the same in Pharo?
> >> Have you digested what is available before doing it in Python?
> >>
> >>
> >> > """
> >> >
> >> > It has examples for windows and linux.
> >> >
> >>
> >> I feel that you are seriously under-informed.
> >> Just try googling for:
> >>
> >> Squeak + FFI
> >> Alien
> >>
> >> NativeBoost
> >>
> >> and just check what you can do using it:
> >>
> >> http://www.squeaksource.com/NBOpenGL/
> >>
> >> also check mail archives.
> >>
> >> Forgive me, but i really can't understand , why you can't just look
> >> for what you need by yourself?
> >> Are google.com banned by your ISP?
> >>
> >> For me this subject is interested in aspect, why this information
> >> (while being available openly) didn't catch your
> >> attention , so you using python instead.
> >> (Okay, you might miss some functionality like being able to
> >> automatically generate bindings to COM interfaces).
> >> But again, i am sure that if you surf the net or ask right questions
> >> on mailing list, you will probably discover that
> >> there is already work being done in that direction.
> >
> >
> > Indeed, one thing FFI / Alien / NB don't have is a documentation as nice
> > as http://docs.python.org/library/ctypes.html
> > in http://book.pharo-project.org/
> > FFI / Alien / NB may be powerful, it seems I've never managed to do what
> I
> > want, even with all mailing lists support (search mails on yaz / z3950 or
> > id3taglib). In Python it works on OSX out of the box (I've just tried :)
> >
>
> Is it works because someone already provided a bindings for libraries
> you mention,
> or you did it by yourself?
>

Have just used ctypes:

>>> import ctypes
>>> import ctypes.util
>>> ctypes.util.find_library("yaz")
'/usr/local/lib/libyaz.dylib'
>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>>> con = yaz.ZOOM_connection_new("z3950.loc.gov", 7090);

Laurent


>
> Here a first hit from google search:
>
> http://lists.indexdata.dk/pipermail/yazlist/2002-May/000269.html
>
> <quote>
> I wrote these files for more than 2 years ago to play with SWIG and PERL,
> they
> are far from being used, but I have just done a fast perl test and the
> results
> were just fine.
>
> zclient.c
> zclient.h
> zclinet.i swig interface file
>
> The zclient_wrap.c will be created as
>
> > swig -python zclient.i
>
> which should be compiled and linked with the rest
> </quote>
>
> So? Do you think it was easy in first place to a guy who did it from
> scratch?
> Now you can easily use it (and its just works out of the box). But it
> is because someone did it before you!
>
> And if you gonna repeat same from scratch, then you will have to learn:
> - C
> - SWIG
> - Python
>
> so, do you still think that it easier to do that in Python than in
> Smalltalk?
>
> > But when I was working with Python and Ruby several years ago things was
> > easy (for my needs), I think because of documentation.
> > Laurent
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/e110f1cf/attachment.html>
laurent laffont
2011-05-06 16:55:16 UTC
Permalink
>
>
>> > Indeed, one thing FFI / Alien / NB don't have is a documentation as nice
>> > as http://docs.python.org/library/ctypes.html
>> > in http://book.pharo-project.org/
>> > FFI / Alien / NB may be powerful, it seems I've never managed to do what
>> I
>> > want, even with all mailing lists support (search mails on yaz / z3950
>> or
>> > id3taglib). In Python it works on OSX out of the box (I've just tried :)
>> >
>>
>> Is it works because someone already provided a bindings for libraries
>> you mention,
>> or you did it by yourself?
>>
>
> Have just used ctypes:
>
> >>> import ctypes
> >>> import ctypes.util
> >>> ctypes.util.find_library("yaz")
> '/usr/local/lib/libyaz.dylib'
> >>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
> >>> con = yaz.ZOOM_connection_new("z3950.loc.gov", 7090);
>

Indeed, I think the great thing is that I could write this in 5 mn just
looking at the doc, haven't used python for years.

In Pharo, well, .........


Laurent.



>
> Laurent
>
>
>>
>> Here a first hit from google search:
>>
>> http://lists.indexdata.dk/pipermail/yazlist/2002-May/000269.html
>>
>> <quote>
>> I wrote these files for more than 2 years ago to play with SWIG and PERL,
>> they
>> are far from being used, but I have just done a fast perl test and the
>> results
>> were just fine.
>>
>> zclient.c
>> zclient.h
>> zclinet.i swig interface file
>>
>> The zclient_wrap.c will be created as
>>
>> > swig -python zclient.i
>>
>> which should be compiled and linked with the rest
>> </quote>
>>
>> So? Do you think it was easy in first place to a guy who did it from
>> scratch?
>> Now you can easily use it (and its just works out of the box). But it
>> is because someone did it before you!
>>
>> And if you gonna repeat same from scratch, then you will have to learn:
>> - C
>> - SWIG
>> - Python
>>
>> so, do you still think that it easier to do that in Python than in
>> Smalltalk?
>>
>> > But when I was working with Python and Ruby several years ago things was
>> > easy (for my needs), I think because of documentation.
>> > Laurent
>> >
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/4a1b7ac8/attachment.html>
Igor Stasenko
2011-05-06 17:25:20 UTC
Permalink
On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com> wrote:
> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>>
>> Is it works because someone already provided a bindings for libraries
>> you mention,
>> or you did it by yourself?
>
> Have just used ctypes:
>>>> import ctypes
>>>> import ctypes.util
>>>> ctypes.util.find_library("yaz")
> '/usr/local/lib/libyaz.dylib'
>>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>>>> con = yaz.ZOOM_connection_new("z3950.loc.gov", 7090);

oh cool.. give me a 5 minutes to load external library, look up the
random symbol exported by it
and make a call to it with random number of arguments, and expect it
won't crash.

Works outta box! Cool.

Now serious. How about spending time writing a bindings for that library?
Where you have properly organized classes/interfaces, error handling
and other stuff.
No takers?

Seriously, if you want such kind of shitty interface, which allows you
to call arbitrary function with arbitrary arguments
without any argument type checking, i can write it for you.

> Laurent

--
Best regards,
Igor Stasenko AKA sig.
Dave Mason
2011-05-06 17:35:41 UTC
Permalink
On May 6, 2011, at 13:25, Igor Stasenko wrote:

> Seriously, if you want such kind of shitty interface, which allows you
> to call arbitrary function with arbitrary arguments
> without any argument type checking, i can write it for you.

Well, yes, actually. If it means they can access the big wide world beyond Smalltalk, lots of people *would* like that. Of course they'd like it better if there were the nice type-checking, etc. but presumably that would come incrementally.

Seriously, this might be something I could contribute to Pharo. Especially if Igor can get a simple, but functional, start going easily.

../Dave
Joseph T. Bore
2011-05-06 17:37:58 UTC
Permalink
On May 6, 2011, at 1:25 PM, Igor Stasenko wrote:

> Seriously, if you want such kind of shitty interface, which allows you
> to call arbitrary function with arbitrary arguments
> without any argument type checking, i can write it for you.

call me crazy but: yes i would like that interface.

ctypes works very well. i have used it plenty. it gives you the ability to get access to libraries trivially. you dont have to spend a week writing a wrapper for something you might only need for a short period of time. if you need to use that library extensively then you need to spend the time writing a proper library for it. you can call me crazy but i find functionality like this *extraordinarily* useful. both python and ruby have very nice implementations, its kind of a shame we dont yet.

were all adults here, i understand that if i do something stupid i will get bad results, but i like having the ability to make that decision.


jb

--
A man can live and be healthy without killing animals for food; therefore, if he eats meat, he participates in taking animal life merely for the sake of his appetite. And to act so is immoral. -Leo Tolstoy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/2b01802c/attachment.html>
laurent laffont
2011-05-06 17:47:09 UTC
Permalink
On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com> wrote:

> On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com> wrote:
> > On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com>
> wrote:
> >>
> >> Is it works because someone already provided a bindings for libraries
> >> you mention,
> >> or you did it by yourself?
> >
> > Have just used ctypes:
> >>>> import ctypes
> >>>> import ctypes.util
> >>>> ctypes.util.find_library("yaz")
> > '/usr/local/lib/libyaz.dylib'
> >>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
> >>>> con = yaz.ZOOM_connection_new("z3950.loc.gov", 7090);
>
> oh cool.. give me a 5 minutes to load external library, look up the
> random symbol exported by it
> and make a call to it with random number of arguments, and expect it
> won't crash.
>
> Works outta box! Cool.
>
> Now serious. How about spending time writing a bindings for that library?
> Where you have properly organized classes/interfaces, error handling
> and other stuff.
> No takers?
>
> Seriously, if you want such kind of shitty interface, which allows you
> to call arbitrary function with arbitrary arguments
> without any argument type checking, i can write it for you.
>


Do it, please do it. Seriously. Thanks

Laurent.



>
> > Laurent
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/78e3a138/attachment.html>
Schwab,Wilhelm K
2011-05-06 18:06:20 UTC
Permalink
No real agenda either way here, except to say that we almost have that in FFI. If you know enough to make the call, do you not know enough to write the FFI wrapper? Just asking. Having stirred the broth, I'll shut up and learn :)



________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of laurent laffont [laurent.laffont at gmail.com]
Sent: Friday, May 06, 2011 1:47 PM
To: Pharo-project at lists.gforge.inria.fr
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com>> wrote:
On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>> wrote:
> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com>> wrote:
>>
>> Is it works because someone already provided a bindings for libraries
>> you mention,
>> or you did it by yourself?
>
> Have just used ctypes:
>>>> import ctypes
>>>> import ctypes.util
>>>> ctypes.util.find_library("yaz")
> '/usr/local/lib/libyaz.dylib'
>>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>>>> con = yaz.ZOOM_connection_new("z3950.loc.gov<http://z3950.loc.gov>", 7090);

oh cool.. give me a 5 minutes to load external library, look up the
random symbol exported by it
and make a call to it with random number of arguments, and expect it
won't crash.

Works outta box! Cool.

Now serious. How about spending time writing a bindings for that library?
Where you have properly organized classes/interfaces, error handling
and other stuff.
No takers?

Seriously, if you want such kind of shitty interface, which allows you
to call arbitrary function with arbitrary arguments
without any argument type checking, i can write it for you.


Do it, please do it. Seriously. Thanks

Laurent.



> Laurent

--
Best regards,
Igor Stasenko AKA sig.
laurent laffont
2011-05-06 18:34:41 UTC
Permalink
On Fri, May 6, 2011 at 8:06 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu>wrote:

> No real agenda either way here, except to say that we almost have that in
> FFI. If you know enough to make the call, do you not know enough to write
> the FFI wrapper? Just asking. Having stirred the broth, I'll shut up and
> learn :)
>
>

My last attempts:
http://forum.world.st/Re-Z3950-on-OSX-module-yaz3-not-found-tp3161332p3161332.html
http://forum.world.st/Re-FFI-crashes-VM-on-Linux-was-Z3950-on-OSX-module-yaz3-not-found-td3163001.html

Any help appreciated.

Laurent.



>
>
> ________________________________________
> From: pharo-project-bounces at lists.gforge.inria.fr [
> pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of laurent laffont
> [laurent.laffont at gmail.com]
> Sent: Friday, May 06, 2011 1:47 PM
> To: Pharo-project at lists.gforge.inria.fr
> Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry
>
> On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com<mailto:
> siguctua at gmail.com>> wrote:
> On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com<mailto:
> laurent.laffont at gmail.com>> wrote:
> > On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com
> <mailto:siguctua at gmail.com>> wrote:
> >>
> >> Is it works because someone already provided a bindings for libraries
> >> you mention,
> >> or you did it by yourself?
> >
> > Have just used ctypes:
> >>>> import ctypes
> >>>> import ctypes.util
> >>>> ctypes.util.find_library("yaz")
> > '/usr/local/lib/libyaz.dylib'
> >>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
> >>>> con = yaz.ZOOM_connection_new("z3950.loc.gov<http://z3950.loc.gov>",
> 7090);
>
> oh cool.. give me a 5 minutes to load external library, look up the
> random symbol exported by it
> and make a call to it with random number of arguments, and expect it
> won't crash.
>
> Works outta box! Cool.
>
> Now serious. How about spending time writing a bindings for that library?
> Where you have properly organized classes/interfaces, error handling
> and other stuff.
> No takers?
>
> Seriously, if you want such kind of shitty interface, which allows you
> to call arbitrary function with arbitrary arguments
> without any argument type checking, i can write it for you.
>
>
> Do it, please do it. Seriously. Thanks
>
> Laurent.
>
>
>
> > Laurent
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/29b9d617/attachment.html>
Schwab,Wilhelm K
2011-05-06 19:16:13 UTC
Permalink
Laurent,

I am starting to understand your pain, or at least how it manifests itself in my world. First, the search path for libraries (Unix VM) can be a problem, not because of how it works, but because it does not tell me what it is trying to do. IMHO, any time the vm translates something (library name to search path, COM port name to number or vice versa), it should describe what it did, perhaps only if the attempt to open/load/whatever fails (if a load works, I'm probably happy and not looking). I have been known to hack the vm to add such tracing - syslog, stdout - wherever, but somewhere.

Mangled names are another topic, but I do NOT consider this to be a Squeak/Pharo/VM failing of any type. The author of the library failed to use extern "C" - simple as that. The most recent encounter I had with this was on Windows, and I left behind the following comment:

The conspicuous (in hindsight) absence of extern "C" from
the header file comes at a price: the names are mangled.
Enter pexports.exe and some copy/paste with periodic
acerbic remarks.

Translation: if you have not done this, consider using pexports.exe to obtain the true exported symbol names, and put them (with ?@, etc. intact) in your FFI definitions. HTH.

Bill


________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of laurent laffont [laurent.laffont at gmail.com]
Sent: Friday, May 06, 2011 2:34 PM
To: Pharo-project at lists.gforge.inria.fr
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 8:06 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu<mailto:bschwab at anest.ufl.edu>> wrote:
No real agenda either way here, except to say that we almost have that in FFI. If you know enough to make the call, do you not know enough to write the FFI wrapper? Just asking. Having stirred the broth, I'll shut up and learn :)



My last attempts:
http://forum.world.st/Re-Z3950-on-OSX-module-yaz3-not-found-tp3161332p3161332.html
http://forum.world.st/Re-FFI-crashes-VM-on-Linux-was-Z3950-on-OSX-module-yaz3-not-found-td3163001.html

Any help appreciated.

Laurent.




________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr> [pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr>] On Behalf Of laurent laffont [laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>]
Sent: Friday, May 06, 2011 1:47 PM
To: Pharo-project at lists.gforge.inria.fr<mailto:Pharo-project at lists.gforge.inria.fr>
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>>> wrote:
On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com><mailto:laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>>> wrote:
> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>>> wrote:
>>
>> Is it works because someone already provided a bindings for libraries
>> you mention,
>> or you did it by yourself?
>
> Have just used ctypes:
>>>> import ctypes
>>>> import ctypes.util
>>>> ctypes.util.find_library("yaz")
> '/usr/local/lib/libyaz.dylib'
>>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>>>> con = yaz.ZOOM_connection_new("z3950.loc.gov<http://z3950.loc.gov><http://z3950.loc.gov>", 7090);

oh cool.. give me a 5 minutes to load external library, look up the
random symbol exported by it
and make a call to it with random number of arguments, and expect it
won't crash.

Works outta box! Cool.

Now serious. How about spending time writing a bindings for that library?
Where you have properly organized classes/interfaces, error handling
and other stuff.
No takers?

Seriously, if you want such kind of shitty interface, which allows you
to call arbitrary function with arbitrary arguments
without any argument type checking, i can write it for you.


Do it, please do it. Seriously. Thanks

Laurent.



> Laurent

--
Best regards,
Igor Stasenko AKA sig.
laurent laffont
2011-05-06 20:44:17 UTC
Permalink
On Fri, May 6, 2011 at 9:16 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu>wrote:

> Laurent,
>
> I am starting to understand your pain, or at least how it manifests itself
> in my world. First, the search path for libraries (Unix VM) can be a
> problem, not because of how it works, but because it does not tell me what
> it is trying to do. IMHO, any time the vm translates something (library
> name to search path, COM port name to number or vice versa), it should
> describe what it did, perhaps only if the attempt to open/load/whatever
> fails (if a load works, I'm probably happy and not looking). I have been
> known to hack the vm to add such tracing - syslog, stdout - wherever, but
> somewhere.
>

Yes. I remember some mails you sent on this subject some months ago.



> Mangled names are another topic, but I do NOT consider this to be a
> Squeak/Pharo/VM failing of any type. The author of the library failed to
> use extern "C" - simple as that.


I wonder why Python / Ruby can manage mangled names and that FFI don't.
Because it's a real pain.

Laurent.



> The most recent encounter I had with this was on Windows, and I left behind
> the following comment:
>
> The conspicuous (in hindsight) absence of extern "C" from
> the header file comes at a price: the names are mangled.
> Enter pexports.exe and some copy/paste with periodic
> acerbic remarks.
>
> Translation: if you have not done this, consider using pexports.exe to
> obtain the true exported symbol names, and put them (with ?@, etc. intact)
> in your FFI definitions. HTH.
>
> Bill
>
>
> ________________________________________
> From: pharo-project-bounces at lists.gforge.inria.fr [
> pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of laurent laffont
> [laurent.laffont at gmail.com]
> Sent: Friday, May 06, 2011 2:34 PM
> To: Pharo-project at lists.gforge.inria.fr
> Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry
>
> On Fri, May 6, 2011 at 8:06 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu
> <mailto:bschwab at anest.ufl.edu>> wrote:
> No real agenda either way here, except to say that we almost have that in
> FFI. If you know enough to make the call, do you not know enough to write
> the FFI wrapper? Just asking. Having stirred the broth, I'll shut up and
> learn :)
>
>
>
> My last attempts:
>
> http://forum.world.st/Re-Z3950-on-OSX-module-yaz3-not-found-tp3161332p3161332.html
>
> http://forum.world.st/Re-FFI-crashes-VM-on-Linux-was-Z3950-on-OSX-module-yaz3-not-found-td3163001.html
>
> Any help appreciated.
>
> Laurent.
>
>
>
>
> ________________________________________
> From: pharo-project-bounces at lists.gforge.inria.fr<mailto:
> pharo-project-bounces at lists.gforge.inria.fr> [
> pharo-project-bounces at lists.gforge.inria.fr<mailto:
> pharo-project-bounces at lists.gforge.inria.fr>] On Behalf Of laurent laffont
> [laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>]
> Sent: Friday, May 06, 2011 1:47 PM
> To: Pharo-project at lists.gforge.inria.fr<mailto:
> Pharo-project at lists.gforge.inria.fr>
> Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry
>
> On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com<mailto:
> siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>>>
> wrote:
> On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com<mailto:
> laurent.laffont at gmail.com><mailto:laurent.laffont at gmail.com<mailto:
> laurent.laffont at gmail.com>>> wrote:
> > On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com
> <mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:
> siguctua at gmail.com>>> wrote:
> >>
> >> Is it works because someone already provided a bindings for libraries
> >> you mention,
> >> or you did it by yourself?
> >
> > Have just used ctypes:
> >>>> import ctypes
> >>>> import ctypes.util
> >>>> ctypes.util.find_library("yaz")
> > '/usr/local/lib/libyaz.dylib'
> >>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
> >>>> con = yaz.ZOOM_connection_new("z3950.loc.gov<http://z3950.loc.gov><
> http://z3950.loc.gov>", 7090);
>
> oh cool.. give me a 5 minutes to load external library, look up the
> random symbol exported by it
> and make a call to it with random number of arguments, and expect it
> won't crash.
>
> Works outta box! Cool.
>
> Now serious. How about spending time writing a bindings for that library?
> Where you have properly organized classes/interfaces, error handling
> and other stuff.
> No takers?
>
> Seriously, if you want such kind of shitty interface, which allows you
> to call arbitrary function with arbitrary arguments
> without any argument type checking, i can write it for you.
>
>
> Do it, please do it. Seriously. Thanks
>
> Laurent.
>
>
>
> > Laurent
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/e04fbb91/attachment.html>
Schwab,Wilhelm K
2011-05-06 21:40:13 UTC
Permalink
We might be able to introduce a way to look for a mangled match, proceeding if it it unique, or something like that?? I have just dealt with it by finding the exported name and putting in the call definition.




________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of laurent laffont [laurent.laffont at gmail.com]
Sent: Friday, May 06, 2011 4:44 PM
To: Pharo-project at lists.gforge.inria.fr
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 9:16 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu<mailto:bschwab at anest.ufl.edu>> wrote:
Laurent,

I am starting to understand your pain, or at least how it manifests itself in my world. First, the search path for libraries (Unix VM) can be a problem, not because of how it works, but because it does not tell me what it is trying to do. IMHO, any time the vm translates something (library name to search path, COM port name to number or vice versa), it should describe what it did, perhaps only if the attempt to open/load/whatever fails (if a load works, I'm probably happy and not looking). I have been known to hack the vm to add such tracing - syslog, stdout - wherever, but somewhere.

Yes. I remember some mails you sent on this subject some months ago.


Mangled names are another topic, but I do NOT consider this to be a Squeak/Pharo/VM failing of any type. The author of the library failed to use extern "C" - simple as that.

I wonder why Python / Ruby can manage mangled names and that FFI don't. Because it's a real pain.

Laurent.


The most recent encounter I had with this was on Windows, and I left behind the following comment:

The conspicuous (in hindsight) absence of extern "C" from
the header file comes at a price: the names are mangled.
Enter pexports.exe and some copy/paste with periodic
acerbic remarks.

Translation: if you have not done this, consider using pexports.exe to obtain the true exported symbol names, and put them (with ?@, etc. intact) in your FFI definitions. HTH.

Bill


________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr> [pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr>] On Behalf Of laurent laffont [laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>]
Sent: Friday, May 06, 2011 2:34 PM
To: Pharo-project at lists.gforge.inria.fr<mailto:Pharo-project at lists.gforge.inria.fr>
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 8:06 PM, Schwab,Wilhelm K <bschwab at anest.ufl.edu<mailto:bschwab at anest.ufl.edu><mailto:bschwab at anest.ufl.edu<mailto:bschwab at anest.ufl.edu>>> wrote:
No real agenda either way here, except to say that we almost have that in FFI. If you know enough to make the call, do you not know enough to write the FFI wrapper? Just asking. Having stirred the broth, I'll shut up and learn :)



My last attempts:
http://forum.world.st/Re-Z3950-on-OSX-module-yaz3-not-found-tp3161332p3161332.html
http://forum.world.st/Re-FFI-crashes-VM-on-Linux-was-Z3950-on-OSX-module-yaz3-not-found-td3163001.html

Any help appreciated.

Laurent.




________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr><mailto:pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr>> [pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr><mailto:pharo-project-bounces at lists.gforge.inria.fr<mailto:pharo-project-bounces at lists.gforge.inria.fr>>] On Behalf Of laurent laffont [laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com><mailto:laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>>]
Sent: Friday, May 06, 2011 1:47 PM
To: Pharo-project at lists.gforge.inria.fr<mailto:Pharo-project at lists.gforge.inria.fr><mailto:Pharo-project at lists.gforge.inria.fr<mailto:Pharo-project at lists.gforge.inria.fr>>
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>>>> wrote:
On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com><mailto:laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>><mailto:laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com><mailto:laurent.laffont at gmail.com<mailto:laurent.laffont at gmail.com>>>> wrote:
> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com><mailto:siguctua at gmail.com<mailto:siguctua at gmail.com>>>> wrote:
>>
>> Is it works because someone already provided a bindings for libraries
>> you mention,
>> or you did it by yourself?
>
> Have just used ctypes:
>>>> import ctypes
>>>> import ctypes.util
>>>> ctypes.util.find_library("yaz")
> '/usr/local/lib/libyaz.dylib'
>>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>>>> con = yaz.ZOOM_connection_new("z3950.loc.gov<http://z3950.loc.gov><http://z3950.loc.gov><http://z3950.loc.gov>", 7090);

oh cool.. give me a 5 minutes to load external library, look up the
random symbol exported by it
and make a call to it with random number of arguments, and expect it
won't crash.

Works outta box! Cool.

Now serious. How about spending time writing a bindings for that library?
Where you have properly organized classes/interfaces, error handling
and other stuff.
No takers?

Seriously, if you want such kind of shitty interface, which allows you
to call arbitrary function with arbitrary arguments
without any argument type checking, i can write it for you.


Do it, please do it. Seriously. Thanks

Laurent.



> Laurent

--
Best regards,
Igor Stasenko AKA sig.
Igor Stasenko
2011-05-07 00:10:34 UTC
Permalink
On 6 May 2011 19:47, laurent laffont <laurent.laffont at gmail.com> wrote:
> On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>>
>> On 6 May 2011 18:45, laurent laffont <laurent.laffont at gmail.com> wrote:
>> > On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <siguctua at gmail.com>
>> > wrote:
>> >>
>> >> Is it works because someone already provided a bindings for libraries
>> >> you mention,
>> >> or you did it by yourself?
>> >
>> > Have just used ctypes:
>> >>>> import ctypes
>> >>>> import ctypes.util
>> >>>> ctypes.util.find_library("yaz")
>> > '/usr/local/lib/libyaz.dylib'
>> >>>> yaz = ctypes.cdll.LoadLibrary("libyaz.dylib")
>> >>>> con = yaz.ZOOM_connection_new("z3950.loc.gov", 7090);
>>
>> oh cool.. give me a 5 minutes to load external library, look up the
>> random symbol exported by it
>> and make a call to it with random number of arguments, and expect it
>> won't crash.
>>
>> Works outta box! Cool.
>>
>> Now serious. How about spending time writing a bindings for that library?
>> Where you have properly organized classes/interfaces, error handling
>> and other stuff.
>> No takers?
>>
>> Seriously, if you want such kind of shitty interface, which allows you
>> to call arbitrary function with arbitrary arguments
>> without any argument type checking, i can write it for you.
>
>
> Do it, please do it. Seriously. Thanks
> Laurent.

Oh. Okay. I will put that in my years-long todo list. Remind me time to time :)

>
>>
>> > Laurent
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
>



--
Best regards,
Igor Stasenko AKA sig.
Jimmie Houchin
2011-05-06 06:04:06 UTC
Permalink
On 5/5/2011 8:19 PM, Igor Stasenko wrote:
> On 6 May 2011 01:03, Jimmie Houchin<jlhouchin at gmail.com> wrote:
>> On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>>
>> On 5 May 2011 21:39, Jimmie Houchin<jlhouchin at gmail.com> wrote:
>>
>> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>>
>> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> wrote:
>>
>> [Big Snip]
>>
>> Well said.
>> Except that i'm not sharing your view that its hard to interface with
>> foreign libraries.
>> Its not hard at all. Of course to connect two different worlds, you
>> need to have knowledge
>> in both of them. But this requirement not a bit different when you
>> take any other pair of languages and try to
>> connect them.
>>
>> Thanks,
>>
>> I have no knowledge of either the knowledge or the challenges involved in
>> using external libraries in Pharo or Squeak. I have no knowledge of
>> FFI/Alien or using C/C++/C# or compilers.
> So, read about it. It doesn't bites. :)
Yes, I know. But like many, my time is limited. I program my app in my
spare time. I have a full-time+ job and a very large family who want
some of my time.

>> As I said, I am totally unaware of the limitations of the system, but that
>> it did what I need, and would have liked to do that from Pharo/Squeak. I
>> know Dolphin has/had certain capabilities. But I don't prefer to use
>> non-open source software if at all possible for development. I also am very
>> preferential towards cross-platform software. Dolphin fails on all accounts.
>> I would choose my Python/Pharo blend over Dolphin any day. I know it
>> introduces some pain, but I am willing to accept the pain. I like tools that
>> allow me to use them where ever I am and whatever I am doing.
>>
>> However, that said, when I look at the facilities Python offers for such
>> capabilities it on appearances looks quite impressive.
>>
>> http://docs.python.org/library/ctypes.html
>>
>> """
>> ctypes is a foreign function library for Python. It provides C compatible
>> data types, and allows calling functions in DLLs or shared libraries. It can
>> be used to wrap these libraries in pure Python.
>>
>> 15.18.1.1. Loading dynamic link libraries
>>
>> ctypes exports the cdll, and on Windows windll and oledll objects, for
>> loading dynamic link libraries.
>>
>> You load libraries by accessing them as attributes of these objects. cdll
>> loads libraries which export functions using the standard cdecl calling
>> convention, while windll libraries call functions using the stdcall calling
>> convention. oledll also uses the stdcall calling convention, and assumes the
>> functions return a Windows HRESULT error code. The error code is used to
>> automatically raise a WindowsError exception when the function call fails.
>>
>> Here are some examples for Windows. Note that msvcrt is the MS standard C
>> library containing most standard C functions, and uses the cdecl calling
>> convention:
>>>>> from ctypes import *
>>>>> print windll.kernel32 # doctest: +WINDOWS
>> <WinDLL 'kernel32', handle ... at ...>
>>>>> print cdll.msvcrt # doctest: +WINDOWS
>> <CDLL 'msvcrt', handle ... at ...>
>>>>> libc = cdll.msvcrt # doctest: +WINDOWS
> So? Why do you think that you cannot do the same in Pharo?
> Have you digested what is available before doing it in Python?

I never said it couldn't be done in Pharo or Squeak. What I said is that
I lack the skills to do so in Pharo.

It isn't a two lines of code an your off and running. Which is what
Python provided me. Ok, in total, my Python code is more like 500 lines.
It interfaces the COM DLL and serves the data to my Pharo app which
provides all of my business logic. The Python app is simply an interface
and gateway. No business logic.

>> """
>> It has examples for windows and linux.
> I feel that you are seriously under-informed.
> Just try googling for:
>
> Squeak + FFI
> Alien
>
> NativeBoost
>
> and just check what you can do using it:
>
> http://www.squeaksource.com/NBOpenGL/
>
> also check mail archives.
>
> Forgive me, but i really can't understand , why you can't just look
> for what you need by yourself?
> Are google.com banned by your ISP?
>
> For me this subject is interested in aspect, why this information
> (while being available openly) didn't catch your
> attention , so you using python instead.
> (Okay, you might miss some functionality like being able to
> automatically generate bindings to COM interfaces).
> But again, i am sure that if you surf the net or ask right questions
> on mailing list, you will probably discover that
> there is already work being done in that direction.
> And at last, if you feel that there is missing some key functionality
> which you want, and you expect that it is also
> could be useful to community, you can always implement it and share
> with people (instead of using Python ;).
> So, next who will come after you won't find himself in a desert with
> couple of oasises few hundred miles away.
Oh, I've Googled and searched and read the mailing lists. I've had
off-list conversations with people who have used Alien/FFI about what I
need. It is presently beyond my current skill and knowledge and time to
acquire said knowledge. I am not saying it isn't doable. I am saying at
the moment it isn't anything I have the time to pursue. I already have
in place a working solution. It isn't as nice as I would like, or an
all Pharo solution. But it is working.

The current working solution is simply version 1.0 of my application.
When it is up and running and I have further time I will explore other
options.

Ok, as far mentioning this before here I go. :)

My messages

squeak-dev
11/17/2009 1:23 PM Re: My own Squeak direction
Presently I am writing an app that I would love to do in Squeak but cannot.
Why Squeak?
Simply because I love working within a live environment.
I love the tools available for writing the code.
I love being able to fix a problem live and continue on. Not starting
all over.

But I am constrained. I am provided two options for my application.
1. Interface with a Windows COM library.
2. Interface with Java libraries.

____________
squeak-dev
6/20/2010 11:52 PM Re: Interesting survey about smalltalk
I would love to be using Squeak for my financial application. Numerical
performance isn't currently what is stopping me. My problem is that I
require interfacing with a Windows COM dll and in a future version with
a Java library. Hopefully at some point I will be able to port to
Squeak. I would much prefer it to using Python, which is what I am
currently using.

____________
pharo-devel
9/29/2010 8:54 AM Re: Calling Python from Pharo
I have been much in the same situation. I am developing a financial
technical analysis application in Pharo. Part of my requirements are the
use of a Windows COM dll. I do not have the ability to use that dll from
within Pharo. (My skills are too limited) I have written the front
end/back end of my application in Python interfacing the dll and the
financial server. I am writing the middle part of the application in
Pharo using Seaside. My Python app will call my Seaside app with the
necessary data and my Seaside app will provide the Python app the
necessary actions. This also enables me to provide a web interface to my
application.

___________

12/31/2010 4:24 PM And for complete disclosure. My plans for my app
version 2.0 which eliminate interfacing any external library but rather
accessing a different protocol via http.

Proper Smalltalk lots of classes

I am porting the FIX protocol to Squeak/Pharo.
http://www.fixprotocol.org/

...

I haven't been silent (dating back to Nov. 2009), and I have done some
due diligence. My decisions weren't made out of ignorance of what
options are available, but rather my ignorance and ability to use some
of the options.

I am interested in writing my application. Not down and dirty
interfacing of external libraries. That isn't where my knowledge or
skill lies. It isn't where I want to spend my time. Which is why I
commented about the Python library which allowed me to interface a COM
DLL in two lines. The ctypes library I referred to above, I chose not
to use because it wasn't as easy as the already working solution I had.
The Python library generated

As I stated, I am not a professional programmer. I have no computer
science background. I have no C/C++/C# skills. The more time I spend
doing low level stuff or learning how to do so, the less time I have to
spend on what my app is intended to do, the business logic.

My goal is more along the lines of getting my business up and running
and hiring knowledgeable people like you to do the things that enable
people like me.

I find Smalltalk enabling for the guy with an idea. Its the most
enabling and empowering tool I've found for my ideas. I would like to
see it improve in its enabling ability.
I get excited about executing my ideas.

If I had no options but to learn Alien/FFI or ctypes, or C/C++/C#/F3, in
order to build my application. I would. But it would delay me
considerably. I have more ideas, than time.

I would like to see Pharo's story for interfacing external libraries to
be better than Pythons. It would be very enabling for those of us with
less skills, and less time for those who have the skills.

Thanks.

Jimmie
Igor Stasenko
2011-05-06 13:35:17 UTC
Permalink
On 6 May 2011 08:04, Jimmie Houchin <jlhouchin at gmail.com> wrote:
> On 5/5/2011 8:19 PM, Igor Stasenko wrote:
>>
>> On 6 May 2011 01:03, Jimmie Houchin<jlhouchin at gmail.com> ?wrote:
>>>
>>> On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>>>
>>> On 5 May 2011 21:39, Jimmie Houchin<jlhouchin at gmail.com> ?wrote:
>>>
>>> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>>>
>>> On 5 May 2011 18:57, Jimmie Houchin<jlhouchin at gmail.com> ? ?wrote:
>>>
>>> [Big Snip]
>>>
>>> Well said.
>>> Except that i'm not sharing your view that its hard to interface with
>>> foreign libraries.
>>> Its not hard at all. Of course to connect two different worlds, you
>>> need to have knowledge
>>> in both of them. But this requirement not a bit different when you
>>> take any other pair of languages and try to
>>> connect them.
>>>
>>> Thanks,
>>>
>>> I have no knowledge of either the knowledge or the challenges involved in
>>> using external libraries in Pharo or Squeak. I have no knowledge of
>>> FFI/Alien or using C/C++/C# or compilers.
>>
>> So, read about it. It doesn't bites. :)
>
> Yes, I know. But like many, my time is limited. I program my app in my spare
> time. I have a full-time+ job and a very large family who want some of my
> time.
>

No-no-no. Don't say that. We're all having own constraints. :)

>>> As I said, I am totally unaware of the limitations of the system, but
>>> that
>>> it did what I need, and would have liked to do that from Pharo/Squeak. I
>>> know Dolphin has/had certain capabilities. But I don't prefer to use
>>> non-open source software if at all possible for development. I also am
>>> very
>>> preferential towards cross-platform software. Dolphin fails on all
>>> accounts.
>>> I would choose my Python/Pharo blend over Dolphin any day. I know it
>>> introduces some pain, but I am willing to accept the pain. I like tools
>>> that
>>> allow me to use them where ever I am and whatever I am doing.
>>>
>>> However, that said, when I look at the facilities Python offers for such
>>> capabilities it on appearances looks quite impressive.
>>>
>>> http://docs.python.org/library/ctypes.html
>>>
>>> """
>>> ctypes is a foreign function library for Python. It provides C compatible
>>> data types, and allows calling functions in DLLs or shared libraries. It
>>> can
>>> be used to wrap these libraries in pure Python.
>>>
>>> 15.18.1.1. Loading dynamic link libraries
>>>
>>> ctypes exports the cdll, and on Windows windll and oledll objects, for
>>> loading dynamic link libraries.
>>>
>>> You load libraries by accessing them as attributes of these objects. cdll
>>> loads libraries which export functions using the standard cdecl calling
>>> convention, while windll libraries call functions using the stdcall
>>> calling
>>> convention. oledll also uses the stdcall calling convention, and assumes
>>> the
>>> functions return a Windows HRESULT error code. The error code is used to
>>> automatically raise a WindowsError exception when the function call
>>> fails.
>>>
>>> Here are some examples for Windows. Note that msvcrt is the MS standard C
>>> library containing most standard C functions, and uses the cdecl calling
>>> convention:
>>>>>>
>>>>>> from ctypes import *
>>>>>> print windll.kernel32 # doctest: +WINDOWS
>>>
>>> <WinDLL 'kernel32', handle ... at ...>
>>>>>>
>>>>>> print cdll.msvcrt # doctest: +WINDOWS
>>>
>>> <CDLL 'msvcrt', handle ... at ...>
>>>>>>
>>>>>> libc = cdll.msvcrt # doctest: +WINDOWS
>>
>> So? Why do you think that you cannot do the same in Pharo?
>> Have you digested what is available before doing it in Python?
>
> I never said it couldn't be done in Pharo or Squeak. What I said is that I
> lack the skills to do so in Pharo.
>
> It isn't a two lines of code an your off and running. Which is what Python
> provided me. Ok, in total, my Python code is more like 500 lines. It
> interfaces the COM DLL and serves the data to my Pharo app which provides
> all of my business logic. The Python app is simply an interface and gateway.
> No business logic.
>

Check the
http://wiki.squeak.org/squeak/3773

It may not work with Pharo out of the box. But then it is really up to
people who care about it:
- do you want it to be working? Then do something, ask people, ask for
help, organize & communicate.


>>> """
>>> It has examples for windows and linux.
>>
>> I feel that you are seriously under-informed.
>> Just try googling for:
>>
>> Squeak + FFI
>> Alien
>>
>> NativeBoost
>>
>> and just check what you can do using it:
>>
>> http://www.squeaksource.com/NBOpenGL/
>>
>> also check mail archives.
>>
>> Forgive me, but i really can't understand , why you can't just look
>> for what you need by yourself?
>> Are google.com banned by your ISP?
>>
>> For me this subject is interested in aspect, why this information
>> (while being available openly) didn't catch your
>> attention , so you using python instead.
>> (Okay, you might miss some functionality like being able to
>> automatically generate bindings to COM interfaces).
>> But again, i am sure that if you surf the net or ask right questions
>> on mailing list, you will probably discover that
>> there is already work being done in that direction.
>> And at last, if you feel that there is missing some key functionality
>> which you want, and you expect that it is also
>> could be useful to community, you can always implement it and share
>> with people (instead of using Python ;).
>> So, next who will come after you won't find himself in a desert with
>> couple of oasises few hundred miles away.
>
> Oh, I've Googled and searched and read the mailing lists. I've had off-list
> conversations with people who have used Alien/FFI about what I need. It is
> presently beyond my current skill and knowledge and time to acquire said
> knowledge. I am not saying it isn't doable. I am saying at the moment it
> isn't anything I have the time to pursue. I already have in place a working
> solution. It isn't as nice as ?I would like, or an all Pharo solution. But
> it is working.
>
> The current working solution is simply version 1.0 of my application. When
> it is up and running and I have further time I will explore other options.
>
> Ok, as far mentioning this before here I go. :)
>
> My messages
>
[snip]

> As I stated, I am not a professional programmer. I have no computer science
> background. I have no C/C++/C# skills. The more time I spend doing low level
> stuff or learning how to do so, the less time I have to spend on what my app
> is intended to do, the business logic.
>

But you still need someone to do it.

> My goal is more along the lines of getting my business up and running and
> hiring knowledgeable people like you to do the things that enable people
> like me.
>
> I find Smalltalk enabling for the guy with an idea. Its the most enabling
> and empowering tool I've found for my ideas. I would like to see it improve
> in its enabling ability.
> I get excited about executing my ideas.
>
> If I had no options but to learn Alien/FFI or ctypes, or C/C++/C#/F3, in
> order to build my application. I would. But it would delay me considerably.
> I have more ideas, than time.
>
So, find people who will help you.

Apparently, if you decide to live with the status-quo and there is no
any initiative from your side to improve the situation,
then nothing will change.
And then expect that next guy who will come here, will keep saying the
same: yes i would love to use smalltalk,
but i can't because it missing X, Y, Z.. so i will use Python instead.

> I would like to see Pharo's story for interfacing external libraries to be
> better than Pythons. It would be very enabling for those of us with less
> skills, and less time for those who have the skills.
>

We're working on that. But i'd like to say that situation is not so
different that in Python.
Comparing to ctype , we have complete analog for it - FFI , Alien or NativeBoost

> Thanks.
>
> Jimmie
>

--
Best regards,
Igor Stasenko AKA sig.
Stéphane Ducasse
2011-05-06 08:30:21 UTC
Permalink
Igor

We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
not work. So we should really improve that aspect.
Igor not everbody is able to code in assembler for nativeboost.
So NB is probably a good insfrastructure but not ready for consumption for everybody.
The interaction with C should be improved :)

Stef


> So, read about it. It doesn't bites. :)
>
>> As I said, I am totally unaware of the limitations of the system, but that
>> it did what I need, and would have liked to do that from Pharo/Squeak. I
>> know Dolphin has/had certain capabilities. But I don't prefer to use
>> non-open source software if at all possible for development. I also am very
>> preferential towards cross-platform software. Dolphin fails on all accounts.
>> I would choose my Python/Pharo blend over Dolphin any day. I know it
>> introduces some pain, but I am willing to accept the pain. I like tools that
>> allow me to use them where ever I am and whatever I am doing.
>>
>> However, that said, when I look at the facilities Python offers for such
>> capabilities it on appearances looks quite impressive.
>>
>> http://docs.python.org/library/ctypes.html
>>
>> """
>> ctypes is a foreign function library for Python. It provides C compatible
>> data types, and allows calling functions in DLLs or shared libraries. It can
>> be used to wrap these libraries in pure Python.
>>
>> 15.18.1.1. Loading dynamic link libraries
>>
>> ctypes exports the cdll, and on Windows windll and oledll objects, for
>> loading dynamic link libraries.
>>
>> You load libraries by accessing them as attributes of these objects. cdll
>> loads libraries which export functions using the standard cdecl calling
>> convention, while windll libraries call functions using the stdcall calling
>> convention. oledll also uses the stdcall calling convention, and assumes the
>> functions return a Windows HRESULT error code. The error code is used to
>> automatically raise a WindowsError exception when the function call fails.
>>
>> Here are some examples for Windows. Note that msvcrt is the MS standard C
>> library containing most standard C functions, and uses the cdecl calling
>> convention:
>>
>>>>> from ctypes import *
>>>>> print windll.kernel32 # doctest: +WINDOWS
>> <WinDLL 'kernel32', handle ... at ...>
>>>>> print cdll.msvcrt # doctest: +WINDOWS
>> <CDLL 'msvcrt', handle ... at ...>
>>>>> libc = cdll.msvcrt # doctest: +WINDOWS
>>>>
>>
>
> So? Why do you think that you cannot do the same in Pharo?
> Have you digested what is available before doing it in Python?
>
>
>> """
>>
>> It has examples for windows and linux.
>>
>
> I feel that you are seriously under-informed.
> Just try googling for:
>
> Squeak + FFI
> Alien
>
> NativeBoost
>
> and just check what you can do using it:
>
> http://www.squeaksource.com/NBOpenGL/
>
> also check mail archives.
>
> Forgive me, but i really can't understand , why you can't just look
> for what you need by yourself?
> Are google.com banned by your ISP?
>
> For me this subject is interested in aspect, why this information
> (while being available openly) didn't catch your
> attention , so you using python instead.
> (Okay, you might miss some functionality like being able to
> automatically generate bindings to COM interfaces).
> But again, i am sure that if you surf the net or ask right questions
> on mailing list, you will probably discover that
> there is already work being done in that direction.
> And at last, if you feel that there is missing some key functionality
> which you want, and you expect that it is also
> could be useful to community, you can always implement it and share
> with people (instead of using Python ;).
> So, next who will come after you won't find himself in a desert with
> couple of oasises few hundred miles away.
>
>> I didn't read it all as I am unqualified to assess its capabilities or
>> limitations, nor do I presently need it as the win32 extensions do easily
>> and well what I presently need to do.
>>
>> Hopefully it can inform us as to what is expected and doable in alternative
>> languages which are dynamic like Smalltalk.
>>
>> Jimmie
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
Toon Verwaest
2011-05-06 08:52:10 UTC
Permalink
Exactly right.

BUT! Very cool job. I'll have a look at it in detail once I start
interfacing more thoroughly with real C apps outside of my own natives :)
I wonder if being able to extend the object model of Smalltalk for
native object wrappers would give you benefit... I guess it would?

On 05/06/2011 10:30 AM, St?phane Ducasse wrote:
> Igor
>
> We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
> not work. So we should really improve that aspect.
> Igor not everbody is able to code in assembler for nativeboost.
> So NB is probably a good insfrastructure but not ready for consumption for everybody.
> The interaction with C should be improved :)
>
> Stef
>
>
>> So, read about it. It doesn't bites. :)
>>
>>> As I said, I am totally unaware of the limitations of the system, but that
>>> it did what I need, and would have liked to do that from Pharo/Squeak. I
>>> know Dolphin has/had certain capabilities. But I don't prefer to use
>>> non-open source software if at all possible for development. I also am very
>>> preferential towards cross-platform software. Dolphin fails on all accounts.
>>> I would choose my Python/Pharo blend over Dolphin any day. I know it
>>> introduces some pain, but I am willing to accept the pain. I like tools that
>>> allow me to use them where ever I am and whatever I am doing.
>>>
>>> However, that said, when I look at the facilities Python offers for such
>>> capabilities it on appearances looks quite impressive.
>>>
>>> http://docs.python.org/library/ctypes.html
>>>
>>> """
>>> ctypes is a foreign function library for Python. It provides C compatible
>>> data types, and allows calling functions in DLLs or shared libraries. It can
>>> be used to wrap these libraries in pure Python.
>>>
>>> 15.18.1.1. Loading dynamic link libraries
>>>
>>> ctypes exports the cdll, and on Windows windll and oledll objects, for
>>> loading dynamic link libraries.
>>>
>>> You load libraries by accessing them as attributes of these objects. cdll
>>> loads libraries which export functions using the standard cdecl calling
>>> convention, while windll libraries call functions using the stdcall calling
>>> convention. oledll also uses the stdcall calling convention, and assumes the
>>> functions return a Windows HRESULT error code. The error code is used to
>>> automatically raise a WindowsError exception when the function call fails.
>>>
>>> Here are some examples for Windows. Note that msvcrt is the MS standard C
>>> library containing most standard C functions, and uses the cdecl calling
>>> convention:
>>>
>>>>>> from ctypes import *
>>>>>> print windll.kernel32 # doctest: +WINDOWS
>>> <WinDLL 'kernel32', handle ... at ...>
>>>>>> print cdll.msvcrt # doctest: +WINDOWS
>>> <CDLL 'msvcrt', handle ... at ...>
>>>>>> libc = cdll.msvcrt # doctest: +WINDOWS
>> So? Why do you think that you cannot do the same in Pharo?
>> Have you digested what is available before doing it in Python?
>>
>>
>>> """
>>>
>>> It has examples for windows and linux.
>>>
>> I feel that you are seriously under-informed.
>> Just try googling for:
>>
>> Squeak + FFI
>> Alien
>>
>> NativeBoost
>>
>> and just check what you can do using it:
>>
>> http://www.squeaksource.com/NBOpenGL/
>>
>> also check mail archives.
>>
>> Forgive me, but i really can't understand , why you can't just look
>> for what you need by yourself?
>> Are google.com banned by your ISP?
>>
>> For me this subject is interested in aspect, why this information
>> (while being available openly) didn't catch your
>> attention , so you using python instead.
>> (Okay, you might miss some functionality like being able to
>> automatically generate bindings to COM interfaces).
>> But again, i am sure that if you surf the net or ask right questions
>> on mailing list, you will probably discover that
>> there is already work being done in that direction.
>> And at last, if you feel that there is missing some key functionality
>> which you want, and you expect that it is also
>> could be useful to community, you can always implement it and share
>> with people (instead of using Python ;).
>> So, next who will come after you won't find himself in a desert with
>> couple of oasises few hundred miles away.
>>
>>> I didn't read it all as I am unqualified to assess its capabilities or
>>> limitations, nor do I presently need it as the win32 extensions do easily
>>> and well what I presently need to do.
>>>
>>> Hopefully it can inform us as to what is expected and doable in alternative
>>> languages which are dynamic like Smalltalk.
>>>
>>> Jimmie
>>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>
Stefan Marr
2011-05-06 08:55:22 UTC
Permalink
On 06 May 2011, at 10:30, St?phane Ducasse wrote:

> Igor
>
> We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
> not work. So we should really improve that aspect.
> Igor not everbody is able to code in assembler for nativeboost.
> So NB is probably a good insfrastructure but not ready for consumption for everybody.
> The interaction with C should be improved :)
>
> Stef

No, Stef, you didn't get it!
It is documentation which needs to be improved in the first place. Documentation and its presentation. You know another reason why people love PHP? It is an ugly and awful language, but absolutely everything you ever want to do is covered in the docs, because people actually add examples and comments.

And frankly, you book efforts are certainly interesting, but far from being as visible and as accessible as online docs of other languages. That's what Smalltalk sucks at, accessible online documentation. People do google when they have a problem. If it does not pop up on the first page, it does not exists.

My impression of Smalltalk documentation is, it is non-existing. I usually do not even care to google, because it is unlikely that I find something. Instead I ask people. (And if you look at the traffic on the mailing list, thats not just me)
That's a community issue, a problem of culture. I would never think about asking anyone if I have a problem with Python or PHP. I know everything is just a few google hits away.

Ah, and tooling of course...



--
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
Stéphane Ducasse
2011-05-06 09:02:27 UTC
Permalink
Hi stefan
I disagree with the C integration. This is still not really good in Pharo and I agree with Jimmie.
Now for the documentation when did you send an help documentation for any part of the system?
Or a bug fix?
I find quite funny that people always talk but few are doing. We welcome comments/examples help.

Stef


>> Igor
>>
>> We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
>> not work. So we should really improve that aspect.
>> Igor not everbody is able to code in assembler for nativeboost.
>> So NB is probably a good insfrastructure but not ready for consumption for everybody.
>> The interaction with C should be improved :)
>>
>> Stef
>
> No, Stef, you didn't get it!
> It is documentation which needs to be improved in the first place. Documentation and its presentation. You know another reason why people love PHP? It is an ugly and awful language, but absolutely everything you ever want to do is covered in the docs, because people actually add examples and comments.
>
> And frankly, you book efforts are certainly interesting, but far from being as visible and as accessible as online docs of other languages. That's what Smalltalk sucks at, accessible online documentation. People do google when they have a problem. If it does not pop up on the first page, it does not exists.
>
> My impression of Smalltalk documentation is, it is non-existing. I usually do not even care to google, because it is unlikely that I find something. Instead I ask people. (And if you look at the traffic on the mailing list, thats not just me)
> That's a community issue, a problem of culture. I would never think about asking anyone if I have a problem with Python or PHP. I know everything is just a few google hits away.
>
> Ah, and tooling of course...
>
>
>
> --
> 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
>
>
Toon Verwaest
2011-05-06 09:05:49 UTC
Permalink
> Now for the documentation when did you send an help documentation for any part of the system?
> Or a bug fix?
> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
No need to get into a cat-fight here :)

I do agree with Stefan, as well as with you that we could help; but I'm
unaware of a good documentation effort outside of the image to start
with. Camillo's website project might be the best effort I've seen until
now; but then I didn't really look either. Maybe I missed some great
website?
Stéphane Ducasse
2011-05-06 09:17:57 UTC
Permalink
>> Now for the documentation when did you send an help documentation for any part of the system?
>> Or a bug fix?
>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
> No need to get into a cat-fight here :)

No this is not my point. But what do people really do to help?

> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?

If this is just to spit out class comment on html I do not call that a documentation.
Now we can take the book contents and generate html
We have 350 pages in the first book and the same in the second one.
People are free to join and write one or two chapters.

Stef
Toon Verwaest
2011-05-06 09:25:04 UTC
Permalink
> If this is just to spit out class comment on html I do not call that a documentation.
> Now we can take the book contents and generate html
> We have 350 pages in the first book and the same in the second one.
> People are free to join and write one or two chapters.
Generating HTML already seems like a good idea. I like the HTML version
of SICP a lot for example.
Dave Mason
2011-05-06 14:43:54 UTC
Permalink
On May 6, 2011, at 05:25, Toon Verwaest wrote:

>> If this is just to spit out class comment on html I do not call that a documentation.
>> Now we can take the book contents and generate html
>> We have 350 pages in the first book and the same in the second one.
>> People are free to join and write one or two chapters.
> Generating HTML already seems like a good idea. I like the HTML version of SICP a lot for example.

+100

Google (and others) *are* key. I and many others have huge sets of bookmarks we never access because Google has become fast enough and authoritative enough that it's always the source I turn to first for information about almost anything.

Turn the book into a web-based tutorial, and get all of us to link to it, get it listed in references for programming language stuff, such as Wikipedia pages on smalltalk etc, LtU, and others and do some other SEO.

../Dave
Serge Stinckwich
2011-05-06 14:51:05 UTC
Permalink
On Fri, May 6, 2011 at 9:43 PM, Dave Mason <dmason at mason-rose.ca> wrote:
>
> On May 6, 2011, at 05:25, Toon Verwaest wrote:
>
>>> If this is just to spit out class comment on html I do not call that a documentation.
>>> Now we can take the book contents and generate html
>>> We have 350 pages in the first book and the same in the second one.
>>> People are free to join and write one or two chapters.
>> Generating HTML already seems like a good idea. I like the HTML version of SICP a lot for example.
>
> +100
>
> Google (and others) *are* key. ?I and many others have huge sets of bookmarks we never access because Google has become fast enough and authoritative enough that it's always the source I turn to first for information about almost anything.
>
> Turn the book into a web-based tutorial, and get all of us to link to it, get it listed in references for programming language stuff, such as Wikipedia pages on smalltalk etc, LtU, and others and do some other SEO.

Yes, we need some SEO expert to enhance Smalltalk rank ;-)
Another aspect important is to have searchable SqueakSource projects.

--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/
Sven Van Caekenberghe
2011-05-06 09:26:45 UTC
Permalink
On 06 May 2011, at 11:17, St?phane Ducasse wrote:

>>> Now for the documentation when did you send an help documentation for any part of the system?
>>> Or a bug fix?
>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
>> No need to get into a cat-fight here :)
>
> No this is not my point. But what do people really do to help?
>
>> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?
>
> If this is just to spit out class comment on html I do not call that a documentation.
> Now we can take the book contents and generate html
> We have 350 pages in the first book and the same in the second one.
> People are free to join and write one or two chapters.

St?phane,

Of course you are right: wining/complaining doesn't help, only action does. We need more people like Laurent focusing on documentation.

I for one think that the well written, high quality books that exist (PBE, Seaside Book) are *very valuable*, much better than confusing wiki site (although these have their place as well).

But the other point is: in most other popular languages, what current, young developers do, when they get an error that they don't understand is copy/paste the literal text in Google and in a surprisingly large number of cases you find some real answers in the first page.

This is also related to popularity of course.

Sven
Stéphane Ducasse
2011-05-06 09:34:27 UTC
Permalink
Probably we should find a way to generate HTML from PDF or Latex.
Any ideas?

>>>> Now for the documentation when did you send an help documentation for any part of the system?
>>>> Or a bug fix?
>>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
>>> No need to get into a cat-fight here :)
>>
>> No this is not my point. But what do people really do to help?
>>
>>> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?
>>
>> If this is just to spit out class comment on html I do not call that a documentation.
>> Now we can take the book contents and generate html
>> We have 350 pages in the first book and the same in the second one.
>> People are free to join and write one or two chapters.
>
> St?phane,
>
> Of course you are right: wining/complaining doesn't help, only action does. We need more people like Laurent focusing on documentation.
>
> I for one think that the well written, high quality books that exist (PBE, Seaside Book) are *very valuable*, much better than confusing wiki site (although these have their place as well).
>
> But the other point is: in most other popular languages, what current, young developers do, when they get an error that they don't understand is copy/paste the literal text in Google and in a surprisingly large number of cases you find some real answers in the first page.
>
> This is also related to popularity of course.
>
> Sven
laurent laffont
2011-05-06 09:51:19 UTC
Permalink
On Fri, May 6, 2011 at 11:34 AM, St?phane Ducasse <stephane.ducasse at inria.fr
> wrote:

> Probably we should find a way to generate HTML from PDF or Latex.

Any ideas?
>

I've used latex2html several years ago.

+1 for html

Laurent.



>
> >>>> Now for the documentation when did you send an help documentation for
> any part of the system?
> >>>> Or a bug fix?
> >>>> I find quite funny that people always talk but few are doing. We
> welcome comments/examples help.
> >>> No need to get into a cat-fight here :)
> >>
> >> No this is not my point. But what do people really do to help?
> >>
> >>> I do agree with Stefan, as well as with you that we could help; but I'm
> unaware of a good documentation effort outside of the image to start with.
> Camillo's website project might be the best effort I've seen until now; but
> then I didn't really look either. Maybe I missed some great website?
> >>
> >> If this is just to spit out class comment on html I do not call that a
> documentation.
> >> Now we can take the book contents and generate html
> >> We have 350 pages in the first book and the same in the second one.
> >> People are free to join and write one or two chapters.
> >
> > St?phane,
> >
> > Of course you are right: wining/complaining doesn't help, only action
> does. We need more people like Laurent focusing on documentation.
> >
> > I for one think that the well written, high quality books that exist
> (PBE, Seaside Book) are *very valuable*, much better than confusing wiki
> site (although these have their place as well).
> >
> > But the other point is: in most other popular languages, what current,
> young developers do, when they get an error that they don't understand is
> copy/paste the literal text in Google and in a surprisingly large number of
> cases you find some real answers in the first page.
> >
> > This is also related to popularity of course.
> >
> > Sven
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/29cc2fed/attachment.html>
Stéphane Ducasse
2011-05-06 09:56:19 UTC
Permalink
Ok if some good souls want to give a try to generate html.

Stef



> Probably we should find a way to generate HTML from PDF or Latex.
> Any ideas?
>
> I've used latex2html several years ago.
>
> +1 for html
>
> Laurent.
>
>
>
> >>>> Now for the documentation when did you send an help documentation for any part of the system?
> >>>> Or a bug fix?
> >>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
> >>> No need to get into a cat-fight here :)
> >>
> >> No this is not my point. But what do people really do to help?
> >>
> >>> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?
> >>
> >> If this is just to spit out class comment on html I do not call that a documentation.
> >> Now we can take the book contents and generate html
> >> We have 350 pages in the first book and the same in the second one.
> >> People are free to join and write one or two chapters.
> >
> > St?phane,
> >
> > Of course you are right: wining/complaining doesn't help, only action does. We need more people like Laurent focusing on documentation.
> >
> > I for one think that the well written, high quality books that exist (PBE, Seaside Book) are *very valuable*, much better than confusing wiki site (although these have their place as well).
> >
> > But the other point is: in most other popular languages, what current, young developers do, when they get an error that they don't understand is copy/paste the literal text in Google and in a surprisingly large number of cases you find some real answers in the first page.
> >
> > This is also related to popularity of course.
> >
> > Sven
>
>
>
Nicolas Cellier
2011-05-06 10:06:41 UTC
Permalink
Guys, this is crazy, this is a runaway thread ;)
Please, please, a bit more empathy for newcomers would not hurt:
change the subject in such cases.
Welcome to Sourav, don't be afraid to ask this list for anything obscure.
and congratulations to Toon for initial answer.

Nicolas

2011/5/6 St?phane Ducasse <stephane.ducasse at inria.fr>:
> Ok if some good souls want to give a try to generate html.
>
> Stef
>
>
>
>> Probably we should find a way to generate HTML from PDF or Latex.
>> Any ideas?
>>
>> I've used latex2html several years ago.
>>
>> +1 for html
>>
>> Laurent.
>>
>>
>>
>> >>>> Now for the documentation when did you send an help documentation for any part of the system?
>> >>>> Or a bug fix?
>> >>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
>> >>> No need to get into a cat-fight here :)
>> >>
>> >> No this is not my point. But what do people really do to help?
>> >>
>> >>> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?
>> >>
>> >> If this is just to spit out class comment on html I do not call that a documentation.
>> >> Now we can take the book contents and generate html
>> >> We have 350 pages in the first book and the same in the second one.
>> >> People are free to join and write one or two chapters.
>> >
>> > St?phane,
>> >
>> > Of course you are right: wining/complaining doesn't help, only action does. We need more people like Laurent focusing on documentation.
>> >
>> > I for one think that the well written, high quality books that exist (PBE, Seaside Book) are *very valuable*, much better than confusing wiki site (although these have their place as well).
>> >
>> > But the other point is: in most other popular languages, what current, young developers do, when they get an error that they don't understand is copy/paste the literal text in Google and in a surprisingly large number of cases you find some real answers in the first page.
>> >
>> > This is also related to popularity of course.
>> >
>> > Sven
>>
>>
>>
>
>
>
Dave Mason
2011-05-06 14:59:17 UTC
Permalink
On May 6, 2011, at 05:34, St?phane Ducasse wrote:

> Probably we should find a way to generate HTML from PDF or Latex.
> Any ideas?

HeVeA - it's even an Inria thing! http://hevea.inria.fr/

../Dave
csrabak
2011-05-07 01:00:09 UTC
Permalink
Em 06/05/2011 06:34, St?phane Ducasse < stephane.ducasse at inria.fr > escreveu:

> Probably we should find a way to generate HTML from PDF or Latex.

>From LaTeX to HTML obviously the path is to use LaTeX2HTML http://www.latex2html.org/ or if your LaTeX installation supports it htlatex to process the LaTeX sources into HTML pages. An older but still useful source of information is

http://mirror.softwarelivre.ufsc.br/pub/ctan/info/webguide/webguide.html#QQ1-1-13

> Any ideas?

Create some classes in Pharo to do the job?
Stefan Marr
2011-05-06 10:57:05 UTC
Permalink
Sorry for the flam below. I didn't have the time and energy to rewrite it.


>>> Now for the documentation when did you send an help documentation for any part of the system?
>>> Or a bug fix?
>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
No, I report things on the mailing list, and I complain here and there about the narrow-mindedness of Smalltalk-evangelists.
And when it comes to documentation, I document that RoarVM you might have heard of. If that is not interesting for you, sorry, we just don't share the same interests.

>> No need to get into a cat-fight here :)
>
> No this is not my point. But what do people really do to help?
Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.

The only thing I do here is to point out the obvious (at least from my narrow-minded perspective).


> If this is just to spit out class comment on html I do not call that a documentation.
> Now we can take the book contents and generate html
> We have 350 pages in the first book and the same in the second one.
> People are free to join and write one or two chapters.

That's what I mean. From my perspective, books about programming languages are a wast of effort.
You need a good entry level book, that is all it takes.
The rest is great online documentation.

Unfortunately, Smalltalkers don't know anything outside the image...

I don't know how other people work, but I never look into books when I program. They just don't work.
They are slow, outdated and hard to search in.

Honestly, I don't understand why books are a priority for you when you want to develop a community.
You got a good entry level book, so what is the motivation to write another one?

As I said, that is obviously my point of view, based on the way my workflow works.

I prepare now Clojure assignments for my students, and there is also not a lot documentation out there, but all I need is centrally accessible at a place I easily identified with google.

There is exactly one important window on my screen:
http://clojure.github.com/clojure/clojure.core-api.html
Thanks to my browsers search, everything is there.
The Clojure book on my desk is just lying there and collecting dust...


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
Johan Brichau
2011-05-06 11:56:03 UTC
Permalink
On 06 May 2011, at 12:57, Stefan Marr wrote:

> Unfortunately, Smalltalkers don't know anything outside the image...

Exactly, and most of the time, it's all you need.
I remark a funny difference between developing in Smalltalk and developing in any other language (say, Java, Javascript, Objective-C, ...):

When I program in Smalltalk, I have a lot of open code browsers in my image
When I program in Java/Javascript/..., I have a lot of open web pages on my desktop

That surely does not invalidate the need for more and better documentation. The documentation for Alien I saw 2 years ago was just sad. But when you compare FFI and Alien with the DLLCC of Visualworks, Stef is *definitely* right too. I started out building a layer for Alien some time ago (in the context of JavaConnect for Pharo) but I eventually had to stop... (making a living takes time too).

Johan
Sven Van Caekenberghe
2011-05-06 12:08:42 UTC
Permalink
On 06 May 2011, at 13:56, Johan Brichau wrote:

> When I program in Smalltalk, I have a lot of open code browsers in my image
> When I program in Java/Javascript/..., I have a lot of open web pages on my desktop

+1111

Browsing in a Smalltalk image should be self-documenting, not just because of comments, but because of beautiful, understandable code.

A Dan Ingalls quote from "Design Principles Behind Smalltalk" ( http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html )

Just to get warmed up, I'll start with a principle that is more social than technical and that is largely responsible for the particular bias of the Smalltalk project:

Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.

An excellent read, this document, by the way!

Sven
Germán Arduino
2011-05-06 23:12:01 UTC
Permalink
2011/5/6 Sven Van Caekenberghe <sven at beta9.be>:
>
> On 06 May 2011, at 13:56, Johan Brichau wrote:
>
>> When I program in Smalltalk, I have a lot of open code browsers in my image
>> When I program in Java/Javascript/..., I have a lot of open web pages on my desktop
>
> +1111
>
> Browsing in a Smalltalk image should be self-documenting, not just because of comments, but because of beautiful, understandable code.
>
> A Dan Ingalls quote from "Design Principles Behind Smalltalk" ( http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html )
>
> Just to get warmed up, I'll start with a principle that is more social than technical and that is largely responsible for the particular bias of the Smalltalk project:
>
> ? ? ? ?Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.
>
> An excellent read, this document, by the way!
>
> Sven
>
>
>

Full agree. I talked exactly about "Personal Mastery" on my talk in
Smalltalks 2010 explaining my pov about why Smalltalk is good from a
MicroISV (and not excluding other sort of companies). The talks are in
Vimeo: http://www.vimeo.com/21859511 (Sorry with the self-promotion,
but I think is worth to share my experience).
Miguel Cobá
2011-05-06 15:11:09 UTC
Permalink
El vie, 06-05-2011 a las 12:57 +0200, Stefan Marr escribi?:
> Sorry for the flam below. I didn't have the time and energy to rewrite it.
>
>
> >>> Now for the documentation when did you send an help documentation for any part of the system?
> >>> Or a bug fix?
> >>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
> No, I report things on the mailing list, and I complain here and there about the narrow-mindedness of Smalltalk-evangelists.
> And when it comes to documentation, I document that RoarVM you might have heard of. If that is not interesting for you, sorry, we just don't share the same interests.
>
> >> No need to get into a cat-fight here :)
> >
> > No this is not my point. But what do people really do to help?
> Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.
>

So what are you doing here, the less the noise the best for everyone
else. You don't contribute, you only criticize, and then you said you
don't care, the we don't care about your "opinion". You can keep it for
yourself.



> The only thing I do here is to point out the obvious (at least from my narrow-minded perspective).
>
>
> > If this is just to spit out class comment on html I do not call that a documentation.
> > Now we can take the book contents and generate html
> > We have 350 pages in the first book and the same in the second one.
> > People are free to join and write one or two chapters.
>
> That's what I mean. From my perspective, books about programming languages are a wast of effort.
> You need a good entry level book, that is all it takes.
> The rest is great online documentation.
>

Umm, or you are very young or completely lost your mind. Internet as we
know today has a decade at most. The documentation you as happy use now
didn't existe 20 years ago. But, doesn't a lot of code was written more
than 20 years ago. How is that possible just with fucking books and
without google.

That is BS.

> Unfortunately, Smalltalkers don't know anything outside the image...
>
> I don't know how other people work, but I never look into books when I program. They just don't work.
> They are slow, outdated and hard to search in.
>
> Honestly, I don't understand why books are a priority for you when you want to develop a community.
> You got a good entry level book, so what is the motivation to write another one?


Because not everyone is so "smart" as you and we sometimes need to read
a book in a more directed way that a simple API list and no way to see
how is used. Also, check the Squeak wiki. Almost useless and nobody
that is putting new content to it these days. On the other hands, the
Pharo by example and seaside pier books or the HPI Seaside books are
doing more for smalltalk than you want to accept.

--
Miguel Cob?
http://twitter.com/MiguelCobaMtz
http://miguel.leugim.com.mx
Igor Stasenko
2011-05-06 15:31:15 UTC
Permalink
On 6 May 2011 17:11, Miguel Cob? <miguel.coba at gmail.com> wrote:
> El vie, 06-05-2011 a las 12:57 +0200, Stefan Marr escribi?:
>> Sorry for the flam below. I didn't have the time and energy to rewrite it.
>>
>>
>> >>> Now for the documentation when did you send an help documentation for any part of the system?
>> >>> Or a bug fix?
>> >>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.
>> No, I report things on the mailing list, and I complain here and there about the narrow-mindedness of Smalltalk-evangelists.
>> And when it comes to documentation, I document that RoarVM you might have heard of. If that is not interesting for you, sorry, we just don't share the same interests.
>>
>> >> No need to get into a cat-fight here :)
>> >
>> > No this is not my point. But what do people really do to help?
>> Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.
>>
>
> So what are you doing here, the less the noise the best for everyone
> else. You don't contribute, you only criticize, and then you said you
> don't care, the we don't care about your "opinion". You can keep it for
> yourself.
>
>
>
>> The only thing I do here is to point out the obvious (at least from my narrow-minded perspective).
>>
>>
>> > If this is just to spit out class comment on html I do not call that a documentation.
>> > Now we can take the book contents and generate html
>> > We have 350 pages in the first book and the same in the second one.
>> > People are free to join and write one or two chapters.
>>
>> That's what I mean. From my perspective, books about programming languages are a wast of effort.
>> You need a good entry level book, that is all it takes.
>> The rest is great online documentation.
>>
>
> Umm, or you are very young or completely lost your mind. Internet as we
> know today has a decade at most. The documentation you as happy use now
> didn't existe 20 years ago. But, doesn't a lot of code was written more
> than ?20 years ago. How is that possible just with fucking books and
> without google.
>
> That is BS.
>
>> Unfortunately, Smalltalkers don't know anything outside the image...
>>
>> I don't know how other people work, but I never look into books when I program. They just don't work.
>> They are slow, outdated and hard to search in.
>>
>> Honestly, I don't understand why books are a priority for you when you want to develop a community.
>> You got a good entry level book, so what is the motivation to write another one?
>
>
> Because not everyone is so "smart" as you and we sometimes need to read
> a book in a more directed way that a simple API list and no way to see
> how is used. Also, check the Squeak wiki. Almost useless and ?nobody
> that is putting new content to it these days. On the other hands, the
> Pharo by example and seaside pier books or the HPI Seaside books are
> doing more for smalltalk than you want to accept.
>

About wiki: its just points to the fact that documentation is worth
something if its properly organized.
Wiki, if not maintained properly, will become a garbage dump, as anything else.

Books, in this regard is better, because they have to be organized
well, and focused towards educating people
about certain subject, otherwise there is no point to call it 'book'.

And yeah.. in present digital era the meaning of term 'book' is
different. It is no longer relevant in what form it exists:
digital or paper.. But being able to print it on paper media is a
bonus, because people can choose what suits them best.

I must admit, that the last book i read about programming was around
in early 90's.. since then i am mostly reading docs & web.

But for getting started, it is always much easier to follow tutorials
(and good book is a collection of tutorials in fact) with extensive
explanation & examples how things working,
than groking through API and trying to understand how to use it in
order to meet your needs.

> --
> Miguel Cob?
> http://twitter.com/MiguelCobaMtz
> http://miguel.leugim.com.mx
>


--
Best regards,
Igor Stasenko AKA sig.
Stefan Marr
2011-05-06 16:32:10 UTC
Permalink
(And some more flame war here)


On 06 May 2011, at 17:11, Miguel Cob? wrote:

>>>> No need to get into a cat-fight here :)
>>>
>>> No this is not my point. But what do people really do to help?
>> Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.
>
> So what are you doing here, the less the noise the best for everyone
> else. You don't contribute, you only criticize, and then you said you
> don't care, the we don't care about your "opinion". You can keep it for
> yourself.

Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change. It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it. Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.



>> That's what I mean. From my perspective, books about programming languages are a wast of effort.
>> You need a good entry level book, that is all it takes.
>> The rest is great online documentation.
>
> Umm, or you are very young or completely lost your mind. Internet as we
> know today has a decade at most. The documentation you as happy use now
> didn't existe 20 years ago. But, doesn't a lot of code was written more
> than 20 years ago. How is that possible just with fucking books and
> without google.
>
> That is BS.
How often do you see your colleagues going to the library, or the shelf next door to grab a book while they are programming?
It has been 10 years ago that they stopped doing so.

Today, they google. Well, at least if they use another language than Smalltalk.
And I don't think there is something inherently wrong with that.


> to read
> a book in a more directed way that a simple API list and no way to see
> how is used.
All I say is that a classical book is not the state of the art in the regard.
Well written API documentation is. And well written API documentation includes examples.
And, yes, Smalltalk people know about that.

I think, books are for introduction, but not to actually get work done. I need the knowledge directly at my finger tips.

> On the other hands, the
> Pharo by example and seaside pier books or the HPI Seaside books are
> doing more for smalltalk than you want to accept.

Yes, they introduce people to Smalltalk.

But this particular discussion started after someone mentioned that he/she used python since it was easier to bridge between Pharo and Python than it was to go from Pharo to the C code directly.
That person knows Smalltalk, and is productive with it. Except for the things where he/she did not immediately found good documentation. That is the scenario I am talking about. And if I remember correctly there is even an article/book in the collection of free books on Stef's webpage that tells you how to implement primitives which could have done the job. But the problem here, he/she was just not able to find it. That's the point, and that is the problem I try to emphasize.

It is certainly good to attract new people to Smalltalk, but how does that help if you can't make the ones who already know it to stay with it? With books? I think, Stef's efforts of writing books should be supported, but the content (if it is an open book) needs to be findable on Google and Bing... And that is not everything, the text has actually be in a form that it is easily accessible on the web. Which means, links, and repetition(for some degree of redundancy). (That is also what good API documentation does)

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
Miguel Cobá
2011-05-06 16:55:29 UTC
Permalink
El vie, 06-05-2011 a las 18:32 +0200, Stefan Marr escribi?:
> (And some more flame war here)
>
>
> On 06 May 2011, at 17:11, Miguel Cob? wrote:
>
> >>>> No need to get into a cat-fight here :)
> >>>
> >>> No this is not my point. But what do people really do to help?
> >> Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.
> >
> > So what are you doing here, the less the noise the best for everyone
> > else. You don't contribute, you only criticize, and then you said you
> > don't care, the we don't care about your "opinion". You can keep it for
> > yourself.
>
> Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change. It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it. Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.
>

I found your post very contradicting and without internal consistency.
You don't care about smalltalk but are creating a vm should run
smalltalk (squeak or pharo) in multiple core. Don't get it. Or you care
that you dedicate time to it or you don't care and don't know why you
build a multicore vm for a system you don't care (maybe the money, the
papers, the citations, don't know)

>
>
> >> That's what I mean. From my perspective, books about programming languages are a wast of effort.
> That is BS.
> How often do you see your colleagues going to the library, or the
shelf next door to grab a book while they are programming?
> It has been 10 years ago that they stopped doing so.

That is the reason that O'Reilly books is broken and stop printing books
5 year ago right. Also this other publisher, I think they use to call
themselves the pragmatic progammer, what a bunch of loser, trying to
publish new books in this days that google has everything that is to
know.

Wait, no, they exists and publish books, maybe is for having something
to do with their free time.


>
> Today, they google. Well, at least if they use another language than Smalltalk.
> And I don't think there is something inherently wrong with that.
>

Yes but isn't the only way to get knowledge. Maybe assembler should be
lectured no more, because we have high level programing languages and
nobody needs that old tech anymore!


You said:
>> That's what I mean. From my perspective, books about programming
languages are a wast of effort.

and then:

> I think, Stef's efforts of writing books should be supported,

inconsistent!

--
Miguel Cob?
http://twitter.com/MiguelCobaMtz
http://miguel.leugim.com.mx
Stefan Marr
2011-05-06 21:23:11 UTC
Permalink
(and here we go again...)


On 06 May 2011, at 18:55, Miguel Cob? wrote:

> El vie, 06-05-2011 a las 18:32 +0200, Stefan Marr escribi?:
>> Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change. It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it. Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.
>>
>
> I found your post very contradicting and without internal consistency.
> You don't care about smalltalk but are creating a vm should run
> smalltalk (squeak or pharo) in multiple core. Don't get it. Or you care
> that you dedicate time to it or you don't care and don't know why you
> build a multicore vm for a system you don't care (maybe the money, the
> papers, the citations, don't know)

I am interested in VMs, so why do I need to care about the language on top? Actually, I do research in how to support all kind of different languages on top of the same VM, because there is not a single language that is the ultimate answer to all problems. That is why I do not care about any particular language.
Just look at the JVM. How much of its technology was developed in the pure Java context? Not a lot. Most was actually conceived for Smalltalk.
As long as the languages have some commonalities and are not based on graph-reduction like Haskell, then they usually don't require a completely new designed VM, but a nice set of common abstractions. So why, as a researcher, should I care about Smalltalk? Smalltalk is not the final answer, and will never be. Neither is any other single language.


>>>> That's what I mean. From my perspective, books about programming languages are a wast of effort.
>> That is BS.
>> How often do you see your colleagues going to the library, or the
> shelf next door to grab a book while they are programming?
>> It has been 10 years ago that they stopped doing so.
>
> That is the reason that O'Reilly books is broken and stop printing books
> 5 year ago right. Also this other publisher, I think they use to call
> themselves the pragmatic progammer, what a bunch of loser, trying to
> publish new books in this days that google has everything that is to
> know.
>
> Wait, no, they exists and publish books, maybe is for having something
> to do with their free time.
Just answer the question! How often do your colleagues grab a book from the shelf? How often a day, how often a week?


>> Today, they google. Well, at least if they use another language than Smalltalk.
>> And I don't think there is something inherently wrong with that.
>>
>
> Yes but isn't the only way to get knowledge.
No, but to my experience books can only be a help to get an initial overview. How often do you come across a book that covers a topic in such a depth that you actually can use it when you have a specific question while working?

Especially the Pragmatic Programmer books you refer to, most of them talk about the basic concepts. They are not full references.
Nice introductions, but nothing to actually work with when you solve a deeper going problem.


> Maybe assembler should be
> lectured no more, because we have high level programing languages and
> nobody needs that old tech anymore!
What are you talking about?


> You said:
>>> That's what I mean. From my perspective, books about programming
> languages are a wast of effort.
>
> and then:
>
>> I think, Stef's efforts of writing books should be supported,
>
> inconsistent!
Right, it is indeed inconsistent, since that statement now also includes having books for introductory purposes.
But again, that was not the initial point of the discussion.


Still, there is already a good thing coming out of the whole flame war. Laurent took the time to look into how to make the books web-accessible. All it took was a small nudge in the right direction.

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
Toon Verwaest
2011-05-06 21:28:29 UTC
Permalink
> I am interested in VMs, so why do I need to care about the language on top? Actually, I do research in how to support all kind of different languages on top of the same VM, because there is not a single language that is the ultimate answer to all problems. That is why I do not care about any particular language.
> Just look at the JVM. How much of its technology was developed in the pure Java context? Not a lot. Most was actually conceived for Smalltalk.
> As long as the languages have some commonalities and are not based on graph-reduction like Haskell, then they usually don't require a completely new designed VM, but a nice set of common abstractions. So why, as a researcher, should I care about Smalltalk? Smalltalk is not the final answer, and will never be. Neither is any other single language.
+1
> Just answer the question! How often do your colleagues grab a book from the shelf? How often a day, how often a week?
Some of my colleagues use books quite often. They like to put their
monitors on them. :)
> Still, there is already a good thing coming out of the whole flame war. Laurent took the time to look into how to make the books web-accessible. All it took was a small nudge in the right direction.
Yay :)

Lets stop this thread in peace and have a nice weekend :) Goodbye and
thanks for all the fish!
Douglas Brebner
2011-05-07 06:50:33 UTC
Permalink
On 06/05/2011 22:23, Stefan Marr wrote:
> (and here we go again...)
>
>
> On 06 May 2011, at 18:55, Miguel Cob? wrote:
>
>> El vie, 06-05-2011 a las 18:32 +0200, Stefan Marr escribi?:
>>> Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change. It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it. Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.
>>>
>> I found your post very contradicting and without internal consistency.
>> You don't care about smalltalk but are creating a vm should run
>> smalltalk (squeak or pharo) in multiple core. Don't get it. Or you care
>> that you dedicate time to it or you don't care and don't know why you
>> build a multicore vm for a system you don't care (maybe the money, the
>> papers, the citations, don't know)
> I am interested in VMs, so why do I need to care about the language on top? Actually, I do research in how to support all kind of different languages on top of the same VM, because there is not a single language that is the ultimate answer to all problems. That is why I do not care about any particular language.
> Just look at the JVM. How much of its technology was developed in the pure Java context? Not a lot. Most was actually conceived for Smalltalk.
> As long as the languages have some commonalities and are not based on graph-reduction like Haskell, then they usually don't require a completely new designed VM, but a nice set of common abstractions. So why, as a researcher, should I care about Smalltalk? Smalltalk is not the final answer, and will never be. Neither is any other single language.

Smalltalk the language no. Smalltalk the infinitely malleable
environment? That's another question :)
Igor Stasenko
2011-05-06 17:08:31 UTC
Permalink
On 6 May 2011 18:32, Stefan Marr <pharo at stefan-marr.de> wrote:
> (And some more flame war here)
>
>
> On 06 May 2011, at 17:11, Miguel Cob? wrote:
>
>>>>> No need to get into a cat-fight here :)
>>>>
>>>> No this is not my point. But what do people really do to help?
>>> Stef, if you haven't noticed: I don't care about Smalltalk, and I don't care about Pharo, or any other language out there in particular. I don't share your vision, I have other goals in life.
>>
>> So what are you doing here, the less the noise the best for everyone
>> else. You don't contribute, you only criticize, and then you said you
>> don't care, the we don't care about your "opinion". You can keep it for
>> yourself.
>
> Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change. It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it.


> Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.

This statement is true for most of us, just replace "VM" with something else.

About RoarVM.
I think the main reason why RoarVM does not exists for Pharo is
because there was no discussion and planning beforehead, how we could
cooperate.
Where the discussion, how we could introduce new execution models, and
gradually (means step by step) migrate to new VM?

Take into account there there is virtually no knowledge outside of
your team, what has to be changed in order to make Pharo run on
RoarVM.
So what did you expected? That people drop everything which already
works well for them and hastily migrate to new platform?

How about CogVM? Should we stop developing it? Or we should start
supporting both? And can we do that without too much pain? Give us the
idea.

I, personally all for having VM which knows how to exploit
multicore/manycore systems. But at what costs?
At cost of throwing away everything and implementing new VM and new
smalltalk from scratch? I can do that myself. But then i wouldn't come
to pharo list to say
that i don't give a shit about pharo.
Because if i would like Pharo to use my stuff, i will stay with people
and help, and try to figure out how we can manage to leverage new
technology without jumping too high
with the risk to break the legs.

It makes no point saying here that you don't give a shit about Pharo.
If you don't, why pharoers should?

I appreciate the engineering effort what you have did. But its a top
of the iceberg. Migrating existing system to another platform is very
complex task,
and given that day has 24 hours in it.. figure the answer :)

>
>>> That's what I mean. From my perspective, books about programming languages are a wast of effort.
>>> You need a good entry level book, that is all it takes.
>>> The rest is great online documentation.
>>
>> Umm, or you are very young or completely lost your mind. Internet as we
>> know today has a decade at most. The documentation you as happy use now
>> didn't existe 20 years ago. But, doesn't a lot of code was written more
>> than ?20 years ago. How is that possible just with fucking books and
>> without google.
>>


--
Best regards,
Igor Stasenko AKA sig.
Stefan Marr
2011-05-06 21:45:18 UTC
Permalink
On 06 May 2011, at 19:08, Igor Stasenko wrote:

> I think the main reason why RoarVM does not exists for Pharo is
> because there was no discussion and planning beforehead, how we could
> cooperate.
> Where the discussion, how we could introduce new execution models, and
> gradually (means step by step) migrate to new VM?

Igor, I remember some discussion from the Smalltalk school, two important points:

1. it is not a new execution model, but you do not have your old scheduling guarantees anymore.
2. "all it takes" is to make the important libraries thread-safe

There is nothing fundamental in the RoarVM that is changing the language semantics of Smalltalk.

It is just that for: `[do something] fork` you will have to assume that it is executed in parallel to other code.


> Take into account there there is virtually no knowledge outside of
> your team, what has to be changed in order to make Pharo run on
> RoarVM.
> So what did you expected? That people drop everything which already
> works well for them and hastily migrate to new platform?
No, of course not. I never expected anyone to jump onto a research platform, and it is also not really about
adopting our C++ code, but about trying to integrate the ideas into the standard VM with Cog.

Talking with Eliot basically resulted in the insight that there is no major problem that would prevent the adoption of parallel execution in the CogVM. They only thing we became aware of that might be interesting are the PICs. And there he had a nice paper reference with a perfectly good solution...

> How about CogVM? Should we stop developing it? Or we should start
> supporting both? And can we do that without too much pain? Give us the
> idea.
It is all about adopting the ideas, and I could collaboration on that, but I can't do that work.
The only problem I see is that there does not seem to be a business case for a CogVM with parallel Smalltalk Process execution.



> But then i wouldn't come
> to pharo list to say
> that i don't give a shit about pharo.
Igor, the fact that the community did not show active interest in the RoarVM is much older than my bold statement.
And, please understand my statement in the context of me not giving a damn about any particular language.
Seriously, I can stand those 'ah but my language is so much nicer' discussions. And this here is just a variation of it.
Languages are tools, and they are useful as long as they fit the problem.

> I appreciate the engineering effort what you have did. But its a top
> of the iceberg. Migrating existing system to another platform is very
> complex task,

Actually, for the RoarVM it is not. It is a lot of work, but it is not complex. It is tedious, but it can be done in small well defined steps. Perfect small projects for interested students. I already convinced two guys to apply for the Google Summer of Code. But well, that never happened...

So, I do what I can, and actually more.
But the community only responds to me when I say that I hate Smalltalk.
Strange, isn't it?

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
Igor Stasenko
2011-05-07 00:06:39 UTC
Permalink
On 6 May 2011 23:45, Stefan Marr <pharo at stefan-marr.de> wrote:
>
> On 06 May 2011, at 19:08, Igor Stasenko wrote:
>
>> I think the main reason why RoarVM does not exists for Pharo is
>> because there was no discussion and planning beforehead, how we could
>> cooperate.
>> Where the discussion, how we could introduce new execution models, and
>> gradually (means step by step) migrate to new VM?
>
> Igor, I remember some discussion from the Smalltalk school, two important points:
>
> ?1. it is not a new execution model, but you do not have your old scheduling guarantees anymore.
> ?2. "all it takes" is to make the important libraries thread-safe
>
> There is nothing fundamental in the RoarVM that is changing the language semantics of Smalltalk.
>
> It is just that for: `[do something] fork` you will have to assume that it is executed in parallel to other code.
>
only that?
Heh.. then we're 99% done. Except that this last 1% is still could
take years to complete :)

>
>> Take into account there there is virtually no knowledge outside of
>> your team, what has to be changed in order to make Pharo run on
>> RoarVM.
>> So what did you expected? That people drop everything which already
>> works well for them and hastily migrate to new platform?
> No, of course not. I never expected anyone to jump onto a research platform, and it is also not really about
> adopting our C++ code, but about trying to integrate the ideas into the standard VM with Cog.
>
> Talking with Eliot basically resulted in the insight that there is no major problem that would prevent the adoption of parallel execution in the CogVM. They only thing we became aware of that might be interesting are the PICs. And there he had a nice paper reference with a perfectly good solution...
>
>> How about CogVM? Should we stop developing it? Or we should start
>> supporting both? And can we do that without too much pain? Give us the
>> idea.
> It is all about adopting the ideas, and I could collaboration on that, but I can't do that work.
> The only problem I see is that there does not seem to be a business case for a CogVM with parallel Smalltalk Process execution.
>

I can tell you more: there is no business cases for VM(s) which can do
manycore :)
At least, to my perception, there is not much pressure from people
(even on mainstream languages) to leverage this technology.
I thought it is very close to come into our houses, but no.. it stuck
somewhere on marketplace, buying a better clothes.

Implementing VM which enabling massive parallelism is just a
beginning. Then obviously you need do to a lot at language side
to leverage that, in order to really say "yes, our system(s) are aware
of multicore and can scale almost linearly in future".

Now, given that squeak's code a hugely non-thread-safe, imagine how
many iterations in redesign it would take to make it thread-safe
first, and then make it run in parallel with rest of the stuff.


>
>> But then i wouldn't come
>> to pharo list to say
>> that i don't give a shit about pharo.
> Igor, the fact that the community did not show active interest in the RoarVM is much older than my bold statement.
> And, please understand my statement in the context of me not giving a damn about any particular language.
> Seriously, I can stand those 'ah but my language is so much nicer' discussions. And this here is just a variation of it.
> Languages are tools, and they are useful as long as they fit the problem.
>
The problem is that VM dictates , what problems you can solve with
your language and what not.
Squeak/Pharo is an excellent example of this.


>> I appreciate the engineering effort what you have did. But its a top
>> of the iceberg. Migrating existing system to another platform is very
>> complex task,
>
> Actually, for the RoarVM it is not. It is a lot of work, but it is not complex. It is tedious, but it can be done in small well defined steps. Perfect small projects for interested students. I already convinced two guys to apply for the Google Summer of Code. But well, that never happened...
>
> So, I do what I can, and actually more.
> But the community only responds to me when I say that I hate Smalltalk.
> Strange, isn't it?
>

Why? Its natural. Meet a fans of <FOO> and say that <FOO> suck. What
reaction you will get?

Concerning why people not reacting to other things - i think that
being able to run on tilera chips is too far perspective
for those who just want to host their web-page which served by
seaside, or generate some data analyzis or other boring
domestic business modelling.

Apparently, if you want your fruits to be picked up, they have to hang
very low. Somewhere at the level of stomach. Not higher.
And rocket science you doing , for most of people is at the level of
stratosphere :)

Once, for Squeak VM, i made an implementation to move scheduling away
from VM into language.
It was fully working, and you were free to change scheduling logic
without touching VM anymore.
What you think how many people reacted to that? How many of them would
like to pursue this further?

> 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
>
>
>



--
Best regards,
Igor Stasenko AKA sig.
Stefan Marr
2011-05-07 00:49:48 UTC
Permalink
On 07 May 2011, at 02:06, Igor Stasenko wrote:

> On 6 May 2011 23:45, Stefan Marr <pharo at stefan-marr.de> wrote:
>> There is nothing fundamental in the RoarVM that is changing the language semantics of Smalltalk.
>>
>> It is just that for: `[do something] fork` you will have to assume that it is executed in parallel to other code.
>>
> only that?
> Heh.. then we're 99% done. Except that this last 1% is still could
> take years to complete :)

But why? We show with the Squeak 3.x MVC image that it is perfectly possible. (the change set is absolutely minimal, and the only thing we needed to fix was some Delay related issues)

And, on top of that it is perfectly possible, there is a smooth transition path.
You can tell all your Process objects to just run on the main core in the beginning, and then just use the other cores for code you wrote specifically.

Thus, there is a nice step-wise path. And I think I outlined that in my 20min presentation at the school after Stef asked.
BTW: are those videos somewhere accessible?

From my perspective all it takes is someone who actually cares, and has the time to experiment a bit with parallel programming.

The kernel, and the tools can be migrated step by step.

However, that is just on top of the current RoarVM, which is certainly not as attractive as a CogVM with real thread support.

> I can tell you more: there is no business cases for VM(s) which can do
> manycore :)
No manycore perhaps, but luckily the low-power end is pushing to multicore solutions.
So, your next iPhone and Android app will need to leverage at least two cores for optimal performance, and even quad-core phones are just around the corner.


> Implementing VM which enabling massive parallelism is just a
> beginning. Then obviously you need do to a lot at language side
> to leverage that, in order to really say "yes, our system(s) are aware
> of multicore and can scale almost linearly in future".
No, don't think so. If people got deadlines and a need, they will do it with the tools at hand.
And what I am doing here is absolutely not rocket science. Actually it is pretty hard to sell the engineering we do as science at all. Because the multicore VM problem has been solved a decade ago. They just forgot to tell us how...

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
Michael Haupt
2011-05-07 05:25:51 UTC
Permalink
Hi Igor,

Am 07.05.2011 um 02:06 schrieb Igor Stasenko <siguctua at gmail.com>:
> Heh.. then we're 99% done. Except that this last 1% is still could
> take years to complete :)

you serious? Making a Smalltalk image thread-safe is that hard?

> I can tell you more: there is no business cases for VM(s) which can do
> manycore :)
> At least, to my perception, there is not much pressure from people
> (even on mainstream languages) to leverage this technology.

What market are you talking about? There are lots and lots of customers of certain big database/appliance vendors that would loudly protest had the stuff they bought no inherent support for parallel execution.

> I thought it is very close to come into our houses, but no.. it stuck
> somewhere on marketplace, buying a better clothes.

And now it's arrived in tablets already. It's your problem if you leave your iPad lying around *outside* your house. ;-)

> Implementing VM which enabling massive parallelism is just a
> beginning. Then obviously you need do to a lot at language side
> to leverage that, in order to really say "yes, our system(s) are aware
> of multicore and can scale almost linearly in future".

And do not forget the most important thing: people must be educated to program for parallelism. The computing power is there to be exploited, but programmers need to know how to exploit it. You can't rely on the compiler or VM alone.

> Now, given that squeak's code a hugely non-thread-safe, imagine how
> many iterations in redesign it would take to make it thread-safe
> first, and then make it run in parallel with rest of the stuff.

Is it really *that* hard or is this just FUD?

>
Best,

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110507/0355a694/attachment.html>
Douglas Brebner
2011-05-07 06:54:49 UTC
Permalink
On 07/05/2011 01:06, Igor Stasenko wrote:
> On 6 May 2011 23:45, Stefan Marr<pharo at stefan-marr.de> wrote:
>> On 06 May 2011, at 19:08, Igor Stasenko wrote:
>>
>>> How about CogVM? Should we stop developing it? Or we should start
>>> supporting both? And can we do that without too much pain? Give us the
>>> idea.
>> It is all about adopting the ideas, and I could collaboration on that, but I can't do that work.
>> The only problem I see is that there does not seem to be a business case for a CogVM with parallel Smalltalk Process execution.
>>
> I can tell you more: there is no business cases for VM(s) which can do
> manycore :)
> At least, to my perception, there is not much pressure from people
> (even on mainstream languages) to leverage this technology.
> I thought it is very close to come into our houses, but no.. it stuck
> somewhere on marketplace, buying a better clothes.
>

I have the bad feeling that there will continue to be no business case
for manycore VMs (or serious concurrency in general) until we hit a wall
at which point they'll suddenly go from uninteresting to desperately
essential and any language not able to make the jump will be in big trouble.

Besides, wasn't part of Smalltalk all about leading the way rather than
following behind?
Stéphane Ducasse
2011-05-07 07:03:48 UTC
Permalink
>>
>> So what are you doing here, the less the noise the best for everyone
>> else. You don't contribute, you only criticize, and then you said you
>> don't care, the we don't care about your "opinion". You can keep it for
>> yourself.
>
> Well, I think my work on the RoarVM is some contribution, no? Perhaps, I would be more interested in Pharo if it would actually run nicely on the RoarVM, but I am stuck with a Squeak 3.x MVC image for my day to day work. And without anyone from the community approaching the work to make Pharo thread-safe that won't change.

you can say that simply because I encouraged you to push some fixes to pharo and you told me that
I have to do it myself more or less. So

> It is nice to change the world with Pharo, but the future is multi/manycore and Pharo does not support it. Ah, and the day has just 24h so don't expect anything from me beside the VM work, thats already enough to keep a whole team busy.

you see.
This is always other job :)


Stef
Serge Stinckwich
2011-05-06 09:30:00 UTC
Permalink
On Fri, May 6, 2011 at 4:05 PM, Toon Verwaest <toon.verwaest at gmail.com> wrote:
>
>> Now for the documentation when did you send an help documentation for any
>> part of the system?
>> Or a bug fix?
>> I find quite funny that people always talk but few are doing. We welcome
>> comments/examples help.
>
> No need to get into a cat-fight here :)
>
> I do agree with Stefan, as well as with you that we could help; but I'm
> unaware of a good documentation effort outside of the image to start with.
> Camillo's website project might be the best effort I've seen until now; but
> then I didn't really look either. Maybe I missed some great website?

You are welcome to join us on the documentation effort:
- Pharo by Example vol 1 and vol 2 & translations :
https://github.com/SquareBracketAssociates
We are looking for more people to write chapters and translate them in
other languages.
- the collaboractive Pharo Book: http://book.pharo-project.org/
- participate to COTC (Comment Of The Day Contest) organized by
Laurent: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest
in order to comments Pharo classes.

This is not enough for you ;-)

Regards,
--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Every DSL ends up being Smalltalk
http://doesnotunderstand.org/
Toon Verwaest
2011-05-06 09:35:18 UTC
Permalink
On 05/06/2011 11:30 AM, Serge Stinckwich wrote:
> On Fri, May 6, 2011 at 4:05 PM, Toon Verwaest<toon.verwaest at gmail.com> wrote:
>>> Now for the documentation when did you send an help documentation for any
>>> part of the system?
>>> Or a bug fix?
>>> I find quite funny that people always talk but few are doing. We welcome
>>> comments/examples help.
>> No need to get into a cat-fight here :)
>>
>> I do agree with Stefan, as well as with you that we could help; but I'm
>> unaware of a good documentation effort outside of the image to start with.
>> Camillo's website project might be the best effort I've seen until now; but
>> then I didn't really look either. Maybe I missed some great website?
> You are welcome to join us on the documentation effort:
> - Pharo by Example vol 1 and vol 2& translations :
> https://github.com/SquareBracketAssociates
> We are looking for more people to write chapters and translate them in
> other languages.
> - the collaboractive Pharo Book: http://book.pharo-project.org/
> - participate to COTC (Comment Of The Day Contest) organized by
> Laurent: http://code.google.com/p/pharo/wiki/CommentOfTheDayContest
> in order to comments Pharo classes.
>
> This is not enough for you ;-)
>
> Regards,
Something like the Pharo book that would contain also explanation about
the language itself (and its libraries) would be great.
Something like "teach yourself scheme in fixnum days" for Smalltalk. I
loved the "teach yourself scheme in fixnum days".
Stéphane Ducasse
2011-05-06 09:40:41 UTC
Permalink
>>
>> Regards,
> Something like the Pharo book that would contain also explanation about the language itself (and its libraries) would be great.
> Something like "teach yourself scheme in fixnum days" for Smalltalk. I loved the "teach yourself scheme in fixnum days"

may be you should open the pdf of pharo by example......
or may be not

Stef
Toon Verwaest
2011-05-06 09:48:43 UTC
Permalink
On 05/06/2011 11:40 AM, St?phane Ducasse wrote:
>>> Regards,
>> Something like the Pharo book that would contain also explanation about the language itself (and its libraries) would be great.
>> Something like "teach yourself scheme in fixnum days" for Smalltalk. I loved the "teach yourself scheme in fixnum days"
> may be you should open the pdf of pharo by example......
> or may be not
>
> Stef
I meant the browsable html version. But ok, enough offense/defense for me.
Toon Verwaest
2011-05-06 09:02:52 UTC
Permalink
So what do you suggest?

On 05/06/2011 10:55 AM, Stefan Marr wrote:
> On 06 May 2011, at 10:30, St?phane Ducasse wrote:
>
>> Igor
>>
>> We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
>> not work. So we should really improve that aspect.
>> Igor not everbody is able to code in assembler for nativeboost.
>> So NB is probably a good insfrastructure but not ready for consumption for everybody.
>> The interaction with C should be improved :)
>>
>> Stef
> No, Stef, you didn't get it!
> It is documentation which needs to be improved in the first place. Documentation and its presentation. You know another reason why people love PHP? It is an ugly and awful language, but absolutely everything you ever want to do is covered in the docs, because people actually add examples and comments.
>
> And frankly, you book efforts are certainly interesting, but far from being as visible and as accessible as online docs of other languages. That's what Smalltalk sucks at, accessible online documentation. People do google when they have a problem. If it does not pop up on the first page, it does not exists.
>
> My impression of Smalltalk documentation is, it is non-existing. I usually do not even care to google, because it is unlikely that I find something. Instead I ask people. (And if you look at the traffic on the mailing list, thats not just me)
> That's a community issue, a problem of culture. I would never think about asking anyone if I have a problem with Python or PHP. I know everything is just a few google hits away.
>
> Ah, and tooling of course...
>
>
>
Lorenzo Schiavina
2011-05-06 09:46:42 UTC
Permalink
Great Stef!

Lorenzo
----- Original Message -----
From: "St?phane Ducasse" <stephane.ducasse at inria.fr>
To: <Pharo-project at lists.gforge.inria.fr>
Sent: Friday, May 06, 2011 10:30 AM
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry


Igor

We should face it: the FFI and Alien... are not that simple. Laurent spent
time to try to cnnect to libs and it did
not work. So we should really improve that aspect.
Igor not everbody is able to code in assembler for nativeboost.
So NB is probably a good insfrastructure but not ready for consumption for
everybody.
The interaction with C should be improved :)

Stef


> So, read about it. It doesn't bites. :)
>
>> As I said, I am totally unaware of the limitations of the system, but
>> that
>> it did what I need, and would have liked to do that from Pharo/Squeak. I
>> know Dolphin has/had certain capabilities. But I don't prefer to use
>> non-open source software if at all possible for development. I also am
>> very
>> preferential towards cross-platform software. Dolphin fails on all
>> accounts.
>> I would choose my Python/Pharo blend over Dolphin any day. I know it
>> introduces some pain, but I am willing to accept the pain. I like tools
>> that
>> allow me to use them where ever I am and whatever I am doing.
>>
>> However, that said, when I look at the facilities Python offers for such
>> capabilities it on appearances looks quite impressive.
>>
>> http://docs.python.org/library/ctypes.html
>>
>> """
>> ctypes is a foreign function library for Python. It provides C compatible
>> data types, and allows calling functions in DLLs or shared libraries. It
>> can
>> be used to wrap these libraries in pure Python.
>>
>> 15.18.1.1. Loading dynamic link libraries
>>
>> ctypes exports the cdll, and on Windows windll and oledll objects, for
>> loading dynamic link libraries.
>>
>> You load libraries by accessing them as attributes of these objects. cdll
>> loads libraries which export functions using the standard cdecl calling
>> convention, while windll libraries call functions using the stdcall
>> calling
>> convention. oledll also uses the stdcall calling convention, and assumes
>> the
>> functions return a Windows HRESULT error code. The error code is used to
>> automatically raise a WindowsError exception when the function call
>> fails.
>>
>> Here are some examples for Windows. Note that msvcrt is the MS standard C
>> library containing most standard C functions, and uses the cdecl calling
>> convention:
>>
>>>>> from ctypes import *
>>>>> print windll.kernel32 # doctest: +WINDOWS
>> <WinDLL 'kernel32', handle ... at ...>
>>>>> print cdll.msvcrt # doctest: +WINDOWS
>> <CDLL 'msvcrt', handle ... at ...>
>>>>> libc = cdll.msvcrt # doctest: +WINDOWS
>>>>
>>
>
> So? Why do you think that you cannot do the same in Pharo?
> Have you digested what is available before doing it in Python?
>
>
>> """
>>
>> It has examples for windows and linux.
>>
>
> I feel that you are seriously under-informed.
> Just try googling for:
>
> Squeak + FFI
> Alien
>
> NativeBoost
>
> and just check what you can do using it:
>
> http://www.squeaksource.com/NBOpenGL/
>
> also check mail archives.
>
> Forgive me, but i really can't understand , why you can't just look
> for what you need by yourself?
> Are google.com banned by your ISP?
>
> For me this subject is interested in aspect, why this information
> (while being available openly) didn't catch your
> attention , so you using python instead.
> (Okay, you might miss some functionality like being able to
> automatically generate bindings to COM interfaces).
> But again, i am sure that if you surf the net or ask right questions
> on mailing list, you will probably discover that
> there is already work being done in that direction.
> And at last, if you feel that there is missing some key functionality
> which you want, and you expect that it is also
> could be useful to community, you can always implement it and share
> with people (instead of using Python ;).
> So, next who will come after you won't find himself in a desert with
> couple of oasises few hundred miles away.
>
>> I didn't read it all as I am unqualified to assess its capabilities or
>> limitations, nor do I presently need it as the win32 extensions do easily
>> and well what I presently need to do.
>>
>> Hopefully it can inform us as to what is expected and doable in
>> alternative
>> languages which are dynamic like Smalltalk.
>>
>> Jimmie
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
Igor Stasenko
2011-05-06 13:08:50 UTC
Permalink
On 6 May 2011 10:30, St?phane Ducasse <stephane.ducasse at inria.fr> wrote:
> Igor
>
> We should face it: the FFI and Alien... are not that simple. Laurent spent time to try to cnnect to libs and it did
> not work. So we should really improve that aspect.
> Igor not everbody is able to code in assembler for nativeboost.

I am not presumed that everyone should.

But just don't fall into delusion, that you can start using external
library (either written in C or C# or in Java),
without knowing at all the foreign language in which library are
written, and just after few mouse clicks in Pharo image.

The library are written not in smalltalk, and if you need to use it,
you have to be prepared.
You cannot avoid that. That's my point.

> So NB is probably a good insfrastructure but not ready for consumption for everybody.

Mind telling me, what is missing?
I am eager for improving and making it easy to use.

> The interaction with C should be improved :)
>

How? Any clues?
How else it could be improved in addition to be able to define, which
function you going to call and using which library?
How else it could be done?

Parsing C headers and automatically generating bindings? This is
doable. But it still will require manual effort.
You cannot build an auto-generator to be intelligent enough to detect
all specific aspects, which used in library.

Read a http://www.swig.org/
they having a plugin system (and at some point i even written a
smalltalk plugin for it).
But even then, for generating a specific library bindings, you still
have to provide a script/configuration for your library.
Because if you run it in automatic mode, in most cases you'll end up
with a lot of useless and/or broken stuff.
Translating (producing wrappers) from one language into another
requires intelligent effort,
it cannot be fully automated.

> Stef
>

--
Best regards,
Igor Stasenko AKA sig.
Denis Kudriashov
2011-05-06 13:42:26 UTC
Permalink
2011/5/6 Igor Stasenko <siguctua at gmail.com>

> But just don't fall into delusion, that you can start using external
> library (either written in C or C# or in Java),
> without knowing at all the foreign language in which library are
> written, and just after few mouse clicks in Pharo image.
>
>
Hello,

In last week I implement java binding with some C library (it containes
callbacks). Before I never doing this kind of work in java.
And It will not simple task. I use JNA - analogous FFI libraries in
smalltalk.
So I done it. And It work from my tests. But when I deploy It to apatch
server as servlet it cant work. Java craches in arbitrarily places of dll
calling.Solutions will be simplest C dll wrapper which provides two
functions without callbacks.
Similar problems will be when we doing java connect to com-object. Solutions
will be C# socket server :))

So Java connection to foreign world is not easy. Although there is good
docs.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/5a1e48c4/attachment.html>
Igor Stasenko
2011-05-06 13:49:57 UTC
Permalink
On 6 May 2011 15:42, Denis Kudriashov <dionisiydk at gmail.com> wrote:
>
> 2011/5/6 Igor Stasenko <siguctua at gmail.com>
>>
>> But just don't fall into delusion, that you can start using external
>> library (either written in C or C# or in Java),
>> without knowing at all the foreign language in which library are
>> written, and just after few mouse clicks in Pharo image.
>>
>
> Hello,
>
> In last week I implement java binding with some C library (it containes
> callbacks). Before I never doing this kind of work in java.
> And It will not simple task. I use JNA - analogous FFI libraries in
> smalltalk.
> So I done it. And It work from my tests. But when I deploy It to apatch
> server as servlet it cant work. Java craches in arbitrarily places of dll
> calling.Solutions will be simplest C dll wrapper which provides two
> functions without callbacks.
> Similar problems will be when we doing java connect to com-object. Solutions
> will be C# socket server :))
>
> So Java connection to foreign world is not easy. Although there is good
> docs.
>
>

That's what i trying to say.
Someone have to get his hands dirty and do it. Fail, fix & repeat
until its done.
There is no magic. And it always will be hard and error prone.


--
Best regards,
Igor Stasenko AKA sig.
Stéphane Ducasse
2011-05-06 15:33:02 UTC
Permalink
ok you win



a bit ;)

On May 6, 2011, at 3:49 PM, Igor Stasenko wrote:

> On 6 May 2011 15:42, Denis Kudriashov <dionisiydk at gmail.com> wrote:
>>
>> 2011/5/6 Igor Stasenko <siguctua at gmail.com>
>>>
>>> But just don't fall into delusion, that you can start using external
>>> library (either written in C or C# or in Java),
>>> without knowing at all the foreign language in which library are
>>> written, and just after few mouse clicks in Pharo image.
>>>
>>
>> Hello,
>>
>> In last week I implement java binding with some C library (it containes
>> callbacks). Before I never doing this kind of work in java.
>> And It will not simple task. I use JNA - analogous FFI libraries in
>> smalltalk.
>> So I done it. And It work from my tests. But when I deploy It to apatch
>> server as servlet it cant work. Java craches in arbitrarily places of dll
>> calling.Solutions will be simplest C dll wrapper which provides two
>> functions without callbacks.
>> Similar problems will be when we doing java connect to com-object. Solutions
>> will be C# socket server :))
>>
>> So Java connection to foreign world is not easy. Although there is good
>> docs.
>>
>>
>
> That's what i trying to say.
> Someone have to get his hands dirty and do it. Fail, fix & repeat
> until its done.
> There is no magic. And it always will be hard and error prone.
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
Germán Arduino
2011-05-05 23:24:01 UTC
Permalink
>
> Haha.. i have strong suspicion that here you are talking about quite
> specific set of libraries,
> which using OLE/COM interfaces. Indeed, one could implement an
> automatic "import/connect" tool
> for it, because a library itself contain enough information reflecting
> it interface(s).
> You can check Dolphin smalltalk which works only on windows and has
> integrated solution for that for years:
> In same way like you described, you just pick the library, click "ok"
> and its done & ready for use.
>


True, I was just ready to write the same thing about Dolphin and works
very well, transforming
OLE objects in Smalltalk objects with their respective methods. But
allways you need to know
what to do with such objects and methods.

And is very dependent of the operating system and the underlying technology.

I think that the cooperation with the outside world is needed, but I
will not miss the advantages of
work in Smalltalk, lot of times is more cheap to develop the needed
stuff in Smalltalk than a
complex artifact to interact with another technology.

Cheers.
Germ?n.
Schwab,Wilhelm K
2011-05-06 17:54:17 UTC
Permalink
Dolphin's ability to wrap using COM type libraries is almost eerie, but you are correct that there is still more to know (very obvious with the Office Automation interfaces). The callout methods themselves are made possible by the work that went into creating the type library. For a bare dll/so, one would need to parse and "understand" header files to get as far as Dolphin's type library analyzer gets.

Has someone familiar with VW's DLL & C-connect commented in this thread? Two questions: is it something worthy of our respect? If so, how far away are we? If we matched, how much more would there be to do? I ask the latter question relative to what is reasonable to expect, at least for foreseeable future.

Bill


________________________________________
From: pharo-project-bounces at lists.gforge.inria.fr [pharo-project-bounces at lists.gforge.inria.fr] On Behalf Of Germ?n Arduino [garduino at gmail.com]
Sent: Thursday, May 05, 2011 7:24 PM
To: Pharo-project at lists.gforge.inria.fr
Subject: Re: [Pharo-project] Popularity of Smalltalk in Software Industry

>
> Haha.. i have strong suspicion that here you are talking about quite
> specific set of libraries,
> which using OLE/COM interfaces. Indeed, one could implement an
> automatic "import/connect" tool
> for it, because a library itself contain enough information reflecting
> it interface(s).
> You can check Dolphin smalltalk which works only on windows and has
> integrated solution for that for years:
> In same way like you described, you just pick the library, click "ok"
> and its done & ready for use.
>


True, I was just ready to write the same thing about Dolphin and works
very well, transforming
OLE objects in Smalltalk objects with their respective methods. But
allways you need to know
what to do with such objects and methods.

And is very dependent of the operating system and the underlying technology.

I think that the cooperation with the outside world is needed, but I
will not miss the advantages of
work in Smalltalk, lot of times is more cheap to develop the needed
stuff in Smalltalk than a
complex artifact to interact with another technology.

Cheers.
Germ?n.
Igor Stasenko
2011-05-05 17:08:47 UTC
Permalink
On 5 May 2011 17:32, Toon Verwaest <toon.verwaest at gmail.com> wrote:
> On 05/05/2011 05:26 PM, C?drick B?ler wrote:
>>
>>> Lastly, most Smalltalk systems are image based...
>>
>> ...which makes you feel the system is "alive", hence one **huge benefit**
>> of Smalltalk: its debugger which enables on the fly debbuging... and also
>> test driven development (real one [1]) where you can run incomplete code and
>> code what's missing iteratively when you need it (Smalltalk is a live
>> system, not only a language as somebody said lately).
>>
>> C?drick
>>
>> [1] see in particular this webcast:
>> http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html
>
> Seriously ... these points in favor of the image are so m00t. Lets see how
> it would work without an image:
>
> I write a C application which I link to GCC. Now I run GDB on my
> application, and while running I have the whole GCC compiler collection at
> my disposal while running. While debugging (at some breakpoint) I just let
> the GCC library compile some C code for me; I turn on the executable flag
> and whooptidoo, I have a Smalltalk like debugger for C.
>
> This is totally unrelated to having an image; it's just a great debugger
> implementation. 2 completely different things. No reason why this wouldn't
> work for C; except for the fact that they didn't do it yet (those lazy
> bastards).
>
>
Yes, but it affects the way how you design your applications and frameworks.
In image-based setup you tend to do things in a way, that things
should be always available
at any moment (wanna create an instance of me? - feel free to do it).

In C and other languages which having compile & run cycle it is
totally different.
Things are available for you not instantly, but only after you restart
everything from scratch,
reinitialize everything and then repeat exactly same steps to meet the
same point as before.
This is often tedious, time consuming and frustrating.

And this difference in approaches leads to fatal flaws in design, like
on Windows OS, which requires you to reboot machine every time you
install new driver(s).

--
Best regards,
Igor Stasenko AKA sig.
Toon Verwaest
2011-05-05 18:42:39 UTC
Permalink
> Yes, but it affects the way how you design your applications and frameworks.
> In image-based setup you tend to do things in a way, that things
> should be always available
> at any moment (wanna create an instance of me? - feel free to do it).
>
> In C and other languages which having compile& run cycle it is
> totally different.
> Things are available for you not instantly, but only after you restart
> everything from scratch,
> reinitialize everything and then repeat exactly same steps to meet the
> same point as before.
> This is often tedious, time consuming and frustrating.
>
> And this difference in approaches leads to fatal flaws in design, like
> on Windows OS, which requires you to reboot machine every time you
> install new driver(s)
Ok, I do agree on that. It's probably not an intrinsic flaw of the
system, it just makes you think differently. However, suppose that C
would have a REPL which gives you an inspector... then you'd already be
more inclined to build systems like Smalltalk has. I don't say Smalltalk
and its philosophy isn't great, I'm just saying that the image isn't a
requirement. I'm sure that if someone would build a more flexible
version of C that people would get used to it and want nothing else...
even expect it.

But whatever :)
Germán Arduino
2011-05-05 23:09:54 UTC
Permalink
2011/5/5 C?drick B?ler <cdrick65 at gmail.com>:
>
> Lastly, most Smalltalk systems are image based...
>
> ...which makes you feel the system is "alive", hence one **huge benefit** of
> Smalltalk: its debugger which enables on the fly debbuging... and also test
> driven development (real one [1]) where you can run incomplete code and code
> what's missing iteratively when you need it (Smalltalk is a live system, not
> only a language as somebody said lately).

Super Full Agree!

> C?drick
> [1]?see in particular this
> webcast:?http://www.pharocasts.com/2010/01/starting-with-sunit-and-debugger.html



--
sourav roy
2011-05-06 12:01:14 UTC
Permalink
HI All,I really got lost into this thread and was blown by the conversation which took place here ;). but i feel good as this has led people to think about the need for a serious documentation. And i feel it will be much welcome by the newbies to Smalltalk and will help in popularizing it.Regards,Sourav | Bangalore | India Original message From:"Nicolas Cellier"< nicolas.cellier.aka.nice at gmail.com >Date: 6 May 11 15:37:49Subject: Re: [Pharoproject] Popularity of Smalltalk in Software IndustryTo: Pharoproject at lists.gforge.inria.frGuys, this is crazy, this is a runaway thread ;)Please, please, a bit more empathy for newcomers would not hurt:change the subject in such cases.Welcome to Sourav, don't be afraid to ask this list for anything obscure.and congratulations to Toon for initial answer.Nicolas2011/5/6 St?phane Ducasse :> Ok if some good souls want to give a try to generate html.>> Stef>>>>> Probably we should find a way to generate HTML from PDF or Latex.>> Any ideas?>>>>
I've used latex2html several years ago.>>>> +1 for html>>>> Laurent.>>>>>>>> >>>> Now for the documentation when did you send an help documentation for any part of the system?>> >>>> Or a bug fix?>> >>>> I find quite funny that people always talk but few are doing. We welcome comments/examples help.>> >>> No need to get into a catfight here :)>> >>>> >> No this is not my point. But what do people really do to help?>> >>>> >>> I do agree with Stefan, as well as with you that we could help; but I'm unaware of a good documentation effort outside of the image to start with. Camillo's website project might be the best effort I've seen until now; but then I didn't really look either. Maybe I missed some great website?>> >>>> >> If this is just to spit out class comment on html I do not call that a documentation.>> >> Now we can take the book contents and generate html>> >> We have 350 pages in the first book and the same in the second one.>> >> People are free to join and write o
ne or two chapters.>> >>> > St?phane,>> >>> > Of course you are right: wining/complaining doesn't help, only action does. We need more people like Laurent focusing on documentation.>> >>> > I for one think that the well written, high quality books that exist (PBE, Seaside Book) are *very valuable*, much better than confusing wiki site (although these have their place as well).>> >>> > But the other point is: in most other popular languages, what current, young developers do, when they get an error that they don't understand is copy/paste the literal text in Google and in a surprisingly large number of cases you find some real answers in the first page.>> >>> > This is also related to popularity of course.>> >>> > Sven>>>>>>>>>Get Yourself a cool, short @in.com Email ID now!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20110506/0eecdc3c/attachment.html>
Loading...