Best language(s) for accounting/trade database program?

I am planning to write a good-sized accounting program that first keeps a database of all trades done by the company.  It can then do a lot of report generation and can be very flexible with exporting and importing data with Excel.  I feel the generic way to go about it is to use Access with VB, but what's the best database and programming language to do this that allows for multiple-users, possible backup capabilities, good looking interface, speed, robustness, etc.

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Depends on where you want to run it. If Windows is your platform, .Net is your answer. Fast development as well as visual sophistication. Use VB/VB.Net with MSDE or MS Access.

If you want platform independence, use C++ with MySQL.
bcsmessAuthor Commented:
Windows would be fine.  I would like a separate backend database platform with a front end interface that is attractive.  Also, do you know of good websites to learn about the recommended database language.
VB (.net / 6) with SQL Server (MSDE)

Access is not dependable it will crash often because of messed up indexes.

Sql server gives you all the control you need.
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

I'll use something more reliable than VB... somthing like Delphi or Builder C++ from Borland.
VB is object based not object oriented, if you plan to build a system(or application) "good-sized", you have to think in reliability and robustness. VB do not qualify.

That is my point of view.
Helena Markováprogrammer-analystCommented:
You can also use PowerBuilder from Sybase or tools from Oracle (Forms/Reports=Developer Suite). As a database you can use Oracle, now it is not as expensive as it has been. Here is a link, you can find there all you need (the registration is free):
The "best language" is a loaded question.  VB love its simplicitiy and don't understand why C++ has to make the simple so complicated.  C++ and Delphi people think VB is a toy.  .NET people say it's the nirvana all-encompasing platform.  And ASP and ColdFusion or other web-based developers wonder why you'd ever develop for non-web platforms.  YOU CANNOT WIN.  THERE IS NO RIGHT ANSWER.  Don't trust anyone who puts down one in favor of the other.  The one that works for YOU is the one you ENJOY coding in.  ALL OF THEM CAN ACCOMPLISH THE SAME RESULTS.

I've developed commercial Accounting software products for companies like Peachtree Software (using VB6 and C++), Hyperion Solutions (midrange corp accounting using VB6 into C++ based DLL engines), a major web-based insurance company (where the accounting system was 100% web based, using ColdFusion), and corporate customers (using combinations of VB6 and ASP).  There was no major advantage to any language in any of these situations.  The language used largely depended on the talent available and what they LIKED to code in.  VB6 is just as robust as C++ and don't let anyone tell you otherwise.  YES, if you're doing a lot of LOGIC in the code, C++ offers significant advantages of speed.  BUT YOU SHOULD BE DOING 100% OF THE LOGIC IN THE DATABASE SERVER ITSELF.  The code should ONLY be used for interface purposes, and then there is absolutely no difference whatsoever.

The Accounting programs used Btrieve (nightmare), Oracle, and SQL Server as data servers.  I've also developed several moderate scale apps with Access and FoxPro.  STAY AWAY FROM THOSE.  For any multi-user application that will do intense query work, SQL SERVER IS THE WAY TO GO.  It's proven, reliable, robust, and powerful and fast.  I have never had an issue with a SQL server based application.

Really the key to it all is your data structures in SQL Server.  Design it RIGHT from the beginning.  Take the time to really make your table structures as efficient as possible for query purposes.  TAKE THE TIME.  Really detail out all the things you want the system to do and design the tables with that in mind.  Nothing will kill you more in an accounting system solution than BAD table design.

For me, personally, having built systems in all those different language platforms, I find the EASIEST to work with a develop a great interface QUICKLY is using VB6 as an interface platform into a SQL Server 2000 database, with 100% of all query work being done IN SQL SERVER.  The VB simply gets result sets or inserts records back.  That's it.  DO NOT WRITE ONE SINGLE PIECE OF SQL QUERY CODE IN THE INTERFACE.  Not even a "SELECT * FROM" statement.  DO THAT and it won't matter what language you use (and what's REALLY cool is 90% of the time that you need to make logic fixes you don't need to TOUCH the compiled program... just open the query in SQL and change it!)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Another thing to keep in mind is how your system will be used when everyone at your company sees what an awesome tool it is.  You didn't mention your company structure, but if it's a distributed company in several offices, you may really want to consider using ASP (regular or .NET) or ColdFusion to develop a web-based platform solution.  This way when the bosses see what a great tool it is and want to expand upon it, you're already one step ahead of the game.

And as I mentioned in my previous reply, I already developed an accounting system for an insurance provider that was 100% browser based, so it's definitely possible.  (And we're talking a LOT of intense accounting transactions.  Imagine all the policy-related accounting transactions and daily, weekly, and monthly reporting involved and you get a sense for what it had to handle.)

Again, the key is not so much the language used, but your efficiency and steadfastness in keeping 100% of the data logic IN THE DATA SERVER itself.  It still amazes me how many people do looping logic and calculations in compiled CODE when it would run 10X faster and be easier to maintain within the data server itself.

The ONLY reason to embed such logic in CODE vs. in the data server itself is to protect proprietary routines, so no one can reproduce your "magic".  If you're not worried about that, any language will do.  But if you want to hide all the logic (and basically re-engineer the power of SQL Server using home-grown code), THEN you'll need to at least build all THAT logic into compiled DLL libraries using tight C++ code, because it WILL be too slow if included in other interpretive platforms.  That is the main reason why we used C++ at Peachtree and Hyperion.

Just some more to think about when reaching your decision.
Sorry GraBird... I disagree strongly... but in matters of points of view who is right?
In my experience VB performance is very low compared to any C++ in the market. As you said: "Design it RIGHT from the beginning.  Take the time to really make your table structures as efficient as possible for query purposes" sometimes that is an utopia. You always have to think in future releases and give the developers the flexibility in the design and code to change things in the future. The best approach is an object oriented one, not object based.
Besides everyone knows that VB is a RAD PROTOTYPING lenguage, and of course is a toy. As a prototyping lenguge is a very good one. SQL Server is to the databases engines as VB for the coding lenguages. I remember a situation when I worked for some banks in clearing area, in these days SQL Server lost records via ODBC, all of us were seeking the problem in the code, a waste of time/money. In this case I'll recomend Sybase/Oracle.

We'll agree to disagree Tom.

Everyone has their favorites, everyone has had bad experiences.  But to blame it on the software when 100's of thousands of applications are written using the same stuff and work just fine is just arrogant.

If you were having "lost records" via ODBC it sounds like a programmer problem not a SQL problem.  In my 10+ years working with SQL I've never ever had a record "lost"... but I have run across a LOT of bad programming.

By the sound of it, he's not developing an accounting system that will support 600,000 people connecting in and doing 50 transactions a second.  There's a point where using C++ is absolute overkill and being done for the simple joy of being brainy about it.  (Why not write the program comments in Klingon too?)

If he's developing a video game, by all means, C++ is it, damn straight.  
For a small business application that will be EASY to maintain, C++ is overkill.
VB is SO much simpler and faster to go from inception to production.

VB is a perfectly good language and plenty strong enough for a large scale application.  I just finished working at a client who's using a VB-based application with SQL server to run a $100million manufacturing company.  It never has a problem and runs lightning fast.  Very complex and detailed reports of 100,000+ records take less than 5 secs to generate (ready for printing).  Never lost a record.  Never had an issue.  

VB is no toy, and I still make $150K a year as a VB programmer developing some really cool apps.  If being a pleasure to program in makes it a toy, then I guess I just like having fun and will never grow up.

(PS - I'd forgotten about Sybase!  Another good choice, especially since it's the foundation of MS SQL anyway!)
I do not care for money volume... a $100M company can be run with Excel and Wordpad, is a bad mesure for software development think in the money volume of the company... Money volume is for business not software.
In software everything is secs of transaction and response, the money involved are only licences and programmer per hour in this case.
If you buy Microsoft marketing campaign, is obvious that you compares applications by money volume not performance.
Besides SQL Server was lossing records because we was scanning check items and passing 4 images to the database for a 1/50 sec fraction. Is obvious that you never wrote an application with that performance because you program in VB.
Today Borland have some tools like Delphi/Builder that are as easy as VB and several times fast, robust and reliables. Is a waste of time/money write applications in a object based lenguage when you can write object oriented applications at the same cost. VB and MS SQL Server is for "wizards setup boys".
BTW Sybase uses T-SQL (like MS SQL Server) but is not based on the fundations of MS. Sybase is FREE for linux and is so much reliable than SQL Server.

Yes, we disagree... anyway I respect your criteria/opinion/pov and is good to disagree and think different.
I think our posts pretty much speak for themselves.  You're anti-Microsoft, I'm pro.  I rarely read anything Microsoft sends out.  My favor of MS is based on usage experience.  (And personally I never liked MS C++... I always used Watcom or Borland.)

The person asking the question seems to be primarily interested in ease of development and maintenance using a "generic" language, with implied experience or interest in VB and Access., and what would be "best" to that extent ("to do this").

VB with SQL server WILL allow for multiple-users, has good backup capabilities, allows for fast development of good looking "standard" interfaces, is plenty speedy enough for the volumes it sounds like he's interested in, and is plenty robust and proven.

I didn't criticize your suggestions at all, only offered the questioner my POV re: my experiences.  So please afford me the same courtesy.  I realize YOU are a die-hard C++ programmer.  There's nothing wrong with C++.  There's nothing wrong with Linux.  BUT there's ALSO nothing wrong with Microsoft.  (Geeze, you Linux guys!  It's like "Al Gore invented Linux!  Bill Gates is a monkey!" and I feel like I'm on Yahoo message boards.)

So, I mean, give me a break Tom.  

You're talking about using a bazooka to drive in a brad nail to hang a picture frame.  
I don't think that's what the person was looking for, that's all.

Now let's leave it up to them to decide.  Fair enough?
I'll say no more... we are in peace GraBird. =)
Just for the record, I'm a Mac owner, my companies are IT mac oriented, when I write code, I use cocoa/java, several years ago I was a VB/Delphi/Builder programmer, I always hates MS C++ and all MFC (more than VB, hehe =p). In this days I think that web-based apps rules for the business, but I understand that not everybody are familiar/comfortable/suitable with online systems. I have more than 15 years in analysis/design/programming experience I wrote code in more than 20 languages and I do not live in the states at all. So, I say all of this because I don't want that your assumptions describes me.

I give you a brake, let he decide. As I said, we are in peace! =p
bcsmessAuthor Commented:
By the way, what are some of the features that a MSDE back-end and whatever front end interface language you guys recommend that stand out versus other languages?

Thanks again.
You need to understand many things before starting with an application of this type. What do you need in order to develop the application? What are your skill sets? What features you should look for in the language/back end server? Etc. I will try to give you some idea about the same.

What features you should look for in the language? You need:

(1) Some database capability, so that you do not get trapped in the nitty gritties of data structures and indexes.
(2) Some multithreading capability, so that your application doesn't become non-responsive when it is doing some processing.
(3) Sleek user-interface, so that your application doesn't bear the home-grown look and feel.
(4) Some locking capability, so that your users do not keep cancelling updations made by other users.

What features you should look for in the language back end server? You server should be:

(1) High-perfomance
(2) Scalable
(3) Multi-user capable
(4) Hign performance indices
(5) Good management/analysis/reporting tools
(6) Secure etc.

Seeing the above list, what comes to mind immediately is Visual Basic + MS SQL Server. To many it may sound like an old-school thought, but VB+SQL server can still be the bext chioce in your environment.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.