View Single Post
Old 12-07-2012, 10:28 AM
Ensign Steve's Avatar
Ensign Steve Ensign Steve is offline
More of a "before rehab" friend
Join Date: Jul 2004
Location: Silicon Valley
Gender: Bender
Default Re: Ensign Steve waxes philosophical on the Singularity, a thrad by Ensign Steve

Post the third wherein I get as technical as I'm going to get (I hope)

I write code at a relatively low level, close to the hardware where I can really get my hands dirty. I feel like I have more fine-grained control of what the machine is doing, physically, not just in the abstract. I'm aware that that feeling is completely illusory, but I have fun with it, and it works for me and my way of thinking.

Compiling, running, and debugging code at that level does not always give me the luxury of error messages, and even when it does, they are what one might charitably describe as "cryptic". When I google those cryptic messages, more often than not the result is a question posted to stack overflow, and the top reply is someone spotlighting some syntax error in the code. The asker replies, "Thanks! That fixed it!" and that's it. Nobody is any wiser about what was going wrong or what the message actually means. They don't care why the fix works, they just care that it works.

I found this attitude frustrating (classic transference: It's debugging low-level code that's frustrating, challenging and rewarding though it may be) and it made me feel pretty snobbish. Why would someone want to program if they don't even care how computers work? I bought into this stereotype of programmers as hackers, tinkerers, puzzlers, and there was no room in my elite little club for higher-level creative types. Designers and abstract thinkers who just want the hardware to get out of their way so they can create. Or, god forbid, maybe some people are just trying to learn a very marketable skill and make a decent living.

-- begin tangent --

And it's not like I even know how computers work. Nobody does. It's like pea commented on the Pinterest (HA! you weren't sure if I was going to call you out or not, were you?):

It's gotten to the point in a lot of things where we don't know how our computers work, though, too. With relatively simple heuristics, you can usually figure it out at least, but when you get into AIs like algorithmic stock trading or even natural language processing and capacity provisioning and other 'squishier' (less actually squishy than they are too complex to be articulated) artificial intelligence applications, we actually don't know how computers are making decisions.
True all that. I attended a meeting the other day where one guy presented this thing about cyberinfrastructure, and he was talking about how the entire thing is a giant pile of hacked together spaghetti code left behind by generations of graduate students building it one piece at a time. It was exactly the same way in the Air Force. In my experience, yeah, that's pretty much how all of it works. Every programmer fantasizes about going back to the beginning and doing it right this time, but that never happens. The temporary solution becomes the solution. I'm talking all up and down the stack, too, from hardware and architecture to operating systems to applications and the communication between them.

Also, it's everybody's job to make their part of the stack transparent to the stack above it. My friend tweeted this thing one time, and I can't find it right now, but it was something like "abstraction is not about being imprecise. it's about being totally precise at every level" ... or something like that. Application developers have the illusion of an infinite, contiguous memory space because someone else implemented virtual memory for them. There's nobody who knows how the whole damn thing works from the bottom to the top.

There's big-time natural selection, too, only totally accelerated, because instead of waiting for random lucky mutations, we get to guide the evolution ourselves. If it works, we keep and build on. If we figure out how to make it better and faster, that becomes the new way. If something is a piece of crap that nobody wants, it will die out. Different architectures become different fitness landscapes. The workings of a mobile phone are totally different that those of a server farm, but they share common distant ancestors. Their genes are in their algorithms.

-- end tangent --

Backing up a little bit to the nineties, we had this world-wide computer network, and humans communicating over that network. It was mostly military at first, I think. Then universities and possibly other government? I'm not even sure. Maybe some hacker nerds trolling usenet. Definitely no women.

That's when I was just getting started in college, and I had my first computer. They gave me a unix login with an email account and a web space. I got it for being in engineering, they weren't even giving them to the English and history majors yet. I didn't know what any of this shit was, but then I got on there and realized there were other people on there and I could talk to them. I figured out how to write shell scripts and download dirty pictures and make web pages, whatever the point of those things were. Here it is 18 years later, and my second-favorite hobby is still typing random shit at strangers until the wee hours of the morning.

So we have this network, which is a great forum for programmers to collaborate and crowdsource their debugging, like on stack overflow. When individuals no longer had to purchase books or take classes or spend hours debugging cryptic error message, it really lowered the barrier to entry. Anyone could fire up a browser, look at tutorials, and experiment with tons of different languages and applications. Best of all, we had 24/7 access to live help in real time, for free. Programming became more collaborative, as well as more accessible to people who tack more to the arty/social side of intelligence than the analytical/mathy types that I associated with programming. Applications were beautiful as well as functional, and had more of a human touch.

Eh, this isn't really a good stopping point, but I'm getting tired and squirrely. I'm pretty sure I'm done with the technical part, at least. If I'm not here when you wake up, talk amongst yourselves and maybe I'll remember tomorrow where the hell I was going with that.

Reply With Quote
Thanks, from:
chunksmediocrites (12-08-2012), Clutch Munny (12-13-2012), Crumb (12-07-2012), Kael (12-07-2012), LadyShea (12-07-2012), lisarea (12-07-2012), livius drusus (12-07-2012), ShottleBop (01-05-2013), slimshady2357 (12-07-2012), SR71 (12-08-2012), The Man (01-04-2014), viscousmemories (12-17-2012)
Page generated in 0.28649 seconds with 11 queries