What is our primary use case?
Police records management and emergency nanagement.
The police application is an xpa 3.2 Windows client/server solution that uses Pervasive PSQL and utilizes remote desktop services for remote access.
The emergency management solution also uses the xpa 3.2 and Pervasive PSQL Windows client/server solution, along with an xpa 3.2 RIA mobile Android application for field reporting of road closures and utility damage.
How has it helped my organization?
Typically an experienced Magic developer can do the work of two to three experienced C#/.NET developers. Customers are amazed at how quickly most new features can be added and bug fixes implemented. I have worked for four employers - including myself - using Magic, and in most instances, bug fixes are addressed and deployed in under six hours.
When shops decide to move away from Magic to other environments, one of the thorniest issues they immediately confront is customer dissatisfaction with turnaround time on bugs. When talking to a prospective customer this is a huge advantage.
My company has always used Magic. It allows me to respond faster to customer needs than my competitors. Magic is built for data manipulation and is extremely efficient at it. My applications include their own reporting, auditing, and Help Desk features, written in Magic. There is no need for third-party reporting tools (except for charting), Help Desk solutions, or a DBA to query logs.
Years ago I was working on a law enforcement data sharing project and a police chief was skeptical that I could pull off everything promised since I was the sole developer. In an attempt to prove his point, he asked me to add a field to a data entry form and include an error check for a range of values. He was willing to break for lunch to give me time to complete the task. I asked him to pour himself a fresh cup of coffee and it would be done. By the time he sat down the requested changes had been implemented and were on the screen for his review. It turned out he had been asking his current vendor for similar changes for almost two years. He has been a customer since 2001. You will find this to be a common story among Magic developers.
What is most valuable?
- Speed of development and database connectivity (MS SQL, Oracle, DB2, Btrieve/Pervasive PSQL, ODBC, MySql, and SQLite).
- The ability to use the same development environment for both Windows and Android applications. Magic xpa also supports iOS applications.
What needs improvement?
- The configuration of the xpa RIA mobile environment is complex and a discouragement to new developers.
- Magic's documentation can be less than complete at times which leads to frustration for new developers. (I encourage new Magic developers to join the Magic Users Group).
- The Android environment is missing a number of functions for file/folder manipulation, sending receiving text messages (SMS) and the menuing options are limited. For now, it is left to the developer to write his/her own Java functions to include in the APK.
- It is missing basic charting tools for bar/pie/series charts. It is left to the developer to acquire and deploy charting tools or the customer to purchase a third-party reporting tool to produce charts.
- I would like to see a spell checker included with optional language support. Currently, this has to be purchased from a third-party.
- There is also an issue with table control sorting of data that does not result in an additional database call.
- The ability to display page up, page down, top and bottom buttons along the scroll bar would make my mouse-reliant customers happy.
What do I think about the stability of the solution?
As with any development tool, some versions are better than others. I have never had a problem with application's stability, but I have also never deployed a .0 release.
What do I think about the scalability of the solution?
Scalability is not a Magic issue, it is dependent on the RDBMS.
How is customer service and technical support?
Tech support has become more responsive over the years. In most cases, they want an example of your code, which is reasonable, but not always practical. I wish they would be more willing to remote in and take a look at the problem.
Magic offers free training classes at their South California office. It would be helpful if they expanded the training of locations to the Mid-West, Northeast, and Southeast. Additional training facilities would encourage more developers to try it if they could get three days of free training. The best place for newcomers seeking advice or help is the Magic Users Group.
How was the initial setup?
The client/server configuration is straightforward. The RIA mobile setup and configuration of your development environment to generate an APK is challenging. RIA requires a web server be properly configured, which the installation handles fairly well, but not completely. If you decide to set up your web server after installing Magic, it is a manual operation. I recommend going through the experience of manually configuring the web server and broker (middleware between the web server and Magic runtime engine) to fully understand how all the constituent parts work together. It is invaluable for troubleshooting problems at a customer site.
Generating an Android APK that includes custom Java and company branding takes some time for a non-Android developer to master. It requires the Java SDK and Android Studio. When properly configured it works well, but it requires patience and determination to get there.
The Magic documentation has improved over the years, but can still be a bit fuzzy. MSE has started posting youtube "how to" videos which are helpful. I find the videos posted by users to be the most helpful. Magic also comes with a number of sample applications that demonstrate all the various features/functions. I highly recommend reviewing the sample applications.
What's my experience with pricing, setup cost, and licensing?
Magic is not the cheapest IDE out there. If you are considering Magic xpa, you should do a cost-benefit analysis to feel comfortable with your decision. The Magic sales staff is very helpful in providing pricing.
Which other solutions did I evaluate?
In 1994, Visual Basic and Power Builder were the other contenders. I went with Magic because of the number of development competitions it won at the time.
What other advice do I have?
I have been using Magic since 1994. I started with version 5.5 for a district attorney defendant-tracking system. Just two of us wrote an entire solution in six months, including data translation from a Sperry MAPPER system to Novell NetWare Btrieve. I have worked in versions 5.x, 8.x, 9.x, uniPaaS 1.8/1.9 and xpa 3.x.
The Magic community is relatively small and tight-knit. Perhaps the best resource available to any new Magic developer is the Magic Users Group on Groups.io. Members are incredibly generous with their time and willingness to share solutions. Group members organize an annual conference whose focus is purely technical.
Be patient and you will be rewarded. Magic is not a procedural language. It is designed to work with rows of data. If you understand how the Magic engine works, you will double your productivity within a couple of months.