This is a wonderful essay about E.W. Dijkstra, a famous computer scientist: https://inference-review.com/article/the-man-who-carried-computer-science-on-his-shoulders
Personally, I read through many of his EWDs, the essays that Dijkstra wrote about computer science and the software development industry. The University of Austin, Texas, where Dijkstra was chair of the computer science department, has an archive of his EWD essays: https://www.cs.utexas.edu/users/EWD/Summaries/Summaries.html
If you want philosophy in your computer science, take a look at EWD-32: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD00xx/EWD32.html
the language: also the language should be a reliable one. In other words it should assist the programmer as much as possible in the most difficult aspect of his task, viz. to convince himself —and those others who are really interested— that the program he has written down defines indeed the process he wanted to define
...
As my very last remark I should like to stress that the tool as a whole should have still another quality. It is a much more subtle one; whether we appreciate it or not depends much more on our personal taste and education and I shall not even try to define it. The tool should be charming, it should be elegant, it should be worthy of our love. This is no joke, I am terribly serious about this. In this respect the programmer does not differ from any other craftsman: unless he loves his tools it is highly improbable that he will ever create something of superior quality.
And in 2000, in EWD-1304, he wrote this about whether computer science is "finished"
I would therefore like to posit that computing's central challenge, viz. "How not to make a mess of it", has not been met. On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed.
...
... You see, while we all know that unmastered complexity is at the root of the misery, we do not know what degree of simplicity can be obtained, nor to what extent the intrinsic complexity of the whole design has to show up in the interfaces. We simply do not know yet the limits of disentanglement. We do not know yet whether intrinsic intricacy can be distinguished from accidental intricacy.
There is a lot of food for thought in his essays and it is incredible to think how much further the software engineering and computer science fields and the software development industry as a whole has to go in terms of managing complexity. Every day we have new tools and they are all geared towards making it possible to accomplish difficult things and about managing complexity while developing programs.