Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are developing a product at work which interfaces with basic I/O and sends data to a webserver over a GPRS connection.

What i need to know before we commit to a product, is which language is more suited for this task: Java or Python? (or any language to be honest) As i said, it will run on a wireless module and open serial connections, read values, send data through GPRS connections to a webserver...

share|improve this question

closed as off-topic by gnat, Tulains Córdova, MichaelT, GlenH7, Bart van Ingen Schenau Aug 10 '14 at 13:31

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – gnat, Tulains Córdova, Community, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

What's a wireless module? – Adam Lear Feb 1 '11 at 16:11 A Wireless module @anna :) – benhowdle89 Feb 1 '11 at 17:16
I think your best choice is to choose the hardware that meets your needs, then choose a programming language for it. Java or Python may not even be options at that point. – Joe Internet Feb 2 '11 at 3:48
up vote 4 down vote accepted

If you are only choosing between the two, I would say Java. But the real tool for this kind of project is C or C++.

Any memory-managed language can kill you if it does garbage-collection. For GPRS you are looking at real-time needs, and a resource-strained environment. There's a reason all of these types of projects use C languages.

You can take a look at this comparison: Java to C

Python to C

share|improve this answer

C will be more suit for embedded system programming, because, you can manage the memory requirement, direct access the hardware platform. Java lacks on both memory management and hardware access.

And, what is function of your wireless module?

share|improve this answer
to datalog values to a webserver. It would read values from a rs232 serial port and GPIO and send the data over GPRS to a webserver periodically – benhowdle89 Feb 1 '11 at 19:36

The only time that I have ever done anything like that it was for an Adruino board or similar (Xilinx, whatever). The dev kit was determined by the board manufacturer. Kugathasan has a point with C being the most likely if you don't use a base kit of some kind. If you are using a board that doesn't have a specific dev kit, I might look towards Android supported equipment. If you're doing it as a USB add-on to a phone or something that might be different, but the best answer might require more detail.

share|improve this answer

Java was invented for embedded systems.

share|improve this answer
It can be used on larger embedded systems using 32-bit microprocessors such as ARMs. It can't be used on 8-bit or 16-bit microcontrollers which still account for the majority of embedded systems for now (this is slowly changing). – tcrosley Feb 1 '11 at 17:29

Not the answer you're looking for? Browse other questions tagged or ask your own question.