views:

85

answers:

3

I am going to be developing some software for a kiosk and was wondering what operating system and programming language I would be best off going with.

I understand kiosks a bit and realized there are lot of issues as it pertains to software upgrades, etc so I want an environment that can be easily managed remotely but is also secure.

I've read that Windows Embedded is a pretty popular O/S choice for kiosks and I assume that if that's the route I'd take, I'd most likely go with a .Net (C#/VB) solution for the development language. However, I'd assume this would add quite a bit as far as cost to the kiosk.

Personally, I'd prefer Linux as an O/S but then I'd either have to go with Java (not any experience), or something like TCL/Tk (not much experience and very generic looking UI), or a web front-end.

I really want to stay away from a web application since I feel like developing very appealing web based user interfaces that include a lot of data entry, are quite time consuming to develop and getting the UI to look exactly the way you want involves a lot of different technologies (Javascript, CSS, HTML, etc).

So, I wanted to get some opinions if people were willing to make some suggestions.

A: 

I'd say you should go with linux/html rendering engine combo for the ease of deployment and flexibility. If you don't really like plain old HTML/CSS you can go with Gecko and use XUL. The widgets are quite good and predictable.

If you can't afford the processing power to run a browser, you may consider a thin client like solution and run whatever you like on the server.

Actually, use whatever you are most familiar with. Considering you have heard that Windows Embedded is a popular choice, I think MS marketing dept. have done their job right this time.

artificialidiot
+1  A: 

Consider your hardware as well. Is this a touchscreen application? If so, you may be have to consider how you are going to work with 3rd party libraries or drivers. Barcode scanner? Card reader? So on...

Consider software concerns such as network access and security. While good and bad applications can be written in any language and platform combination, some combinations lend themselves better to some architectural styles than others. You may have very different requirements for a children's entertainment application than you would for an ATM.

Outside of that, the best language / environment / architecture is probably the one with which your team is the most comfortable.

Rob Cooke
A: 

Consider this. If you use Microsoft Windows just-about-anything, the day will come when your kiosk will be immortalized in all kinds of places, displaying either an "Abort, Retry, Ignore?" dialog or a Blue Screen of Death.

Can you live with that flavor of immortality?

I can't. Of course, I work on embedded systems, upon which people's lives frequently ride, and I am painfully aware of a certain really beautiful piece of Photoshopping. It shows an Airbus glass cockpit, with EVERY screen, no matter how big or small, displaying a Blue Screen of Death.

Or you could dig out the Beijing Olympics opening ceremony photo, that shows one of the giant projected displays projecting a BSOD.

John R. Strohm