Main Page | Recent changes | Edit this page | Page history

Printable version | Disclaimers | Privacy policy

Not logged in
Log in | Help
 

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 IDEyesyes
Developed since2001-03-302005-05-05
Cross-platform and Multi Operating system support
      All Linux flavors and distrosyesyes
      Sun Solarisyesyes
      All BSD flavors and distrosyesyes
      Mac OSXyesexp
      Microsoft Windowsyes *1exp
 *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 codeyesyes
Libraries license (LGPL) allows creating commercial and free IDE pluginsyesyes
Support for profiles which determine a set of plugins to be loaded. This is especially useful for restricted environments or custom setupsyesyes

[edit] Project Management

Feature KDev 3.5.4 KDev 4.0
Support multiple build tools:
      autoconf/automake (a.k.a. autotools)yesno *2
      qmake from trolltechyesno *2
      CMake Cross Platform Make from kitwarenoyes
      Ability to use custom makefiles to build the projectyesyes
      Support for ant - build tool for java projectsyesno
      Support for extra project types like pascal, haskell, ada and scripting projectsyesno
Can have multiple projects open at the same timenoyes
Each project can have multiple subprojectsyesyes
Each subproject can have multiple targetsyesyes
Native non-intrusive buildtool support. Hand-made modifications allowed and recognized by the IDE, also existing projects and subprojects can be easily importedyesyes
A framework for adding support for any build system by creating build system plugins for the generic project manageryesyes
New file wizard to manage file templates and create new files in project from templatesyesyes
Can open KDevelop 2.x project files (automake based)yesno
Can open KDevelop 3.x project files (any build tool supported in the 3.x versions)yesno
Can open KDevelop 4.x project filesnoyes
 *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.amyesno
support for creating multiple targets in the same subdiryesno
support for setting include and linker optionsyesno
support for creating new subdirectoriesyesno
support for creating normal and libtool-using targetsyesno
compiling individual targets or subdirectoriesyesno
Compiler plugins to define compiler options in convenient dialogsyesno
supports Qt projects using automake, including rules for moc and uicyesno
Configuration profiles with the ability to specify different compilers, compiler flags, build directories, target architecture, etc.yesno
Internationalization support, allowing translators to add their target language to a project easily, including support of KBabelyesno

[edit] qmake Manager

