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

This are a series of comparison tables illustrating the differences between KDevelop 3.5.2 and the upcoming KDevelop 4.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] Plugin-based architecture

Feature KDev 3.5.2 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.2 KDev 4.0
Support multiple build tools:
      autoconf/automake (a.k.a. autotools)yesno
      qmake from trolltechyesyes
      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 automake and qmake 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

[edit] Automake Manager

Feature KDev 3.5.2 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 create 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.2 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 of relative filenamesyesno
      Support for 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.2 KDev 4.0
Supports running make with various options or a custom buildtoolyesno
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.2 KDev 4.0
Many supported programming languages
      Adayesno
      Bashyesno
      C/C++yesyes
      Objective-C (via C support)yesno
      Fortranyesno
      Haskellyesno
      Javayesyes
      Pascalyesno
      Perlyesno
      PHPyesno
      Pythonyesno
      Rubyyesno
      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'syesno
Class browser to display a hierarchy of classes and other symbols in projectyesno
      Add function-name-highlighting to 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 completedyesno
      Restore ClassView state after refresh. The ClassView does not close after each successful buildyesno
Language parsers to feed class browser and problem reporteryesno
Class, method and attribute wizards for object-oriented languagesyesno
Automatic code completion and code hinting for class variables, methods, function arguments and moreyesno
Source formatting, syntax highlighting and code foldingyesno
C++ specific features, such as
      "make member" - creating method definition in source file basing on the method declaration in header file;yesno
      "extract interface"- extracting interface (method declarations) and creating abstract base class with that interface;yesno
      "subclassing" - automated subclass creating and slot implementing for Qt Designer formsyesno

[edit] C++ Support

Feature KDev 3.5.2 KDev 4.0
switch header/implementationyesno
      works inside the single fileyesno
      works correctly with methods with typedef'ed return valuesyesno
      works with constant functionsyesno
      aware of using directives when locating the functions from the namespaceyesno
Persistant Class Store (Code Completion databases)yesno
      KDE class importer correctly finds kdelibs locationyesno
      Qt4 class importer addedyesno
      autodetected paths are overrideableyesno
code hintingyesno
      status bar shows the type of the expression under the cursoryesno
c++ parseryesno
      Modify the parser to extract comments from the code, attach them to corresponding items, and store them into the ASTyesno
      Fix a case where the cpp parser suddenly ate all RAM when facing macro-heavy filesyesno
code modelyesno
      make the code-model and repository store more information like templates and comments, and provide themyesno
      the code-model completely works with nested classes that are forward-declared in one file, and completely declared in another(file-groups are managed, and code-model-items that are physically from one file, can be attached to another)yesno
code completionyesno
      is much more reliableyesno
      was rewritten in big partsyesno
      works within template-classesyesno
      works within functions of classes that are imported by using-directivesyesno
      can parse much more complex expressions and can easily be extended to understand additional operators(using an abstract operator-class)yesno
      supports class-templates, function-templates, and even implicit template-instantiation for function-templatesyesno
      evaluates all types in the completion-entry-list and shows their template-processed(real) typesyesno
      calltips and the completion-list show the corresponding commentsyesno
      the completion-entry-list shows the members sorted by their access-rights, and shows a note behind members that are protected/privateyesno
context-menus that evaluate the expression under the cursor and allow to browse the code and the code-model using all types and variables involvedyesno
new class wizardyesno
      creation of headers onlyyesno
support for QT4, different code is generated for Qt3.x and Qt4.x projectsyesno
      Specify Qt installation dir upon project creationyesno
      Properly open the right designer for .ui filesyesno
      Call the right qmake in qmake projectsyesno
      Use Qt4 style includesyesno
      Options for Qt4's QT variable in the project configurationyesno
      Handle Qt4 resource files in qmake Manageryesno
Tab in the C++ options dialog to configure the used Qt library. You can configure if Qt is used, which major version and where the Qt library is installedyesno

[edit] Ruby Support

Feature KDev 3.5.2 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 functionyesno
      App templates for normal projects, QtRuby/Korundum ones - KDE application framework, KConfig XT, DCOP server and Qt only appsyesno

[edit] PHP Support

Feature KDev 3.5.2 KDev 4.0
PHP Parser / code competitionyesno

[edit] Integrated Debugger

Feature KDev 3.5.2 KDev 4.0
GDB and Java debugger frontendsyesno
Integrated GDB consoleyesno
Line, address, method breakpoints and watchpointsyesno
Conditional breakpointsyesno
Disassembler and frame stack vieweryesno
Variable watch treeyesno
Memory, registers and libraries viewersyesno
Debugger shell (libtool) supportyesno
Remote debuggingyesno
Memory vieweryesno
      Project is automatically rebuilt with starting debuggeryesno
      Variables widgetyesno
            Reliably work in presence of shadowed variablesyesno
            "format" menu, supporting extra "binary" and "character" formats, with keyboard shortcuts for each formatyesno
            Keyboard shortcut for deleting watchesyesno
      Stack widgetyesno
            The content is split in columnsyesno
            Stack frames are fetched incrementally, allowing to debug programs stuck in infinite recursionyesno
      Breakpoints improvementsyesno
            Breakpoint types renamed for clarityyesno
            Watchpoints are always set on address, not expressionyesno
            On watchpoint hit, a message box is shownyesno
            Breakpoint conditions are correctly reloaded from session fileyesno
            Breakpoints added manually are shown in breakpoint list tooyesno
            Address breakpointsyesno
      GDB output window allows to filter out "internal" commandsyesno
      "attach" dialog with search lineyesno
      Fixesyesno
            Never disable the "Interrupt" actionyesno
            Specify gdb location using full executable name, not just directoryyesno
      Uses GDB MI interface for faster and more robust operationyesno
Debugger breakpoints window made easier to useyesno
Automatically show variables window when application stops, and hide when application terminatesyesno
Implement editing expression/variable values in variables windowyesno
Improved the variables viewyesno

[edit] Code Editing

Feature KDev 3.5.2 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.2 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(distributed VCS)noyes
creation of projects directly in the repository(centralized VCS)yesno

[edit] Subversion

Feature KDev 3.5.2 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.2 KDev 4.0
Application wizard generates complete, ready-to-go sample applications.yesno
Templates for each supported language and build system.yesno
Ability to use custom application templates not included in the distribution.yesno
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 anymoreyesno

[edit] Documentation Viewer

Feature KDev 3.5.2 KDev 4.0
A unified interface to browsing documentation.yesno
TOC, index and full text search (with htdig) capabilities.