Talking to yourself, huh?? Please let us know when you start staring at the walls, or chewing on bricks, will ya ;o) ?
Seriously though; I have too little experience with GUI development to have a serious and valid opinion about what you are suggesting. I know that the VB/Delphi way of programming (which is what I think you are suggesting) is very addictive, and in those environments deadly from a maintenance point of view. Hopefully we have that covered by other mechanisms and good architectural patterns. Cheers Niclas On Mon, Apr 28, 2008 at 6:10 PM, Rickard Öberg <[EMAIL PROTECTED]> wrote: > Hey, > > I just had the following conversation with myself. I'd like your > feedback on these topics! > > Me: So, now we have support for scripting! Cool! > Me2: Yeah, neat. What are we going to use it for? > Me: No idea. > Me2: Well, let's think about it. Using script languages to define API's > is a bad idea. Documentation is very difficult, not to mention IDE > support and refactoring. I want my tab completion and "Find usages", damnit! > Me: Right. Scripts are probably better for stuff that is not used by any > other code. Like building UI's. > Me2: Yeah, I saw some really cool Ruby demos where they built Swing UI's > interactively. Maybe that's what we should use it for? > Me: Could be. But what is the problem we are solving really? > Me2: Well, there seems to be two problems. One is that the Java code > needed to do the same thing is very verbose, and another is that if we > do it in Java then we have the whole compile-deploy-run cycle to > consider. If you're building the UI with a domain expert by your side > that's not going to be fun. Too slow. > Me: The verbosity is not so much an issue. I use code completion all the > time, so typing speed is a non-problem. It's been a loooong time since I > last typed a whole method name really. Sure, some of the junk needed to > do Swing UI's is a bit of a mess, but with decent frameworks like > JGoodies that can be dealt with. The long roundtrip cycles is a real > issue though. > Me2: Hm... maybe we ought to think about what is involved with doing > UI's anyway. It's not all the same. > Me: How do you mean? > Me2: Well, there's two very different kinds of coding involved when > doing UI's. First there's the work needed to build widgets. This can be > done in relative peace and quiet, and you can spend time making the > widget feature-rich and of high quality. The second is when you take > these widgets and put them together into a real application, which deals > with a specific problem or domain. That's where speed really is an > issue, and you want to be able to quickly get things done, and try out > different ways of solving a problem. > Me: So scripting then would be good for the second, but terrible for the > first? > Me2: Yeah, probably. > Me: Ok, so we have narrowed it down to which problem it is we want to > solve. Next question is, is scripting the best way to solve it? > Me2: Maybe. If all we are doing is glue code, i.e. take this widget and > attach it to this domain object, there's other ways to do it. For > example, it might be possible to do a drag&drop UI builder where you > simply create the UI using a widget toolbox, and attach it to the > existing model. Then serialize the whole thing and deserialize it at > startup to recreate it. No coding involved. > Me: This sounds a bit like Visual Basic style apps. Is that going to > work? How complex stuff can you do if all you have is drag&drop? What > about actual business logic? > Me2: No idea. > Me: What if we combine it? Use drag&drop visual style to do the outline, > and then use scripting for the glue code. Would that work? The script > code could be part of the serialized state of the UI actually, so it's > still the same basic idea, just a bit more intelligent. > Me2: I guess it's possible. So, then we'd want some kind of base > platform for building these UI's, which has two modes: build-time and > production-time. When in build-time you would have extra toolboxes that > you can use to create the UI, and in production-time it's just being run. > Me: Sort of. > Me2: Cool. > > WDYAT? > > /Rickard > > _______________________________________________ > qi4j-dev mailing list > [email protected] > http://lists.ops4j.org/mailman/listinfo/qi4j-dev > _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

