You will certainly notice over all those projects the great efforts to make things beautiful, unit tested, as safe as I can (at least I tried). This is because I strongly think as computer scientist we need to keep in mind things need to stay beautiful even when we open the hood to keep pleasure to do things and inspire people looking for your work as it with time comes from your heart. In this case, it is also pleasure to share what you are doing in this case. We have thousands of years to do things, we should take time to look, think, rethink, do, think, do. No stress, no rush before we share publicly. Of course share with people you met around you, get their view to enrich yours.
I’m not a nice French or English writer, many spell mistakes in my documents, but I like nice ideas, and I strongly think writing my source codes is like writing poetry. We should do the best to make it beautiful, efficient, safe, maintainable. It will probably impact a little bit the world we don’t know how. At least for sure more than the day-to-day words we pronounce.
Think about the guy forgetting to put the buffer size argument to the strcat(), now replaced by strncat()…. I don’t blame him/them, this was when we started to make computer science. We didn’t know at that time. But how many security holes he/they opened and debugging nightmare he has implied in many projects ? What is the world cost, human brain time consumed by this simple line in the .h file ? And now it is an API we cannot change anymore because everything use it. Shouldn’t have they taken one more month to think about this before sharing to everyone ? Shouldn’t we be able to take a break, think on the issue and change before going forward. If I don’t know myself how to do it as a computer scientist for virtual things, how I can except Monsanto or others to do it ?
On the nicer side, what are the beautiful lessons we can take out from large scale algorithms like bittorent, what we develop in High Performance Computing with now millions of cores collaborating together. What it says on the way to change and make living our society with lots of peoples interacting and thinking together to rethink our society in a sustainable and pleasant way.
I learned during my PhD. that local optimization is now doomed in HPC. Only large scale and global one has a real value. In this field we know well we cannot pursue looking only on the execution time of one line even if, of course, it keeps some meaning. We know we need to think the thing globally to get the best. If I translate to my real life, I understand I cannot just optimize my salary, getting a new faster phone every year, eating a tomato in winter, googling something without thinking how it impacts the rest of the world.
I also learned that failing a single line can make everything crashed. What about species we destroyed on our interconnected ecosystem ? Forced to admit that on this point it looks that after 2 billion years of careful work, nature has made something fairly better than what we do in computers. I understand that execution time is not everything. Finally, I know that if millions processors wait from one what to do, it doesn’t work. So don’t wait about your president to tell how to change, start to do it on yourself and your friends to help him and we will se alltogether what to do.
Of course far from me the idea to force applying those ideas manually. Inspire peoples with the beauty of your work you are good in. Translate in their language what you are doing. Touch their heart. Let them think, translate inside themselves, in their own words and maybe, you don’t know, reuse and share in their own way in their life. Of course it takes time and is outside of our control.
Our natural world is collapsing due to things we don’t care about and fast worldwide industrialization of everything with local optimization before we really know and control the side effects. I’m not in politics nor a chemist to reduce environmental pollution, nor an economist to fully understand how crazy the finance is.
As a computer scientist, in my day to day work I can just try to save brain time to let room and energy for people to look more what is so beautiful and need to be protected in our world. I can also help to use this beautiful tool to observe and understand the global impact of our technology at the scale of our planet. If it is part of the issue, it is also a micro part for the solution and at least it is to me a support to question myself, open my mind and my students when I have one.
I made lots of home work to improve my own way to develop, not listed here. I’m making a long way background thinking on the way we approach source development mostly by doing many projects around build system home source distribution to look existing open source projects. You can look on my personal project timeline, some are on my GitHub.
Hope one day I will be able to academically speak in a structured way on this, side to the technical things I make and love.
