General information and philosophy of Assist
Liberty BASIC's strongest focus has always been on simplicity. We've worked hard to keep things simple and straightforward, not piling on feature after feature. There are not enough easy to use tools for the average computer user.
In keeping with this philosophy we decided to create Assist as an optional add-on for Liberty BASIC GOLD. We also tried to keep Assist as minimal as possible both in the way that it doesn't complicate Liberty BASIC general usage, and also in the sense that we aimed to figure out what was really needed. We asked what would be the simplest thing that could possibly work, and tried to stick to this as a guiding principle. You can use the new features of Assist, but at no time are you forced to abandon the way you are used to using Liberty BASIC.
What Assist can do for you
Small programs of a page or so are easy to manage, but once you create a program that becomes at least a few pages long it becomes harder to deal with things as they get more complicated.
Code versioning and differencing
So let's say you are adding new features to one of your programs. After a couple of hours you've made numerous changes and are pleased with the result. Later while you or one of your users is putting your latest version through its paces you discover a new bug in a feature that used to work. Some change that you made had a side effect on already existing features of your program. No problem, you think. You have an old copy of the program, and so you can just print out both versions and compare them side by side to look for the change that broke the feature that used to work. This is slow and error prone (and wastes paper).
Assist solves this problem by providing versionable projects so you can keep as many versions of your code as you like. Each version can have a text comment that explains what is significant about each version you create. This is important because it's easier to understand what you (or someone else) has done to the code if there are meaningful comments for changes. Another really nice thing about version comments is that they are helpful for creating release notes about new features and bugs fixed.
In addition to this, Assist provides an easy to use 'version diffing' tool which visually compares two different versions of your project on screen by showing differences in color, and common code in black. This makes it easy to scan through the code and spot what's new and what's old in different colors so you can understand more easily what changes broke your program.
Code versions and computer assisted code diffing are very useful when working alone, but they really shine when two or more people are working on the same project. If you and a friend are working on a project together, you can start with the same code and go off and work on different parts of the code. Then once you've both got something working, Assist's version diffing tool lets you compare your work with what your friend has done, and merge in the changes that your friend has made right there in the tool!
Liberty BASIC makes it pretty easy to create a standalone application, but what if you have a bunch of other files that need to be distributed along with your program and you need to put these in a specific folder structure? Liberty BASIC doesn't prevent you from doing this yourself, but it can't help you to do it either. Assist makes this easy to do automatically. You can add a list of resource files to your project and where they go when you deploy your application. You can also specify the icon file for your program and Assist will insert this into your program automatically when you deploy. You can deploy to a local folder or to shared network resource. One other really nice thing about the list of resource files is that this information is also versioned. So you can go back and see what resources you included with an old version, and you can even go back and regenerate that application months or years later.
Sometimes our programs work, but they aren't fast enough. The problem might not even be obvious until we distribute a copy to our end users, some of whom might run old hardware that's been around for years. Because it can be difficult sometimes to figure out where a program spends most of its time executing, software engineers invented performance profiling tools. Assist adds just such a tool to Liberty BASIC's debugger. It is simple to use, and it displays the number of milliseconds spent executing each line of code. The truth of where time is spent can often be a revelation, and sometimes you will even discover that some code never gets executed at all!
One really simple way to make code easier to understand and less error prone is to format it consistently and helpfully. The meaning of the code can become obscured with indenting that is misleading (or with no indenting). Now with a simple keypress Assist will format your code quickly and consistently. This can also be very helpful when working on a team project. A common code format makes it easier for programmers to read each other's code.
Copyright 1992-2009 Shoptalk Systems