KDevelop

KDevelop
Developer(s) KDE
Initial release December 6, 1999 (1999-12-06)[1]
Stable release
5.0.3 / 1 December 2016 (2016-12-01)
Repository phabricator.kde.org/diffusion/KDEVELOP/
Written in C, C++
Operating system Unix-like including macOS, Windows
Platform KDE Platform
Available in Multilingual[2]
Type Integrated development environment
License GPLv2[3]
Website www.kdevelop.org

KDevelop is a free software integrated development environment (IDE) for the KDE Platform on Unix-like computer operating systems. KDevelop includes no compiler; instead, it uses an external compiler such as GCC or Clang to produce executable binaries.

The last stable release of the previous major version, 3.5.5, which is based on K Desktop Environment 3 technology, supports many programming languages such as Ada, Bash, C, C++, Fortran, Java, Pascal, Perl, PHP, Python and Ruby. Released under the GNU General Public License version 2, KDevelop is free software.

As of 23/8/2016 another stable version is released. This time KDevelop 5.0, depends heavily on the underlying KDE Frameworks, KDevPlatform and makes use of Qt 5. This release provides better support for QML/JavaScript, CMake, C++ (via Clang backend), QMake, Python, PHP. Windows executables are soon to be released.

Debugger integration got improved. It will also gain a few more improvements in the upcoming 5.1 release (due to the LLDB GSoC happening, which also touches lots of debugger agnostic code).

History

KDevelop Meeting
Year Venue Date Notes
2008[4] Munich, Germany 4/12-4/18
2009[5] Mykolayiv, Ukraine 4/19-4/26
2010[6] Berlin, Germany 2/13-2/21 co-hosted with Kate and Okteta Meeting
2012[7] Vienna, Austria 23–29th Oct co-hosted with Kate Meeting
2014[8] Barcelona, Catalonia, Spain 18/1-25/1 co-hosted with Kate Meeting

KDevelop 1.x and 2.x were developed over a period of four years from the initial KDevelop codebase.[9] Bernd Gehrmann started a complete rewrite from scratch and announced KDevelop 3.x on March 30, 2001.[10] Its first release was together with K Desktop Environment 3.2 in February 2004. The development of KDevelop 3.x stopped in 2008.

KDevelop 4.x has been under development since August 2005. It is a complete rewrite with a better core and a more object-oriented programming model.[11] In May 2010, the final version of KDevelop 4.0.0 was released.[12]

KDevelop 4.7 will mark the final feature release of KDevelop for KDE 4. Further development will continue using KDE Frameworks 5.[13][14]

More on KDevelop 5:

This release is made up of hundreds of commits, and marks a huge step forward:

Qt 5 and KF5

A lot of effort was spent on keeping the porting bugs to a minimum. Porting to KF5 and Qt 5 also cut down the dependencies, bringing KDevelop closer to a proper KDevelop on Windows and KDevelop on Mac OS X.

Clang

KDevelop always prided itself for its state of the art C++ language support. KDevelop's developers introduced innovative code browsing functionality, semantic highlighting and advanced code completion, features that the user base has come to rely upon for their daily work. All of this was made possible by a custom C++ parser, and an extremely complex semantic analyzer for the C++ language. Adding support for all the quirky corner cases in C++, as well as maintaining compatibility with the latest C++ language standards such as C++11, stole time needed for other areas of the IDE to be improved. Furthermore, the code was so brittle, that it was close to impossible to improve its performance or add bigger new features such as proper C language support.

Now, after close to two years of work, finally a solution is found to this dilemma: A Clang based language plugin. Not only does this give users support for the very latest C++ language standard, it also enables true C and Objective-C language support.

QML, JavaScript and QMake

With KDevelop 5, it was decided to officially include support for QML and JavaScript code and QMake projects. This functionality has been worked on for years in the playground and now, these can finally be incorporated and developers will start to officially support them. Many thanks to the Qt Creator community here, as the developers leverage their QML and JavaScript parser for KDevelop's language support plugin. The new KDevelop plugin for QMake, is quite simplistic but already very useful for many projects.

