Tagprogramming
Ancient Greek Philosophy and Modern Blockbuster Graphics
The amazing computer-generated effects you see in almost every blockbuster today are only possible thanks to ideas proposed over 2300 years ago.Why Is Object-Oriented Programming Popular?
This method makes programmers think more systematically about their codeProgramming practice has gone through several evolutions in its lifespan. The first phase might be considered the “exploratory” phase, where there were no rules but a lot of imagination. People wrote code that was simultaneously amazing and terrible—amazing at what people got their slow computers to do, but terrible in that no one but the author would ever be able to maintain the programs. The lessons learned from the exploratory phase led to what is known as “structured” programming. The goal of structured programming was to be able to write programs that someone else had a chance of reading and understanding. Structured programming favored having really well-documented inputs and outputs to every function, very clear entry and exit points to each function, and Read More ›
The Microservices Controversy from a Software Management Perspective
As projects get bigger, so do the reasons for having a microservice architectureA new report by Amazon has caused a bit of a stir on the Internet. In it, the Amazon Prime video team reported that changing their architecture from a microservice architecture to a monolithic architecture resulted in a 90% cost savings. While the report itself was very mild (its only claim was that this architecture helped in this specific situation), it has caused the people who disliked the microservice trend to make some noise of their own. Here, I wanted to take a moment to reflect on what I see as the benefits of the microservice approach from a software development management perspective. If you are not familiar with microservice architectures, you can find out more information in my book, Cloud Read More ›
Moving Pixels
Seductive Optics and Skeuomorphic Intelligence, Part II.The Myth of “No Code” Software (Part II)
Why (and where) no-code doesn't workIn my previous article, I noted that what programmers do is translate ambiguous specifications into very exact specifications, taking into account all of the specific subtleties that the implementation requires. However, I recognize that those not familiar with custom software may not recognize the problem. This article describes in additional detail the kinds of considerations that cause no-code solutions to be problematic. The essence of the problem is this: there are an infinite number of possible ways your business could possibly work, but only one way that it actually works. The work of the programmer is to make sure the software matches the specific way that your business works. Let’s take something simple like calculating shipping. It might be easy Read More ›
The Myth of “No Code” Software (Part I)
"No code" software has its place, but not as a replacement for programmersFor at least the past twenty-five years of software development, people have been claiming that, using this tool or that tool, we will be able to build software with “no code,” and that our tools will build code for us. The claims have varied with whatever the current technology is. In the 1990s, the idea was that we could have a system which allowed building software entirely with drag-and-drop interfaces. Tools such as Visual Basic, Delphi, PowerBuilder, and even Microsoft Access made people think that this was an achievable dream. It turned out not to be deliverable on its promises. We’ll get more into the “why” later on. Today we have a new set of tools and a new set Read More ›