HN user

wpaprocki

19 karma
Posts0
Comments11
View on HN
No posts found.

Salesforce. It's not a bad system for what it was designed to do--sales and marketing. The problem is that it is over-promoted and over-sold as a versatile platform that can do anything. When you actually try to model complex business logic, however, you're screwed. Unless your business model conforms closely to their pre-built model, Salesforce development turns into an exercise of shoehorning your data into a system that just can't accommodate it.

If you need to model data with a lot of junction objects, good luck getting reports. You can only report on up to 4 objects at a time. Let's hope that you don't need any serious data aggregation since matrix reports limit you to 2x2 fields. You want to store data in JSON format and access it through a NoSQL database? You've got to build it outside of the system and have it talk to that database through custom code. But I thought Salesforce could do anything!

And on top of all of those obstacles, you get the privilege of paying a high monthly fee for a system that you'll probably only be able to get working if you shell out yet more license fees for 3rd party apps that hopefully fill in the gaps. But at least they just released a new analytics system that overcomes some of the absurd limitation on reporting that are inherent in the system--but of course it will cost you.

That being said, the alternatives better be good if I'm going to pay for them. Postgresql enterprise is probably worth it, given how awesome the free version is. And even then, I would just build a Django or Rails app on top of it, so even if I have to customize it, I won't be paying for the very fancy shackles that Salesforce gives me.

"...Engineers make plenty of business decisions every day: Deciding the size of a database field, for instance, or a data type. Those types of choices impact the business, admittedly in a micro way..."

Micro? I have seen decisions about database architecture that cost hundreds of thousands of dollars and thousands of hours of work over time.

Well, in Python, if you duplicate a return statement, then your code will recognize only the first statement. This, for example, will return 1:

  def func():
    return 1
    return 2
If the code from the goto fail example was written in Python so as to return an object when a condition was met, and it ended up with 2 return statements, then Python would have just returned the first one in the proper scope and moved on. Of course, this still depends on implementation in the code itself.

There are other reasons why choice of language matters. If you need a simple web app, you're probably writing it in PHP or Ruby instead of C. But you'll likely use C if you're interfacing with hardware. A lot of apps that need high concurrency use Erlang. If you can write a quick Python script that solves a problem before you can even get Eclipse to load, then why would you even bother trying to write the solution in Java?

Language errors aside, it's pretty obvious that at least in some cases, the choice of programming language does matter.