Question

I am almost 100% locked in to Django for the projects I have been planning.

The final "myth" I'd like to "dispel" is that Django is "mediocre" at conveying business-logic.

Direct quote by Peter Shangov:

Whatever your choice of framework your real-life needs will very quickly outgrow the functionality available in the ecommerce modules that you started with, and you will end up needing to make non-trivial changes to them or even rewriting from scratch sooner rather than later. This is because open source has always been exceptional at building infrastructure tools (think web servers, templating languages, databases, cacheing, etc.), but relatively mediocre at implementing business logic. So what I'd be looking for if I were you is the library that I'd be happiest to hack on rather than the one that looks most mature.

"Products" which I am putting Django (with satchmo) up against:

  • Ruby on Rails (with spree) [Ruby]
  • Catalyst [Perl]
  • JadaSite [Java]
  • KonaKart [Java]
  • Shopizer [Java]

Could you please alleviate (or confirm) my concerns regarding the aforementioned quote about Django?

Was it helpful?

Solution

The short answer - of course its bad, because its not a business process management software; it is a framework for web development and getting things done.

The long answer - you need to clarify what you mean by business logic (and "conveying" it). Are you talking about process mapping, workflow management or the execution of the process itself?

I do not see how the other projects you listed "convey" business logic - because they are not business process diagramming or testing or validation packages. They are simply frameworks to do some work. Once the process has been defined and validated (using some external tools), you can then execute that process in your code.

In terms of online shopping - the business "process" as far as the store front is concerned is quite standard and you can easily map it to any of the packages you have listed. You did not mention what kind of store you'll be running or what your fulfillment or delivery processes are, so cannot give you a detailed response if satchmo has those components built-in or would you have to write them from scratch.

The only possible negative when it comes to django is that it doesn't have a mature workflow engine (the two main projects GoFlow and django-workflows are stalled), but this is hardly a criticism against django since it is not a generic web framework. It is designed for a specific application for which a complex multi state workflow engine is not a primary need.

Finally, as far as the quote is concerned - without knowing the context - I can only say that one of the most popular business process mapping software is actually the open source JBoss BPM engine.

OTHER TIPS

I don't doubt that closed-source/proprietary people are great at building infrastructure tools and frameworks too. What they don't do is release them, or let people play with them. They build on them themselves, making money by sticking "business logic" specific to the businesses who give them the money for it.

If you go for a proprietary solution there will doubtless also be some non-trivial changes required, and you'll pay through the nose to the one company that provided you with the (not quite) solution. "Oh, another $4000 to add an extra class of fields to the database? Hmmm. Oh I guess we've already paid you $100,000 and your software is closed source so we can't subcontract it to a tendering process... Here you go..."

Open Source is better at implementing business logic because, when it comes down to it, its people that implement business logic, not frameworks, and open source means more people can work with it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top