[Pharo-project] Popularity of Smalltalk in Software Industry

Igor Stasenko siguctua at gmail.com
Thu May 5 19:21:20 CEST 2011

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.

More information about the Pharo-project mailing list