Friday, November 20, 2009

Should we rename Drools Solver to Drools Planner?

Drools Solver solves planning problems. The problem is that developers can't seem to find it when they are looking for a library to help with their problems, such as nurse rostering, bin packaging, course scheduling, ... Only when someone tells them what Drools Solver does, they react with "yes, that's what I am looking for".

According to wikipedia, a Solver is a software tool for 'solving' mathematical systems of equations.
  • Drools Solver is specifically designed for planning problems, so the term "solver" is too broad.

  • It's not equations based, but score rules based (which is more developer friendly).

  • It's confusing with the Excel solver or solver, which do solve equations.

So Solver is not the best name.

So I propose to rename it to "Drools Planner".
  • Pro:

    • "Planning problem" is the only common name I can think of for its use cases.

    • A good meme could be "Drools Planner optimizes your resources."

  • Against:

    • Maven dependencies change from drools-solver to drools-planner

    • Need to replace all imports (but that will be clearly documented in UpgradeFromPreviousVersionRecipe.txt).

Do you think it's a good idea to rename "Drools Solver" to "Drools Planner"?
Or maybe you can think of a better name?


  1. Optimizer sounds like it will improve our existing rules.. or something like that.

  2. And "Planner" doesn't sound like it's planning the existing rules? :)

    And you raise an interesting project idea: a static rule analyzer, based on drools (solver|planner|optimizer), that scores a ruleset and gives improvement ideas.

  3. "scores a ruleset and gives improvement ideas" -> That it's not the goal of drools-verifier?

  4. Optimizer +1 . Sounds more commercial friendly ;)

  5. Well, then, salaboy, great minds think alike, don't they? :P

  6. I am with salaboy on this one: "optimizer sounds like it improves existing rules".
    I've thinking about "Drools planning optimizer", but that's just too long.

    It looks like we all agree that "solver" isn't the best name. Anyone got another idea besides "planner" and "optimizer"?

  7. I like "planner" - I agree that "solver" isn't an optimal name. "optimiser" I don't like at all (because it implies what salaboy says, and also, who can agree to spell with a s or a z !).

    I really like "planner" though.

  8. it is really looking through a solution space and finding an optimal solution. All I can think of is Drools Solution Finder, but I know that is too long. Finder might actually work.

  9. What about "Drools Scheduler"?

  10. Sequencer ? Drools Sequencer ?

    I also like Optimizer and Scheduler and Planner and Solver a lot, but are too concrete in at least one sense - they imply more than the person who searches for might be looking for.

  11. On the mailing list Steve, Andrew and Nicolas voted +1 for "Planner". No one seems to veto "Planner" or come up with an undisputed better name, so I think we should go for it.

    "Drools Planner" it is.
    Thanks for the help, everyone.

  12. Splunger, I like it :)

    There is something to be said to a fun name or a made up name.

    or call it after it's creator:
    Drools Smet



  14. Another vote for Drools Planner, it more accurately aligns itself with more traditional planning from AI fields.