… I've forgot to explicitly mention that TDD-ing in Pharo I spent most of time in debugger and inspectors: I see live objects there, I can investigate and find roots of troubles, I code there… That's why TDD is most productive in Smalltalk environment for me, and another reason why I think a good debugger (in an alive environment) doesn't make TDD unnecessary (or inversely) but rather complement and empower each other.
-- Best regards, Dennis Schetinin 2013/6/6 Dennis Schetinin <chae...@gmail.com> > I didn't mean to start a big discussion so I'm not ready to state or > develop my vision right now fully and logically… But let's try to start > little-by-little. > > Considering Pharo as an example… there are few minor issues like lack of > some code-producing features in debugger… the one I can remember right now > is lack of code formatting there, but there are few more. Fixing such > issues would be a first step towards TDD-oriented environment. > > Next steps would be about some more serious improvements: Test Runner > improvements, auto-test running (it's already is implemented I think?), > test annotations (expressing ideas behind every tests, relations between > them, etc.), better test navigation and, perhaps, a "TDD-oriented" browser. > Then, there should be introspection tools that for example silently save > all the history and allow to review, analyze the development process > regarding the idea-test-implementation triplets… > > …Sure, I rather have a "feeling" of the TDD-oriented environment then a > good proposal right now. The feeling grows to something almost reasonable > when I code, but I didn't have such chance for few months already, so I'm > kinda caught off base :) > > -- > > Best regards, > > > Dennis Schetinin > > > 2013/6/6 Frank Shearar <frank.shea...@gmail.com> > >> On 6 June 2013 14:44, Dennis Schetinin <chae...@gmail.com> wrote: >> > TDD is not about tests (as a bug-finding/debugger tool) at all. And the >> > anti-regression feature of TDD is just the secondary one. >> > >> > First of all, TDD is about structuring thinking/creation process. And >> "test" >> > here is a tool that allows and makes developer to formalize >> requirements and >> > to translate them to the language they will be implemented in. This >> starts >> > and really drives coding. Thus, a programmer that really masters TDD >> (really >> > means an ability to apply "pure" TDD for all programming activities: >> both >> > top-down and bottom-up design activities) is expected to produce much >> better >> > architecture/design/code. >> > >> > … So, I don't think TDD is somehow obsolete by Smalltalk. Vice versa, >> TDD >> > should be really efficient here. And it's a great pity TDD is not >> actually >> > popular in Smalltalk society. One of the dire consequences is that >> modern >> > Smalltalk environments are not "TDD-oriented" and don't advantage from >> good >> > TDD methodology. >> >> Why do you think Smalltalk environments aren't "TDD oriented"? What >> would an IDE need to be TDD oriented? (I can think of something like >> Ruby's guard, which runs tests every time you save a file.) >> >> frank >> >> >