Morten Kromberg
Morten Kromberg has been developing applications and tools for developers in APL since 1979 – almost ¾ of the time that has passed since the first APL interpreter saw the light of day in 1966 (coincidentally, this is roughly the same fraction of his own life). Amongst other things, he was the CTO of Adaytum Software from 1995 to 2000 (http://www.thefreelibrary.com/Adaytum... where he was responsible for the development of a highly successful business planning solution based upon APL, which was subsequently acquired by Cognos and is currently known as IBM Cognos 8 Planning.
Since 2005, Morten has been the CTO of Dyalog Ltd (www.dyalog.com) , which has become the fastest-growing vendor of APL interpreters, based in Bramley (Hampshire), UK. Morten is a frequent speaker at APL conferences, and presented a paper titled “Arrays of Objects” at 2007 the symposium on Dynamic Languages, on the integration of object and array paradigms in Dyalog APL (http://portal.acm.org/citation...).
Track abstract - Room G4 - Emerging Technologies
APL#
In 2012, the APL community will celebrate the 50th anniversary of Kenneth Iverson’s book titled “A Programming Language”. APL achieved significant use on mainframes in the 1970’s and early 80’s, as the one of the first ways to deliver “end user computing” in an age where few off-the-shelf products existed and most software was hand-made from the ground up. APL has lived a relatively quiet life during the 90’s and 00’s, while IT departments were consumed with getting administrative systems under control (and data safely stored away in SQL databases). During this period, the analytical use of computers took a back seat (as a proportion of the total amount of software development being done), and “end user computing” was relegated to spreadsheets. APL slipped under the radar of the software development community.
Today, the agile approach to software development that has been the norm for APL users since the 1970’s, has been “rediscovered” by the mainstream. Features which were discovered by APL implementers and users decades ago - such as dynamic typing, column-store databases, keyed index object stores, and “in-memory OLAP” – which used to put deep frowns on the faces of IT managers, are now seen as “state-of-the-art”. The urgent need to involve domain experts more directly in the development process for sophisticated applications, and an economic climate which puts a high premium on agility and efficiency, sets the stage for the return of (modern derivatives of) APL.
APL# is a multi-paradigm programming language, with emphasis on array-based / parallel algorithms, functional and object-oriented programming - in that order. APL# supports extremely rapid development of code with computational or analytical content, and is particularly well suited to applications which need to deal with highly heterogeneous data sources (sometimes of dubious quality), which require significant transformation and normalization before data becomes information. The language is as closely related to mathematical notation as it is to mainstream “programming languages”, and is thus much closer to the notations that many subject matter specialists are comfortable with, even when compared to languages like Python or F#. APL can be used interactively to mine data, to explore the mathematical and logical properties of a problem domain, and allows the domain expert to evolve his or her own embedded domain specific notation where relevant.
APL[#] makes it easier for domain experts to participate directly in the software development process, either by pairing with “professional” software developers, or taking direct responsibility for the coding of complex business logic which can be embedded in applications written in other languages. The right mix of subject and software experts can dramatically reduce the size and complexity of development teams, and significantly reduce the overall project risk for certain types of projects.
The presentation will mostly consist of an interactive demonstration of a prototype of APL# being used to explore a problem area, derive a simple embedded DSL, and finally build a simple SilverLight application to present the results.
Back