Python is not the be-all and end-all of writing smart algorithms
Machine learning is fast becoming one of the high-growth areas for developers – but what language should you employ, given that so many exist?
If you believe the statisticians, Python is the default choice for many.
50 per cent of data scientists and developers use Python, with 33 per cent prioritising it for development, according to a Developer Economics survey of 2,022 people from earlier this year.
Has it been left behind by the Python revolution?
Want to learn machine learning in 15 minutes? Start here...READ MORE
For Purves, ML developers have to consider the bigger picture. "You need to start to think how to make things happen – about the practical applications." This, he says, is where languages other than Python really do have a part to play.
Online supermarket Ocado has developed a very simple model to tag and prioritise emails that were coming into the office. It uses Python. The project is not business transformative but something simple and helpful, and Python is just one very small part of the project.
"In this case, someone on mobile is connected to a little server in the cloud and that little server has connected to a big server. What happens is that you can do some work on the device, and if a bit of data is interesting then you can send it to the next level. The problem is that on high-res images, face recognition is hard – you either reduce the size of the image or apply a simple algorithm – that's accurate 60 per cent of the time.
More than half of GitHub is duplicate code, researchers findREAD MORE
There's a bit of a self-fulfilling prophecy here. "Why is Python massive?" asks Purves. "It's because there's a massive Python library. It will be hard to dislodge the ecosystem."
The guidance from Developer Economics is that anyone looking to go down the ML route shouldn't be tied down by what's popular or not. "There is no such thing as a 'best language for machine learning' and it all depends on what you want to build, where you're coming from and why you got involved in machine learning," the report states.
There's no indication that Python will maintain its preeminence in perpetuity. Other languages are already beginning to emerge – Julia, Lua and Torch, for example – and Python could lose some of its influence.
According to Benoit, R will become more important in future. "There's a split between people coming to the subject from a maths and statistical background – they're happier in R, while computer scientists tend to opt for Python," he says.