Simplistic programming is underrated
lemire.me
Simplistic programming is underrated
1–10 of 93 posts
Re: Simplistic programming is underrated
#2Solid life advice.
Re: Simplistic programming is underrated
#3Oh man, this hits home.
I've attempted to be a voice of reason on this front so many times, I've practically given up on it. I've come to the conclusion that most programmers suffer from an intellectual Napoleon complex (which I've seen in academic Philosophy, as well). I've argued for the use of simple "for loops" in lieu of complex map-reduce logic, argued against overly-complex threading logic where threading wasn't necessary, argued against using Spark where the dataset was so tiny, it could be handled by my iPhone. All my suggestions often fall on deaf ears. The counter-argument tends to be some contrived edge-case which (by that point in the discussion), I'm simply too fatigued to argue against. I've lost this war of attrition many (many) times.
The irony is that most OSS code tends to be "so simple it's dumb" -- why? Because simple code is easy to contribute to! I think if more professional programmers actually looked at real code outside of their corporate Bitbucket, working as a programmer would be much more enjoyable.
Re: Simplistic programming is underrated
#4The author wants the word "simple" here, not "simplistic".
The reason I even bring it up is that simplistic means overly simple, and that's a real problem in software development in my experience.
Overly simple means you aren't actually dealing with significant issues the problem space. If anyone ends up using your simplistic software, they will have to solve the problems you ignore in a non-optimal way.
Simplistic -- overly simple -- is the flip-side to overly complex and can cause just as many problems since it pushed extra complications elsewhere.
What we'd like is software that is as simple as it can be, but no simpler.
Re: Simplistic programming is underrated
#5Sorry for my little pedantic observation: The author wants the word "simple" here, not "simplistic". The reason I even bring it up is that simplistic means overly simple, and that's a real problem in software development in my experience. Overly simple means you aren't actually dealing with significant issues the problem space. If anyone ends up using your simplistic software, they will have to solve the problems you…
Re: Simplistic programming is underrated
#6Say you are given a seriously challenging and apparently problem; that is to say the naive approaches are all hideous train wrecks. You work on it long and hard, until you have a key insight that allows you to implement the simplest most elegant solution.
Now a naive observer will look at it, say well that's obvious, and then ask why you wasted a week to write 40 lines of code.
Re: Simplistic programming is underrated
#7Let's talk Python. To me, using comprehensions is way simpler than loops. Using
for i, item in enumerate(my_list):
# do some stuff with i and item
is way simpler than for i in range(len(my_list)):
# do some stuff with i and my_list[i]
And still, I bet that most C/Java folks will look at these things with disdain.Also, higher-order functions. They do sound strange, at first. And yet they're a great tool to combine simple pieces of code. I'm starting to think that "elegance" is just the ability to build complex interactions of simple elements. Think chess, or languages like Lisp and Smalltalk, or Euler's identity.
Re: Simplistic programming is underrated
#8> I like the concept of “simplistic programming” by which I mean “programming that is so simple that people will criticize you for it”. At first, that sounds strange… can we really get criticized for being “too simple”? Of course, we do. Oh man, this hits home. I've attempted to be a voice of reason on this front so many times, I've practically given up on it. I've come to the conclusion that most programmers suffer…
Re: Simplistic programming is underrated
#9> I like the concept of “simplistic programming” by which I mean “programming that is so simple that people will criticize you for it”. At first, that sounds strange… can we really get criticized for being “too simple”? Of course, we do. Oh man, this hits home. I've attempted to be a voice of reason on this front so many times, I've practically given up on it. I've come to the conclusion that most programmers suffer…
Re: Simplistic programming is underrated
#10> I like the concept of “simplistic programming” by which I mean “programming that is so simple that people will criticize you for it”. At first, that sounds strange… can we really get criticized for being “too simple”? Of course, we do. Oh man, this hits home. I've attempted to be a voice of reason on this front so many times, I've practically given up on it. I've come to the conclusion that most programmers suffer…
Is map-reduce really less simple than a for-loop? I agree with your other examples, but I see these too things as totally equivalent (unless you're in a language that make a dog's dinner of this type of thing, like old C++).
var r = array.map(x => x*x).reduce((total, num) => total + num, 0);
vs its for-loop counterpart: var r = 0.0;
for (var j = 0; j
Maybe I'm just not as smart as everyone else, but I only have to keep like two things in my mind when looking at the for loop (easy), whereas in the map-reduce case, I need to have a very "holistic" view of what's going on (hard).[1] https://stackoverflow.com/questions/17546450/for-array-is-it...