Quantum technology works with and relies on sub-atomic particles or physics that operates on the quantum level. Quantum computing has become a mature field, having diversified applications in supply chain and logistics, chemistry, economics and financial services, energy and agriculture, medicine and health, etc. In the recent years, companies have started to incorporate quantum software to benefit the research and the practitioner communities. Software engineering and programming practices need to be brought into the domain of quantum computing. Quantum algorithms provide the ability to analyze the data and offer simulations based on the data. A few of the quantum computing programming languages include QISKit, Q#, Cirq, and forest are used to write and run quantum programs. In this chapter, the authors provide an overall picture of the problems and challenges of developing quantum software and up-to-date software engineering processes, methods, techniques, practices, and principles for the development of quantum software to both researchers and practitioners.
It was the middle of the pandemic when I wrote a special quantum focus article for PhotonicsViews.At that point, my goal was to provide an overview of the technology, the public investment up to that date, how the start-ups landscape was booming all over the world, and the job market forecast.The terms 'education' and 'workforce' were just starting to be two important topics in most quantum conversations.Now, two years later, global investment has increased by almost 10 billion dollars, and start-ups continue to appear and grow worldwide.It is difficult not to find a discussion panel or hear the importance of 'quantum skills and the global quantum workforce' at any quantum event or interview.How to have a pipeline ready to join an emerging workforce goes back to how 'educated' that workforce is.If you are not aware that your skills could be applied in quantum technologies, or even about that emerging market, how can we expect the workforce to be ready?Every year, there are more undergraduate and postgraduate programs on quantum technology being launched all around the world, either from an optics and photonics perspective, or with a focus on quantum computing programming.Either way, the creation of those curricula should be done in parallel with analyzing industry needs.And there comes the next challenge: the specification of those needs.In our role as service providers, we have seen the whole spectrum of industry 'maturity' with respect to quantum technologies.There are the newcomers looking for insights into the field to understand how they could fit in the landscape.Then we have corporations who started to include quantum in their innovation roadmap -some are even working on specific use cases -and are now looking for partners and new opportunities.And finally we can see a few industry actors already having a quantum strategy and team in place.It is a marathon, not a sprint, as a new language takes time to learn.Understanding your role and position in the quantum journey is the first step in learning this new language.You are all invited to join!
Quantum programming is hard: Quantum programs are necessarily probabilistic and impossible to examine without disrupting the execution of a program. In response to this challenge, we and a number of other researchers have written tools to verify quantum programs against their intended semantics. This is not enough. Verifying an idealized semantics against a real world quantum program doesn't allow you to confidently predict the program’s output. In order to have verification that works, you need both an error semantics related to the hardware at hand (this is necessarily low level) and certified compilation to the that same hardware. Once we have these two things, we can talk about an approach to quantum programming where we start by writing and verifying programs at a high level, attempt to verify properties of the compiled code, and repeat as necessary.