KDevelop 4/KDev3 KDev4 comparison table
From KDevelop
< KDevelop 4
These are a series of comparison tables illustrating the differences between KDevelop 3.5.5 and the upcoming KDevelop 4.0.0 version that has been rewritten from scratch.
KDevelop 4 uses a different build system, CMake, it uses tons on Unit tests and a extended base library kdevplatform. So it is a really different software when compared with KDev 3. But it's under development and should not be used for production code.
[edit] General
| Feature | KDev 3.5.4 | KDev 4.0
|
| Free, opensource, GPL IDE |  |
|
| Developed since | 2001-03-30 | 2005-05-05
|
| Cross-platform and Multi Operating system support | |
|
| All Linux flavors and distros |  |
|
| Sun Solaris |  |
|
| All BSD flavors and distros |  |
|
| Mac OSX |  |
|
| Microsoft Windows | *1 |
|
*1 via cygwin and kde-cygwin for the required KDE 3.4, support libraries.
[edit] Plugin-based architecture
| Feature | KDev 3.5.4 | KDev 4.0
|
| Functionality can be added, replaced and removed without altering core source code |  |
|
| Libraries license (LGPL) allows creating commercial and free IDE plugins |  |
|
| Support for profiles which determine a set of plugins to be loaded. This is especially useful for restricted environments or custom setups |  |
|
[edit] Project Management
| Feature | KDev 3.5.4 | KDev 4.0
|
| Support multiple build tools: | |
|
| autoconf/automake (a.k.a. autotools) |  | *2
|
| qmake from trolltech |  | *2
|
| CMake Cross Platform Make from kitware |  |
|
| Ability to use custom makefiles to build the project |  |
|
| Support for ant - build tool for java projects |  |
|
| Support for extra project types like pascal, haskell, ada and scripting projects |  |
|
| Can have multiple projects open at the same time |  |
|
| Each project can have multiple subprojects |  |
|
| Each subproject can have multiple targets |  |
|
| Native non-intrusive buildtool support. Hand-made modifications allowed and recognized by the IDE, also existing projects and subprojects can be easily imported |  |
|
| A framework for adding support for any build system by creating build system plugins for the generic project manager |  |
|
| New file wizard to manage file templates and create new files in project from templates |  |
|
| Can open KDevelop 2.x project files (automake based) |  |
|
| Can open KDevelop 3.x project files (any build tool supported in the 3.x versions) |  |
|
| Can open KDevelop 4.x project files |  |
|
*2 available via an unmaintained, potentially unstable external plugin from http://websvn.kde.org/trunk/playground/devtools/kdevelop4-extra-plugins/
Note: in KDevelop 4 you can open any folder as a project, the project-configuration files from the older versions are not required anymore.
[edit] Automake Manager
| Feature | KDev 3.5.4 | KDev 4.0
|
| Parser which doesn't replace existing content in Makefile.am |  |
|
| support for creating multiple targets in the same subdir |  |
|
| support for setting include and linker options |  |
|
| support for creating new subdirectories |  |
|
| support for creating normal and libtool-using targets |  |
|
| compiling individual targets or subdirectories |  |
|
| Compiler plugins to define compiler options in convenient dialogs |  |
|
| supports Qt projects using automake, including rules for moc and uic |  |
|
| Configuration profiles with the ability to specify different compilers, compiler flags, build directories, target architecture, etc. |  |
|
| Internationalization support, allowing translators to add their target language to a project easily, including support of KBabel |  |
|
[edit] qmake Manager
| Feature | KDev 3.5.4 | KDev 4.0
|
| Parser which doesn't replace the project file contents |  |
|
| Parses and displays the Qt4 buildsystem properly |  |
|
| Scopes | |
|
| Display Scopes as tree nodes in the Overview |  |
|
| Add/Remove all types of Scopes (simple, Function and Include's) |  |
|
| Excluding files inside a scope is much easier |  |
|
| Support for disabling subprojects inside scopes, including proper display in the GUI |  |
|
| File Handling | |
|
| Support relative filenames |  |
|
| Support file paths containing variables |  |
|
| Supports Subproject that are outside of the top-project dir |  |
|
| Support for all documented and a couple of undocumented qmake Features |  |
|
| Supports SUBDIRS=somename, somename.subdir=the_real_dir |  |
|
| Supports SUBDIRS=somefile.pro |  |
|
| Build options | |
|
| Run qmake recursively |  |
|
| Dist-Clean |  |
|
| Build File |  |
|
[edit] Custom Makefile
| Feature | KDev 3.5.4 | KDev 4.0
|
| Supports running make with various options or a custom buildtool |  |
|
| possibility to add/remove files and directories to/from the project |  |
|
| support for defining wildcard rules for files that should be part of the project |  |
|
| support for blacklisting files and directories so they are never recognized as belonging to the project |  |
|
| out-of-the-box support for various different file types, like java, C++, Qt .ui files |  |
|
[edit] Language Support
| Feature | KDev 3.5.4 | KDev 4.0
|
| Many supported programming languages | |
|
| Ada |  |
|
| Bash |  |
|
| C/C++ |  |
|
| C# |  | *3
|
| Objective-C (via C support) |  |
|
| Fortran |  |
|
| Haskell |  |
|
| Java |  | *3
|
| Pascal |  |
|
| Perl |  |
|
| PHP |  | *5
|
| Python |  | *3
|
| Ruby |  | *3
|
| SQL |  |
|
| XUL (unofficially) |  |
|
| Problem reporter which reports various "problems" with the source code as you type. Problems include language syntax errors, TODO's and FIXME's |  |
|
| Class browser to display a hierarchy of classes and other symbols in project |  |
|
| Function-name-highlighting in the class-view and navigator |  |
|
| Make the navigator provide an own KCompletion so it is possible to write function-names without scope and get them completed |  |
|
| Restore ClassView state after refresh. The ClassView does not close after each successful build |  |
|
| Language parsers to feed class browser and problem reporter |  |
|
| Class, method and attribute wizards for object-oriented languages |  |
|
| Automatic code completion and code hinting for class variables, methods, function arguments and more |  |
|
| Source formatting, syntax highlighting and code folding |  |
|
*3 available via a potentially unstable, unmaintained external plugin from http://websvn.kde.org/trunk/playground/devtools/kdevelop4-extra-plugins/
*4 available via a semi-stable, maintained external plugin from http://websvn.kde.org/trunk/playground/devtools/kdevelop4-extra-plugins/
[edit] C++ Support
| Feature | KDev 3.5.4 | KDev 4.0
|
| C++ Engine |  |
|
| Persistant Data Store |  |
|
| Stores comments/doxygen-documentation |  |
|
| Global Shared Data Store |  |
|
| Automatically processes all included headers |  |
|
| Sophisticated refactoring-friendly data structure(DUChain) |  |
|
| Full support for use-building, overload-resolution, type-conversion, template-specialization, meta-programming, etc. |  |
|
| Can implicitly execute a meta-program, for example to compute prime-numbers |  |
|
| Fully Automatic Configuration with build-system support |  |
|
| Semantic code highlighting |  |
|
| Quick Navigation |  |
|
| Quickopen |  |
|
| Unified Quickopen Infrastructure |  |
|
| Switch header/implementation |  |
|
| Jump to declaration/definition under cursor |  |
|
| Locally Switch Through Uses |  |
|
| Code Browsing |  |
|
| Class Browser |  |
|
| Semantic Declaration Navigation |  |
|
| Qt documentation integration |  |
|
| Html-like source browsing |  |
|
| Pretty html navigation widget |  |
|
| Allow navigating more complicated relationships like: All overriders of this function, all inheriters of this class, etc. |  |
|
| Declaration navigation features available from within completion-list or quickopen list |  |
|
| "Magic Modifier": A key that allows keyboard-accessible semantic navigation from everywhere with one single key-press(ALT) |  |
|
| Find all uses of a class/function/variable |  |
|
| Interactive navigation tooltip in editor |  |
|
| See the preprocessed versions of macro invocations |  |
|
| Highlight declaration under cursor |  |
|
| Code Completion |  |
|
| Shows informations about involved types and comment/documentation |  |
|
| Multi-Level Argument Hints |  |
|
| Code-Completion while including files |  |
|
| Code-Completion within instantiated templates |  |
|
| Automatic adding of includes |  |
|
| Realistic C++ argument-type matching |  |
|
| Completion for builtin operators |  |
|
| Best matches highlighted in completion list |  |
|
| Working code-completion with templates |  |
|
| Working code-completion with _really_ complicated templates |  |
|
| Template-parameter completion |  |
|
| Signal/Slot connection completion |  |
|
| Automatic signal/slot matching |  |
|
| Automatic matching slot creation |  |
|
| Override-helper: Show code-completion for not yet overridden virtuals from base-classes |  |
|
| Automatic adding of include directives |  |
|
| Automatic creation of forward declarations |  |
|
| Context sensitive C++ keyword completion |  |
|
| Just-Works |  |
|
| Coding Assistant |  |
|
| Definition/Declaration function signature change assistant |  |
|
| Automatic creation of functions/variables based on context type deduction |  |
|
| Simple Refactoring |  |
|
| Renaming: Project-wide intelligent class/variable/function renaming |  |
|
| "new class" wizard |  |
|
| "make member" - creating function definition in source file based on a declaration in the header file |  |
|
| "automatic un-inline" - automatically move function-implementation from header into the source-file |  |
|
| "extract interface"- extracting interface (method declarations) and creating abstract base class with that interface |  |
|
| "subclassing" - automated subclass creating and slot implementing for Qt Designer forms |  |
|
[edit] Ruby Support
| Feature | KDev 3.5.4 | KDev 4.0
|
| Language Features |  |
|
| Module, class and function list |  |
|
| Quickopen for modules, classes, functions (including those defined as and files |  |
|
| List of functions in the toolbar, also shows current function in the editor |  |
|
| Debugger |  |
|
| Ruby debugger with method inspection |  |
|
| Method inspection for QtRuby/Korundum bindings (including core Qt classes) |  |
|
| Unit Testing Features |  |
|
| Run test suite |  |
|
| Run test function currently opened in the editor |  |
|
| Rails |  |
|
| Rails application template |  |
|
| Run Webrick/Mongrel |  |
|
| Infrastructure |  |
|
| irb or script/console in the toolview in addition to konsole |  |
|
| QtDesigner/rbuic integration |  |
|
| documentation links to Rails/QtRuby docs |  |
|
| Ruby projects |  |
|
| Opens projects with cyclic symbolic links in the filesystem |  |
|
| Reload project function |  |
|
| App templates for normal projects, QtRuby/Korundum ones - KDE application framework, KConfig XT, DCOP server and Qt only apps |  |
|
[edit] PHP Support
| Feature | KDev 3.5.4 | KDev 4.0
|
| Language Features |  |
|
| Class and function list |  |
|
| Quickopen for files, classes, functions |  |
|
| Context browsing |  |
|
| List of functions in the toolbar, also shows current function in the editor |  |
|
| Debugger (XDebug) |  |
|
| Unit Testing Features |  |
|
| Rafactoring |  |
|
| Project-wide rename-refactoring |  |
|
| Documentation Integration |  |
|
| local PHP.net documentation integration |  |
|
| remote PHP.net integration |  |
|
[edit] Integrated Debugger
| Feature | KDev 3.5.4 | KDev 4.0
|
| GDB frontend |  |
|
| Integrated GDB console |  |
|
| Java debugger frontend |  |
|
| XDebug frontend |  |
|
| Line, address, method breakpoints and watchpoints |  |
|
| Conditional breakpoints |  |
|
| Disassembler and frame stack viewer |  |
|
| Variable watch tree |  |
|
| Memory, registers and libraries viewers |  |
|
| Debugger shell (libtool) support |  |
|
| Remote debugging |  |
|
| Memory viewer |  |
|
| Project is automatically rebuilt with starting debugger |  |
|
| Variables widget |  |
|
| Reliably work in presence of shadowed variables |  |
|
| "format" menu, supporting extra "binary" and "character" formats, with keyboard shortcuts for each format |  |
|
| Keyboard shortcut for deleting watches |  |
|
| Stack widget |  |
|
| The content is split in columns |  |
|
| Stack frames are fetched incrementally, allowing to debug programs stuck in infinite recursion |  |
|
| Breakpoints improvements | |
|
| Breakpoint types renamed for clarity |  |
|
| Watchpoints are always set on address, not expression |  |
|
| On watchpoint hit, a message box is shown |  |
|
| Breakpoint conditions are reloaded from session file |  |
|
| Breakpoints added manually are shown in breakpoint list too |  |
|
| Address breakpoints |  |
|
| GDB output window allows to filter out "internal" commands |  |
|
| "attach" dialog with search line |  |
|
| Never disable the "Interrupt" action |  |
|
| Specify gdb location using full executable name, not just directory |  |
|
| Uses GDB MI interface for faster and more robust operation |  |
|
| Easy to use breakpoints window |  |
|
| Automatically show variables window when application stops, and hide when application terminates |  |
|
| Editing expression/variable values in variables window |  |
|
[edit] Code Editing
| Feature | KDev 3.5.4 | KDev 4.0
|
| Any editor which implements KDE KTextEditor interface can be used with KDevelop. |  |
|
| Currently available editor is Kate |  |
|
| Code folding |  |
|
| Project wide bookmarks which are stored in the project file. |  |
|
| Difference viewer between currently edited text and text on the disk. |  |
|
| Difference viewer for patch files. |  |
|
| Grep integration - regular expression search in project. |  |
|
| Project wide find and replace tool |  |
|
[edit] Version Control System
| Feature | KDev 3.5.4 | KDev 4.0
|
| A common API to include VCS support in KDevelop. |  |
|
| Supported centralized VCS systems: | |
|
| CVS |  |
|
| Subversion |  |
|
| Perforce |  |
|
| ClearCase |  |
|
| Supported distributed VCS systems: | |
|
| git |  |
|
| mercurial |  |
|
| bazaar |  |
|
| GUI support via context menu on files and directories of the project and also directly in the editor |  |
|
| VCS status coloring in the project tree view |  |
|
| creation of projects directly in the repository (centralized VCS) |  |
|
| creation of projects directly in the repository (distributed VCS) |  |
|
[edit] Subversion
| Feature | KDev 3.5.4 | KDev 4.0
|
| supports common operations such as add/remove files, commit and update |  |
|
| support log viewing |  |
|
| supports difference viewing between working copy and Base or Head |  |
|
| support for annotate, copy, switch and merging |  |
|
[edit] Application Wizard (project templates)
| Feature | KDev 3.5.4 | KDev 4.0
|
| Application wizard generates complete, ready-to-go sample applications. |  |
|
| Templates for each supported language and build system. |  |
|
| Ability to use custom application templates not included in the distribution. |  |
|
| A bunch of KDE related project templates (KPart applications, simple KDE applications, KControl modules, Kicker (panel) applets, KOffice parts, KIOSlaves, Konqueror, Noatun and Kate plugins and desktop styles), GTK, GNOME and Bonobo application templates |  |
|
| Uses utf8 for created files - no encoding problems anymore |  |
|
[edit] Documentation Viewer
| Feature | KDev 3.5.4 | KDev 4.0
|
| A unified interface to browsing documentation. |  |
|
| TOC, index and full text search (with htdig) capabilities. |  |
|
| Autodetection and inclusion of Qt, KDE Libs and DevHelp documentation. |  |
|
| Support for custom documentation collections (KDevelopTOC format). |  |
|
| Ability to open local, remote and even compressed documentation (using any protocol supported by Konqueror - http, ftp, sftp, tar, zip, etc.). |  |
|
| Can use any documentation format that your KDE supports |  |
|
| QtHelp support. |  |
|
[edit] Code Snippets
| Feature | KDev 3.5.4 | KDev 4.0
|
| Snippet tool-view |  |
|
| Adding, editing and removing of snippets |  |
|
| Double-clicking a snippet form the list inserts it into to the active view at the current cursor position |  |
|
| Tool tips show the content of a snippet |  |
|
| Snippets are stored in the users home-directory, so every user can have his own snippets |  |
|
| Snippets can contain variables in the style of $VARNAME$. On using the snippet the user is prompted to enter replacement value for the variables |  | (see below)
|
| Snippets are shared with Kate |  |
|
| variable definition via ${...} |  |
|
| inclusion of system variables (time, name, email) |  |
|
| sophisticated navigation between variable ranges |  |
|
| variable mirroring |  |
|
| GHNS integration |  |
|
| inserting snippets via auto-completion |  |
|
[edit] Doxygen integration (API documentation generator)
| Feature | KDev 3.5.4 | KDev 4.0
|
| Supports all programming languages that doxygen does (except IDL and D) |  |
|
| Previews the documentation that doxygen generates for the file you're currently editing |  |
|
| Configures doxygen |  |
|
| Runs doxygen |  |
|
| Views doxygen generated docs (html man or pdf formats) |  |
|
| Can use doxygen's generated XML as tooltips for "as you type" code completion |  |
|
[edit] RAD (Rapid Application Development) tools
| Feature | KDev 3.5.4 | KDev 4.0
|
| Qt Designer integration enables GUI design from within KDevelop itself |  | *3
|
| Qt Assistant integration provides a feature rich documentation viewer from within KDevelop |  |
|
| The C++ Class Wizard can be used for classes in the persistant class store. This means, for example, that if the Code Completion database for Qt is built then subclassing from Qt classes is possible in the wizard |  |
|
| "Find in files", Ctags/DUChain support and history navigation provide faster code navigation |  |
|
| Templates for cmake based C/C++ apps and libraries |  |
|
| Specific application-type templates are provided |  |
|
| Generic projectmanager: | |
|
| It's based on the KDevelop platform architecture where project management GUI is abstracted from a specific buildsystem. Buildsystems are handled using plugins ("project importers, builders and editors") |  |
|
| Workspace support is available |  |
|
| Project builders: make builder |  |
|
*3 available via a potentially unstable, unmaintained external plugin from http://websvn.kde.org/trunk/playground/devtools/kdevelop4-extra-plugins/
[edit] Ctags support
| Feature | KDev 3.5.4 | KDev 4.0
|
| It is possible to have multiple tag files active at the same time, making it possible to do lightning quick searches in external sources |  |
|
KDevelop 4 uses the DUChain for much better language support bypassing Ctags.
| Feature | KDev 3.5.4 | KDev 4.0
|
| Simple IDEAl UI mode is the default |  |
|
| The viewspace can be split, allowing KDevelop to show files side by side |  |
|
| IntelliJ IDEA - alike toolview keyboard navigation (with <alt+1>, <alt+2>, etc.) |  |
|
| Keyboard navigation and focusing |  |
|
[edit] Code Reformatting
| Feature | KDev 3.5.4 | KDev 4.0
|
| Less bugs (updated to AStyle 1.19) |  |
|
| Support for all AStyle options |  |
|
| Option settings dialog |  |
|
| Global and per project settings |  |
|
| Format multiple files at once |  |
|
[edit] QuickOpen
| Feature | KDev 3.5.4 | KDev 4.0
|
| Arbitrary parts of the scope can be used as a filter while searching for classes or functions |  |
|
| Quick open class has an additional selection dialog for cases when more than one class with given name exist |  |
|
| Quick open files from opened projects |  |
|
[edit] Konsole
| Feature | KDev 3.5.4 | KDev 4.0
|
| Does not syncs with the active document dir anymore |  |
|
[edit] Grep (Find in Files)
| Feature | KDev 3.5.4 | KDev 4.0
|
| Define more filetypes (incl. ruby) to search within |  |
|
| allow pattern to be a regular expression |  |
|
[edit] Outputviews
| Feature | KDev 3.5.4 | KDev 4.0
|
| Support for Intel Fortran Compiler and Portland Group's PGI Fortran compiler (pgf90/pgf95) |  |
|
[edit] Valgrind integration
| Feature | KDev 3.5.4 | KDev 4.0
|
| Valgrind integration to find memory leaks in programs |  |
|
| Use the environment variables as set in the run options |  |
|
[edit] xTest features
| Feature | KDev 3.5.4 | KDev 4.0
|
| Run {QTestLib, CppUnit, Check} unit tests |  |
|
| Generate gcov coverage reports |  |
|
| Generate xTest skeletons for existing class |  |
|
| Generate class skeleton for test driven code |  |
|
| Feature | KDev 3.5.4 | KDev 4.0
|
| Toolbar and menu entry for "Goto Last Edit Position" |  |
|
| Support for character encodings |  |
|
| Obeys the selected encoding in the File Open dialog |  |
|
| The OpenWith plugin offers all available encodings in "Open As" |  |
|
| The encoding for each open file is saved with the session, and will be used to open that file the next time the project is loaded |  |
|
| Default encoding can be set per project in the Project Options - this will be the default when opening a file |  |
|
| File Open encoding will default to the open project's default |  |
|
| Moved plugin selection dialog out of project setting dialog and into main menu Settings menu and made it profile-based |  |
|
| Use profile engine to specify the default plugin set for a freshly created or imported project |  |
|
| Honor the UI Designer embedding setting |  |
|
| File selector, file tree and file groups facilities obviating the need for an external file manager |  |
|
| The inclusion of any other program you need for development by adding it to the "Tools"-menu according to your individual needs |  |
|
| Regular expression tester |  |
|
| Project distribution and packaging tool for automated creation of source and binary packages |  |
|
| Part explorer to query available KDE services |  |
|