Looking through all the comments, it seems to me that there is a huge differnce between contracting in the US and contracting in Europe, and that that difference is why more European developers favour contracting than US developers do.
Contracting in Europe (especially in the UK and Ireland) is largely controlled by recruiting agencies, who act as middle men between companies and contractors. A contractor looking for a new contract deals with these agencies, not with the end company [usually].
In the US, a contractor is expected to find and manage clients themselves.
Perm salaries are also significantly lower in Europe, making day rate contracting incredibly lucrative for a senior dev who can charge top tier rates.
My own experience after working as a contractor for 9 years:
1. Money in my pocket is typically 50% more than it would be compared to a reasonably payed perm position.
2. All the perks offered from a perm job I can avail of via my own Ltd company at reduced cost: health insurance, pension contributions, tax efficient travel schemes, etc.
3. Six month contracts are almost always rolling contracts, as in, they are renewed every six months until I decide to leave. I always decide to leave eventually, the contract never ends and forces me to leave. Any gaps between contracts are there because I choose to have them.
4. Projects are ALWAYS more interesting. Business as usual, bug fixing teams, seem to be made up of perm devs who have years of domain knowledge. The greenfield projects tend to go to contractors or teams that are comprised of a lot of contractors, probably because less domain knowledge is required for new projects.
5. Learning on the job is part of contracting. If you don't know X technology, you pick it up as you go along. With the odd very focused exception, I've found that there is no expectation that contractors be 10X or ninja developers.
6. Paperwork takes me about 10 hours per year -- that includes my company VAT returns, preparing docs to send my accountant once a year, and meeting that accountant once a year.
7. Expenses are a huge thing. New lap tops, phones, courses I want to do. All covered by my company as part of my job.
8. The biggest one as far as I'm concerned. Moving from contract to contract, seeing the different ways that teams build their products, picking up new technologies every year -- it all boosts your confidence as a developer. You've seen so many different ways of approaching problems and used so many variations of the tech that nothing phases you. Your confidence is huge.
9. No Leet code or drawn out interviews. I've never done a Leet or online test for a contract. I've rarely had more than a single interview to land a contract. I've never done a white board interview. The hiring process is just easy and simple, as it should be.
10. I write code all day. I specify in each contract that I'm not a team lead or a junior dev mentor. There's no expectation in the companies that I work with that I assume team leadership roles.
11. A day has 7.5 working hours. That's it. No expectation of overtime, or on-call. A day rate contractor works the 7.5 hour day and that's it.
The above 11 points are all based on contracting in Europe. I have no doubt that American contractors would disagree or question each point, but that disagreement is probably geographic and based on the different way things work in the US.