Popularity of Smalltalk in Software Industry

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
124 messages Options
1234567
Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
On 6 May 2011 10:30, Stéphane Ducasse <[hidden email]> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
In reply to this post by Jimmie Houchin-5
On 6 May 2011 08:04, Jimmie Houchin <[hidden email]> wrote:

> On 5/5/2011 8:19 PM, Igor Stasenko wrote:
>>
>> On 6 May 2011 01:03, Jimmie Houchin<[hidden email]>  wrote:
>>>
>>> On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>>>
>>> On 5 May 2011 21:39, Jimmie Houchin<[hidden email]>  wrote:
>>>
>>> On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>>>
>>> On 5 May 2011 18:57, Jimmie Houchin<[hidden email]>    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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Denis Kudriashov
In reply to this post by Igor Stasenko

2011/5/6 Igor Stasenko <[hidden email]>
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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
On 6 May 2011 15:42, Denis Kudriashov <[hidden email]> wrote:

>
> 2011/5/6 Igor Stasenko <[hidden email]>
>>
>> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
In reply to this post by laurent laffont
On 6 May 2011 07:11, laurent laffont <[hidden email]> wrote:

>
> On Fri, May 6, 2011 at 3:19 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> On 6 May 2011 01:03, Jimmie Houchin <[hidden email]> wrote:
>> > On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 21:39, Jimmie Houchin <[hidden email]> wrote:
>> >
>> > On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 18:57, Jimmie Houchin<[hidden email]>  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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Dave Mason-3
In reply to this post by Toon Verwaest-2

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


Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

SergeStinckwich
On Fri, May 6, 2011 at 9:43 PM, Dave Mason <[hidden email]> 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/

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Dave Mason-3
In reply to this post by Stéphane Ducasse
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
Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Miguel Cobá
In reply to this post by Stefan Marr-4
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




Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
On 6 May 2011 17:11, Miguel Cobá <[hidden email]> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Stéphane Ducasse
In reply to this post by Igor Stasenko
ok you win



a bit ;)

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

> On 6 May 2011 15:42, Denis Kudriashov <[hidden email]> wrote:
>>
>> 2011/5/6 Igor Stasenko <[hidden email]>
>>>
>>> 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.
>


Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Stefan Marr-4
In reply to this post by Miguel Cobá
(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


Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

laurent laffont
In reply to this post by Igor Stasenko
On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <[hidden email]> wrote:
On 6 May 2011 07:11, laurent laffont <[hidden email]> wrote:
>
> On Fri, May 6, 2011 at 3:19 AM, Igor Stasenko <[hidden email]> wrote:
>>
>> On 6 May 2011 01:03, Jimmie Houchin <[hidden email]> wrote:
>> > On 5/5/2011 4:25 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 21:39, Jimmie Houchin <[hidden email]> wrote:
>> >
>> > On 5/5/2011 12:21 PM, Igor Stasenko wrote:
>> >
>> > On 5 May 2011 18:57, Jimmie Houchin<[hidden email]>  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.


Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

laurent laffont

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



Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Miguel Cobá
In reply to this post by Stefan Marr-4
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




Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
In reply to this post by Stefan Marr-4
On 6 May 2011 18:32, Stefan Marr <[hidden email]> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Igor Stasenko
In reply to this post by laurent laffont
On 6 May 2011 18:45, laurent laffont <[hidden email]> wrote:

> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <[hidden email]> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Dave Mason-3
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
Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

Joseph T. Bore
In reply to this post by Igor Stasenko


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

Reply | Threaded
Open this post in threaded view
|

Re: Popularity of Smalltalk in Software Industry

laurent laffont
In reply to this post by Igor Stasenko
On Fri, May 6, 2011 at 7:25 PM, Igor Stasenko <[hidden email]> wrote:
On 6 May 2011 18:45, laurent laffont <[hidden email]> wrote:
> On Fri, May 6, 2011 at 4:01 PM, Igor Stasenko <[hidden email]> 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.


1234567