I’m the I.S. Manager at a small manufacturer with a large, Japanese parent company; in theory, our prospects for growth are very good. However, our computer system is a joke, and I and my department have the curse/blessing of rebuilding and extending it (for political reasons, it’s not possible to purchase a system - it’s handrolled or nothing).
Our current platform is Windows NT, SQL Server 7, and Access 97 clients, coded where necessary in T-SQL and Visual Basic. It’s a big ball of bandaids and ad hoc code, and (again, for political reasons) must remain in place and compatible with the parent company’s even larger mess (we need permission from the parent company to alter it in any way). Fortunately, its scope is very limited compared to the ERPs at most American businesses, and what must remain in place is relatively limited and can be walled off behind a better system.
I see two choices to make: first, is whether or not to stick with the whole Microsoft platform, and make it work better. Someone always has to muck out the stables, and it may just be my job to do it. This would entail mastering the platform and extending our system in Visual Basic and T-SQL, using Access or perhaps a web interface for clients. Or, I could embark on building a new system from scratch that will eventually support both the business and the old system; the advantage to this would be the opportunity to embed theoretical correctness in it from the beginning, eventually yielding a better and far more scalable system that actually works like it’s supposed to. Assuming I choose the second option, I then have a choice of how to do so. I see two options: Java and C++.
In favour of Java is the fact that it’s easier to code than C++, and has a tremendous amount of libraries available, especially for this situation (e.g., IBM’s San Francisco project). It’s comprehensive, too: it goes in the browser, in web-based applications (JSP), on the server, etc. It’s also platform neutral, so it leaves open the decision to remain a Microsoft shop or to pursue better platforms, or a mixture. Against Java is the performance issue: it’s just not as fast as native code, and in particular, GUIs written in Java are dog-slow on computers that aren’t the latest.
In favour of C++ is, well, that it’s C++. It’s pretty much the standard in business and applications development. It’s more mature than Java and has a wider installed base. Like Java, it has a wide selection of library code, though I’m unaware of anything as comprehensive as IBM’s San Francisco project. Against C++ is the steeper learning curve for my coders (none are experienced in either Java or C++), and the extra work we’d have to do getting a common code base from which to work.
So there’s the choices: Microsoft and it’s scripting language (maximum prewritten software, minimal power and flexibility), C++ (minimal prewritten software, maximal power), or Java (apparently the happy medium). What do you think? What choice would you make when starting your own ERP?