Sure, as a hobby you can do it, but it is not the way professionals write efficient software.
I don't use garbage collection; I detest it in fact.
Well, you are allowed to have an opinion on that, but the facts are:
- CPU cores are not getting faster any more, at least not at a pace it was before 2005.
- Sequential memory access is getting faster, but random access is not.
- Memory is getting non uniform, and memory sharing is getting extremely expensive.
- High performance means scaling to hundreds of cores in the near future.
- To be able to scale well the only way is either hardware supported STM or avoiding shared mutable state.
- Hardware supported STM is still research and not going to happen in the next 5 years. So I guess avoiding shared mutable state is the only way to go.
- Avoiding shared mutable state = functional programming (assuming as done in Haskell, Scala or Erlang, not just stacked lambdas on top of imperative language).
- Functional programming without GC? You must be crazy.
Actually guys who thought you could go with locks and threads and "classical" imperative C++ style wrote MongoDB. It is lock on a lock on a lock. Guess what? It doesn't scale.