Smalltalk in a C World

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

Re: Smalltalk in a C World

Eliot Miranda-2



On Mon, Dec 9, 2013 at 2:01 AM, [hidden email] <[hidden email]> wrote:
The main issue is that it is complicated to embed the VM in C code.
That's due to how the VM is done.

Compared to TCL, where you can easily embed the interpreter in a C program, this is a problem. http://wiki.tcl.tk/3474

Where you can embed the interpreter in a C program, you can do whatever integration you want.

Now, with NativeBoost, we can call C. The next challenge would be to be able to call Pharo from C by embedding the interpreter.

I am curious to  see what you guys think about this.

It is non-trivial, but possible (I've done it twice with VisualWorks).  Spur should help (pinning is important).  Callbacks r essential (Cog provides them).

1. the VM is restructured as a launch .exe and a dll.
2. the VM is restructured so that one can include an image as a resource (windows exe's) or static data (e.g. unix); one can use an image file but if one really wants a library it must exist just as a library
3. one needs an API to the VM, and essentially that requires an object request broker (ORB) between the API and callbacks into the image, so that one can query for objects (including selectors) to be able to send messages to them

Note that step 3. can be implemented as a small stand-alone library that talks to the VM running in a separate process, and on multi-core machines this can be a more robust architecture; there's no protection against a program corrupting the Smalltalk heap if the heap is in that program's address space.  But if the requirement is really a linkable library (that does not spawn processes) then that's what one builds.
 
I would love to see things like mod_pharo (as there is mod_php, mod_perl, mod_tcl...) in Apache.

I embedded VW in a web browser as a Netscape plugin using both variants of 3. above back in the 90's.  It is very possible.  The limiting factors are time and money as usual.


I would love for VM discussions to be carried out on vm-dev ;-)


---
Philippe Back
Dramatic Performance Improvements
Mob: <a href="tel:%2B32%280%29%20478%20650%20140" value="+32478650140" target="_blank">+32(0) 478 650 140 | Fax: <a href="tel:%2B32%20%280%29%2070%20408%20027" value="+3270408027" target="_blank">+32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Mon, Dec 9, 2013 at 9:48 AM, kilon alios <[hidden email]> wrote:
please note that generating dlls alone wont be enough , plugins are compiled against a runtime or specific libraries (a Plugin SDK) and Smalltalk MT would have to be able to do that in order to be a viable solution.   


On Mon, Dec 9, 2013 at 10:28 AM, Stéphane Ducasse <[hidden email]> wrote:
You should think that they use their smalltalk for their projects.

Stef

On Dec 9, 2013, at 9:21 AM, Clément Bera <[hidden email]> wrote:

How can people even know Smalltalk MT still exist with their website and their communication ?

I looked at other Smalltalks a while ago, for Smalltalk MT I clicked on "what's new" on their website and I got that:

<Screen Shot 2013-12-09 at 9.18.11 AM.png>

Then I thought this Smalltalk was dead (nothing new in the past 4 years) and I didn't look any further.


2013/12/8 Stéphane Ducasse <[hidden email]>

> Yes - still alive and kicking. But I'm sure you did not notice since there
> are no "big" announcements or advertising for it.
> ObjectConnect follows the "time is better invested into technology" strategy.
> It is one of the most interesting Smalltalks ever implemented.

http://www.objectconnect.com/stmt_overview.htm
I like the idea that you can get 50kb applications.
Now since this is a closed system and windows-centric.
But I like that it shows that Smalltalk does not have to be the image centric way.

>
> The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013

Now it is not a community thing. :)
And the web site stop and 5.6 in 2009.

Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2"
but it was in 1998 :)


Stef







--
best,
Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Eliot Miranda-2



On Mon, Dec 9, 2013 at 10:32 AM, Eliot Miranda <[hidden email]> wrote:



On Mon, Dec 9, 2013 at 2:01 AM, [hidden email] <[hidden email]> wrote:
The main issue is that it is complicated to embed the VM in C code.
That's due to how the VM is done.

