I am developing one custom module in Magento 2.2.2 where I have referenced some internet blog and Magento core extension like cms-page or cms-block. In their grid_listing.xml files wrote code something like below
<columns name="cms_page_columns">
<column name="title">
<settings>
<filter>text</filter>
<editor>
<validation>
<rule name="required-entry" xsi:type="boolean">true</rule>
</validation>
<editorType>text</editorType>
</editor>
<label translate="true">Title</label>
</settings>
</column>
</columns>
And some blog referenced in grid_listing.xml are like below
<columns name="cms_page_columns">
<column name="city">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">City</item>
<item name="sortOrder" xsi:type="number">30</item>
</item>
</argument>
</column>
</columns>
So I want to know the difference between <settings> & <argument> node.
And which method I have to follow for future development.