How much of the Smalltalk experience?

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

How much of the Smalltalk experience?

senTalker
Hello Redliners,

I come to you with a very basic question. 

A part of what you are trying to accomplish here is pretty obvious to me: be able to code in Smalltalk, yet run in the JVM and also make use of JVM libraries. But other parts of what it normally means to "develop" in Smalltalk are not, for me, clear at all... I must admit that I haven't tried Redline for a while (but will soon ;-)

Concretely, how much of the "Smalltalk-experience" will be there? You stated before that it will not be image-based, which I am fine with and also understand. But, for example:

* will I be able to change classes/methods without recompiling?
* will I be able to create new methods while debugging?
* will I be able to interact with object instances while debugging?
* will I be able to ask for all senders/implementors of method XXX?
* will there be code-completion? (like in Pharo, not like in Java, which we know is very difficult/impossible)

So, apart from not being image-based, how much of the usual "experience" will be there?

My question should not be understood as "can I do this now" but "will it be possible some day / is it part of the plan" :-)

Best regards,

Sebastian


Reply | Threaded
Open this post in threaded view
|

Re: How much of the Smalltalk experience?

James Ladd
Hi Sebastian,

Thank you for this question. It helps us improve the 'message' we are sending
to potential Redline Smalltalk users.

My response is inline below ...

Thanks for the post and interest in Redline. I hope you get to use it soon.

Rgs, James.

On Wednesday, 21 November 2012 05:01:48 UTC+11, Sebastian Nozzi wrote:
Hello Redliners,

I come to you with a very basic question. 

A part of what you are trying to accomplish here is pretty obvious to me: be able to code in Smalltalk, yet run in the JVM and also make use of JVM libraries. But other parts of what it normally means to "develop" in Smalltalk are not, for me, clear at all... I must admit that I haven't tried Redline for a while (but will soon ;-)

Concretely, how much of the "Smalltalk-experience" will be there? You stated before that it will not be image-based, which I am fine with and also understand. But, for example:

* will I be able to change classes/methods without recompiling?
 
Yes - you can do that now.
 
* will I be able to create new methods while debugging?

Yes - the ability is there but we are still in development of the IDE plugins which must support this.
You can set breakpoints on Smalltalk code and step line by line through it using the Java Debugger.
 
* will I be able to interact with object instances while debugging?

Yes.
 
* will I be able to ask for all senders/implementors of method XXX?

Yes.
* will there be code-completion? (like in Pharo, not like in Java, which we know is very difficult/impossible)

Yes - we will need to review how the code completion is done in Pharo and assess the most productive approach
for Redliners.
 

So, apart from not being image-based, how much of the usual "experience" will be there?

Our goal is to be as much of a Smalltalk as we can be within the context of the established tool-chains, and
the experience of non-Smalltalkers. Redline Smalltalk is not 'just' the language, it will be as much of the experience
as makes sense to get more Redliners!
 
My question should not be understood as "can I do this now" but "will it be possible some day / is it part of the plan" :-)

I hope this is the answer you were looking for?


Best regards,

Sebastian


Reply | Threaded
Open this post in threaded view
|

Re: How much of the Smalltalk experience?

senTalker
Hi James,

many thanks for the answers. And I'm glad that they are "positive" too... (as in "what I wanted to hear" ;-)

I was a little bit worried because I had the feeling that although being Smalltalk, Redline would somehow inherit the dreaded write-compile-run cycle from Java. Which is very contrary to the Smalltalk spirit and experience. I am relieved that this is not the case. It is actually, for me, one of the things that sets Smalltalk apart and makes the whole experience so rewarding and productive. The short (immediate) interaction-feedback-change cycles. Like you are talking to somebody (smalltalk). It should be one of the selling points when confronted with the inevitable question "do we really need yet **ANOTHER** JVM programming language"? That, together with the ridiculously readable syntax that even a kid can pick-up, and the clean but powerful concept and semantics (everything is an object and everything happens through message passing).

From what I understand from your answers, many of the features I was asking about come in the form of IDE support ...? (debugging, code completion, senders/implementors, etc.). But how does changing code while running work now concretely? (I know, I should stop asking and try it out already! ;-) I have a Redline project set-up in an IDE, I hit "run", it runs and... I just change the source-code and...? It reloads automatically? It realizes I changed something? Do I explicitly tell the runtime to reload my classes?