Compared to TCL, where you can easily embed the interpreter in a C program, this is a problem. http://wiki.tcl.tk/3474

Where you can embed the interpreter in a C program, you can do whatever integration you want.

Now, with NativeBoost, we can call C. The next challenge would be to be able to call Pharo from C by embedding the interpreter.

I am curious to  see what you guys think about this.

It is non-trivial, but possible (I've done it twice with VisualWorks).  Spur should help (pinning is important).  Callbacks r essential (Cog provides them).

1. the VM is restructured as a launch .exe and a dll.
2. the VM is restructured so that one can include an image as a resource (windows exe's) or static data (e.g. unix); one can use an image file but if one really wants a library it must exist just as a library
3. one needs an API to the VM, and essentially that requires an object request broker (ORB) between the API and callbacks into the image, so that one can query for objects (including selectors) to be able to send messages to them

Note that step 3. can be implemented as a small stand-alone library that talks to the VM running in a separate process, and on multi-core machines this can be a more robust architecture; there's no protection against a program corrupting the Smalltalk heap if the heap is in that program's address space.  But if the requirement is really a linkable library (that does not spawn processes) then that's what one builds.
 
I would love to see things like mod_pharo (as there is mod_php, mod_perl, mod_tcl...) in Apache.

I embedded VW in a web browser as a Netscape plugin using both variants of 3. above back in the 90's.  It is very possible.  The limiting factors are time and money as usual.


I would love for VM discussions to be carried out on vm-dev ;-)

or at least cc'ed there...
 


---
Philippe Back
Dramatic Performance Improvements
Mob: <a href="tel:%2B32%280%29%20478%20650%20140" value="+32478650140" target="_blank">+32(0) 478 650 140 | Fax: <a href="tel:%2B32%20%280%29%2070%20408%20027" value="+3270408027" target="_blank">+32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Mon, Dec 9, 2013 at 9:48 AM, kilon alios <[hidden email]> wrote:
please note that generating dlls alone wont be enough , plugins are compiled against a runtime or specific libraries (a Plugin SDK) and Smalltalk MT would have to be able to do that in order to be a viable solution.   


On Mon, Dec 9, 2013 at 10:28 AM, Stéphane Ducasse <[hidden email]> wrote:
You should think that they use their smalltalk for their projects.

Stef

On Dec 9, 2013, at 9:21 AM, Clément Bera <[hidden email]> wrote:

How can people even know Smalltalk MT still exist with their website and their communication ?

I looked at other Smalltalks a while ago, for Smalltalk MT I clicked on "what's new" on their website and I got that:

<Screen Shot 2013-12-09 at 9.18.11 AM.png>

Then I thought this Smalltalk was dead (nothing new in the past 4 years) and I didn't look any further.


2013/12/8 Stéphane Ducasse <[hidden email]>

> Yes - still alive and kicking. But I'm sure you did not notice since there
> are no "big" announcements or advertising for it.
> ObjectConnect follows the "time is better invested into technology" strategy.
> It is one of the most interesting Smalltalks ever implemented.

http://www.objectconnect.com/stmt_overview.htm
I like the idea that you can get 50kb applications.
Now since this is a closed system and windows-centric.
But I like that it shows that Smalltalk does not have to be the image centric way.

>
> The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013

Now it is not a community thing. :)
And the web site stop and 5.6 in 2009.

Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2"
but it was in 1998 :)


Stef







--
best,
Eliot



--
best,
Eliot
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Torsten Bergmann
In reply to this post by Esteban A. Maringolo
Esteban wrote:
> I'd prefer ObjectConnect shutdown their website rather than having that.
> And, at certain degree the same applies to my beloved ObjectArts and
> its Dolphin masterpiece.

What a nonsense - why should they shutdown their site if it is valuable
to provide infos and new downloads to their customers?

If you want to shut down any page that is not up-to date you may have
to shut down a big part of the internet.

> ps: Java is no Hype. You might like the language or not, but it has
> established throughout the last decade, and is the language/platform
> that runs on almost all devices. Only C can beat that.