Feature KDev 3.5.4 KDev 4.0
Parser which doesn't replace the project file contentsyesno
Parses and displays the Qt4 buildsystem properlyyesno
Scopes
      Display Scopes as tree nodes in the Overviewyesno
      Add/Remove all types of Scopes (simple, Function and Include's)yesno
      Excluding files inside a scope is much easieryesno
      Support for disabling subprojects inside scopes, including proper display in the GUIyesno
File Handling
      Support relative filenamesyesno
      Support file paths containing variablesyesno
Supports Subproject that are outside of the top-project diryesno
Support for all documented and a couple of undocumented qmake Featuresyesno
      Supports SUBDIRS=somename, somename.subdir=the_real_diryesno
      Supports SUBDIRS=somefile.proyesno
Build options
      Run qmake recursivelyyesno
      Dist-Cleanyesno
      Build Fileyesno

[edit] Custom Makefile

Feature KDev 3.5.4 KDev 4.0
Supports running make with various options or a custom buildtoolyesyes
possibility to add/remove files and directories to/from the projectyesno
support for defining wildcard rules for files that should be part of the projectyesno
support for blacklisting files and directories so they are never recognized as belonging to the projectyesno
out-of-the-box support for various different file types, like java, C++, Qt .ui filesyesno

[edit] Language Support

Feature KDev 3.5.4 KDev 4.0
Many supported programming languages
      Adayesno
      Bashyesno
      C/C++yesyes
      C#nono *3
      Objective-C (via C support)yesno
      Fortranyesno
      Haskellyesno
      Javayesno *3
      Pascalyesno
      Perlyesno
      PHPyesexp *5
      Pythonyesno *3
      Rubyyesno *3
      SQLyesno
      XUL (unofficially)yesno
Problem reporter which reports various "problems" with the source code as you type. Problems include language syntax errors, TODO's and FIXME'syesyes
Class browser to display a hierarchy of classes and other symbols in projectyesyes
      Function-name-highlighting in the class-view and navigatoryesno
      Make the navigator provide an own KCompletion so it is possible to write function-names without scope and get them completedyesyes
      Restore ClassView state after refresh. The ClassView does not close after each successful buildyesno
Language parsers to feed class browser and problem reporteryesyes
Class, method and attribute wizards for object-oriented languagesyesyes
Automatic code completion and code hinting for class variables, methods, function arguments and moreyesyes
Source formatting, syntax highlighting and code foldingyesyes
 *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++ Engineyesyes
      Persistant Data Storeyesyes
      Stores comments/doxygen-documentationyesyes
      Global Shared Data Storenoyes
      Automatically processes all included headersexpyes
      Sophisticated refactoring-friendly data structure(DUChain)noyes
      Full support for use-building, overload-resolution, type-conversion, template-specialization, meta-programming, etc.noyes
      Can implicitly execute a meta-program, for example to compute prime-numbersnoyes
      Fully Automatic Configuration with build-system supportnoyes
      Semantic code highlightingnoyes
Quick Navigationyesyes
      Quickopenyesyes
      Unified Quickopen Infrastructurenoyes
      Switch header/implementationyesyes
      Jump to declaration/definition under cursoryesyes
      Locally Switch Through Usesnoyes
Code Browsingyesyes
      Class Browseryesyes
      Semantic Declaration Navigationyesyes
      Qt documentation integrationyesyes
      Html-like source browsingnoyes
      Pretty html navigation widgetnoyes
      Allow navigating more complicated relationships like: All overriders of this function, all inheriters of this class, etc.noyes
      Declaration navigation features available from within completion-list or quickopen listnoyes
      "Magic Modifier": A key that allows keyboard-accessible semantic navigation from everywhere with one single key-press(ALT)noyes
      Find all uses of a class/function/variablenoyes
      Interactive navigation tooltip in editornoyes
      See the preprocessed versions of macro invocationsnoyes
      Highlight declaration under cursornoyes
Code Completionyesyes
      Shows informations about involved types and comment/documentationyesyes
      Multi-Level Argument Hintsnoyes
      Code-Completion while including filesnoyes
      Code-Completion within instantiated templatesnoyes
      Automatic adding of includesexpyes
      Realistic C++ argument-type matchingnoyes
      Completion for builtin operatorsnoyes
      Best matches highlighted in completion listnoyes
      Working code-completion with templatesyesyes
      Working code-completion with _really_ complicated templatesnoyes
      Template-parameter completionnoyes
      Signal/Slot connection completionyesyes
      Automatic signal/slot matchingnoyes
      Automatic matching slot creationnoyes
      Override-helper: Show code-completion for not yet overridden virtuals from base-classesnoyes
      Automatic adding of include directivesnoyes
      Automatic creation of forward declarationsnoyes
      Context sensitive C++ keyword completionnoyes
      Just-Worksnoyes
Coding Assistantnoyes
      Definition/Declaration function signature change assistantnoyes
      Automatic creation of functions/variables based on context type deductionnoyes
Simple Refactoringyesyes
      Renaming: Project-wide intelligent class/variable/function renamingnoyes
      "new class" wizardyesyes
      "make member" - creating function definition in source file based on a declaration in the header fileyesyes
      "automatic un-inline" - automatically move function-implementation from header into the source-filenoyes
      "extract interface"- extracting interface (method declarations) and creating abstract base class with that interfaceyesno
      "subclassing" - automated subclass creating and slot implementing for Qt Designer formsyesno

[edit] Ruby Support

Feature KDev 3.5.4 KDev 4.0
Language Featuresyesno
      Module, class and function listyesno
      Quickopen for modules, classes, functions (including those defined as and filesyesno
      List of functions in the toolbar, also shows current function in the editoryesno
Debuggeryesno
      Ruby debugger with method inspectionyesno
      Method inspection for QtRuby/Korundum bindings (including core Qt classes)yesno
Unit Testing Featuresyesno
      Run test suiteyesno
      Run test function currently opened in the editoryesno
Railsyesno
      Rails application templateyesno
      Run Webrick/Mongrelyesno
Infrastructureyesno
      irb or script/console in the toolview in addition to konsoleyesno
      QtDesigner/rbuic integrationyesno
      documentation links to Rails/QtRuby docsyesno
Ruby projectsyesno
      Opens projects with cyclic symbolic links in the filesystemyesno
      Reload project functionyesyes
      App templates for normal projects, QtRuby/Korundum ones - KDE application framework, KConfig XT, DCOP server and Qt only appsyesyes

[edit] PHP Support

Feature KDev 3.5.4 KDev 4.0
Language Featuresyesyes
      Class and function listyesyes
      Quickopen for files, classes, functionsnoyes
      Context browsingnoyes
      List of functions in the toolbar, also shows current function in the editornoyes
Debugger (XDebug)yesyes
Unit Testing Featuresnono
Rafactoringnoyes
      Project-wide rename-refactoringnoyes
Documentation Integrationyesyes
      local PHP.net documentation integrationyesexp
      remote PHP.net integrationnoyes

[edit] Integrated Debugger

Feature KDev 3.5.4 KDev 4.0
GDB frontendyesyes
      Integrated GDB consoleyesyes
Java debugger frontendyesno
XDebug frontendyesyes
Line, address, method breakpoints and watchpointsyesyes
Conditional breakpointsyesyes
Disassembler and frame stack vieweryesyes
Variable watch treeyesyes
Memory, registers and libraries viewersyesyes
Debugger shell (libtool) supportyesyes
Remote debuggingyesno
Memory vieweryesyes
      Project is automatically rebuilt with starting debuggeryesno
      Variables widgetyesyes
            Reliably work in presence of shadowed variablesyesyes
            "format" menu, supporting extra "binary" and "character" formats, with keyboard shortcuts for each formatyesyes
            Keyboard shortcut for deleting watchesyesyes
      Stack widgetyesyes
            The content is split in columnsyesyes
            Stack frames are fetched incrementally, allowing to debug programs stuck in infinite recursionyesyes
      Breakpoints improvements
            Breakpoint types renamed for clarityyesyes
            Watchpoints are always set on address, not expressionyesyes
            On watchpoint hit, a message box is shownyesyes
            Breakpoint conditions are reloaded from session fileyesyes
            Breakpoints added manually are shown in breakpoint list tooyesyes
            Address breakpointsyesyes
      GDB output window allows to filter out "internal" commandsyesyes
      "attach" dialog with search lineyesyes
            Never disable the "Interrupt" actionyesyes
            Specify gdb location using full executable name, not just directoryyesyes
      Uses GDB MI interface for faster and more robust operationyesyes
Easy to use breakpoints windowyesyes
Automatically show variables window when application stops, and hide when application terminatesyesyes
Editing expression/variable values in variables windowyesyes

[edit] Code Editing

Feature KDev 3.5.4 KDev 4.0
Any editor which implements KDE KTextEditor interface can be used with KDevelop.yesyes
Currently available editor is Kateyesyes
Code foldingyesyes
Project wide bookmarks which are stored in the project file.yesno
Difference viewer between currently edited text and text on the disk.yesno
Difference viewer for patch files.yesno
Grep integration - regular expression search in project.yesno
Project wide find and replace toolyesno

[edit] Version Control System

Feature KDev 3.5.4 KDev 4.0
A common API to include VCS support in KDevelop.yesyes
Supported centralized VCS systems:
      CVSyesyes
      Subversionyesyes
      Perforceyesno
      ClearCaseyesno
Supported distributed VCS systems:
      gitnoyes
      mercurialnoyes
      bazaarnoyes
GUI support via context menu on files and directories of the project and also directly in the editoryesno
VCS status coloring in the project tree viewyesno
creation of projects directly in the repository (centralized VCS)yesno
creation of projects directly in the repository (distributed VCS)noyes

[edit] Subversion

Feature KDev 3.5.4 KDev 4.0
supports common operations such as add/remove files, commit and updateyesyes
support log viewingyesno
supports difference viewing between working copy and Base or Headyesyes
support for annotate, copy, switch and mergingyesno

[edit] Application Wizard (project templates)

Feature KDev 3.5.4 KDev 4.0
Application wizard generates complete, ready-to-go sample applications.yesyes
Templates for each supported language and build system.yesyes
Ability to use custom application templates not included in the distribution.yesyes
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 templatesyesno
Uses utf8 for created files - no encoding problems anymoreyesyes

[edit] Documentation Viewer

Feature KDev 3.5.4 KDev 4.0
A unified interface to browsing documentation.yesyes
TOC, index and full text search (with htdig) capabilities.yesno
Autodetection and inclusion of Qt, KDE Libs and DevHelp documentation.yesno
Support for custom documentation collections (KDevelopTOC format).yesno
Ability to open local, remote and even compressed documentation (using any protocol supported by Konqueror - http, ftp, sftp, tar, zip, etc.).yesno
Can use any documentation format that your KDE supportsyesno
QtHelp support.noyes

[edit] Code Snippets

Feature KDev 3.5.4 KDev 4.0
Snippet tool-viewyesyes
Adding, editing and removing of snippetsyesyes
Double-clicking a snippet form the list inserts it into to the active view at the current cursor positionyesyes
Tool tips show the content of a snippetyesyes
Snippets are stored in the users home-directory, so every user can have his own snippetsyesyes
Snippets can contain variables in the style of $VARNAME$. On using the snippet the user is prompted to enter replacement value for the variablesyesyes (see below)
Snippets are shared with Katenoexp
      variable definition via ${...}noexp
      inclusion of system variables (time, name, email)noexp
      sophisticated navigation between variable rangesnoexp
      variable mirroringnoexp
      GHNS integrationnoexp
      inserting snippets via auto-completionnoyes

[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)yesno
Previews the documentation that doxygen generates for the file you're currently editingyesno
Configures doxygenyesno
Runs doxygenyesno
Views doxygen generated docs (html man or pdf formats)yesno
Can use doxygen's generated XML as tooltips for "as you type" code completionyesno

[edit] RAD (Rapid Application Development) tools

Feature KDev 3.5.4 KDev 4.0
Qt Designer integration enables GUI design from within KDevelop itselfyesno *3
Qt Assistant integration provides a feature rich documentation viewer from within KDevelopyesyes
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 wizardyesyes
"Find in files", Ctags/DUChain support and history navigation provide faster code navigationyesyes
Templates for cmake based C/C++ apps and librariesyesyes
Specific application-type templates are providedyesyes
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")noyes
      Workspace support is availableyesyes
      Project builders: make builderyesyes
 *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 sourcesyesno

KDevelop 4 uses the DUChain for much better language support bypassing Ctags.

[edit] UI

Feature KDev 3.5.4 KDev 4.0
Simple IDEAl UI mode is the defaultyesyes
      The viewspace can be split, allowing KDevelop to show files side by sideyesyes
      IntelliJ IDEA - alike toolview keyboard navigation (with <alt+1>, <alt+2>, etc.)yesno
      Keyboard navigation and focusingyesyes

[edit] Code Reformatting

Feature KDev 3.5.4 KDev 4.0
Less bugs (updated to AStyle 1.19)yesyes
Support for all AStyle optionsyesyes
Option settings dialogyesyes
Global and per project settingsyesno
Format multiple files at onceyesno

[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 functionsyesyes
Quick open class has an additional selection dialog for cases when more than one class with given name existyesyes
Quick open files from opened projectsnoyes

[edit] Konsole

Feature KDev 3.5.4 KDev 4.0
Does not syncs with the active document dir anymoreyesno

[edit] Grep (Find in Files)

Feature KDev 3.5.4 KDev 4.0
Define more filetypes (incl. ruby) to search withinyesno
allow pattern to be a regular expressionyesno

[edit] Outputviews

Feature KDev 3.5.4 KDev 4.0
Support for Intel Fortran Compiler and Portland Group's PGI Fortran compiler (pgf90/pgf95)yesno

[edit] Valgrind integration

Feature KDev 3.5.4 KDev 4.0
Valgrind integration to find memory leaks in programsyesyes
Use the environment variables as set in the run optionsyesno

[edit] xTest features

Feature KDev 3.5.4 KDev 4.0
Run {QTestLib, CppUnit, Check} unit testsnoyes
Generate gcov coverage reportsnoyes
Generate xTest skeletons for existing classnoyes
Generate class skeleton for test driven codenoyes

[edit] Misc

Feature KDev 3.5.4 KDev 4.0
Toolbar and menu entry for "Goto Last Edit Position"yesno
Support for character encodingsyesno
      Obeys the selected encoding in the File Open dialogyesno
      The OpenWith plugin offers all available encodings in "Open As"yesno
      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 loadedyesno
      Default encoding can be set per project in the Project Options - this will be the default when opening a fileyesno
      File Open encoding will default to the open project's defaultyesno
Moved plugin selection dialog out of project setting dialog and into main menu Settings menu and made it profile-basedyesno
Use profile engine to specify the default plugin set for a freshly created or imported projectyesno
Honor the UI Designer embedding settingyesno
File selector, file tree and file groups facilities obviating the need for an external file manageryesno
The inclusion of any other program you need for development by adding it to the "Tools"-menu according to your individual needsyesno
Regular expression testeryesno
Project distribution and packaging tool for automated creation of source and binary packagesyesno
Part explorer to query available KDE servicesyesno

Retrieved from "http://www.kdevelop.org/mediawiki/index.php/KDevelop_4/KDev3_KDev4_comparison_table"

This page has been accessed 45,316 times. This page was last modified 19:04, 7 November 2009. Content is available under GNU Free Documentation License 1.2.


[Main Page]
Main Page
Community portal
Current events
Recent changes
Help
Donations

Edit this page
Discuss this page
Page history
What links here
Related changes

Special pages
Bug reports