Cedric Who?
Vanward Technologies [ Interview with TestNG’s Cedric Beust ]:
IDE’s for dynamic languages come nowhere close to this level of functionality, and whenever I program in Ruby or Groovy, having to leave my IDE of choice is not only hard, it sometimes makes me decide against using the dynamic language, even if it’s a clear winner on paper.
I don’t know who this guy is or why anyone is wasting time interviewing him, but he clearly needs to work with any of the modern Smalltalk or Lisp IDE’s (or ancient ones, for that matter). They are so many lightyears beyond Eclipse, he can’t even begin understanding them, it seems.
Here is my plea to dynamic language authors: stop working on the core of your language and allocate an entire month to implement a decent plug-in for your IDE of choice. Fail to do this, and your language will forever stay a niche project.
Well, I do not qualify as a dynamic language author. But I did stop working on the core of “my” language and allocated an entire two hours to implement a decent plug-in for my IDE of choice (code here). Could someone tell me why I should have taken an entire month for that? What’s the gain?



December 9th, 2005 at 2:48 am
“They are so many lightyears beyond Eclipse, he can’t even begin understanding them, it seems.”
Comments like this don’t really say anything. Can you give some examples?
December 9th, 2005 at 7:17 am
To Anonymous Coward:
1. Eclipse ‘borrowed’ the idea of scrap pages (a page where java code can be, ummm, displayed, executed, or inspected) from Smalltalk workspaces.
2. Eclipse ‘borrowed’ the idea of refactoring from Smalltalk (bonus link: http://c2.com/cgi/wiki?RefactoringBrowser)
3. I was searching for senders and recievers of methods in Smalltalk back in the early 90’s.
4. I was changing my development tools (vis-a-vie Eclipse’s plugins) back in the early 90’s.
It has been some time since I’ve done Smalltalk development so I don’t know the current features and how they map to Eclipse.
I hope this helps.
-Mel
December 9th, 2005 at 8:43 am
Well… the article I referred to didn’t go out of its way either to provide examples of the perceived shortcomings of dynamic language IDE’s–Mel pointed out some details, but generally speaking the last times I looked at Eclips (I regularly look at Eclipse, hoping that one day, it might make Java development bearable so I would be inclined to pick up Java projects in case the Smalltalk market becomes weak), every feature was either present in a modern Smalltalk IDE or not necessary for it (like support for ‘build systems’–only necessary if you still work with notions of source files and object files).
Furthermore, what struck me was not a feature-for-feature comparison of Eclipse against any one dynamic language IDE, but more the broad sweeping (and therefore easily falsifiable) statement that all dynamic languages have bad IDE’s.
December 9th, 2005 at 10:30 am
Here are the things I do in IntelliJ IDEA that I would like to be able to replicate in a smalltalk environment. I know all of these things are do-able in a smalltalk image, but its the integrated, at-your-fingertips finish of IDEA that makes it just that bit more pleasureable. Some examples:
* Run all tests with a key stroke (SHIFT-F10) from the system browser
* Browse the results of the tests, without the mouse, pressing ENTER will take me through from a failed assertion to the assertion code in the test case
* Press “CTRL-W” three times, invoking syntax aware incremental selection, which will select, say, the current word on first press, the current line on press two and the current block on press three. Then press “CTRL-M” to extract it as a method. “CTRL-V” will extract it as a method.
* Press “CTRL-N” in the system browser and get type-ahead search for class names, selecting a class name will bring me to the class definition.
* Press “CTRL-ALT-N” in the system browser will launch a type-ahead method finder.
* Press “SHIFT-F6″ on the name of an instance variable in the text of a method lets me rename it.
* Press “CTLR-ALT-N” to create a new test for the current class, or if the test already exists, switch to it.
For me the whole debate does not boil down to a feature by feature comparison. Smalltalk has all the features of the Java environments and more, but its the more integrated, polished, less-mouse intensive nature of the Java feature set that I would like to see in the smalltalk environment.
December 9th, 2005 at 12:10 pm
Hi Mike,
You mean sort of like this?
http://www.macta.f2s.com/Thoughts/dolphin.html
Just part of what can/is being accomplished in Dolphin Smalltalk
December 9th, 2005 at 2:31 pm
Sean, thats exactly the kind of thing I am talking about and am going to try it out. Thanks very much for the link. Now, if only this kinda stuff was out of the box….:-)
December 10th, 2005 at 2:46 am
“the article I referred to didn’t go out of its way either to provide examples of the perceived shortcomings of dynamic language IDE’s”
True - so maybe the first step is to ask him to provide examples of the “much more” that “Today’s IDE’s” are doing.
December 10th, 2005 at 12:07 pm
Isaac: Well, the fact that he is talking about “anything Smalltalk’s environment ever did”–note the use of the past tense–doesn’t exactly make me feel that I should go out of my way extracting information about his unfounded and unsupported assertions. He seems to think that Smalltalk development halted in 1985 or so…
Mike: I went to visit a project once where all tests were run every time you saved a method–there are so many “out of the box” wishes, that we can’t possibly start to put them all in the basic development environment. The best bet is something that’s easily malleable to your wishes, and it doesn’t seem that adding some keyboard shortcuts (at best one or two hours work) should be a big issue in a good malleable IDE (like, err… most Smalltalk environments
)
December 10th, 2005 at 1:03 pm
Cees, agreed that it ain’t possible to stick all out of the box wishes into basic environment. Fair enough. At the same time, “opinionated software” is what makes Rails so widely adopted. I argue that lack of opinion in Linux makes it unadoptable as a desktop for the masses. So imposed opinion is a good thing, giving a head start to those who agree with it
So, wouldn’t it be possible to provide several styles of opinionated software installs for the squeak environment as squeak map packages? One that binds all the tools tightly together with keyboard short cuts and makes the code editing experience work like IntelliJ IDEA - exactly what Tim MacKinnon has done for Dolphin at the URL I posted above. Its super work, and it does, spookily, nearly exactly the list of things I listed. “Intelli-Squeak”.
And there could be other installable “opinions” too, just I can’t think of any others worth a damn
I guess what I am saying boils down to this: there is a class of user that is not so pushed about tailoring their environment, preferring instead to bang out domain code, and leaving environment tailoring to the class of user that likes doing it (not in a totally black/white divide of course). Catering for this class of user would require a suite of “installable opinions” from which they can pick.
I think this kind of work would be a worthwhile effort for the squeak community to undertake. Its taking the friendliness and approachability of squeak 2% forward, and all such increments add up over time.
December 10th, 2005 at 5:02 pm
Mike: I agree. Build your opinion and publish it
In the meantime, Torsten Bergmann has thrown his 2 cents into this debate. He gives some code examples, it might be interesting if someone could cough up Eclipse equivalents.
December 10th, 2005 at 7:12 pm
Cees, I will - when I get good enough at Squeak. The intention behind my post was to maybe prompt some of the Squeak guru’s who say that doing this kind of work takes only a few hours to spend those few hours doing it, so that beginners like me can get some traction more quickly. Don’t forget, the Squeak code base is second nature to you, its not to me, thats why, I assume, it seems to you that what I am asking for is trivial. Expecting beginners to do the work that makes Squeak easier for beginners is probably unrealistic - all beginners can do is point out whats hard. Yeah, I get to to be “the customer” for once
December 10th, 2005 at 9:12 pm
Are you in in the least curious to know if he’s ever used a Smalltalk IDE, or is it enough to respond to his unfounded assertions with unfounded assertions of your own?
Anyway, rather than blindly denounce him, I’ve asked him to blog about what he meant - maybe he will, maybe he won’t.
December 13th, 2005 at 5:33 pm
He did.
Dynamic refactoring? Seriously?
December 13th, 2005 at 6:42 pm
Well, he has obviously read articles on how dynamic refactorings work. But his imagination doesn’t stretch as far as to realize that this is something that a lot of people are using in day-to-day work, and they never pause to think about it. So how he can assert that “we won’t see them in an IDE any day soon”, that’s something I’m scratching my head over.
Unless he discounts all Smalltalk environments as not being IDE’s. Which is probably the case, because we are joking around with refactoring browsers and stuff. Can’t call that an IDE, of course…
He goes on to assert: “And this is one of the main reasons why no matter how great languages such as Ruby or Groovy are, they will never gain wide acceptance.”. Hmm… If I may throw all dynamic languages together, I am really wondering how much code is produced these days in Python, Perl, PHP, Javascript, Ruby, Smalltalk, etcetera. Err… let me correct that: how much functionality is produced. Because in my experience, you typically need more code and more hands to produce the same functionality in, say, Java, so counting lines of code or developers clearly doesn’t count. Back to function point analysis, probably.
(afterthought: I wonder what sort of language Cedric’s weblog software is written in. Wasn’t Movable Type written in that horrible dynamic language, Perl? Shouldn’t he quickly switch to a Java, C# or C++-based weblog package, in case dynamic languages get too much mindshare?
)
December 13th, 2005 at 9:25 pm
So how he can assert that “we won’t see them in an IDE any day soon”
Out of context quotation?
“there are some refactorings in dynamic languages that…”
imo it would be perfectly reasonable to ask him - which refactorings?
December 13th, 2005 at 9:33 pm
Why, Isaac? He gives the example himself! Or he should write clearer–if he gives an example of a refactoring, ridicules it, and subsequently asserts that “some refactorings” will not be in an IDE any time soon, every sensible reader would assume he is talking about the refactoring he just ridiculed.
Besides, continuing this discussion is a waste of time. You’re obviously interested in finding missing dots in ‘i’s where there’s clearly a gaping chasm of ideas…
December 14th, 2005 at 12:38 am
We seem to have different opinions about the difficulty of communicating through a few sentences on a blog.
imo “every sensible reader” would assume less and inquire more.
December 14th, 2005 at 12:43 am
Heh. Isaac - get serious. I did a bit of Googling and you’re seem to be basically a pathological nitpicker–so you’re hardly the model for a sensible reader
. And yes, that’s an ad-hominem attack because it’s late and I don’t care–you shouldn’t either, by the way, because I’m sure that we could have a lot of fun over a beer but I’m not going to hold endless discussions on a blog.
Anyway, discussion closed, as far as I’m concerned. I read two articles related to this guy, and I’m not convinced that Cedric has had any serious exposure to the sort of environments I’ve been talking about. If I meet him, I’ll sure ask. If he trips over my blog, he’s more than welcome to add a note refuting this claim.
August 7th, 2006 at 12:50 am
http://www.ddj.com/dept/lightlang/187200914