I would like to know about people's experience of working with APEX and the SalesForce.com platform, was it easy to work with? How similar to Java and C# is it? What did you like? What don't you like? Would you recommend it? Do you think cloud computing has a long term successful future?

My reason for asking is that I am currently looking at a new position which involves working with APEX on the SalesForce.com platform. The position interests me but I just want to try and understand what I might be signing up for with regards the languages/platform as it is completely different from what I have worked with before.

I have seen lots of videos/blog posts online (mainly from the recent Dreamforce event) and they obviously are very positive but I was just after some experiences from developers, both positive and negative.

I find cloud computing a very interesting idea, but I am very new to the subject. The position I am looking at offers a fantastic opportunity but I was just after some opinions on APEX and the platform as I have no real world experience just what I have seen from the online videos.

I guess ultimately what I am asking is:

Are APEX and the SalesForce.com platform good to get involved in? Is development on the Force.com just a "career dead end"?

Is cloud computing just a fad? Or does it have a long term future?

Apologies in advance if this is the wrong place to ask such a question.

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

Website hosts have existed for zillion years, but are were never stated as Cloud Computing. :P .... I guess other than hosting, there is nothing to cloud computing in real world.
–
Pankaj UpadhyaySep 19 '11 at 13:06

@ Digger:Did you take the job or not?If yes are you satisfied?If not why not?I am asking because I am interested in a similar position
–
user10326Dec 24 '11 at 17:50

@user10326: No as I found that their were too many limits on what you could do. But, I would say think about what you want to do and make your own decision. I decided I wanted more freedom when developing solutions, you might not. Let us know what you decide, cheers.
–
Scott SellersDec 28 '11 at 9:09

@user10326 see some of the comments from the accepted answer below. I found them to be quite true (re: dead end) as I looked around. But that was just my opinion, yours might be different
–
Scott SellersDec 28 '11 at 13:46

3 Answers
3

Since you asked about Salesforce and Apex specifically, I'll give you my opinion on it.

I have developed an application using Apex on the Force.com platform and found the tools and provided libraries lacking. Their implementation of the MVC paradigm is more like ASP.Net Code Behind than anything else.

They are slow to add new features for developer and instead are trying to turn Salesforce into some sort of social networking platform.

I think as a CRM, it is excellent, but as a platform for developing cloud based applications, it stops making sense for anything other than relatively basic data capture/reporting style apps.

As a developer, I can't help but think it's a career dead end.

That said, their REST API is nice enough and dealing with that will get you exposure to OAuth, JSON and all of that. I certainly enjoyed writing code related to that more than the core Force.com app.

Just a quick question, why a career dead end? Because they are slow to add new development features?
–
Scott SellersSep 19 '11 at 16:55

It could be a career dead end because you would be locking your development experience into a very specific platform that isn't transferable to other applications.
–
Ken LiuSep 19 '11 at 18:02

@KenLiu - I see your point but surely programming skills, techniques and practices are more important that the language or platform. A good programmer picks the right tool for the job because they know MANY tools.
–
Scott SellersSep 19 '11 at 18:25

You are correct, Digger and I certainly aspire to know as much as I can about everything but vendor lockin, incomplete libraries, and limited features and tools will put you at a disadvantage in the long term in my opinion. I should add btw, that I'm in favour of PaaS type services made available via Amazon or MS's cloud offering. I think the advantage of the the cloud applications, buzzword that it may be is being able to access your stuff from everywhere via any device you can think of
–
Colonel PanicSep 19 '11 at 19:15

Cloud computing is not a marketing buzz. It an actual, quite cool concept, for computing and SaaS. The problem is that it has been slightly distorted, and mislabel by some as just hosted virtualized servers.
–
AJCSep 19 '11 at 13:50

1

@AJC, Enlighten us please with a reference article that details the differences between hosted virtualized servers and the cloud.
–
maple_shaft♦Sep 19 '11 at 14:01

@maple_shaft: Depends on the platform. In the case of Azure, it's being termed PaaS (Platform-aaS) mostly because of what it offers in the realm of queues, table storage, blob storage, the appfrabic, the CDN and a some of the "behind-the-scenes" platform specific things that support the SLA (ie. fault zones, upgrade zones, etc.). Very different.
–
Steve EversSep 19 '11 at 16:55

Cloud computing is very expensive, very limited and over-hyped, IMHO, the only good thing about it is that you can accommodate an unexpected demand. So if someone DOS your web page, you can fire up more instances than the bot-net has, and the site will still be available.

Otherwise:

automation is as hard as in local cluster

you still need a sane system administrators

lightning takes down clouds just like any other solution

your information is stored at the 3rd party

expenses are higher over 1 year period

hardware is more limited

capabilities are limited by the platform

I think best solution is local farm with fail-over/scaling to cloud on unexpected demand.

+1, That is an interesting concept about using the Cloud as the fail/over peak demand solution. Do you have any references or articles on the subject that you can share?
–
maple_shaft♦Sep 19 '11 at 11:09

I don't think you know what it takes to actually operate your own farm, otherwise you wouldn't say it is more expensive to operate on the cloud. The costs of servers, back-up servers, maintenance, and don't forget, a cooled server room with a fireproof door. Plus a lot more that I am forgetting. Cloud services are not cheap, but if balanced correctly, they are the cheapest option (If you don't mind the whole data-stored-offsite thing. Which to me is the biggest draw back). I do agree that the best solution is a combination of the two...
–
AJCSep 19 '11 at 13:38

1

@AJC well that depends if your business really needs servers with a fireproof door, retina-scanned access, and to be under a mountain. If so, then yeah, local farms are expensive. If your server is Bob's old PC stuck on the back shelf, not so much.
–
PhilipSep 19 '11 at 14:08

@AJC, Google "server farm vs. collocation vs. cloud" You'll find plenty of comparisons, and cloud is always the costliest. Even if you order brand new hardware from Dell. It's not like you don't need maintenance in the cloud by the way. They all, clouds, fail and have worse reliability than collocation facilities so far, by an order.
–
CoderSep 19 '11 at 14:23

1

Actually, I am working with a cloud solution right now, and I'm shocked about the bills and limitations of the service. The customers where I suggested dedicated off the shelf hardware, have been happy for 5 years and the servers themselves were less than 1k bucks, one time purchase, including licenses. Google started with off the shelf hardware, and if I'm not mistaken, SO is also running on dedicated hardware.
–
CoderSep 19 '11 at 20:51