This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
Programming is Terrible
31–40 of 73 posts
Re: Programming is Terrible
#32This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
Looking at current jobs listings it's difficult to find things that I am particularly well suited for, even in web programming.
Since I was using PHP well before the current crop of mature frameworks and CMS the majority of my experience is in trial and error development of my own database access patterns , anti XSS , anti SQL injection and all of that other stuff that you used to do yourself in the early 2000s. As a result I have handwritten countless numbers of CMS systems and frameworks and am comfortable taking a bunch of hardware , building a Linux server out of it and mounting it in a rack.
But nowadays the conversation is not so much about that stuff, it's "what do you know about EC2?" , "What do you know about codeigniter?" , "What do you know about Wordpress?". So, my knowledge has been abstracted (generally by people who would do a better job it than I did).
It's quite a hard thing to explain to your family when they say "But you've been doing programming for years! You must know everything about it now!"
Re: Programming is Terrible
#33This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
Our best work is that which can stand alone, without us, across time.
Re: Programming is Terrible
#34This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
Every time I think along these lines something comes along that pushes us closer to the metal again.
10 years ago I thought that the usefulness of my knowledge of assembly language had reached its end. After all, what use was it when I was writing enterprise applications in Java! And then our server apps started crashing (the whole JVM would core dump). So there I was, looking at a memory dump, x86 opcode table in hand as I tracked down what turned out to be a null pointer access in a native library from one of our vendors.
And then came my stint writing software for wireless credit card/debit card systems. On a Z80. In 2001.
Then came GBA development, counting every megabyte, worrying about image sizes and trying to make things look decent in a reduced palette and the eternally-too-small RAM.
And now, here I am in 2013, counting the megabytes once again, fighting against eternally-too-small RAM (especially on iPad 1), trying to keep my iOS apps small enough, using the same old smoke & mirrors and dirty tricks to give the illusion that the app is doing what it actually isn't. I'm intercepting mach kernel messages. I'm poking around memory structures. And, of course, I once again find myself disassembling code from memory dumps, opcode table in hand. In 2013.
I'm tempted to say that this will be the last wave of constrained systems, but I'd probably be wrong.
Re: Programming is Terrible
#35hey cool I thought of tef when I saw the title of the post and it was tef!
Re: Programming is Terrible
#36The way to write software efficiently is to have a small team of skilled, experienced and motivated people deliver it incrementally.
The space shuttle team developed a process to deliver software that was not bug-ridden. This was costly.
And there are collections of patterns to improve robustness of systems that are discussed in books about Erlang.
Re: Programming is Terrible
#37This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
That last point rings quite true with my experiences. I've been writing PHP and some other languages off and on for about 10 years now. Looking at current jobs listings it's difficult to find things that I am particularly well suited for, even in web programming. Since I was using PHP well before the current crop of mature frameworks and CMS the majority of my experience is in trial and error development of my own da…
https://news.ycombinator.com/item?id=4557816
It's a new era of autodidacticism.
Re: Programming is Terrible
#38For anyone who's curious, academic research into verification extends far beyond "Well typed software". For example:
Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs [PDF, very approachable] http://www.stanford.edu/~engler/klee-osdi-2008.pdf
That paper is a nice example of how constraint based model checking can provide code coverage well beyond what a human developer can accomplish.
Re: Programming is Terrible
#39Earlier quoted context omitted.
Agreed. Whatever you think of RMS, some respect is due anyone who can honestly say "I implemented Common Lisp once".
RMS implemented Common Lisp?
Re: Programming is Terrible
#40This guy gets it wrong in his last post on reliability (but the other posts seem reasonable). Reliability is hard because we continue to move the goalpost. I can write a pretty reliable program to compute sin/cos tables or to sort a phonebook or to do some basic projectile trajectory. But those aren't even table stakes anymore. Today a first year undergrad student might be expected to write a program that in 1970 the…
"The fact that newer programmers don't understand the foundation they build on is irrelevant, since few need to look behind the current." Every time I think along these lines something comes along that pushes us closer to the metal again. 10 years ago I thought that the usefulness of my knowledge of assembly language had reached its end. After all, what use was it when I was writing enterprise applications in Java! A…
By fractal I mean that you can have good abstractions, but you can't afford black boxes, and design has to happen at a whole-system level or you're leaving something on the table. It's surprising how often decisions at very low levels affect the high level user experience.
Any time cost, reliability or security are on the line, there will be very few pieces of your product that are mysterious to you.