On Tue, Oct 18, 2016 at 12:53 PM, Chambers, Matthew <matt.chambers42@gmail.com> wrote:
I'm concerned that we are discussing the implementation language without firming up the requirements of the downstream components, e.g. IDE integration.

We do have to start somewhere :-) I don't think anything would be set in stone even after implementing stuff. But, yes, this conversation is part of trying to discover what we need.
 
If we have a better idea how we want IDE integration to be possible, that may influence our choice(s) of implementation language. I develop with VS as a code editor, but I don't see an obvious way to leverage the power of B2's declarative DSL files from the GUI.

We need some imagination on this obviously.. Minimal UI might just be leaving up to the user to use make projects. Next might be a UI with a context menu on bb build files that lets you build that project. Possibly asking for a command line. Next might be a tool configuration that lets you specify the types of build variants to show in that menu (ie to let you build release, debug, etc). Next could be a special target dependency in the build file spec that says to import the basic target def from the VS project files. But that might be going too far, as it might be best to have the BB side reflect its targets to the IDE project to avoid discrepancies.

That's as far as my brain can think of this far ahead though :-)  And of course, the same type of conjecture would apply to any IDE.
 
Does a VS solution or project file act as an alternative to Jam/YAML/JSON?

Probably not. But it's not impossible. 
 
If so, how will it take advantage of B2's declarative approach in a way that makes it preferable to just using the IDE's built-in build system.

Some I mentioned above. More.. I don't know :-) We'd have to investigate. And it will likely be different for each IDE.
 
If not, then the user still has to write Jam/YAML/JSON by hand, right?

Maybe. But if that's needed or wanted.. We can also provide editor utilities for editing the file (ie syntax checking, macros, etc).
 
I can see IDE integration being very useful for seamlessly debugging the build system, though.

And perf tracing, and code metrics, and, and...
 
I share Vladimir's concern about needing to leverage the existing code due to the lack of available contributors to the core build engine.

There are different ways of leveraging something.

--
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net
-- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail