The Projucers.. :)

I think a debugger isn’t essential for this to be a useful tool, but for a version 2.0 I do think it’d be nice to have one. Personally, I do seem to spend a lot of my time debugging, so if the projucer could do that, I’d find it much more useful. I guess everyone will differ in the amount of importance they give to debugging.

Really? You must have more luck than me - I’ve very rarely been able to get edit-and-continue working!

This is a very different approach though… the projucer actually modifies the code before running it to allow those realtime value injections, and it adds extra generated code to allow individual components to be instantiated without actually launching the app in the normal way. It also provides a much shorter turnaround time for changes that do require a recompile.

And the main thing that edit-and-continue can never provide is the GUI editor. All the editing controls that you see inside the floating window (i.e. all the controls that highlight the selected child, drag it around, show its properties, etc) is running inside the JIT - the app actually generates and compiles the code that edits a component, so that it can integrate directly with the real component.

[quote]I wonder if the current demo hold the “state” of the application when applying the changes in the code ?
I mean, let’s take the example of the Juce’s Demo, if I run the Projucer on the demo, navigate to whatever component, and then change some values in the code for that component, will it update in the component I’m seeing, or, will I need to navigate to the same component like if the main process was restarted ?[/quote]

At the moment there are two types of change:

  • literal changes, which are instantaneous (just updating the value in memory)
  • changes that need a recompile, which have to restart the JIT and create a new instance of the component (generally all done with about 2sec)

But LLVM does provide a mechanism for updating the code for individual functions without stopping the JIT - I just haven’t investigated that yet. Updating code without relaunching could easily cause crashes, but that’s not a big deal, because when the JIT crashes, the projucer just launches a new process, which takes maybe 5-ish seconds. So in future, I hope that it’ll be to recompile, figure out if the changes only occurred within one function, and if so, update it without stopping, which should be possible within about 0.5sec.

Excellent work Jules… You have certainly done a great job… Now this is something that shall eradicate a lot of tedious work done by the people… I shall surely be using it while constructing my modules in JUCE and I hope that it works pretty smooth over Windows… All the best to keep on the good work then and keep us posted with the alpha…

Just to add to the praise, this look brilliant Jules, can’t wait to give it a try.

This is very impressive. I’ve had an idea to write a C++ to bytecode compiler + a VM to enable instant preview albeit at a slightly lower performance but I simply do not have the resource to do it. Looking forward to a release of the Projucer.

Looks super awesome

This may have already been asked, but search functions non-availing, will you be able to open past projects made in the Introjucer up with projucer or will it be a case of having to move code over to a new project?

As a university student about to begin my final major project in Juce, this is seriously exciting. I can’t wait!

Yes, the projucer is just the introjucer + compiler, all the project stuff is exactly the same.

It’s been almost a month (10 september) since you introduced us to the Projucer. How far are you away from a first Alpha release? I’m really anxious to try it out.
Need any help finding the bugz, i can surely help :wink:

[quote=“gekkie100”]It’s been almost a month (10 september) since you introduced us to the Projucer. How far are you away from a first Alpha release? I’m really anxious to try it out.
Need any help finding the bugz, i can surely help ;-)[/quote]

Thanks! My to-do list has 2 weeks-worth of actual features left to write, plus the inevitable week or so of faffing about smoothing out the wrinkles.

Looks really cool and useful… I need to code some GUI components stuff and would be interested in trying it ASAP.

wow!!! Great job Jules.

It just makes me think about all this time spent tweaking the setBounds() and then compiling and then running and then re-tweaking and then re-compiling
and then…

I feel like crying now

Wow, I’ve only just heard about this - looks incredible!! :slight_smile: :slight_smile:

Superb!

big-ups on the Scott Meyers blog entry!

http://scottmeyers.blogspot.ca/2012/10/the-projucer.html

Hi Jules,

What a good ideas you have! I always knew I was a good choice to use your framework, I never had any problems with stability and intuitiveness has always been - after reading Scott blog, I am now convinced that JUCE is underestimated.

When do you think we will able to enjoy ProJucers?

PS: After a long pause on mobile projects, i’m back to Juce and happy to see all these changes and to see that JUCE is now 2.0. Congratulations.

What’s the status of the ProJucer development? I really need it now. If it’s not gonna be out soon, I’ll try to port AngelJuice to the latest JUCE so I can prototype my components with it.

Sorry, I’ve been interrupted by another project that needs to be finished for a deadline… I think february/march is a realistic time to expect an alpha.

I just wanted to chime in and say thanks for all that you’re doing, Jules. You’re a genius and I’m eagerly awaiting the ProJucer - I never even dreamed something like this was possible.