Transcript Slide 1
”Open Source Code Management” Morten Kromberg Dyalog User Conference 2006 Version 1 October 2006 1 A Few Words about V11.0 Presentations Today • As you may have noticed, Version 11.0 was a little late... the BIG news about it is that it is now ”out” (for 32-bit Windows) • 64-bit Windows, Windows Mobile 5, AIX, Linux and Solaris all to follow • 11.0 still has a few bugs but Dan, Nicolas and Beta Testers have done a good job • We are still ramping up our QA, and the next release will be even better • Due to the delay, there are few NEW ”technical news sessions” this year Web Applications at Dyalog ’06 2 A Few (more) Words about V11.0 Presentations Today • At 13:45 today, Geoff Streeter is doing an updated presentation on 64-bit Dyalog APL • At 14:30, John Scholes is more or less repeating last years presentation on nonOO language enhancements in v11 • The OO tutorial is being run as two full-day workshops by Dan Baronet (Mon+Fri) Web Applications at Dyalog ’06 3 A Few (more) Words about V11.0 Presentations Today • I suspect John Daintree is going to show some new uses of v11.0 to us tonight • Nicolas Delcros is talking about his first project at Dyalog at 14:30 today: An experimental port of the Linux product to ”WineLib” • I will now try to present some ideas on source code management which have resulted from working with version 11.0 Web Applications at Dyalog ’06 4 Introduction • In version 11.0, Classes and Namespaces have a ”script” form (returned by ⎕SRC) • This means that a group of related code (and constants) can easily be treated as a unit • In particular, the script can be written to a Unicode File • This allows a number of new ways of working... Web Applications at Dyalog ’06 5 Let’s take a look at a classical APL Application: Web Applications at Dyalog ’06 6 Developing ”Components” • LinReg is a nice application, but if I want to use it as a component in my system(s), I have to copy it around the place • Maintaining the source in a single, easilyeditable location is tricky • Source code management systems exist, but are proprietary, closed ”black boxes” • We propose a new beginning based on Unicode text files • Let’s examine how this might work... Web Applications at Dyalog ’06 7 S A L T = Simple APL Library Toolkit • SALT is an experimental tool, intended to provide ”bare bones” support for source in text files • SALT uses an undocumented callback on the Editor object to save changes immediately • As we have seen, SALT provides rudimentary version control • Now, imagine that we want to build a stand-alone application... Web Applications at Dyalog ’06 8 S A L T = Simple APL Library Toolkit • We have seen that ”SALTED” files allow us ”zero footprint” use of components • We can embed our components in simple stand-alone applications • We can do simple versioning • We can use non-APL development tools like ”CompareIt!” if they support Unicode • How else can we use our component? Web Applications at Dyalog ’06 9 How Else Can we Use it? • An Excel Graph? Web Applications at Dyalog ’06 10 Other uses for Script Files... • A Web Page? • The ”Wild Web Server” is an HTTP Server written entirely in Dyalog v11 by Stefano Lanzavecchia • Support for ”APLS” files was added by myself and Nicolas Delcros since Wednesday • It is perhaps the strongest testament to the value of OO and APL code in scripts to date Web Applications at Dyalog ’06 11 Other uses for Script Files... • How about a C# GUI application? Web Applications at Dyalog ’06 12 More about SPICE • A few more words about SPICE • SPICE is an experimental command line extension to the Dyalog Session • It looks in ”classes\spice” and tries to load all the ”.dyalog” files in this folder • Let’s examine a sample SPICE command • The intention is to make it really easy to share development tools Web Applications at Dyalog ’06 13 Conclusion • Storing Dyalog source code in text files has many benefits, in particular • Easy integration with many popular development tools • We can e-mail code to each other • We can easily share development tools Web Applications at Dyalog ’06 14 Conclusion • Scripts are especially practical when combining APL with other tools, like • ... Building web pages • ... Embedding Dyalog within Visual Studio • ... A tool like SALT ensures that changes get written back to the source right away Web Applications at Dyalog ’06 15 Conclusion • As with the Object Oriented features themselves, I would not recommend that you immediately rewrite your system • Please Experiment with it, at least look at the samples we distribute • In your own apps, it is most useful for (new) components used in many places • ... Or if a large team need to put something together from small pieces Web Applications at Dyalog ’06 16 Conclusion • Source Code Management is an important topic which we will continue to focus on • We aim to complete SALT & SPICE by Christmas • Even smoother integration with Visual Studio will probably be a goal for 11.1 Web Applications at Dyalog ’06 17 Problems Left to Solve include... • Dependencies between SALTed modules (”using” statement”) • Classes spread across more than one file? • Making SALT extensible so people can easily add commands or manage special meta-data inline in scripts • Should SALT versioning be withdrawn (people can use other Version Control tools?) Web Applications at Dyalog ’06 18 Call to Arms! • Dyalog will invest in developing new libraries of modular components using an ”Open Source” model • SALT, SPICE and the ”Wild Web Server” are our pilot projects • We invite you all to help provide a new generation of tools for us, and for future generations of APL users Web Applications at Dyalog ’06 19 Our Commitment • Dyalog aims to provide a web-based repository for open-source projects (probably using SubVersion) • We will clean up, document and publish ”recommended” solutions • There will also be a ”less managed” section • Prepare to contribute! Web Applications at Dyalog ’06 20 Thank You! Thank You (in advance ) Web Applications at Dyalog ’06 21