-4

If you wanted to distribute a program to as many OS as much as possible what's the best language to use?

I'm considering user's convenience here. For example, they don't need to download java run time, flash or .net framework if they don't have it. Also once they download it, they don't need to compile it themselves.

I'm also considering developer's convenience, in that on one compile, the program compiles different version of OS for you and you don't need to install different os to compile it.

Here are the features of the program I'm thinking: Stores text and image to database Uses keywords Can browse information in the webserver via xml Can share(upload and download) information from the web server via xml Can compile and edit related articles via keywords

It's something like a blog with advance features and can exist on and offline

Corbee
  • 979
  • 2
  • 13
  • 26

5 Answers5

2

Make it a web application with all the computation done server side. That should be very broad.

emory
  • 10,725
  • 2
  • 30
  • 58
  • Unfortunately I need it both web and desktop and possible even on mobile. But it would be fine to use separate languages for web and mobile. I'm more concern about the desktop – Corbee Sep 17 '11 at 00:18
  • Java runs on virtually all of the mobile platforms – Blender Sep 17 '11 at 00:24
  • If ur desktop and mobile has a browser, then all u really need is a web application. – emory Sep 17 '11 at 00:24
  • desktop doesn't have a browser, but instead parse xml from the web. But you gave me an idea. Is it possible to create an installer that contains web server, database and the scripting language for multiple OS? And how do prevent conflict if a user has a webserver installed? – Corbee Sep 17 '11 at 00:29
  • It is possible to create an installer that contains web server, database, and scripting language for multiple OS, but it would seem easier to create an installer that contains a browser for multiple OS. Or you could include java in your installer. – emory Sep 17 '11 at 00:35
0

Both Java and Python would do the job. IMHO, Python would do it in a nicer way and would make you happier, especially if you are coming from a C-like language. Java would probably be faster, unless you do some horrible programming. There are tools (e.g. JSmooth) which will quite effortlessly convert a Java app to a Windows executable, and would even include JRE. Your user would just have to double-click. There are also several applications for creating Mac executables from a Jar file, the name slipped my mind. A colleague did that at work recently. The same holds for Python too.

mbatchkarov
  • 15,487
  • 9
  • 60
  • 79
  • I heard that on Python you need to have a lot of operating system to create different distributions are there any tools that could convert the code into different OS installers? – Corbee Sep 17 '11 at 00:26
  • Haven't tried it for Python myself, but Google claims you can have py2exe for windows, py2app for Mac and Freeze for Linux. Check out http://stackoverflow.com/questions/2933/an-executable-python-app – mbatchkarov Sep 17 '11 at 00:32
0

If you want to develop a rich desktop application, between Java, Python and Flex (your tags list), I suggest warmly Java.

Flex is good for Rich Internet Application. On the desktop side, Adobe Air, is a bit poor (no thread, slow socket...)

Destroyica
  • 4,147
  • 3
  • 33
  • 50
0

I don't believe that there is a perfect solution to this.

You can use a hardware/os independent "platform" (Java, Flash, HTML + Javascript) and leave the user with the problem of installing the platform; e.g. a plugin, a JRE, the right browser, etc. In the case of Java, there are tools that allow you to embed a JRE inside an installer so that the end user doesn't have to perform a separate install. But there are downsides to doing that.

You can use some language / framework that produces binaries for a variety of platforms, but you will find that some significant platforms are left out, and/or that the look-and-feel of the UI is somewhat compromised.

You can code at a lower level and take care of all of the platform issues yourself; i.e. by writing and maintaining different versions / ports for each platform. But that's a lot of effort.

Stephen C
  • 698,415
  • 94
  • 811
  • 1,216
0

To distribute an app platform independent you can run it off of virtually any web server. All OS's and platforms have a web browser of some sort, so with a web app it'll be supported. Most OS's have browsers that'll support technologies such as AJAX and you can make your app pretty slick, even in mobile platforms.

I'd definitely go this route of employing a web app. But if you want a stand alone application on multiple platforms, Java is a good option, but you'll have to load the runtime components on the OS if it's not inherently supported.

apollosoftware.org
  • 12,161
  • 4
  • 48
  • 69