Python, PHP

Together with C++, QML and JavaScript, KDevelop 5 will continue to officially support Python 3 and PHP. In KDevelop's playground there is also support for Ruby, and there are plans to integrate basic Go and Rust support.

If the user does not wish to compile KDevelop 5.x, it can be downloaded as a standalone executable of KDevelop's appimage from here. This way the new release can downloaded and tested without installing any of the dependencies (Qt, a list of KDE Frameworks, and LLVM). Make sure FUSE is installed though.

Features

KDevelop uses an embedded text editor component through the KPart framework. The default editor is KDE Advanced Text Editor, which can optionally be replaced with a Qt Designer-based editor. This list focuses on the features of KDevelop itself. For features specific to the editor component, see the article on Kate.

KDevelop 4 is a completely plugin-based architecture. When a developer makes a change, they only must compile the plugin. There is a possibility to keep several profiles each of which determines which plugins to be loaded. KDevelop does not come with a text editor, but instead uses a plugin for this purpose as well. KDevelop is programming language independent and build system-independent, supporting KDE, GNOME, and many other technologies such as Qt, GTK+, and wxWidgets.

KDevelop has supported a variety of programming languages, including C, C++, Perl, Python, PHP, Java, Fortran, Ruby, Ada, Pascal, SQL, and Bash scripting. Supported build systems include GNU (automake), cmake, qmake, and make for custom projects (KDevelop does not destroy user Makefiles if they are used) and scripting projects which don't need one.

Code completion is available for C and C++. Symbols are kept in a Berkeley DB file for quick lookups without re-parsing. KDevelop also offers a developer framework which helps to write new parsers for other programming languages.

An integrated debugger allows graphically doing all debugging with breakpoints and backtraces. It even works with dynamically loaded plugins unlike command line GDB.

Quick Open allows quick navigation between files.

Currently, around 50 to 100 plugins exist for this IDE. Major ones include persistent project-wide code bookmarks, Code abbreviations which allow expanding text quickly, a Source formatter which reformats code to a style guide before saving, Regular expressions search, and project-wide search/replace which helps in refactoring code.

See also

Further reading

References

  1. "KDevelop – News of 1999". KDE. 1999-12-06. Archived from the original on 2003-06-21. Retrieved 2012-12-27.
  2. "extragear-kdevelop". KDE Localization. Retrieved 2013-09-22.
  3. "COPYING · rKDEVELOP". phabricator.kde.org.
  4. harryF (2008-04-10). "KDevelop Team Meeting Agenda". KDE. KDE.NEWS.
  5. Danny Allen; Artur Souza; Claudia Rauch; Torsten Thelke. KDE e.V. Quarterly Report 2009Q2-2010Q1 (Issue 13) (PDF). KDE e.V. p. 2. Retrieved 2011-04-09.
  6. Dominik Haumann (2010-03-08). "Kate, KDevelop and Okteta Developers Meet in Berlin". KDE. KDE.NEWS.
  7. Milian Wolff (December 12, 2012). "Kate/KDevelop October Sprint: What's new in KDevelop". KDE. KDE.NEWS.
  8. Aleix Pol i Gonzàlez (5 June 2014). "Kate and KDevelop sprint in January 2014". KDE. KDE.NEWS.
  9. "ANNOUNCE: kdevelop-0.1.tar.gz". KDE. 1998-09-22. Retrieved 2013-09-22.
  10. "A new IDE for a new millennium". KDE. 2001-03-30. Retrieved 2013-09-22.
  11. "KDevelop4 moved". Retrieved 29 November 2009.
  12. "Finally KDevelop 4.0 final published". 1 May 2010. Retrieved 2010-05-01.
  13. "KDevelop master now depends on KDE Frameworks 5!".
  14. "KDevelop 4.7.0 Released".
Wikimedia Commons has media related to KDevelop.
This article is issued from Wikipedia - version of the 12/2/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.