Do I as the developer need to compile the Smalltalk code in order to use it? Is it compiled on-demand? (kind of like Python with its pyc files) Or is it interpreted?

Sorry for my ignorance and if I'm asking too much and this info is out there already. I'll try Readline out (with IDE) in the next few days :-)

Best regards,

Sebastian


P.S. As for the code completion in Pharo, I don't know the internal details. 
I would like to offer what I think makes sense (not sure if Pharo does this) and what I have observed:
* code-completing a method for "self" or "super" is a non-issue since you know which class you are in
* code-completing a class method (for a class literal) is also a non-issue since you explicitly know what the class is
* code-completing a literal is also easy (since you know the class)
* code-completing a variable at run-time is also a non-issue (you know the class)
* otherwise Pharo seems to complete first with matching method names I used recently, and if I delete and code-complete again, the second time it shows all matching methods - this might need to be reviewed/refined


El martes, 20 de noviembre de 2012 21:59:23 UTC+1, jamesl escribió:
Hi Sebastian,

Thank you for this question. It helps us improve the 'message' we are sending
to potential Redline Smalltalk users.

My response is inline below ...

Thanks for the post and interest in Redline. I hope you get to use it soon.

Rgs, James.

On Wednesday, 21 November 2012 05:01:48 UTC+11, Sebastian Nozzi wrote:
Hello Redliners,

I come to you with a very basic question. 

A part of what you are trying to accomplish here is pretty obvious to me: be able to code in Smalltalk, yet run in the JVM and also make use of JVM libraries. But other parts of what it normally means to "develop" in Smalltalk are not, for me, clear at all... I must admit that I haven't tried Redline for a while (but will soon ;-)

Concretely, how much of the "Smalltalk-experience" will be there? You stated before that it will not be image-based, which I am fine with and also understand. But, for example:

* will I be able to change classes/methods without recompiling?
 
Yes - you can do that now.
 
* will I be able to create new methods while debugging?

Yes - the ability is there but we are still in development of the IDE plugins which must support this.
You can set breakpoints on Smalltalk code and step line by line through it using the Java Debugger.
 
* will I be able to interact with object instances while debugging?

Yes.
 
* will I be able to ask for all senders/implementors of method XXX?

Yes.
* will there be code-completion? (like in Pharo, not like in Java, which we know is very difficult/impossible)

Yes - we will need to review how the code completion is done in Pharo and assess the most productive approach
for Redliners.
 

So, apart from not being image-based, how much of the usual "experience" will be there?

Our goal is to be as much of a Smalltalk as we can be within the context of the established tool-chains, and
the experience of non-Smalltalkers. Redline Smalltalk is not 'just' the language, it will be as much of the experience
as makes sense to get more Redliners!
 
My question should not be understood as "can I do this now" but "will it be possible some day / is it part of the plan" :-)

I hope this is the answer you were looking for?


Best regards,

Sebastian


Reply | Threaded
Open this post in threaded view
|

Re: How much of the Smalltalk experience?

James Ladd
>>.many of the features I was asking about come in the form of IDE support

Just indirectly.

The features are there in the runtime and the IDE simply invokes them.
For example, if you ran this snippet of Smalltalk code you would add a method to an
existing class.

SomeClass atSelector: #sayHi put: [ 
Transcript show: 'Hi'; cr. ].

Doing this via your code or invoked by an IDE during say a debug cycle is another thing.

Redline Smalltalk supports the dynamics necessary to be called a Smalltalk.

On Wed, Nov 21, 2012 at 10:45 AM, Sebastian Nozzi <[hidden email]> wrote:
many of the features I was asking about come in the form of IDE support

Reply | Threaded
Open this post in threaded view
|

Re: How much of the Smalltalk experience?

senTalker
Cool.

2012/11/21 James Ladd <[hidden email]>:
> Redline Smalltalk supports the dynamics necessary to be called a Smalltalk.
Reply | Threaded
Open this post in threaded view
|

Re: How much of the Smalltalk experience?

senTalker
In reply to this post by James Ladd
2012/11/21 James Ladd <[hidden email]>:
>> many of the features I was asking about come in the form of IDE support
> Just indirectly.
> The features are there in the runtime and the IDE simply invokes them.

So in case of debugging, for example, does the Redline runtime offer a
debug-API?

Or how does debugging (Redline) Smalltalk code work under the hood?

Cheers,

Sebastian