Menu

#40 Usablility improvements

open
nobody
None
5
2013-04-15
2013-04-15
No

As a contribution to the planned release, I'd like to suggest some areas where czt might be made easier to understand for a first-time user. These cross the border between documentation and actual tool behaviour, but I'll bundle them into one because they are closely related.

First there is actually a mistake in the current manual, which says that invoking czt.jar with no arguments shows usage information - it doesn't, in fact, you need to do czt.jar ?

More generally, I think it would be helpful if the usage information for czt.jar and the various commands like czt.jar zedtypecheck could be in the user manual or top level documentation, with a fuller explanation of what the various flags really mean.

The various tools have different flags, in different styles, and in some cases the same flag means different things in different contexts. For example cxt.jar -d expects a dialect whereas czt.jar zedtypecheck -d is a flag to say allow use before declaration. Since czt.jar with just a filename actually runs the z typechecker this is very confusing. Similarly confusing is the fact that -cp is not passed from the top level down to the invoked tool.

I'd like to suggest that the flags are made consistent in style and distinct for each tool, with -cp being applicable to whatever tool is being run. And running czt.jar <flags> <file> should pass the flags to the typechecker.

This did cause me to wonder about a larger question. Is it really right that you can just invoke a single tool? Should there be some sort of concept of a tool chain? Because in fact even if you think you are invoking a single tool, in fact you are implicitly invoking others before it. At the very least, the typechecker has to be preceded by the parser; and if you load a spec into zlive for example it implicitly parses and typechecks it. Now I don't know how newer things like VCG are intended to work, but I can envisage wanting to do something like parse;typecheck; vcg in sequence, each with its flags. Is that a reasonable picture? If so, how would this work?

Sorry if this is a bit open ended but I hope it makes some sense

Discussion


Log in to post a comment.