PowerBuilder
Developer(s) | Sybase, a division of SAP |
---|---|
Initial release | July 1992 |
Stable release | 12.6 / August 2014 |
Preview release | 15 (December 2013) [±] |
Written in | C++ and C# |
Operating system | Microsoft Windows |
Available in | English, Japanese (Several languages supported for deployed applications) |
Type | IDE |
License | Commercial |
Website | [1] |
PowerBuilder is an integrated development environment owned by Sybase, a division of SAP. It has been in use since 1991, peaking around 1998 with around 100,000 users.[1] In May of 2015 SAP announced that Appeon would take over future development and marketing of PowerBuilder while Intellectual Property would remain with SAP.[2]
While Powerbuilder's market share has diminished, many applications created with it are still in use. In 2010, Sybase released a major upgrade to PowerBuilder with support for the Microsoft .NET Framework.[3]
Originally announced as PowerBuilder 15, PowerBuilder 12.6 was released in August 2014. Features include OData support, dockable windows, and 64-bit native applications in PowerBuilder Classic.[4]
Sybase sold another programming language called PocketBuilder.[5] It was based on PowerBuilder and used for creating applications that run on mobile devices such as cell phones or PDAs. This product, however, has been discontinued — Sybase announced end of life in 2011 with support ending in 2012.[6]
Contents
Features
PowerBuilder has a native data-handling object called a DataWindow, which can be used to create, edit, and display data from the database. This object gives the programmer a number of tools for specifying and controlling user interface appearance and behavior, and also provides simplified access to database content. To some extent, the DataWindow frees the programmer from considering the differences between Database Management Systems from different vendors. Datawindow can display data using multiple presentation styles and can connect to various data sources.
Usage
PowerBuilder is used primarily for building business applications. PowerBuilder was used by some companies in the financial and telecoms sectors where Java and Microsoft Visual Studio are more predominant.
There are a number of third-party tools that build upon and enhance the functionality of PowerBuilder, such as Appeon, Visual Expert, and Enable Multilingual.
History
PowerBuilder was originally developed by Powersoft in 1991. Powersoft went public in 1993 and was acquired by Sybase for $904 million in Sybase stock in 1995.[7] In May 2010, SAP announced that it would be acquiring Sybase for $5.8 billion.[8] PowerBuilder languished for a long time for several reasons:
- Sybase's stock plummeted in 1996 after discovery of inflated sales reports, and many members of the original Powersoft development team left Sybase.
- Competition from rival tools for building GUIs to databases such as Microsoft Visual Basic, Microsoft Access, and Delphi reduced PowerBuilder's market share.
- PowerBuilder was slow to move to the Web: long after rivals began to support Web development, it continued to be based on two-tier (traditional client-server) technology. Two-tier approaches, while allowing more rapid development, are inherently less scalable than N-tier solutions (such as Web-based database solutions).[citation needed]
PowerBuilder 12, through compatibility with Web technologies such as ASP.NET, represents an attempt to regain market share. In order to move developers to newer versions, PowerBuilder 12 provides utilities that attempt to simplify migration.[9]
In December 2013 SAP announced the new version going directly to number 15 and released a beta version.[10] Key features included support for the .NET Framework v4.5, MSS 2012, Oracle 12, Windows 8, OData and Dockable Windows. This release finally came out as version 12.6.
Summary of PowerBuilder features
Powerscript is an object-oriented programming language. Nearly all of the visual and non-visual objects support inheritance, polymorphism, and encapsulation. The programmer may utilize a common code framework such as PowerBuilder Foundation Classes, also known as PFC, to inherit objects from and leverage pre-existing code.[11]
The DataWindow is the key component (and selling point) of PowerBuilder. The DataWindow offers a visual SQL painter which supports outer joins, unions and subquery operations. It can convert SQL to visual representation and back, so the developer can use native SQL if desired. DataWindow updates are automatic — it produces the proper SQL at runtime based on the DBMS to which the user is currently connected. This feature makes it easier for developers who are not experienced with SQL.
The DataWindow also has the built-in ability to both retrieve data and update data via stored procedures. The user picks the stored procedure from a visual list.
RDBMS interfaces
PowerBuilder offers native interfaces to all major databases, as well as ODBC and OLE-DB, in the Enterprise version. There are many connectivity options that allow performance monitoring and tuning, such as:
- Integrated security
- Tracing of all SQL
- Isolation level
- Password expiration dialog
- Blocking factor
- Number of SQL statements to cache
- Use connection pool
- Thread safety
- Trace ODBC API calls
Due to the information about the database schema (such as primary key information) that are stored in PowerBuilder's data dictionary, the code required to implement data display and browsing is greatly simplified, because the dictionary information allows generation of the appropriate SQL behind the scenes.
PowerBuilder supports the following ways of interacting with a database:
DataWindow: this is the simplest approach, relying on automatically generated SQL.
- "Embedded SQL"
- Embedded SQL supports SELECT, INSERT, UPDATE, DELETE and cursors. This option is used when the developer desires more control than is available with the DataWindow option. Example:
UPDATE my_employee SET STATUS = 'A';
IF sqlca.sqlcode<>0 THEN ...
- "Dynamic SQL"
- This is a form of parameterized SQL, where the user builds a string that may optionally have bind variables. Dynamic SQL may be used to create cursors as well.
Integration with third-party software
PowerBuilder supports ActiveX and OCX controls, both visible and non-visible. It also can use OLE Automation as a client. However, PowerBuilder supports only late binding, not early binding. Therefore, when using OLE Automation, a dropdown of possible actions is not provided. PowerBuilder can also act as a DDE client or server, providing a further mechanism to interoperate with other applications.
PowerBuilder can make Windows and third-party API calls, and, in general, works well with third-party libraries in DLL files, however it does not directly support callback functions.
Compilation and debugging
PowerBuilder offers a "/pbdebug" runtime switch, which creates a log file. This can help track down a bug "in the field", as the user simply emails this log file to the developer. It has another feature which can log all SQL statements to a file. It also has built-in performance profiling, an integrated debugger, context-sensitive help, and an active newsgroup to provide support.
PowerBuilder applications are typically compiled to p-code, which is then interpreted by the PowerBuilder run time. Although it can be compiled to machine code (called c-code), a typical business application does not run a lot faster. However, applications which do an unusually large amount of computations (I/O, DBMS interaction, etc.) are likely to benefit up to 4,000x faster from compiling to machine code. The main reason why compiling to machine code was not used is an enormous amount of errors in PowerBuilder especially in machine code generation.
Criticism
Extensibility of the language was rather limited for older versions of PowerBuilder. The technologies provided to overcome this (ex. PowerBuilder Native Interface, or PBNI) are still[when?] rather tricky. To develop a solution that includes external C++ code may not only require a competent C++ developer, but also a PowerBuilder expert to guide the developer through the myriad subtleties of the language and the PowerBuilder Virtual Machine.
A Powerbuilder user cannot open a descendant and a parent at the same time in the painter, though they can see all ancestors' code while working on the descendant.
The (classic) Powerscript language itself, which is still available for compatibility reasons, is known as "a language built around the DataWindow" amongst developers with PowerBuilder being the "IDE built around the DataWindow". Since PowerBuilder 12.0, the (now .NET-compliant) PowerScript language is fully compliant with the common language specification (CLS), and can be compared with C#, Java or VB.NET.
[12] PowerBuilder.NET 12.5 introduces support for multi-threading (included in Classic for many releases), the ability to consume RESTful (Representational State Transfer) Web Services and Batch Command Processing. For the "classic" PowerScript, various smaller enhancements were added,too.[13]
Community
There are a variety of grass roots community groups and resources for PowerBuilder developers to share and convene. These include the International Sybase User Group[14] and what some call the very first technical journal devoted to an IDE, PowerBuilder Developer's Journal. There are also blogs from TeamSybase [15] and evangelists [16] available. PowerBuilderTV[17] is series of webinars by and for the PowerBuilder community with webinars by PowerBuilder evangelists, developers and vendors. PowerBuilder Central[18] is a community initiative to create a single source for third party add-ons and services. In mid 2013, a community based PowerBuilder World Tour was announced[19] spanning 4 continents. In 2010 the DisplacedGuy PowerBuilder Blog launched a massive Training Portal[20] one of the largest, regularly updated collections of free PowerBuilder information including reference guides, tutorials, videos, sample applications, commercial products, blogrolls, polls, migration guides with emphasis on tutorials for PowerBuilder 12, 12.5 and PB.NET. PowerBuilder Central[18] is a community initiative to create a single source for third party add-ons and services. In mid 2013, a community based PowerBuilder World Tour was announced[19] spanning 4 continents.
Some PowerBuilder Tools
- Appeon Mobile - Develop native mobile applications with PowerBuilder that runs on iOS (iPad and iPhone), Android (tablets and phones), and Windows Phone with support for the native mobile SDK.
- Appeon for PowerBuilder - Deploys existing or new PowerBuilder projects as Web applications that runs natively on either .NET or Java servers and OS.
- Visual Expert for PowerBuilder - Visual Expert helps in sharing the knowledge of your applications. It also automates impact analysis and checks code quality.
- Enable Multilingual - Enable makes PowerBuilder applications multilingual quickly and easily. Using Enable, developers can only need to make a few small changes to the original PowerBuilder code to go from monolingual to multilingual.
- ProDiff - ProDiff is designed to highlight the differences between versions of PowerBuilder development source code.
- Visual Guard for PowerBuilder - Visual Guard is an access control and application-level permissions tool. It helps you centralize view and control of users and their rights in PowerBuilder applications
- Customization Studio for PowerBuilder - Customization Studio allows end-users to modify the executable version of a PowerBuilder application without changing the source code.
- Framework for PowerBuilder - A Free object oriented development framework for PowerBuilder Classic, EAServer, Web Services, Appeon Web and Appeon Mobile.
- PB Ultimate Suite - A suite of controls, written in PowerScript, that modernizes the GUI of PowerBuilder applications; PB Ultimate Suite gives applications a contemporary look and makes them more user-friendly.
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Sybase.com. Sybase.com. Retrieved on 2013-12-09.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.ecocion.com/about-us/publications/it-development/sybase-powerbuilder/powerbuilder-foundation-class-help
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://blogs.sybase.com/powerbuilder/2011/08/powerbuilder-12-5-released/
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://blogs.sybase.com/powerbuilder
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 18.0 18.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 19.0 19.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
External links
- PowerBuilder's Official Website
- Powersoft Website - PowerBuilder Consultants
- PowerBuilderTV - Webinars for PowerBuilder developers in English, Spanish and French
- ISUG-TECH - Independent Technical SAP User Group
- PowerBuilder Developers Journal
- PowerBuilder Evangelist Hub
- PowerBuilder UI Components
- PowerBuilder Geeks (Discussion Group)
- PBDR.com - Powerbuilder news, tips and utilities
- History as told by one of the early users
- History of PowerSoft
- Detailed Technical History (Version by version changes)
- PBNI - Extending functionality
- French community of Powerbuilder
- PB Migration Resources
- New Sybase PowerBuilder 12 requires little coding
- Novalys
- PowerBuilder Central
- PowerBuilder World Tour 2013/2014
- PowerBuilder Consultants
- Huge Collection of PowerBuilder Tips, Training, Tutorials & Reference Guides for PB 12, 12.5 and PB.NET
- PowerBuilder 12.5.2 documentation