Advertisement
I hope this will be on topic here. Reposted from my wiki at: zby.aster.net.pl/kwiki/index.cgi
Some applications let you save a sequence of your actions into some textual representation that later can be replayed. Examples of them: Excel with saving into Visual Basic scripts, Emacs with saving into emacs lisp, unix shells with editable history files. This page is devoted to analysis of many advantages of this functionality.
Saved Macros for Learning of Programming
Advantages for learners of the art of programming:
* the user does not need to learn programming before it can use it, she can use it for automation of some mundane tasks with zero knowlege of the programming language used
* it induces natural curiosity in the user who would like to peek into the saved programs
* the user can herself generate the most relevant examples from his own work with the application
* the language can be learned on an 'as needed' basis with very fine grained steps (the first point is really only a conclusion of this)
Saved Macros as a Method of Programming
One example of the advantages of interactivity over batch mode are spreadsheets. All the data manipulating you do in a spreatsheet you can program in a scripting language like Perl, so why we use spreadsheets for them? My answer is better InterActivity of the spreadsheets - after each manipulation you immediately see the output of it, if you miss you can reverse it or adjust. It's like in shooting: aim, shoot, adjust and repeat. While with programming you need to close the program to a more or less finished form untill you can run it and see the results. Then, of course, you can again adjust the program and repeat the process, but obviously the loop is much longer than in the case of spreadsheets.
Yet there is one advantage of the programming way of solving the data manipulation problem. Once you program it you can run it multiple times with a minimal work overhead. What can we do to have both the interactivity of manual manipulation and repeatibility of programming? The answer is SavedMacro. You can grow your program by just saving your interactive sessions with the system/application.
Disadvantages
There is one quite severe disadvantage of this modus operandi - saving the seqence of operations does not save the whole context of those operations (the state of the application) so the communication capabillities of this method are much worse than the traditional approach of handwriting the whole code (from Re^5: Spreadsheets, HTTP::Recorder and interactivity by tilly). So it seems to be suited only for creating relatively small programs. Of course when we allready know that we can start to think about ways of relinguishing this constraint.
Saved Macros and the Future of Programming (some speculations)
People use computers for more and more daily tasks and to use computer with the maximum power one needs to learn programming. We can expect that more and more people will learn how to program and SavedMacro seems to be the easiest way to do it: even if it remains constrained to creating only the most basic programs, that is what most of the users will ever need. And here is what I predict - the sheer number of its practitioners will eventually make it more important than the traditional ways of creating software. I guess this scenario is exactly what hbswk.hbs.edu/item.jhtml referes to as New Market disruptive innovation.
The prediction above calls for designing programming languages specificially for 'Recorded Macro' scripting and particulary for putting some effort for relinquishing the communication inefficiency of them (as described two paragraphs above).
Contra
Saving a sequence of user action can generate only linear paths of execution. Loops, branches and recursion would have to be added manually anyway.
Some applications let you save a sequence of your actions into some textual representation that later can be replayed. Examples of them: Excel with saving into Visual Basic scripts, Emacs with saving into emacs lisp, unix shells with editable history files. This page is devoted to analysis of many advantages of this functionality.
Saved Macros for Learning of Programming
Advantages for learners of the art of programming:
* the user does not need to learn programming before it can use it, she can use it for automation of some mundane tasks with zero knowlege of the programming language used
* it induces natural curiosity in the user who would like to peek into the saved programs
* the user can herself generate the most relevant examples from his own work with the application
* the language can be learned on an 'as needed' basis with very fine grained steps (the first point is really only a conclusion of this)
Saved Macros as a Method of Programming
One example of the advantages of interactivity over batch mode are spreadsheets. All the data manipulating you do in a spreatsheet you can program in a scripting language like Perl, so why we use spreadsheets for them? My answer is better InterActivity of the spreadsheets - after each manipulation you immediately see the output of it, if you miss you can reverse it or adjust. It's like in shooting: aim, shoot, adjust and repeat. While with programming you need to close the program to a more or less finished form untill you can run it and see the results. Then, of course, you can again adjust the program and repeat the process, but obviously the loop is much longer than in the case of spreadsheets.
Yet there is one advantage of the programming way of solving the data manipulation problem. Once you program it you can run it multiple times with a minimal work overhead. What can we do to have both the interactivity of manual manipulation and repeatibility of programming? The answer is SavedMacro. You can grow your program by just saving your interactive sessions with the system/application.
Disadvantages
There is one quite severe disadvantage of this modus operandi - saving the seqence of operations does not save the whole context of those operations (the state of the application) so the communication capabillities of this method are much worse than the traditional approach of handwriting the whole code (from Re^5: Spreadsheets, HTTP::Recorder and interactivity by tilly). So it seems to be suited only for creating relatively small programs. Of course when we allready know that we can start to think about ways of relinguishing this constraint.
Saved Macros and the Future of Programming (some speculations)
People use computers for more and more daily tasks and to use computer with the maximum power one needs to learn programming. We can expect that more and more people will learn how to program and SavedMacro seems to be the easiest way to do it: even if it remains constrained to creating only the most basic programs, that is what most of the users will ever need. And here is what I predict - the sheer number of its practitioners will eventually make it more important than the traditional ways of creating software. I guess this scenario is exactly what hbswk.hbs.edu/item.jhtml referes to as New Market disruptive innovation.
The prediction above calls for designing programming languages specificially for 'Recorded Macro' scripting and particulary for putting some effort for relinquishing the communication inefficiency of them (as described two paragraphs above).
Contra
Saving a sequence of user action can generate only linear paths of execution. Loops, branches and recursion would have to be added manually anyway.
Advertisement
Advertisement