Padre (software)
Encyclopedia
Padre is a multi-language software development platform comprising an IDE
and a plug-in system to extend it. It is written primarily in Perl
and is used to develop applications in this language.
Padre is written in Perl 5 but can be extended by any language running on top of the Parrot virtual machine
, such as Perl 6
, through its plug-in system and its integration with Parrot. The development officially started in June 2008 but Padre has reused components that have been available on CPAN
. Most importantly, it uses the Perl bindings of wxWidgets
for the windowing system, and PPI
to correctly parse and highlight Perl and to allow refactoring. The primary advantages of Padre for Perl developers is that full and easy access to the source code of their editor is available, and a unique set of "Perl intuition" features that allow the IDE to understand details about project structure and content without needing to be told by the user.
and XML
editing.
This plug-in mechanism is a lightweight framework. In addition to allowing Padre to be extended using other programming language
s, the plug-in framework allows Padre to work with networking applications such as telnet
, and database management system
s. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management
, version control systems (Subversion, SVK
, Git
) support, etc.
Padre's widgets are implemented by wxWidgets
, an open source, cross-platform toolkit written in C++
.
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
and a plug-in system to extend it. It is written primarily in Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
and is used to develop applications in this language.
Padre is written in Perl 5 but can be extended by any language running on top of the Parrot virtual machine
Parrot virtual machine
Parrot is a register-based process virtual machine designed to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead. It is currently possible to compile Parrot assembly language and PIR to Parrot bytecode and execute it...
, such as Perl 6
Perl 6
Perl 6 is a major revision to the Perl programming language. It is still in development, as a specification from which several interpreter and compiler implementations are being written. It is introducing elements of many modern and historical languages. Perl 6 is intended to have many...
, through its plug-in system and its integration with Parrot. The development officially started in June 2008 but Padre has reused components that have been available on CPAN
CPAN
CPAN, the Comprehensive Perl Archive Network, is an archive of nearly 100,000 modules of software written in Perl, as well as documentation for it. It has a presence on the World Wide Web at and is mirrored worldwide at more than 200 locations...
. Most importantly, it uses the Perl bindings of wxWidgets
WxWidgets
wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes...
for the windowing system, and PPI
PPI
PPI may refer to:-Biochemistry:*PPi, the anion P2O74−, a Pyrophosphate*PPI, Peptidyl prolyl cis-trans-isomerase, a human chaperone *PPI, a right-handed form of polyproline helix, a secondary structure in proteins-Indicators and indexes:...
to correctly parse and highlight Perl and to allow refactoring. The primary advantages of Padre for Perl developers is that full and easy access to the source code of their editor is available, and a unique set of "Perl intuition" features that allow the IDE to understand details about project structure and content without needing to be told by the user.
Architecture
Padre employs plug-ins in order to provide all of its functionality on top of the runtime system. All the functionality except the core Perl 5 support is implemented as plug-ins. Padre has plug-ins for HTMLHTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
and XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
editing.
This plug-in mechanism is a lightweight framework. In addition to allowing Padre to be extended using other programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s, the plug-in framework allows Padre to work with networking applications such as telnet
TELNET
Telnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection...
, and database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...
s. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
, version control systems (Subversion, SVK
SVK
SVK is a decentralized version control system written in Perl, with a hierarchical distributed design comparable to centralized deployment of BitKeeper and GNU arch. The primary author of svk is Kao Chia-liang...
, Git
Git
Git may refer to:* Git , a British English term of abuse* Git , a distributed version control system* Git , by Skeletons & The Girl-Faced Boys...
) support, etc.
Padre's widgets are implemented by wxWidgets
WxWidgets
wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes...
, an open source, cross-platform toolkit written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
.
Major plug-ins
- Version Control: SVKSVKSVK is a decentralized version control system written in Perl, with a hierarchical distributed design comparable to centralized deployment of BitKeeper and GNU arch. The primary author of svk is Kao Chia-liang...
, Subversion, GitGit (software)Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...
, MercurialMercurialMercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux... - Languages: Perl 6Perl 6Perl 6 is a major revision to the Perl programming language. It is still in development, as a specification from which several interpreter and compiler implementations are being written. It is introducing elements of many modern and historical languages. Perl 6 is intended to have many...
, ParrotParrot virtual machineParrot is a register-based process virtual machine designed to run dynamic languages efficiently. It uses just-in-time compilation for speed to reduce the interpretation overhead. It is currently possible to compile Parrot assembly language and PIR to Parrot bytecode and execute it...
, HTMLHTMLHyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
, XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, CSSCSS-Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code...
, LaTeXLaTeXLaTeX is a document markup language and document preparation system for the TeX typesetting program. Within the typesetting system, its name is styled as . The term LaTeX refers only to the language in which documents are written, not to the editor used to write those documents. In order to... - Editor Compatibility: Vim
- Helper tool for CatalystCatalyst (software)Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl...
- The Ecliptic plug-in provides features known from EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
See also
- Comparison of integrated development environments