One of my favorite things we've done yet isn't a flashy new component or something is moving to object forms of certain configs like plugins like:
Code:
plugins: {
gridcellediting: {
triggerEvent: 'tap'
}
}
We've been trying to move internal code to use this as it's great for merging the objects for when you extend a class and you want to configure some configs within that object. Prior, if it was an array of objects, you'd have to duplicate the object in it but now it's as simple to add/change configs within it. Of course the "old way" is still valid:
Code:
plugins: [{
type: 'gridcellediting',
triggerEvent: 'tap'
}]
but that's not easily changed when you extend, the old way is an override instead of a merge. I know, this change isn't a reason to use modern over classic, it's actually just something I really love and we are looking at other opportunities to do the same thing.
Another change I love is what we're calling "standard buttons" which is on Ext.Panel. Just like the object form of plugins, you can define buttons on a panel to an object where the key is a name of a standard button and the value is the callback (can accept a string to resolve on a VC):
Code:
Ext.Viewport.add({
xtype : 'panel',
title : 'Standard Button Example',
buttons : {
ok : function () {},
cancel : function () {}
}
});
And the buttons are "weighted" meaning on a Mac the buttons will be ordered as Cancel Ok but on anything else like windows it would be Ok Cancel, this mimics native platform button orderings. For more on this, visit the standardButtons docs.
Ok, nothing to make you move over to modern yet.
How about classic's action column? It's been an important component in classic for years but Sencha Touch and therefore modern toolkit hasn't had anything similar. This was a surprise by Don as instead of just keeping the same functionality, he decided to make it so much better.
Each cell can have tools and are bindable also: http://examples.sencha.com/extjs/6.5...ern#grid-tools
Not only can each cell have tools, group headers can aswell: http://examples.sencha.com/extjs/6.5...idheader-tools
So cell and header tools are a better concept that just a single action column but are not api compliant with classic. We aren't going out of our way to separate the api but since there hasn't ever been an easy transition between the toolkits we are taking the opportunity to improve the api since a lot of it we aren't actually breaking anything, modern toolkit got a lot of new features.
Ok, cell tools are neat but still not making you move over?
Excel is a great program that's been around for centuries. One feature of Excel that many use is the ability to drag the selector to copy values to the newly selected cells. Modern has that: http://examples.sencha.com/extjs/6.5...selection-grid Select a cell and drag the selector in the bottom-right of that cell down as many rows as you want and notice the value copied to those cells. This example by default only allows for y axis dragging but you can enable x axis or both to be draggable.
Layouts have always been CSS based in modern which javascript around just to manage the CSS styles since Ext JS is very javascript config based. This is nothing new but is worth mentioning since classic is largely javascript based meaning there is lots of calculations done by classic on each layout reflow that in modern the browser can do much faster.
The drag and drop functionality in classic has been largely unchanged for many years, it works and it works great. Modern got a big drag/drop upgrade including HTML5 file drop from your computer to browser: http://examples.sencha.com/extjs/6.5...dern#drag-drop The implementation in modern's drag/drop is a much simpler design and to be fair is actually in the core package which is shared between the toolkits but classic has some plugins that use classic's drag/drop functionality not the new one so I still mentioned it here.
There are more, I haven't taken the time to compile an exhaustive list as we are working hard to get 6.5.1 out very soon with 6.6.0 starting very soon also. 
Two big reasons to stick with classic would be accessibility and locale. Modern doesn't have 100 parity with classic so depending on what your app needs, there may be other reasons that you simply couldn't make the move to modern.