Too many causes. Cancer is not one illness. Each different tissue in the body can get a change in its dna and the instructions on when to get ready, grow, divide, and rest. Cancer is when the dna part that tells the cells to "rest" is lost -- so the cell continuously grows and divides. Each different type of cancer can have different dna changes, time to growth, and treatments. Maybe someday we'll find help!
Good ? First, there are numerous factors which can lead to cancer with many yet unknown. It took decades before the connection was made between tobacco smoke and lung cancer. Human beings are also quite different in genetically (even between identical genes) which makes study difficult. Our immune system plays a vital role in killing off cancer cells. A total cure for cancer is far from certain.