I think mainstream is the better word here. I like Java and use
it a lot. Some days I dislike it when I see how complicated things
can get although there are better easier alternatives. Others feel the same
which is the reason for Groovy, Scala, ...
And there is no doubt about Javas and especially the JVMs place in the
IT universe.

But Smalltalk is (at least to me) not interesting because it is a
programming language - it is interesting because it is a dynamic object
system that is easily changeable (including metamodel and language itself).
 
And Pharo should not stop changing this object system until something new
and better comes out of it...

Bye
T.




 






 


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Torsten Bergmann
In reply to this post by Stéphane Ducasse
Stef wrote:
> I like the idea that you can get 50kb applications.
> Now since this is a closed system and windows-centric.
> But I like that it shows that Smalltalk does not have to be the image centric way.

You have to additionally count the runtime DLL also which is also a few KB.
But even when storage is cheap size matters.

Same for Smallscript which was/is also very outstanding. Write a small ST script, run it
from the console or IDE. Package a few classes into a shared library and compose the
image from loadable binary components in a few seconds.

> > The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013
>
> Now it is not a community thing. :)

Yes its not.

> And the web site stop and 5.6 in 2009.

No, thats just a bug on the "news" page.

Look at http://www.objectconnect.com/release_downloads.htm which is the one that
gets updated from time to time and as I said latest release was November 2013 there.
 
> Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2"
> but it was in 1998 :)

His name is Tarik
 
Bye
T.

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Esteban A. Maringolo
In reply to this post by Torsten Bergmann
2013/12/9 Torsten Bergmann <[hidden email]>:
> Esteban wrote:
>> I'd prefer ObjectConnect shutdown their website rather than having that.
>> And, at certain degree the same applies to my beloved ObjectArts and
>> its Dolphin masterpiece.
> What a nonsense - why should they shutdown their site if it is valuable
> to provide infos and new downloads to their customers?

I can't shutdown anything that's not mine. And that's perfectly fine.
The point is that, IMHO, for the Smalltalk community it's counterproductive.

It's my opinion, I don't want you to share it :)


> If you want to shut down any page that is not up-to date you may have
> to shut down a big part of the internet.

Nothing sells less and causes more rejection than an outdated site.
Particularly if it is about programming.


> But Smalltalk is (at least to me) not interesting because it is a
> programming language - it is interesting because it is a dynamic object
> system that is easily changeable (including metamodel and language itself).

We agree on this. And that's why we're here.

> And Pharo should not stop changing this object system until something new
> and better comes out of it...

If you want to reach broader audiences I'm 100% confident that you
need not only a good product, but also good marketing assets.

Though I never used it, I know the benefits of S/MT because I'm a long
time smalltalker, but what about somebody who's evaluating other
alternatives? Will a Company invest a million dollar (or a hundred at
least) in a product built with a technology whose website is like
ObjectConnect's one?

I know this business runs on hype for a good part, but some things are
just unavoidable.

Regards,


pd: I rather don't continue this here, it's hardly Pharo related.
Pharo is doing a good job in this aspect, or at least much better than
many predecessors.

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

kilon.alios
In reply to this post by Ben Coman
very interesting I wonder whether is pharo related or how easily can be ported to Pharo. 

The funny thing about nativeboost is that because it has its own inline assembler it is possible to use nativeboost to debug the machine code generated by nativeboost or to be more precise AsmJit. Of course thats a manual way of doing this and less ideal than using a dedicated debugging tool but its definitely an interesting concept. I am also wondering and imagining things about Shared memory concept , where 2 apps can shared the same memory addresses and so share data and wonder how nativeboost could help there since it offer complete access to memory. But of course that are low level concept I am not familiar at all, but I would not mind messing with them at least once. It could even eliminate the need to embed pharo inside a C app. 

Definetly loads of ideas to explore here if one is willing to invest the time. 


On Mon, Dec 9, 2013 at 5:40 PM, <[hidden email]> wrote:
kilon alios wrote:
Sort answer is no , Pharo does not try to replace C/C++. CAD plugins are indeed dlls and you will need C/C++ for that. I only Know Free Pascal as another language to generate DLLs but even in that case its extra work. 

