Want to predict the future of software development? Look for features that are currently used only by developers during development/debugging, and project them into a production world.
Consider AspectJ, for example. For years, developers have been pointcutting their own code in the debugger. In fact, gdb's scripting and breakpointing could definitely be used to implement a primitve Aspect environment
Or, take a more forward-looking example. Today developers are writing unit tests. Jim Weirich has blogged about the new RSpec project, which looks almost like unit tests, but recast as executable specifications:
class EmptyMovieList < Spec::Context def setup @list = MovieList.new end def should_have_size_of_0 @list.size.should_equal 0 end end
Of course it won't end there. RSpec (or something like it) will morph into a DSL for specifications. Once in this form, it will be reasonable to, for example, turn precondition checking on or off for specific portions of your code in production. What we now thing of as "development time" unit tests will be fully integrated into production software.
Is this just semantics? Yes, and I agree with Jim. Leave out the "just".