views:

328

answers:

9

Im not trying to debate which language is better, I'm just hitting a brick wall.

I'm building an Adobe Air desktop app for several companies. I came to the conclusion that ColdFusion was better than PHP for this (I need the 'push' feature).

But now I have hit a brick wall. In order to use ColdFusion, I must learn it first. When I look for hosting, I only find a handful of companies that actually have ColdFusion 8. Moreover, the cheapest crapiest plan is around 40 bucks (and that is for 1 domain). AHHH

I know that Java can perform pretty much the same tasks as ColdFusion, but I know absolutely nothing about it.

Heres my problem: I think the program I am trying to build is a great idea, but only time will tell if it really is. So, if I am going to spend a lot of time learing a language, I would like to actually use that language in other areas too.

So... which language do you guys think is better for this Java or ColdFusion?

I guess my real question is, which one is more mainstream? can one actaully find hosting for Java? and for under 100 ridiculous dollars a month?

+1  A: 

From all your questions I'm going to answer these:

I guess my real question is, which one is more mainstream?

Java

can one actaully find hosting for Java? and for under 100 ridiculous dollars a month?

Google provides limited free hosting for Java applications with their Google App Engine

The limits are described in the Quotas page. For instance the daily limit of incomin/outgoing bandwidth is 1 gb.

OscarRyz
But then again, GMail stayed in beta for about five years, long past the point at which it was stable. For Google, being in beta seems to be more a tactical consideration than it is elsewhere...
rtperson
+1  A: 

You might consider using Amazon S3 -- not free, but starting fairly cheap and scaling with use. Adobe has a tutorial on using AIR with S3. All the code's in ActionScript.

David Moles
+1  A: 

I think your tradeoff here is going to be learning curve versus general use. I know nothing about Adobe Air, but I'm assuming you need to serve straight HTML with some Ajax. Since you claim to know nothing about Java, this will entail learning the language, and then wrapping your head around Servlets, JSPs, the web deployment descriptor, the J2EE container, and a whole bunch of other stuff that, while not particularly difficult, will take you some time to learn.

But then you'll know a language that has proven itself in a huge number of business and commercial applications, and is in generally wider use than ColdFusion. So I'd suggest Java. Heck, if you want to make your learning curve a little easier, I'd even suggest .NET and C#.

As far as price, the list of hosting companies here leads me to believe that you'll be able to fit your budget with Java.

rtperson
"need to serve straight HTML with some Ajax", yes, but AIR is more than that. e.g. Database sync, or populate/edit/update a datagrid with conflict resolution, etc. They are easy in CF. Doable, but not as easy, in Java.
Henry
+2  A: 

Just use a VPS for non-LAMP hosting

If you want Java hosting, or CF, or RoR, or any odd thing or combination, the general answer these days, I imagine, is just to take the VPS path. Now you get shell access, whatever VM you want, and all you need is some system admin foo that you should learn anyway.

In fact, I think I might be tempted to go VPS even for LAMP...

DigitalRoss
A: 

Another option, which is a bit more work intensive, would be to acquire a VPS (virtual private server) from a host such as Linode. These can host domains and prototype your application for cheaper than the $40 a month for ColdFusion. But as previously mentioned, if you can skirt around some of the obstacles that the cloud presents with GAE or Amazon S3, then that will probably be the cheapest alternative until you get some real volume.

As always, there is a trade off, the one that would concern me if hosting the data for a client and using GAE would be the portability of the data. If the product took off and they wanted "buy you out" so to speak and take on the product and data themselves, I'm not sure how easy it would be to transition of Big Table (GAE's data storage).

Speaking to your personal investment of time, I have developed with both ColdFusion and Java, and Java is my personal preference for several reasons, if you'd like more information about those personal preferences I can provide some of those.

jnt30
+1  A: 

Addressing other part of your question:

In order to use ColdFusion, I must learn it first

...

I know that Java can perform pretty much the same tasks as ColdFusion, but I know absolutely nothing about it.

So, you are going to spend some time learning either.

If you feel comfortable programming in plain text go for Java. It is a general programming language and eventually you may apply the knowledge to other areas.

But, if you are of the WYSIWYG kind then ColdFusion would be better. The bad part is that Cf is very specialized. But at least you will avoid hours and hours of frustrating "text/plain" coding :P

OscarRyz
on the flip side, if you want to have your project up and running faster, try ColdFusion.
Henry
+3  A: 

I guess my real question is, which one is more mainstream?

ColdFusion is a Java application, as such it compiles down to Java at runtime. CFML ( ColdFusion Markup Language ) is the loosely typed scripting language that runs in Java applications such as ColdFusion, Railo and BlueDragon.

Java is a mainstream enterprise language. ColdFusion as a Java application has been largely successful in internal applications for large companies, as well as local and national government ( and much more ). Mainly for the added features and the ability to interact with existing Java infrastructure at a fraction of the development time.

can one actaully find hosting for Java? and for under 100 ridiculous dollars a month?

Check this question for java. For ColdFusion there are these listed on CF411 as well as alurium for Railo hosting.

As someone else mentioned, affordable VPS might be your best bet, then you can setup what you like. I asked here last year, went with SliceHost and could not be happier.

Hope this helps.

ethyreal
A: 

While I'd still say ColdFusion if your considering Air/Flex and java here is a good start on getting this working with Google App Engines java implementation: http://blogs.eteration.com/blog/?p=100

CFDev
+1  A: 

I had about 9 years of experience with Java from applets through the full JEE stack. Two years ago I inherited a ColdFusion project (running on CF 7). My take is: why choose? ColdFusion runs on Java, you can even run it on your favorite JEE container if you really like to read documentation.

The application I've been working with was written on CF 4, my predecessor moved it to 7 with very few changes. I've been rewriting parts of it to take advantage of the more modern CF features, and have found some parts that are just simpler to rewrite in Java. Calling Java classes is relatively easy. Given the easy with which we can make changes to the web pages, I just can't justify a rewrite.

So, to get started I would probably start developing in ColdFusion. You'll have plenty of things to worry about without having to learn the Java enterprise stack. Given the number of things that are ready to go "out of the box" with CF, you may not ever need to learn Java.

I have dedicated hardware for our applications, but I don't see a good reason for it. If you're looking for a ColdFusion hosting provider, check the CF blogs. Most are running on a CF host. When I checked a few of them (before I found out that we never run things somewhere else) I was only looking at about $30-50/month for the CF server and about the same for the MS SQL Server database.

Dennis Caldwell