[GSOC-2014] Newbie mode!
Sven Brauch
svenbrauch at googlemail.com
Mon Mar 3 01:41:49 UTC 2014
On Monday 03 March 2014 06:58:36 Manasij Mukherjee wrote:
> Well, the first time I used kdevelop or eclipse-cdt or any large IDE, it
> seemed counter-intuitive that when I'm not working on something which has
> elaborate makefiles, it was rather difficult to just open a .cpp file,
> build and run it.
> I can't imagine any conflict with build systems to allow this.
Yeah, but take into consideration that much of that complexity is inherent to
how building and running C++ applications work, and that abstracting it away
can only work so long before it leads to utter confusion if the user isn't
fully aware of the abstraction.
Take for example a Qt application. You can provide a template which has a
ready-to-build Qt application, yes. But starting with an empty file the user
can write code into and then just having him click build, and expecting the
IDE to automatically figure out how to compile the file(s)? That doesn't
scale. How would you know what files to compile? How would you know what
include directories to use, or what libraries to link against? What compiler
flags do you set, or even, which compiler do you invoke? Sure, you can use
heuristics, but that's a mess. If you want to write a prototype application
quickly and don't want to struggle with build systems, C++ isn't the right
language anyways ;)
Build systems such as cmake or especially qmake provide an interface for
building C++ applications which has -- in my opinion -- a complexity very
close to the intrinsic complexity of the task at hand. Thus, wrapping them
into further layers of abstraction is not going to buy you much, at least not
long-term. And short-term, I think proper application templates are the best
way to get people started.
> Creating a new project is what I originally had in mind.
> I will try to come up with some working code within this year and link it
> here as proof of concept.
> Would it be feasible to use some components that make kdevelop for this?
> (..say kdevplatform ?)
I didn't understand that. Could you elaborate what exactly you plan to do?
Greetings,
Sven
More information about the KDevelop-devel
mailing list