From acme's journal: I've been having a bit of a crisis of faith in the software industry (all too complicated, too many wheels reinvented, not enough actual Getting Stuff Done).
I think I mentioned this before but I, too, am getting fed up. And you know what? I lay the blame squarely at the feet of Java and C#.
<rant>
They are languages that promote a "more is more" philosophy. They are languages that promote ivory tower construction. They are languages that rely heavily on 3rd party tools to be usable. They are languages that do not promote simplicity. They are excessively verbose languages. They are championed by mediocre programmers who, in turn, come up with mediocre frameworks who tout them as state of the art. They are languages that have their mediocre programmers convinced that type systems make their code more robust (it doesn't). They are languages controlled by companies that do not have your interests at heart. In short, they are languages that suck the joy out of programming.
Each language generally forms a community of sorts. A certain personality then tends to develop from that community based on the type of developers that it attracts. The Java and C# community, quite frankly, suck because their programmers tend to be mediocre. The sorts of programmers who just want to collect a paycheck and go home. Paul Graham hit on this, then backed down. I won't. Look at EJB. It's convoluted SHIT. How about Struts? More SHIT. Like Forrest Gump's mom used to say, stupid is as stupid does.
Oh, to be sure, the makers of these languages do their best to make them more dynamic with things like "Generics" or "Collections". The mediocre followers of these languages proceed to get very excited about said features because they have never used a dynamic language in their life and don't realize just how unimpressed the rest of us are. But they will never, ever, be dynamic languages.
This all brings me to why the software industry is getting worse. It's because the makers of these languages, especially Microsoft, are not interested in making programming easier. If anything they want to make it more difficult. Just look at the WS protocol MS is touting now. More convoluted SHIT. It's not about simplicity, it's about CONTROL. It's about tying you to their language, their tools and their platform.
I can argue with Java and C# programmers all day. I and others may even convert a few to Perl or Ruby or Python. But, it's a losing battle. Sun and MS are winning the battle where it counts - with upper management.
And so, I have to decide what I want to do with my life if I get out of development. Should I stay in computers and switch to something like system administration where I don't have to deal with this crap any more? Or should I say goodbye to programming forever and do something else? Carpentry? Real Estate? I don't know. All I know is that I'm tired of the way things are and where they're headed.
</rant>
<sarcasm>
if(path.matches("^C:\\\\WINNT\\\\System32\\\\")) ...
</sarcasm>
Unfortunately, it's a trickle-down problem. We run Java app servers in my shop (I'm the sysadmin), and I'm amazed at how much hardware it takes to run a Java app server. And what I've discovered is what you were talking about -- it's not just the language -- it's the programmers! Sure, Java can be a slow beast, but good programming practices can alleviate much of that problem. What's depressing is that many of these people aren't familiar with "good programming practices", or even basic algorithms. And you have to sit there and take all the "is the server okay?" questions, cuz they just can't fathom that their own code is the cause of the problem.Should I stay in computers and switch to something like system administration where I don't have to deal with this crap any more?
Re:You can run, but you can't hide
djberg96 on 2004-10-19T16:13:09
That's true, but at least I can take snapshots of the proc table and show them what a horrible beast their code is.And, if they get really nasty with me, I can run
/usr/ucb/ps -auxww on the Solaris boxes, grep the password they think is hidden past 80 characters, and complain straight to the security folks that their application has a plaintext password in the process string. I see it here all the time.
:) Re:You can run, but you can't hide
jhorwitz on 2004-10-19T16:26:44
Well, regardless, the very poetic "They are languages" paragraph of your rant is now hanging on my wall.:)
Someone--I think it might have been Paul Graham, but it might have been Philip Greenspun--made the distinction between languages that are built by people who want to get their own work done (e.g., Perl, Python), and languages that are built to help those other people get their work done (e.g., Java). Those other people are rarely to be trusted, so they need strict typing and other handholding. It's all downhill from there.
Re:Blame
lachoy on 2004-10-19T22:47:54
pudge++
I guess the trick is to find a corporation who will pay you to do stuff you want to do while making them think you're doing what they want you to do. Even better is when they're the same.
Re:This is where small companies rule...
vsergu on 2004-10-20T17:56:41
That is a great thing about working in a three-person office. Another great thing is never having to deal with Catbertian HR department stuff (time sheets, performance reviews, etc.).