So if you look for the most direct solution then Pharo wont cut it and probably most other programming languages.

Theoretically of course its possible , but someone would need to implement this to make it easy to do and currently AFAIK none has. 

Bare in mind that DLLs are strictly a C/C++ invention and definitely not how highly dynamic languages like Pharo work so there is no direct need for Pharo to do such thing cause it would complicate the workflow. For instance you would not want to create a dll for pharo code when you can have an image and live object that offer far more flexibility of code that can modify itself even on runtime. People choose dynamic languages for the very reason that want to avoid such complications and limitations.

If you dont mind workarounds the then answer changes from "no" to "yes".

You could of course create a CAD plugin that triggers pharo and pass information to it through sockets , pipes or other ways of application communication. Its a workaround but it works and I have seen it used in 3d apps. For example in blender that support mainly python addons , I know of a python addon (city generator addon) that uses Java libraries. In this case you create a "bridge" between your CAD application and Pharo and you make the two work together. The good news is that if Pharo crashes , it wont crash your CAD app so that a good thing about this workaround. The bad news is that you would be responsible to expose the CAD functionality to Pharo meaning you will have to create a bridge between pharo and CAD. Of course you will need to expose only the functionality that your plugin uses to Pharo so its not as hard as it may sound. 

 
To paraphrase a favorite quote "good coders invent , great coders cheat " ;)

So yes there definetly many roads that lead to Rome. If you are determined to use Pharo nothing will stop you. 

About debugging nativeboost of course you can use the pharo debugger because nativeboost commands are fully pharo compliant , meaning they are like everything else, messages and objects. For the machine code generated by nativeboost you can use a C debugger like gdb that could let you disassemble the code to see whats wrong with it.
I guess that "Native Debugger" [1] project proposed for Google Summer of Code would have potential for seamless debugging through NativeBoost and C library.

[1] http://gsoc2013.esug.org/projects/native-code-debugger

cheers -ben


Though usually you will just ask here and Igor that is the expert and creator of nativeboost will reply back. He is very helpful and never turns down a question ;) 



On Sun, Dec 8, 2013 at 8:20 PM, askoh <[hidden email]> wrote:
Good that NativeBoost can do what the paper says. How does one debug Pharo
and NativeBoost working together? Can one step in Pharo, encounter
NativeBoost code, the step in C and return to Pharo?

I would like to create addins for CAD programs (Windows for now). The CAD
program starts and calls the addin to be part of the CAD program. User
interactions within the CAD are passed to the addin which then drives the
data or display in the CAD. The addin is a separate DLL or EXE but the user
sees only the CAD with extra capabilities - not as distinct programs. Can
Pharo make such an addin?

Thanks,
Aik-Siong Koh



--
View this message in context: http://forum.world.st/Smalltalk-in-a-C-World-tp4728217p4728573.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.




Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Stéphane Ducasse
In reply to this post by philippeback


The main issue is that it is complicated to embed the VM in C code.
That's due to how the VM is done.

Compared to TCL, where you can easily embed the interpreter in a C program, this is a problem. http://wiki.tcl.tk/3474

Where you can embed the interpreter in a C program, you can do whatever integration you want.

Now, with NativeBoost, we can call C. The next challenge would be to be able to call Pharo from C by embedding the interpreter.

I am curious to  see what you guys think about this.

It is one of my dream!
Now I'm too bad in C to make this dream comes true. Sadly. But I would love to have Pharo being able to 
be embedded in C.


I would love to see things like mod_pharo (as there is mod_php, mod_perl, mod_tcl...) in Apache.





---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Mon, Dec 9, 2013 at 9:48 AM, kilon alios <[hidden email]> wrote:
please note that generating dlls alone wont be enough , plugins are compiled against a runtime or specific libraries (a Plugin SDK) and Smalltalk MT would have to be able to do that in order to be a viable solution.   


