I've recently started to learn about Chern and Segre classes, and it seems to me that they are very similar, sharing the same important properties and having closely related definitions.


Fulton's book starts by defining Segre classes, and then defines Chern classes. 
My question is: what are the advantages of Chern classes over Segre classes (or vice-versa)?
Are they really very similar, or is there some conceptual difference?



Chern and Segre classes
Chern classes of a rank $r$ vector bundle vanish in degree greater that $r$ while Segre classes do not. On the other hand the definition of Segre classes easily generalizes to singular vector bundles such as cones (<http://math.stanford.edu/~vakil/245/245class14.pdf>). Normal cones are cental objects in deformation theory. For instance the generalization of the concept of normal cone to what is called intrinsic normal cone led to the definition of virtual fundamental class for Deligne-Mumford stacks (<http://link.springer.com/article/10.1007%2Fs002220050136>).


Even if one works with smooth varieties Segre classes are very useful in order to expresses intersection products. 


For instance if $Y\subset\mathbb{P}^n$ be a smooth variety, and $\epsilon:X = Bl\_Y\mathbb{P}^n\rightarrow\mathbb{P}^n$ is the blow-up of $\mathbb{P}^n$ along $Y$, $\widetilde{H}$ be the pull-back of the hyperplane section $H$ of $\mathbb{P}^n$, and $E$ is the exceptional divisor, $H\_Y =H\cdot Y$ we have
$$\widetilde{H}^{h-i}E^i = p^\*H\_Y^{n-i}\cdot i^\*E^{i-1} = H\_Y^{n-i}\cdot p\_\*i^\*E^{i-1}.$$ 
Now, $E = \mathbb{P}(N\_{Y/\mathbb{P}^n})$, and $i^\*E = -e$, where $e = c\_1(\mathcal{O}\_E(1))$. Let use denote by $s\_j$ the Segre classes of $N\_{Y/\mathbb{P}^n}$, and let $c = codim\_{\mathbb{P}^n}(Y)$. We have the following intersection numbers:


* $\widetilde{H}^n = 1$;
* $\widetilde{H}^{n-i}\cdot E^i = 0$ for $i < c$;
* $\widetilde{H}^{n-i}\cdot E^i = (-1)^{i-1}s\_{i-c}H\_Y^{n-i}$ for $i\geq c$.


