Use Both C++ and Blueprints
Both Blueprints and C++ have their advantages!
I really think its a misconception to think that either C++ or Blueprints can exist independent of each other in full commercial game!
Blueprints and C++ are designed to work together
C++ is better for math and intensive calculations that you want to run at highest possible speed, the kind of speed people used to have to pay $1000’s of dollars for prior to UE4 (we are all quite beyond-lucky that Epic is giving us C++ for for free!).
C++ is the only way to add new code to the Engine and do things UE4 has never done before, bringing in third party code libraries to add whole new features to the render code path of the engine or any other low-level aspect of the Unreal Engine.
Blueprints is the ideal way to handle asset references, and spawn particles and play sounds, and any thing that you’d want to tweak over time and iterate over quickly. So all core C++ variables should be exposed to Blueprints for fast-editing / iteration. Blueprints is also involved any time you want to use UMG for your game UI! Yay for UMG!
Blueprints is also required to involve the maximum number of people in your project so everyone can participate in building the game simultaneously. Blueprints offers unparalleled gameplay iterative testing speed via PIE and all the C++ variables that you exposed to be tweaked in the Editor!
Asset referencing simply must be handled in Blueprints because hard coding asset paths in C++ can break during packaging and simply break the game. You can't even rename a single asset if you are referencing it via a hardcoded path in c++, let alone move folders around and expect the game to sitll work!
This means every C++ base class should a have a Blueprinted version that fills in all of the asset references created as UPROPERTY in the C++.
Gameplay Coding Summary:
C++ ~ Core engine that performs calculations at highest speed and then tells Blueprints when to spawn particles/effects/sounds that can then be easily tweaked in the Editor.
Blueprints ~ Asset referencing and fast iteration of test code and all C++ variable tweaking to fine tune the core C++ engine.
This way you get the best of both worlds, and can really enjoy using both C++ and Blueprints!