Wednesday, June 12, 2013

Programmers: How to tell the professionals from the amateurs

If something doesn't work or worse, crashes, it probably will never sell. Odd how that works. /sarc

One simple problem has a fix that usually works regarding dependencies.

On a working programmers computer, over time they fill it with a lot of files other things depend on and never give it much thought. But there is one thing they should always do before giving their product out to others: install and run it on a clean box. Leaving out that step is a sign of amateurism.

Fixing dependency problems is not a new issue. It's existed forever. Every time I run into it, it pisses me off. Especially when solutions are offered that are not solutions. How hard is this to get right? I'd be ashamed to release some of the things people seem to have no problem releasing.

Shame. What a long forgotten concept?

Update: related... I once worked with a team where a leader saw me coding something and said, "don't do that, I've already written that." It was a simple utility that I would have finished in about an hour, but nooooo.... instead...

He gave me his code which was not encapsulated. It had dependencies. Megabytes of dependencies. An entire other project of dependencies. He said, "no problem..." then sat watching over my shoulder as he 'helped me' remove these dependencies. For six hours... Never fixing it...

After thanking him for his 'help' I spent an hour the next day finishing what I had started.

I would often be asked for some routine I'd written that others wanted to include in their code. Not once did I hand them something that was not fully encapsulated. Not once. Not in decades.

Update: How to write bulletproof code. Don't assume, test. That includes error trapping in your code. If a folder/directory/file doesn't exist, this should not be something the user has to fix. It is the programmers responsibility. Responsibility and shame are two very useful things for programmers.

Gambas does not allow me to write standalone executables. That's a deal breaker. I've not been able to get any other alternatives I've tried to work (Lazarus, RealBasic, PureBasic, even Rebol... a true sign of desperation.)  C is just too verbose for writing windows type programs; I'd rather work in some assembly language which would eliminate many of the syntactical problems.

My project is a simple one, but I can't find working tools to produce it. It is extremely frustrating since it would provide me with a desperately needed income. I am considering writing my own compiler and RAD/IDE in assembler. I would still be dependent on GTK but I can live with that. This would take time but after completion would allow me to be infinitely more productive.

No comments: