We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Which language to go with?

elusivesoul
elusivesoul asked
on
Medium Priority
412 Views
Last Modified: 2010-04-17
Hi guys,
I need someones expert opinion on this. The company i work for wants to create a major complete software package, tailored specifically for the courier industry.
Now my question is, which programming language and db would most be suited for the creation of this task?. And what wold be the pros and cons of such a language in the context of a courier industry.?.
Does anyone know what FEDEX and DHL uses?.
Your help on this would be much appreciated.
ES
Comment
Watch Question

Commented:
depends on what os you use......for instance if you use multiple os...you might want to look at java..... only need to code it once.....

c# seems to be the hot thing this time around if you are on a windows os.....
c# is basicly a mutant child of c++ and java

Commented:
Firstly, consider the factor within the decision making processes such as Product pricing, Features, Scalability, Platforms, Interoperability and finally the Team's core competency. In short, let the market reality guides these factors.

Product Pricing - Lower pricing means the project has serious engineering constraints, which will influence which Middleware such as Relational Database to use, time to develop & tests including the number of features to addin.

Software Features - More features, takes more time to develop and TESTS. Let an actual courier business guides you in setting the features. Study their processes, decide current basic features and potential future features.

Scalability - Does your product have any scalability plans? Scalability to Enterprise level software requires some serious planning to avoid dead end, hence dictates which language to use.

Platforms - Unix, Linux, Windows? Starting with MS is relatively cheap, but they hit you in a serious manner when one wish to scale further up.

Core Competency - What does your team knows really well to begin with? Working with a new or less than knowledgable language can be a bit of a time mismanagement.

IMHO - Looking at the future trend and considering the product in a network world of interoperablity. I feel using Java has some serious benefit. Regarding Relational Database, for almost enterprise level software... MySQL is the choice, using Java Database Connectivity API.

Otherwise, try use on of those Rapid Application Development (RAD) languages such as Visual Basic.Net, Delphi and etc to cut down on development time.

Java and MySQL information:
http://www.javacoding.net/articles/technical/java-mysql.html


Commented:
>> c# is basicly a mutant child of c++ and java
LOL

Personally I would say C++.  But then again C++ is the answer to everything ;)

When you mention couriers I assume there would need to be some synchronicity in the data.  This means some sort of central data storage.  This will require access to a database which has been dicussed above.  SQL Server would be recommended as it allows simultaneous connections.

If you are not going to be using Windows then I would have to ask why.  Most corporations use this, so if this is the case use C++ or C#; anything to build an exe.  Interpreting Java byte code is good for cross platform compatibility but it does not offer performance benefits over C++; in fact it is slower.

That is my opinion for a desktop application.

If you are going for a web based solution, you have many options.  php is good since it links very well with MySQL; but then again asp.net (aspx pages) are excellent since they provide a large library of features to the programmer.  Databases would again have to be SQL Server.

If you state if you are after a desktop or web based app people can provide more specific input.

HTH
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Commented:
If you care more about presentation to customers then go with VB,
If you care more about timely tracking system, then go with C

shaggyb,              ;-)
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
If you are truly trying to emulate a system on the scale of FedEx , then ignore any premature optimization decisions like comparing performance of C++ vs Java. your primary concerns are scalability, managing complexity, lifecycle cost and overall productivity. You also want an environment where the language doesn't get in the way of your design so you can focus on delivering timely business solutions and value. Unfortunately with the above criteria, C++, C#, Java in fact all within this family fail miserably when you scale the system and the team. As for the VB stable, these are only useful for rapid screen prototypes and layout, but thrown away. In my book, dynamic languages are the only ones that can cut the mustard in all areas and shine. There is a world after Java and some parts of the IT community are starting to see the light too, see:
http://prog.vub.ac.be/~wdmeuter/PostJava/

My language choice: Smalltalk
And guess what FedEx use ? http://www.cincom.com/profiles/detail.html?id=10&html=Y

As for the choice of database, in terms of productivity, one element constantly underestimated by developers is the impedance mismatch between the object world and relation database world. In other words, one ends up writing a significant amount of code to translate between the two worlds. The mapping layer becomes another point of brittleness and and productivity bottleneck especially as your models evolve, because you must constantly keep your DB schema, data migration and your mapping layer meta data in step. Data persistence should be transparent and if not ultimately, certainly during your early development phases, you should consider an object database. Then, once the system design stabilizes, if there is pressure to go the more conventional relation DB route, you can add the relational DB and mapping, thereby deferring the cost of this in your project as late as possible.

My OO DB choice: GemStone
My relational DB choice: Postgres

Hope that helps and good luck.
i am working in VB for about 3 years, and really i cant do complex things with it, its so limited but fast.  and you cant create good packages.

but if you wanna go with Microsoft , the best Database is MS SQL server, Programming languages: Visual C++ or C# .NET.

As others said time, application, current knowledge.
I Never worked with other languages.
good luck


Author

Commented:
Apologies for the late reply, i had to go do further research basesd on the info given on the postings. thanks heaps guys, i have now got a fair idea of what to go with. Much much appreciated.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.