On Mon, Dec 9, 2013 at 10:28 AM, Stéphane Ducasse <[hidden email]> wrote:
You should think that they use their smalltalk for their projects.

Stef

On Dec 9, 2013, at 9:21 AM, Clément Bera <[hidden email]> wrote:

How can people even know Smalltalk MT still exist with their website and their communication ?

I looked at other Smalltalks a while ago, for Smalltalk MT I clicked on "what's new" on their website and I got that:

<Screen Shot 2013-12-09 at 9.18.11 AM.png>

Then I thought this Smalltalk was dead (nothing new in the past 4 years) and I didn't look any further.


2013/12/8 Stéphane Ducasse <[hidden email]>

> Yes - still alive and kicking. But I'm sure you did not notice since there
> are no "big" announcements or advertising for it.
> ObjectConnect follows the "time is better invested into technology" strategy.
> It is one of the most interesting Smalltalks ever implemented.

http://www.objectconnect.com/stmt_overview.htm
I like the idea that you can get 50kb applications.
Now since this is a closed system and windows-centric.
But I like that it shows that Smalltalk does not have to be the image centric way.

>
> The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013

Now it is not a community thing. :)
And the web site stop and 5.6 in 2009.

Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2"
but it was in 1998 :)


Stef





Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

philippeback
Now, moving forward, what would be required to have an interpreter embedded in C, even if this means having another image with a special API and the whole enchilada?

At least a working prototype.

I have looked at the "Porting the VM" document and the part about headless (which is now done differently).

What comes to my mind is to define a specific neutral C platform that would be able to execute basic bytecode.

From videos of Ben, I saw SystemTracer (or SystemTracer2) recreating a very tiny image making some noise to prove it was working.

Could it be possible to target this kind of tiny image running inside a C program through a base interpreter? This would avoid having to deal with the whole primitives and plugins at the beginning.

Phil

On Mon, Dec 9, 2013 at 9:07 PM, Stéphane Ducasse <[hidden email]> wrote:


The main issue is that it is complicated to embed the VM in C code.
That's due to how the VM is done.

Compared to TCL, where you can easily embed the interpreter in a C program, this is a problem. http://wiki.tcl.tk/3474

Where you can embed the interpreter in a C program, you can do whatever integration you want.

Now, with NativeBoost, we can call C. The next challenge would be to be able to call Pharo from C by embedding the interpreter.

I am curious to  see what you guys think about this.

It is one of my dream!
Now I'm too bad in C to make this dream comes true. Sadly. But I would love to have Pharo being able to 
be embedded in C.


I would love to see things like mod_pharo (as there is mod_php, mod_perl, mod_tcl...) in Apache.





---
Philippe Back
Dramatic Performance Improvements
Mob: <a href="tel:%2B32%280%29%20478%20650%20140" value="+32478650140" target="_blank">+32(0) 478 650 140 | Fax: <a href="tel:%2B32%20%280%29%2070%20408%20027" value="+3270408027" target="_blank">+32 (0) 70 408 027
Blog: http://philippeback.be | Twitter: @philippeback

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast - http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller
 



On Mon, Dec 9, 2013 at 9:48 AM, kilon alios <[hidden email]> wrote:
please note that generating dlls alone wont be enough , plugins are compiled against a runtime or specific libraries (a Plugin SDK) and Smalltalk MT would have to be able to do that in order to be a viable solution.   


On Mon, Dec 9, 2013 at 10:28 AM, Stéphane Ducasse <[hidden email]> wrote:
You should think that they use their smalltalk for their projects.

Stef

On Dec 9, 2013, at 9:21 AM, Clément Bera <[hidden email]> wrote:

How can people even know Smalltalk MT still exist with their website and their communication ?

I looked at other Smalltalks a while ago, for Smalltalk MT I clicked on "what's new" on their website and I got that:

<Screen Shot 2013-12-09 at 9.18.11 AM.png>

Then I thought this Smalltalk was dead (nothing new in the past 4 years) and I didn't look any further.


2013/12/8 Stéphane Ducasse <[hidden email]>

