If the cost associated with complaining is eliminated does that mean that negative reviews become worthless?
If the cost associated with complaining is eliminated does that mean that negative reviews become worthless?
I write here as sort of a pressure release valve. It seems that my little rant on Lasagna Code got some attention. I read through the comments. It seems most get what I’m on about. But I figure I might as well be a bit clearer, in case any of those posters revisit. Yes, I’m against object oriented programming. I’ve been against it for years. I find it an obtuse and bloated way to code. And beyond Smalltalk, I’ve really not found another decent object-oriented language within which to code. This obsession language designers have of wedging an object system into a language “just because” is rather stupid. After all, all objects are is formalized data structures. It’s really that simple. For those that are about to jump up and down and scream they aren’t, I won’t argue because it’s pointless. I’ve used OO since the early 80s, initially in Smalltalk. Later, much to my horror, C++, and then for a brief period with Java — but I refuse to ever touch Java again. Too horrible and, happily, I’m sufficiently old enough to not have to do what I don’t want to do. Python, as I said, is a very
Anyone who claims to be even remotely versed in computer science knows what “spaghetti code” is. That type of code still sadly exists. But today we also have, for lack of a better term — and sticking to the pasta metaphor — “lasagna code”. Lasagna Code is layer upon layer of abstractions, objects and other meaningless misdirections that result in bloated, hard to maintain code all in the name of “clarity”. It drives me nuts to see how badly some code today is. And then you come across how small Turbo Pascal v3 was, and after comprehending it was a full-blown Pascal compiler, one wonders why applications and compilers today are all so massive. Turbo Pascal v3 was less than 40k. That’s right, 40 thousand bytes. Try to get anything useful today in that small a footprint. Most people can’t even compile “Hello World” in less than a few megabytes courtesy of our object-oriented obsessed programming styles which seem to demand “lines of code” over clarity and “abstractions and objects” over simplicity and elegance. Back when I was starting out in computer science I thought by today we’d be writing a few lines of code to accomplish much. Instead, we
The creator of my favourite programming language passed away yesterday. Lisp is, in my view, the best language ever devised. Sadly, too few in the computer industry realize or comprehend this fact. Lisp, and its descendants such as Scheme, are beautifully consistent programming languages wherein the programs and the data are defined identically and as such can be manipulated similarly. This allows one to generate code easily that can then be executed. Most people stare at Lisp-like languages and can’t get past the parentheses. Ironically, most every language uses parentheses of one sort or another. If one does a quick comparison with C, for example, one will quickly realize that Lisp doesn’t have that many more parentheses than does C. And with C, you can’t work in a fully interactive environment wherein you develop your code and test it all in a fully integrated way. Instead, you’re still stuck with the stupid edit-compile-run-debug cycle that made sense when we used punch cards but doesn’t today. Even “modern” languages such as Java are really only prettied up C, though truth be told, I’d rather code in C because it’s powerful and puts the onus on the programmer to do things right
Dennis Ritchie passed away this evening at the age of 70. I doubt it’ll get the play in the papers that Steve Jobs death did even though Ritchie’s impact was greater in my opinion. For those unfamiliar a brief writeup on Unix and its founders. Rob Pike posted a note re: Ritchie’s passing. A true passing of an era. And man does it make me feel old. I still remember first using Unix back in 1979 and then used it pretty much constantly ever since. The most apropos send off comes from Muppet Labs, albeit no relation to the Muppets or their infamous lab.
Nicholas Carr talks about Ambient Overload. A fascinating take on “information overload”. Instead of it being a “failure of filters” it’s instead the success of filters that we’re seeing, allowing information of interest to flood our screens and inboxes. I’d not thought of it that way, but I think he’s right. We can find just about anything. And the Internet provides it to us immediately. When pulling “interesting bits of information” from an infinite supply should it be any surprise that we end up with a near infinite quantity of interesting tidbits? His closing paragraph sums it up nicely, so I include it here: “When the amount of information available to be filtered is effectively unlimited, as is the case on the Net, then every improvement in the quality of filters will make information overload worse.”
I’ve been cleaning out the house slowly. Sort of like an extended Spring Cleaning. And as part of this chore I’ve decided to clean up my office and my computers as well. I’ve been storing all kinds of shit thinking it might one day be useful, that I may make some sort of artwork from it, or otherwise have deluded myself into keeping all sorts of useless things: old motherboards old memory (1 meg simms, etc.) newspaper clippings that I at one time found interesting old Dilbert comics snipped from the paper old CDs for software that is ancient and probably wouldn’t run all kinds of dead old mice, keyboards, … But no more! I mean, really. I can’t find useful things in my house anymore. I find stuff and wonder why I kept it. I’ve lost — well, I think I’ve lost — pictures from my past. But I can still find the motherboard from my first Pentium. Why? Out it goes into the recycle bins. Enough already. Similarly on my computer. Junk everywhere. I seem to be a packrat where ever I go. So I’ve started to clean up my computers. Gigs gave already been toasted from my systems,
I’m coding seriously again for the first time in years. And I can’t believe how much I missed it. There’s a certain joy in writing a program seeing it work, and solving a problem. When it’s an entirely new programming language it’s even cooler. But as I start programming again I realized I truly miss something I thought I’d never miss: fan-fold listings. There’s just something much better re: a fan-fold listing than a listing on 8 1/2 x 11 inch paper. It just somehow feels like a proper program listing to me. I know some will say “Why print it out, screens are huge today”. Yeah. But you can’t lay down as much code across a screen as you can across a table and scratch it up with a pen. Paper just makes coding easier, in my opinion. It allows you to touch the code, in effect. Move it around freely across a table figuring out exactly what’s wrong or right about it It’s much like with whiteboards/blackboards. Some folks claim you can do everything with a computer, but there’s just something about standing at a blackboard or whiteboard with colleagues that cannot be equaled electronically. At least not
That’s what many people I know think of when they hear my favourite languages are all Lisp derivatives such as Scheme or Clojure. They usually follow that up with a statement indicating that there are just too many brackets in Lisp. For a while I’ve wondered about this and after a little bit of study I think most people are wrong. They’re fixated on the position of the brackets not on the number. Most languages use a lot of brackets, be they , ( … ), { … } or < … >. Anyone who codes up XML knows all too well how many of those < … > brackets they’ll be dealing with. So I looked around for some simple samples of accumulator code fragments and found this on Paul Graham’s site. Sure, Graham is a Lisp geek, but a quick look at the following C++ code quickly shows something: struct Acc { Acc(T n) : n(n) {} template <typename U> Acc(const Acc<U>& u) : n(u.n) {} template <typename U> T operator()(U i) { return n += 1; } T n; }; template <typename T> Acc<T> foo(T n) { return Acc<T>(n); } vs. Scheme which is as
If you are or want to be an entrepreneur, go read The 11 Harsh Realities of Being an Entrepreneur. Definitely worth your time!