The first thing you want to do is hang a big sign on every wall:
Quote:
"This is the Unix philosophy:
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface."
|
See
http://en.wikipedia.org/wiki/Unix_philosophy, read and heed.
When you start talking about enterprise computing, you're talking about a lot of folks doing a lot of work over a long period of time and you need to agree on some standards. You need to decide on a platform; be that proprietary (like Sun, for example) or open source (I tend to favor open source, this is, after all, a Linux-oriented organization) and you need to be able to vary that as needed. One consideration might be what Matlab runs on with the least trouble; you're paying for it, make sure it runs on what you're considering.
I tend to favor the LAMP model: Linux, Apache, MySQL and PHP. Along with that come C or C++, Java and Javascript and Matlab. By definition, Linux is multiuser and you can do pretty much anything you'd like to do in that environment (servers plus individual workstations on one or more networks) without too much administrative trouble -- Linux systems tend to play together nicely without a lot of fooling around to make that happen or maintenance headaches as time goes on.
Matlab is one of those nice products that provides library functions (that philosophy thing again) that are callable from programs (not program,
programs you are not going to live on Matlab alone, you're going to have to write some stuff yourself, probably a lot more stuff than you think right now, and everything needs to work together to do that). You will need to massage data into forms that Matlab will accept and you're going to have to take output from Matlab and do something with it; that suggests data base (the M part of LAMP) and, to some extent, PHP (and maybe Javascript) to display it.
Huh?
Well, here's the thing: you're going to be working with your own internal stuff that you decided on early in the game plus you're going to have to work with whatever people who are paying you may have. You can be pretty sure that clients will have the lowest common denominator (that would be some Microsoft-thing) and your best bet for dealing with the outside world (and, for that matter, the inside world, too) is a browser-based interface (unless you want to support every version of every GUI ever done in the history of the world, that is). While you're at it, adopt the open document standard (that would be OpenOffice.org or StarOffice or something similar) and Adobe's PDF (yes, that's proprietary, but pretty much everybody in the world can read it and systems like OpenOffice.org produce it).
You may want to adopt one of the IDE's; e.g., Eclipse. Personally I hate the things but organizations seem to think they're the berries. They do integrate your development work, though and they're right up there with current academic thinking (which is not always a good recommendation in my experience: them that can do, them that can't write papers).
You're going to need a data base designer; get data from clients, massage it into the proper form, store it, process it, store the output -- it's amazing how easy life is with a well-designed data base and a few library calls from simple front- and back end data manipulation programs. You're going to need a data base administrator to keep things rolling along smoothly. You're going to need people familiar with working with data bases.
You're going to need a system administrator to manage your servers, network, work stations and the like. You're going to need system support folk to answer the inevitable questions and deal with the inevitable problems that will arise. You're going to have to spend some bucks on a enterprise-capable back up system (don't skimp on this).
You're going to need multi-tasking programmers that understand the system, speak the languages and have enough vision to see the forest instead of the trees. You're going to need documentation folks just because engineers are usually lousy at writing readable documents.
You're on a voyage, friend, have a nice trip and best of luck.
Oh, yeah, do one thing and do it well.