CorVu
The expression-style scripting language inside CorVu, an Australian-born business intelligence and Balanced Scorecard suite launched in 1993 and now owned by Rocket Software - a language whose only public trace is a single 99 Bottles of Beer program with an unusual ?* loop operator.
Created by CorVu (company founded by Justin MacIntosh in Australia, 1990)
CorVu is best known as a product rather than a language: a business intelligence suite for querying, reporting, charting, forecasting and performance scorecards, first sold in Australia in the early 1990s and owned since 2007 by Rocket Software. It appears in programming-language catalogues because the suite contained a small scripting language of its own, and because someone once used that language to write 99 Bottles of Beer. That one program is very nearly the entire public record of the language, and it is enough to show something distinctive: a C-like expression syntax in which the conditional operator ? : does the work of if, and a companion operator, ?*, does the work of while.
This page is therefore two things: a documented history of the product, drawn from the company’s own archived web pages and its filings with the US Securities and Exchange Commission, and a careful reading of the single surviving program. Where the second part is inference rather than documentation, it says so.
History & Origins
An Australian reporting tool
CorVu was founded by Justin MacIntosh. According to the management biography CorVu published in 1997, MacIntosh started in Australia’s equity and real estate markets, founded MACS Software, a business application software company, in 1977, and ran it until he founded CorVu in 1990. A registration statement the company later filed with the SEC puts it slightly differently, saying he founded “the former parent company of CorVu” in Australia in 1990. CorVu’s corporate background page from 1997 adds that the firm was originally an Australian supplier of business application software and sold that unit to concentrate on its flagship product, which it says was “originally launched in 1993”.
The earliest independent description found is an article in the Australian trade magazine MIS from June 1995, which CorVu reproduced on its site. It describes CorVu as an “Australian developed package”, Windows based, that let non-technical staff build their own queries from a data dictionary and produce graphical reports without calling on the information systems department. Sutherland Shire Council, south of Sydney, was the featured customer: its systems manager recalled that when the council bought the product the vendor was “relatively new on the market and virtually a one person company”, and that it had agreed to write an interface to the council’s Fujitsu database when no other vendor would. The article names a firm called Sycomp as “the developers of CorVu” and the provider of training, and quotes MacIntosh as saying about 150 sites were using the product.
Moving to Minnesota
The business expanded to the United States in the mid-1990s. SEC filings record that CorVu International was incorporated in Minnesota on 15 September 1995 and changed its name to CorVu Corporation on 29 August 1996. By 1997 the company described itself as Minneapolis-based, with Australian offices in Sydney, Melbourne, Brisbane and Perth and a European office in London, and claimed more than 1,000 customers.
In that period the product was sold as the CorVu Integrated Business Intelligence Suite (IBIS). Its components, as described on the 1997-98 website, were:
| Component | Role |
|---|---|
| Knowledge Library | A metadata layer giving tables and columns business-friendly names, with security rules and stored “commonly used formulas and calculations” |
| DynaMart | A “multidimensional cache of data” built on the fly from query results, allowing drill-down without predefined dimensions or star schemas |
| Graphical OLAP | Interactive charts that could be drilled into and rotated |
| Report Writer | Production reports with groupings, cross-tabulations, categorisation and row-relative formulas |
| Executive Alerts | Speedometer and thermometer style gauges for key performance indicators |
| Forecasting and Impact Analysis | Statistical forecasting and “what if” business modelling |
| Intelligent Scheduler | Timed execution of queries and reports on the client or a server |
Two announcements in 1997 shaped the product’s later direction. On 8 May CorVu announced a Balanced Scorecard Performance Management System, an automated version of the Kaplan and Norton management method, and on 30 July it announced Version 4.0, which added a Web server component built on ActiveX, a three-tier architecture using a UNIX or Windows NT server, and the scorecard system as a stand-alone component. The Version 4.0 release, which promised availability at the end of August, stated that the suite ran on Windows 3.1, Windows 95 and Windows NT.
A public company
On 8 November 1999 CorVu repackaged the suite as two products: CorBusiness, for query, reporting, OLAP analysis and executive dashboards, and CorManage, which added Balanced Scorecard and performance management on top. Nine days later it signed a merger agreement with Minnesota American, Inc., a public shell company that had been incorporated in 1983 as J.B. Goodhouse, was renamed Lockermate Corporation in 1988 and became Minnesota American in 1992. The merger took effect on 14 January 2000; Minnesota American survived legally and took the CorVu Corporation name, giving CorVu a public listing.
The registration statement filed for that transaction reported 114 employees as of 15 January 2000, of whom 12 worked in product development, and a customer base it put at more than 2,100. It said version 4.1 of both products was expected to ship in February 2000, and that client software was available for Windows 95/98, Windows NT and Linux, with servers on Windows NT, UNIX and Linux.
Later products included RapidScorecard, CorPortfolio, CorRisk and HyperVu, a way of publishing reports and scorecards as interactive HTML that was announced in January 2002. CorVu 5 followed: the company’s annual report for the year to June 2004 said it would begin shipping to customers in late September. The 2006 annual report describes CorVu 5 as five integrated modules: CorBusiness, CorStrategy, CorPlanning, CorRisk and CorIncentive. The annual reports give total revenue of about $16.2 million for the year to June 2004, $13.2 million for the year to June 2005 and $15.4 million for the year to June 2006, at which point the company had 86 employees, 20 of them in product development.
Rocket Software
On 5 March 2007 CorVu announced a definitive agreement to be acquired by Rocket Software, Inc., based in Newton, Massachusetts, for $0.40 in cash per common share, which the proxy statement valued at roughly $22.3 million in total. Shareholders met on 10 May and the merger closed on 18 May 2007, when CorVu also deregistered its shares.
The Language
The only published program
Tim Robinson’s 99 Bottles of Beer on the Wall collection, one of the web’s early multi-language code anthologies, included a CorVu entry by August 2000, introduced with the line “CorVu is an integrated business intelligence suite” and a link to the company’s Australian website. The same program was carried over to the successor site 99-bottles-of-beer.net, where it is dated 20 April 2005 and credited to no one. The original contributor is not recorded in either place.
The program in full:
bottles = 99;
(bottles > 0)
?*
(
text = ((bottles > 1) ? " bottles" : " bottle");
display(bottles, text, " of beer on the wall,");
newline();
display(bottles, text, " of beer,");
newline();
display("Take one down, and pass it around,");
newline();
bottles = bottles - 1;
(bottles > 0)
?
(
text = ((bottles > 1) ? " bottles" : " bottle");
display(bottles, text, " of beer on the wall.")
)
:
(
display("No more bottles of beer on the wall.")
);
newline(2)
);
display("No more bottles of beer on the wall,");
newline();
display("No more bottles of beer,");
newline();
display("Go to the store and buy some more,");
newline();
display("99 bottles of beer on the wall.");
newline()
What the program shows
Everything in this section is read off that one listing. No language reference for the classic CorVu product has been found online, so these are observations about a sample, not a specification.
- Everything is an expression. There are no
if,whileorbegin/endkeywords anywhere. Control flow is written with operators applied to parenthesised groups. condition ? a : bis the conditional. It is used in the familiar C way to choose a value ((bottles > 1) ? " bottles" : " bottle"), and also as a statement-levelif/else, with each branch a parenthesised group of statements.condition ?* ( body )is the loop. The outer construct repeats its body for as long asbottles > 0holds, which makes?*awhileloop spelled as a variant of the conditional operator. This is the language’s most unusual feature; the asterisk may be meant to suggest “zero or more times”, as it does in regular expressions, though that reading is a guess.- Parentheses are the block delimiters, serving for both grouping expressions and bracketing sequences of statements.
- The semicolon separates rather than terminates. The last statement in every group, and the last statement of the program, has no trailing semicolon, as in Pascal rather than C.
- Variables are not declared.
bottlesholds a number andtextholds a string; both come into existence on first assignment. - Output is by built-in functions.
display()takes any number of arguments and accepts numbers and strings mixed together, andnewline()takes an optional count, as innewline(2).
The surface resemblance to C’s conditional operator is obvious, but no source establishes what the designers were drawing on, so no influences are claimed here.
Where it sat in the product
The sources found do not say which part of the suite ran such scripts or what the feature was called. The product literature does make clear that formulas were a normal part of working with CorVu: the Knowledge Library stored “commonly used formulas and calculations” for reuse, and the Report Writer offered formulas that could address specific or relative row numbers, which CorVu promoted as a way to compute things like day-on-day price changes without “IF-THEN-ELSE or other complex macro logic”. A general-purpose expression language with output functions fits that setting, but the connection between those documented formula features and the language of the 99 Bottles program is an inference.
Design Philosophy
CorVu’s marketing was consistent over two decades on one point: the product was meant to be used by business staff, not programmers. The 1995 MIS article is about exactly that, moving report writing out of the IS department and “back on the users”. The 1997 product pages stress that drilling into data required no predefined dimensions “and thus, no programming”. Rocket’s later datasheet for CorBusiness still promised that analysis systems could be “purpose-built by business users, without the need for specialized ‘programming’ experience”.
Seen against that message, a scripting language was never going to be advertised, which goes some way to explaining why it left so little trace. It existed for the cases that point-and-click could not cover, and the people who used it were the administrators and consultants building applications for everyone else.
Evolution
The classic product line continued under Rocket as Rocket CorVu, with modules still named CorBusiness, CorStrategy, CorRisk, CorPortfolio and HyperVu. Rocket’s installation guides for the line carry the version number 5.4 and dates in 2014 and 2015, and a copyright range beginning in 1990.
Rocket also introduced Rocket CorVu NG. Version 3.0 was reported in June 2014, and Rocket’s introduction to version 3.3 (November 2015) describes an Eclipse-based workstation application for Windows, Linux and Solaris with a browser-based companion. Its documentation describes an expression language with built-in functions such as Sum(), Average() and StdDev() for calculated columns and conditional formatting, and dashboard “scene scripts” written in JavaScript. Nothing in that documentation mentions the ?* operator or display(), and CorVu NG should be treated as a different product that shares the brand, not as a later version of the language described above.
Current Relevance
The encyclopedia lists CorVu as historical, and for the language that is fair: there is no public interpreter, no public manual, and no sign of new code being written in it. No Docker image or other runnable distribution exists, since it was only ever available as part of a licensed commercial suite.
The product itself outlived that label for some time. Rocket Software’s website still carried a Rocket CorVu product page in an archived capture from December 2024, listing CorVu NG, CorBusiness, CorStrategy and CorRisk. Whether Rocket continues to sell or support the classic 5.x line today could not be confirmed for this page.
Why It Matters
CorVu is a small example of a large category: languages that exist only inside commercial business software, are learned by a small community of consultants and administrators, and vanish from the record when the product is absorbed or retired. Report writers, query tools and executive information systems of the 1990s nearly all had some formula or macro language, and almost none of them are documented anywhere a historian can reach.
What saved this one from complete obscurity was a hobby project. Because an unnamed CorVu user contributed a 99 Bottles of Beer program to a public collection, the language’s syntax can still be read, and its one genuinely interesting idea, extending the conditional operator with ?* to make a loop, is on the record. The company history around it is unusually well preserved too, thanks to SEC filings and web archives: an Australian start-up that sold reporting software to local councils, relocated to Minneapolis, rode the Balanced Scorecard wave of the late 1990s, and ended as a product line inside a larger vendor.
Sources
- CorVu Corporation website as archived by the Internet Archive, 1997-2002: corporate background, management biographies, product overview pages, and press releases of 8 May 1997, 30 July 1997, 3 August 1999, 8 November 1999 and 18 November 1999
- MIS magazine (Australia), June 1995, article on end-user database reporting, as reproduced on the CorVu website
- CorVu Corporation filings with the US Securities and Exchange Commission: Form 10-SB (2000), Forms 10-KSB for fiscal 2002, 2004, 2005 and 2006, the March 2007 merger press release, and the April 2007 definitive proxy statement
- Tim Robinson’s “99 Bottles of Beer on the Wall” collection (archived August 2000) and 99-bottles-of-beer.net, language entry for CorVu
- DSSResources.com, “HyperVu Announcement” (CorVu press release of 4 January 2002)
- Rocket Software: Introducing Rocket CorVu NG for AS Version 3.3 (November 2015), Rocket CorVu Activity Server Version 5 Release 4 Installation and Deployment Guide (September 2015), the CorBusiness datasheet (2014), and the archived Rocket CorVu product page (December 2024)
- Database Trends and Applications, “Rocket Software Introduces Rocket CorVu NG 3.0 with U2 Native Query”, 25 June 2014
Timeline
Notable Uses & Legacy
Sutherland Shire Council (New South Wales)
Described in MIS magazine in June 1995: CorVu was adapted to read the council's Fujitsu database of some 1,500 tables, and the number of staff producing their own reports rose from four or five to about 40
AT&T decision support
The same 1995 MIS article quotes the project leader for AT&T's decision support systems, who chose CorVu for information retrieval and used its drill-down displays to present results to management
The Longaberger Company
The Ohio basket maker was quoted in CorVu's July 1997 Version 4.0 announcement as a user of the suite that planned to deploy business intelligence and executive applications through the new CorVu Web Server
Georgia Department of Defense
Announced in August 1999 as selecting CorVu's Balanced Scorecard software to measure performance across the Georgia National Guard, State Defense Force and Office of the Adjutant General