Thursday, July 10, 2014

Stuck In The Basement With Serial

Cloud computing seems to be the in thing right now. It's cool, it's always available, it's designed for web and mobile. In short, it's awesome! I'd love to get in on that action. I'm always trying to come up with some idea that could become something, I'm sure all developers do, we're all looking for the next big thing.

Someday I'd like to work for a software company that creates this kind of software. I'm not sure if this is a pipe dream, there's a lot of people out there with real CS degrees coming out of college every year. To try and accomplish this goal, I've tried to make sure I'm covering as much ground by myself as possible. I've worked on Java, VB, C#, Objective C and WPF. I've just started working through the Stanford Programming Abstractions course. Looks good so far, with the only caveat being a Visual Studio 2005 requirement (thank you MSDN partners network).

Here's the thing, even with all this self learning going on, you know somebody's going to ask what I did at work. Well, here it is. I work on VB.NET exclusively, with all GUI's (except one) done in WinForms(?!!?). Yes, that's right, we're here in 2014, and most of my work is being done in WinForms.

This brings me nicely to the topic of this post. Nearly all the software I write is to communicate with hardware. Here's some things that suck about that -

1 - Nearly all this hardware uses serial communication. Christ, once I actually had to write a CANBUS interface. There are the occasional TCP connections, but generally we don't even use that because they're "unreliable".

2 - The people selling this hardware are not making money because of their software skills. Generally they create a nice piece of hardware, and then ten minutes before it ships they create a crappy serial interface. Usually they focus all their effort onto their internal software, not on making my life easier.

3 - The serial interface now exists. You might hope there would be some kind of structure to the commands. Say turning on the light might be called TurnOnLight. Nope it's called FHO:4C. When you send it, you might also be hoping for some kind of reliable response. Again, wrong. One response might get you a 1, the next gives you nothing. Now try and write some structure into that nightmare.

4 - Nobody is ever going to be impressed that you could write 3 serial interfaces.

5 - You'd be surprised how many different hardware options there are, and how many of those serial commands you just figured out for this one product actually don't exist on this other product. Oh great, software switches to turn on sections!

5 - Did I mention that it's all in serial.

Anyway, that's how I feel about serial. Someday, I'd love to get away from hardware. That's why I spend so much time working on my own stuff. I know most of my ideas probably already exist, but doesn't it help me to show I'm trying?

No comments:

Post a Comment