[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