The world is always changing for applications developers. In the early 1990s the emphasis was on the user interface, and the demand was overwhelming for PC clients with buttons, pop-up lists, tab folders, and other fancy GUI elements. We learned Visual Basic, PowerBuilder, SQL Windows, Access, and Paradox to meet that demand, or we suffered through the evolution of the Developer/2000 tools from Oracle Corporation. We were able to create instant legacy applications in just a matter of weeks -- legacy applications with a pretty interface and some of the ugliest, undocumented, nonoptimized, spaghetti code that you have ever seen. We could quickly build unreadable, unmaintainable code with all the application logic wrapped up in the interface elements.
Now it's Java, Java, Java, and more Java. Our clients want elegant multi-tier applications that run on any client from thin-client network computers to overstuffed NT workstations with hundreds of megabytes of memory, with that same instantaneous response they expected from client/server systems. Now our applications must support not hundreds of users on a local area network but thousands of users on the Internet. Oracle is even promising that you will be able to execute Java in the database server itself and write stored procedures in Java rather than PL/SQL. So why aren't we rushing off to learn Java? Because even with all of the hoopla over Java, PL/SQL is still the best way to build programs to access data in Oracle7 and Oracle8 databases. After Oracle began using PL/SQL to build its own tools for replication, the open APIs for Designer/2000 and Developer/2000, and the HTML generators, it began to pay a lot more attention to performance characteristics, and PL/SQL8 includes a number of significant enhancements to speed execution of complex PL/SQL logic. With these new improvements, PL/SQL8 assumes even more importance as the principal data access language for Oracle8.
Oracle has been methodically enhancing the capabilities of PL/SQL to make it the language of choice for developing distributed computing environments. When Oracle finally delivers client-side PL/SQL with the full characteristics of server-side code (effectively turning all clients into mini-servers for certain purposes), we will be able to build truly distributed environments for maximizing the effectiveness of our limited computing resources. We already can use PL/SQL packages and procedures from most good front-end tools, and that integration should get better over time. Almost every Java-based middleware connectivity tool is being released with support for PL/SQL. That should help make it easier to build the complex rules in a portable language that we can run in most popular hardware or software environments.
PL/SQL is a complex and powerful programming language that you can use to build a new generation of multi-tier systems -- systems that can scale up past the department LAN to enable world-wide enterprise systems on the Internet with the same reliability that we expect from old mainframe applications. The ability to build those systems does not mean that we will be able to manage our development environments effectively. You can be sure that the tools to help us cope with the complexity of truly distributed business objects will be slower to emerge, and we will all be in pretty deep before they are really ready.
We can start to get ready now as we begin to take advantage of the new power and sophistication of Oracle8's PL/SQL. We can start writing modular code that can be developed in a top-down manner with program names that truly describe their function. We can start to write PL/SQL code that we can reuse within and among our applications. We can apply the principles of good structured design to our development of PL/SQL packages, procedures, functions, etc. And we can use Oracle PL/SQL Programming as our source of the right way to write efficient and effective PL/SQL code.
Many of us have already adopted Oracle PL/SQL Programming as our programming "bible." Steven's no-nonsense approach to minimizing the amount of code he needs to write and maintain; his naming conventions that maximize the documentation content of his code; his innate ability to sniff out ways to make coding PL/SQL less drudgery and more creative -- all of these characteristics should be extremely useful and inspiring to good developers. The first edition of this book is one of the very few titles in my Oracle collection of more than 70 books that is actually dog-eared from use. All of my colleagues already know the book intimately.
I have known Steven Feuerstein and his work for a long time through my publishing of Oracle technical publications: the NY Oracle Users newsletter in 1989; the Oracle User Resource newsletter from 1990 to 1994; the International Oracle Users Journal from 1990 to 1992; the Proceedings of the East Coast Oracle Developers Conference from 1991 to 1996; and since 1994, Pinnacle Publishing's Oracle Developer. Steven has been my most prolific and admired writer for more than seven years.
Now that Steven (with the able help of Bill Pribyl) has updated the original version of Oracle PL/SQL Programming, I advise every Oracle developer to replace his or her own well-utilized copy with this new edition. They'll start out checking the new Oracle8 additions and the additional chapters on performance tuning, debugging, and tracing. But I think every one of them should have a copy of the new edition handy so they'll be prepared when someone comes to them with the inevitable questions about PL/SQL. Oracle8 is going to be the database behind many of the biggest systems on the Internet, and PL/SQL is going to be the language that makes it happen. The most successful Oracle developers and DBAs will be up to their ears in PL/SQL code -- and they'll be eternally grateful if that code is written in accordance with Steven and Bill's teachings.
As an extra treat, you should also find the book to be readable and entertaining, not easy adjectives to apply to most technical tomes. You will enjoy this book! I did.
Editor, Oracle Developer
New York, NY
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.