Think about this. In the near future, let's say 10-15 years, technology will improve drastically, and artificial intelligence (AI) will probably be a very important thing in daily life and work. What would be its effect on Competitive Programming? This topic is not new, Every 1-2 years there's someone talking about it on numerous platforms. And probably all received the same answer: It's dubious, only time will tell us, which is true. But in some way, we can just imagine and make probable guesses about what may happen to CP in the future. This blog will mostly summarize my guesses and questions about the near future of CP, and we can discuss it somewhat to hope for an even better community in the future.
I. Competitive Programming Problems
One thing we can agree with is in the near future, with a huge potential in the CP community and the existence of AI, the quality of the problems may be better. The knowledge standard will increase over time, to match the improvement of the world. Another prediction in the near future is a huge improvement in computer speed and coding languages as well, so we have more time and resources to explore new exciting algorithms of programming. But there are some unanswered questions.
Take an example. Let's assume that in the future the computer speed increases dramatically, and the judging system in problems improves as well. Let's say, around $$$10^{12}$$$ calculations per second. Then what will happen to old problems? There are thousands of problems that could be solved in $$$O(n)$$$ and $$$O(n$$$ $$$log$$$ $$$n)$$$ in Codeforces alone, and if the judging system improves, problems could be solved in $$$O(n^2)$$$, that might be a bad choice. Numerous problems will be outdated and won't be as beautiful as they should be, and well, the problem ratings will mess up. There are a lot of examples of this already (a lot of very old problems which have a high rating could be solved by a way lower coder with ease), and there will be a lot more. There are solutions to this, but I will leave it here for now.
II. Competitive Programming and Real-Life Programming
Another thing is, that a lot of CP bits of knowledge are not really useful in general programming. We have to admit that Competitive Programming (CP) and Real-Life Programming (RP) are basically 2 different things, as RP requires a lot of design skills, knowledge of many coding languages, and a lot more, while CP is mostly math and DSA (Data Structures and Algorithms) required. We don't need CP to do RP, and RP is a lot more useful in life, so CP is not as important and popular in general.
According to this, there probably are 2 main ways that CP can go in the future:
1. CP may be more and more related to RP. This means, that in the future alongside the DSA and math problems, there might be some RP problems (such as designing simple bots that do random things). It's quite unlikely, but if it happens, CP would be a great thing to explore RP and will be a great resource to build a career in the future. There surely are drawbacks, such as designing things will probably reduce the uniqueness and excitement that CP brings over the years, which means this will be a hard thing to get with. But with a lot of problems having a little bit of something called "design", I think it's possible.
2. CP separates from RP, which is a lot more likely to happen. As I said before, CP is not really needed to go to RP so it doesn't get as much recognition as it deserves. Watching CP competitions is as many people say, boring, as competitors just sit in front of a computer and do a lot of coding stuff that normal people can't understand. Therefore, to get CP to the people, we have to make it unique in its own way, while making it more exciting and can attract the audiences. If we don't, CP may never enough to be a big thing in the future, and just become a small community that wants to relax after work or people who want to get hired. Which is still a thing to be happy with, but to become a dominant thing in the future, a change is needed.
III. Can Competitive Programming be an eSport?
One change that is very considerable to think about is to change it into an actual eSport, which has actual battles, competitions, and huge prizes. Right now there is a lot, but it's more like a study competition, not a sports one, which can reach the audiences. To make it familiar to normal people, we need to change it into a way more exciting format which can make you addicted to it. This has been discussed before, and a lot of people have said it's not possible due to the uniqueness of Competitive Programming, budgets, and much more.
But there might be a way. An unrelated example is, that health bars are pretty easy to think about and code, but combine with some unique ideas and materials, we will have different games that are very popular right now. CP if combined with some simple stuff in some way that is familiar enough, we may hit a jackpot. Of course, talking is harder than doing, but if there are enough support and people/companies who are interested in this idea (CodinGame for example), it's not impossible at all.
IV. Competitive Programming and AI
There are blogs about AlphaCode long before and the fact that it actually can solve problems man-made is really stunning. Of course, the hope of AlphaCode participating in the next contest is gone, reduced to atoms but in about a few months, it may become a reality. In the near future though, AI will become a big thing in CP. It will help us a lot in thinking about new problem ideas, hosting contests, or even solving problems that we have never solved before, finding new algorithms that we never found before. Another idea is to make an AI similar to Stockfish in chess, which can analyze our performances and chance to win a contest somehow, which will be a fun idea speaking of competitions. A really hopeful future.
Final thoughts
Competitive Programming has a really bright future ahead of it. There will be obstacles or challenges we will need to go through, but I know our community is very strong, therefore everything is await us.
Those are my overview predictions about what may happen to the future of Competitive Programming, and it is one of the most interesting categories I have ever thought of. What about yours? What do you think can happen in the future? If I missed something or you have your own ideas, feel free to write a comment below.
I may have some mistakes in English, if it happens, I'm sorry.
Much thanks to phattd for valuable feedback and encouragement to post this blog.
Stay well :)