Smarty and future proof code
Going forward, much of the Civi UI will be written in Angular. However at least 95% of the application uses Smarty and it's still a perfectly acceptable way to mark up a form or page.

Depending on your use case you may be able to create an Angular page for what you want.

If you are writing an extension, you can try both. Use civix generate:page or civix generate:form to create traditional smarty-based pages &amp; forms. Or try the newer civix generate:angular-* commands for the alternatives.