I have lots of experience using Java, C and FORTRAN for scientific programming. In Java I make heavy use of abstract classes, interfaces and generics to make my code as re-usable as possible. This has really cut down my development overhead without having too much impact on runtime. I have yet to experiment with hardware acceleration such as that offered by Cuda, which other use to good advantage, in my scientific programming (quantum dynamics of open/stochastic systems). Working mainly on Mac's the emergence of Swift and Metal provide new opportunities for scientific programming in a modern environment with fast execution.
I have started to play with Swift and it seems promising - with the playground looking like a potentially good teaching too for my students.
Especially from those who have experience using hardware acceleration and have benchmarked some relevant simple Swift+Metal code (e.g. matrix multiplication). I would be grateful for information of your experience or opinions on the future potential of Swift+Metal for high performance scientific simulation.