> Yes - still alive and kicking. But I'm sure you did not notice since there
> are no "big" announcements or advertising for it.
> ObjectConnect follows the "time is better invested into technology" strategy.
> It is one of the most interesting Smalltalks ever implemented.

http://www.objectconnect.com/stmt_overview.htm
I like the idea that you can get 50kb applications.
Now since this is a closed system and windows-centric.
But I like that it shows that Smalltalk does not have to be the image centric way.

>
> The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013

Now it is not a community thing. :)
And the web site stop and 5.6 in 2009.

Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2"
but it was in 1998 :)


Stef






Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World[SEC=UNCLASSIFIED]

Stephen Taylor
In reply to this post by Torsten Bergmann
On Mon, 2013-12-09 at 11:37 +0100, Torsten Bergmann wrote:

> If you follow the hype and advertising you go to Java - if you search
> for something more powerful you search for it and will find Smalltalk.

That's no way to think! Smalltalk is wonderful, but it gains nothing by
being obscure and largely forgotten.

Whenever people are fans of something arcane there's a temptation for
them to wear that obscurity like a medal. And it does no good. No good
at all.




                  Steve
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

kilon.alios
In reply to this post by Marcus Denker-4
I agree 100% with you, it takes like no effort to fine one of the millions of online sexy looking template and there like tons of apps out there that can autogenerate good looking websites. 

But then I find this much , much worse -> http://java.com/en/ . Sure it looks more current but really ? Is that the best mega-company like Oracle can do. No because as it seems this is the same site they inherited from Sun. Actually as far I remember Java from back into 2000 that I was aware of its existence , the website has only slightly changed. 

Actually I know of no language that has a very well designed web site. Taking full advantage of HMTL5 and the current technology. But I like Pharo website none the less.  

Java Hyped !!! What ? Are you serious ? Java - C++ - Javascript is the triangle of hate. Back in 2000 + was an army of blog posts of how dead Java is and still you can see articles of how much people dont like these languages. Not that I blame them , but I always kinda liked Java. 

Hype is not the same thing as popular. I think the most Hyped language by far is Lisp , nothing can touch its hype. You could even believe that Lisp can cure cancer.  I really like Lisp, but its over-hyped none the less. I had to try lisp because of how much overwhelmed I was by people saying how much of a great language it is. Learning Java was curiosity on the ground how popular it became and how fast. I never heard anyone describe Java as Lisp. 

Actually the most hyped thing about Java is Clojure, guess what Clojure is , yeap Lisp :D 

"But Smalltalk is (at least to me) not interesting because it is a
programming language - it is interesting because it is a dynamic object
system that is easily changeable (including metamodel and language itself)."

I could not agree more. I came for the IDE, I feel in love with live coding. Beatiful, makes coding 10 times more fun and very productive. 

But I have to say Smalltalk really does justice to its name. Its a Small language but also everything feels like you Talk-ing to objects, I really like this conversation with my computer , If I could remove case sensitive it would be 100% natural for me. So yes definetly there is not much in the language to be surprised about but in the end that element of least surprise is what make Smalltalk a great choice for me. 


On Mon, Dec 9, 2013 at 1:46 PM, Marcus Denker <[hidden email]> wrote:

On 09 Dec 2013, at 11:37, Torsten Bergmann <[hidden email]> wrote:

> Kilon wrote:
>> dlls alone wont be enough , plugins are compiled against a runtime or specific libraries (a Plugin SDK) and Smalltalk MT
>> would have to be able to do that in order to be a viable solution.
>
> You can be sure it can :)
>
> Clement wrote:
>> How can people even know Smalltalk MT still exist with their website and
>> their communication ?
>
> If you follow the hype and advertising you go to Java - if you search
> for something more powerful you search for it and will find Smalltalk.
>
You search and you find a website that convinces you that Smalltalk it indeed
dead.

        Marcus



Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

philippeback
I did a ton of Java (coding, training people, large scale deployments) and Java has enterprise grade features. For large apps/clients, not much can beat it these days. 

If you need to staff a team for a sizeable project, not much choice either. 

