Not according to Mojang:
CPU: Intel Core i5-4690 3.5GHz / AMD A10-7800 APU 3.5 GHz or equivalent
GPU: GeForce 700 Series or AMD Radeon Rx 200 Series (excluding integrated chipsets) with OpenGL 4.5
HDD: 4GB (SSD is recommended)
OS (recommended 64-bit):
- Windows: Windows 10
- macOS: macOS 10.12 Sierra
- Linux: Any modern distributions from 2014 onwards
This was recently updated so it may apply more to 1.13 (similarly, the last increase occurred before 1.8 was released - which was followed by lots of complaints of lag) - I imagine that the majority of players (including myself) do not have 3.5 GHz CPUs (the CPU is the most important factor in performance; of course, GHz does not mean everything but modern CPUs have mainly improved by adding more cores, which Minecraft still does not use effectively) - after only a year my computer is already becoming obsolete for playing Minecraft (it would be an understatement to say that my old one did not do so well on 1.8+, mainly because it had hardware from 2006, even 1.7 had some weird issue and this is one reason why I still play in 1.6.4 (due to the long time I was stuck with it, plus newer versions do not really appeal to me), which ran without any issues (aside from one caused by badly optimized pathfinding code, but that was easily fixable with a mod). Also, while Mojang says that only OpenGL 1.3 is needed (my old computer was 2.1) the game does use features from newer versions if they are available; for example, near the bottom of this crash report it says "Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.".
Much of this is due to terrible coding; many blame Notch but newer developers are just as, if not even more, to blame; for example:
Note that while everybody also blames Java for being a terrible programming language that is actually not true:
People say this a lot, but it's not really accurate in any significant sense. See here for an in-depth look but the tl;dr: 20 years ago java was slower, today they're effectively equal.
The C++ version is faster because it was written from the ground up with speed in mind by a team of professional programmers answerable to Microsoft, while the java version was cobbled together by one guy in a garage (figuratively), and maintained by a very small team much more interested in feature creep than performance passes.
Actually, you can blame Bedrock for some of the issues with Java - they apparently implemented BlockPos in BE first then transferred it over to JE without realizing the consequences since Java does not optimize it away like C++ does (this does not make Java worse, you just need to optimize it away beforehand by not using it in the first place, I've never understood why they think that "pos.x, pos.y, pos.z" is better than simply "x, y, z" anyway, which is what C++ optimizes it to. Worse, if you want to change the values in a BlockPos you need to create an entirely new object, not just add/multiply/etc):
We fortunately don't use Java and so we can create as many BlockPos we want. Last time I checked we create around 400k every time a chunk is tessellated, but they're inlined and ultimately deconstructed into 3 ints and it doesn't even make a dent in the profiling