Things like this: http://ec.europa.eu/dgs/informatics/procurement/calls_running/index_en.htm
where you see things like in this page (http://ted.europa.eu/udl?uri=TED:NOTICE:380314-2013:TEXT:EN:HTML) : 

II.2.1)
Total quantity or scope:
9 600 person-years (indicative, non-binding) for all lots for the maximum possible duration of the framework contracts.

I guess there are not enough Pharo-aware people on the planet to fit this :-)
There, the choice is going to be Java.

Now, except when working with decent tools like Jetbrains' IntelliJ (don't get me started with Eclipse), it is really annoying to type. I am even a reseller of these products FWIW.

Other than that it is a fine language. And cool people do cool things with it, like AOT (Ahead of Time) compilers. http://www.excelsior-usa.com/jet.html or the JRockitVM (from the ashes of BEA) http://www.oracle.com/technetwork/middleware/jrockit/overview/index.html

If we could get an instrumented VM like that, well...

For manifesting ideas out of my head, I do prefer Pharo. As a self-employed individual, more power to me. As a startup junkie, more power to me. If I need a Java or .NET guy, I've plenty of contacts in cheap countries who do work very very well.
And f*ck Ruby on Rails. Now, I said it.

As I am currently reading Andres Valloud books, and trying out the exercises, man, what do I know about how to make decent enough code. Close to nothing it seems. That is what is great in Pharo, a community of great minds. That you do not find often in a huge crowd as the chatter is too loud.

</rant>

Phil

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Stéphane Ducasse
In reply to this post by philippeback

On Dec 9, 2013, at 10:45 PM, [hidden email] wrote:

> Now, moving forward, what would be required to have an interpreter embedded in C, even if this means having another image with a special API and the whole enchilada?
>
> At least a working prototype.
>
> I have looked at the "Porting the VM" document and the part about headless (which is now done differently).
>
> What comes to my mind is to define a specific neutral C platform that would be able to execute basic bytecode.
>
> From videos of Ben, I saw SystemTracer (or SystemTracer2) recreating a very tiny image making some noise to prove it was working.
>
> Could it be possible to target this kind of tiny image running inside a C program through a base interpreter? This would avoid having to deal with the whole primitives and plugins at the beginning.

Guille continued and we are working to use his bootstrap as a basis for 4.0.
Now you will need the key primitives such as become: at: at:put: and other.

Stef
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

philippeback
I was more about primitives doing things with I/O.
 



On Tue, Dec 10, 2013 at 9:50 AM, Stéphane Ducasse <[hidden email]> wrote:

On Dec 9, 2013, at 10:45 PM, [hidden email] wrote:

> Now, moving forward, what would be required to have an interpreter embedded in C, even if this means having another image with a special API and the whole enchilada?
>
> At least a working prototype.
>
> I have looked at the "Porting the VM" document and the part about headless (which is now done differently).
>
> What comes to my mind is to define a specific neutral C platform that would be able to execute basic bytecode.
>
> From videos of Ben, I saw SystemTracer (or SystemTracer2) recreating a very tiny image making some noise to prove it was working.
>
> Could it be possible to target this kind of tiny image running inside a C program through a base interpreter? This would avoid having to deal with the whole primitives and plugins at the beginning.

Guille continued and we are working to use his bootstrap as a basis for 4.0.
Now you will need the key primitives such as become: at: at:put: and other.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

Sven Van Caekenberghe-2
In reply to this post by philippeback

On 10 Dec 2013, at 09:26, [hidden email] wrote:

> As I am currently reading Andres Valloud books, and trying out the exercises, man, what do I know about how to make decent enough code. Close to nothing it seems.

Yes, it is a mind blowing book, one of the best books, if not the best, about programming I ever read.

Sven
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk in a C World

askoh
Administrator
In reply to this post by askoh
Has anyone tried Pragmatic Smalltalk?
Is what he says about the VM being a relic of the past true?

Can someone get David Chisnall to join the discussions?

All the best,
Aik-Siong Koh
12