Please create an account to participate in the Slashdot moderation system


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re:Yes, absolutely (Score 1) 531

Regarding a few of the other comments:

"It is a poor craftsman that blames his tools." Absolutely. However, the same good craftsman who can do amazing things with terrible tools will choose high quality tools because he can do so much better work with them.

"It's... the rush to produce easy code." That continues to be a problem -- and everyone who wants to throw more bodies at a late project needs to be fed a copy of The Mythical Man-Month one page at a time -- but it's a different problem.

"Formal verification is worthless IRL". They keep working on it and maybe someday it'll happen; but in the meantime we could use design by contract to improve our code.

"There ain't no such thing as free memory checking." No, there ain't, and yes, when you get into things like tiny embedded systems and operating system kernels memory management and checking still has to be done by hand, but for a really really large (and growing) amount of software, the costs are very low compared to the benefits. Modern runtimes (JVM, CLR, V8...) do a very good job of managing memory.

Comment Yes, absolutely (Score 1) 531

The most commonly used languages do absolutely nothing to prevent programmers from creating completely unmaintainable and broken code. Like creating a public arraylist and then accessing it from all over, or creating 8-layer-deep inheritance hierarchies with untested spaghetti code that's impossible to understand and modify, or copy-pasting all over.

There are efforts to fix some of the problems -- making it harder to use 'null', encouraging immutable objects, simplifying concurrency, more capable type systems, better formal verification and static analysis. Functional languages seem to encourage better practices, although it may be that the self-selection process has led better programmers to adopt these languages. (A good programmer can write solid code even when using shitty tools. It's just more effort.)

In the meantime, if you are a developer: please please please take the time to learn and use good programming practices. SOLID, GRASP, Don't Repeat Yourself, Single Level of Abstraction, intention-revealing names, separation of concerns, input validation. Use TDD and the "red-green-refactor" cycle to minimize technical debt. Use tools that will help you find code smells. Read books like Clean Code, Working Effectively with Legacy Code, Code Complete, The Pragmatic Programmer, Refactoring, and Test Driven Development.

Comment Re:Ageism on Slashdot (Score 3, Funny) 561

6 digits? What are you, 22? You have no idea....

When I got my ID (before Y2K) you could still browse the web with a modem, and a dollar would just about buy you a gallon of gas. We were in the middle of Clinton's "I did not have sex..." scandal (which, ultimately, nobody cared about anyway). Every woman in America was watching Titanic, and every man in America was saying "of course I'd like to see Titanic with you again honey!" with as much sincerity as they could muster. The Dow Jones was skyrocketing through 10,000 thanks to the dot-com boom, which was aptly named because boy did it go 'boom'. And speaking of bombs, The Phantom Menace came out and became the highest grossing Star Wars film ever, which was also appropriate as that film was (is) a gross betrayal of everything good in Star Wars. You could still watch actual videos on MTV (apparently, 2016 is the new 1999). And you measured your computer in Mhz and megabytes.

Pshaw! Get out of here with your "6 digit user IDs" flim-flam tallywhack, and while you're at it, get off my lawn too! You kids these days.

Comment It's all a toy (Score 1) 282

Every new thing is a 'toy' because it's unproven in the real world. An academic paper, or lab experiment, or startup company doesn't mean much. And for every 'toy' that ends up being the next big thing there are thousands that are failures.

And that's why research, and experimentation, and startups are so important. It takes hundreds or thousands of failures to find one success story, but the benefits of that one success pay for the failures a thousand-fold.

Comment Re:Old age (Score 1) 222

You sound much like my dad, who lived to be 94 (and passed away last year). He had his moments of doubt, having seen WWII and growing up during the Great Depression, but he was always amazed and impressed at the things we (humanity) accomplished in his lifetime.

If you and I live another 30 years we'll see incredible accomplishments and changes. Here's to the future!

Comment Re:Flux and colour temperature (Score 1) 52

Yeah that would be great... at the moment my main display says "soothing nighttime" while my laptop screen shouts "midday sun" :). Multiple monitors is becoming more common, and your app fits pretty well with the power user demographic that's likely to have 2+ displays.

If this feature doesn't scratch an itch for you, perhaps you could try funding it via something like GoFundMe for a little extra in your pocket. Just a thought. Regardless, thanks for the time you've put into it, I'm going to try it for a week or so and see how I like it.

Comment So few experts... (Score 4, Insightful) 220

In my experience nearly all of the people who self-rate as an expert are really intermediate or maybe advanced.

I think the main reason for the gap is most programmers don't get the opportunity to work closely with a real expert/master. They judge themselves based on the apparent skillset of their current and prior co-workers, and once you have a few years of experience it's easy to fall into the trap of thinking that since everyone else around you is about equal to you or less experienced, you must be an expert.

tl;dr, if you think you're an expert you probably need more exposure to better programmers.

Comment Communicating with people (Score 1) 473

People are the best part of my job...and the worst. Technical challenges can be a real PITA but they don't even come close to comparing to the difficulty of people challenges. And of those challenges, communicating clearly with people is perhaps the most difficult part of my job on a daily basis. (The second is dealing with "problem people", who have some kind of personality issue that makes them difficult to work with.)

How many times have you heard someone start a sentence with "I thought what you meant was..." or "I thought you knew..." or something similar. Or said the same yourself. Communication is hard, and if you think otherwise you probably don't realize how many assumptions are being made on both sides when you talk to people.

The other hardest thing is getting a story (requirement) to "done done". Writing unit tests and getting them to pass is easy. The hard part is making sure I update the design document, project wiki, and deployment doc; that I check the license agreement for the library/framework I just downloaded; that I don't have SQL injection problems; that I've added system tests; .... Of course having a checklist helps.

Comment It's great to be old (Score 2) 365

When I was younger (twenties and early thirties[1]) I had to work hard to learn something new, because quite often there were fundamental concepts, tools, or processes that were completely new to me. Nowadays when I learn something new, there's usually something pretty similar I already know, and while some of the practices will change (hopefully for the better) the basic ideas are largely unchanged. JSON? Yeah, a lot like XML or HTML, oriented towards JavaScript. Git? Take all your regular VCS concepts and add the concept of a complete repository on every developer's box. NoSQL? Think hashtables...really, really big hashtables. Virtualized OSs? Kind of like multi-tasking -- only your tasks are operating systems instead of applications.[2]

All four of those technologies have become prevalent within the past few years, and it took me no more than a couple weeks to grasp the fundamentals of each and start being productive. Sure, I spent time Googling and reading documentation, but I also didn't write code that would be a great candidate for the DailyWTF.

So yeah, I love being an old fart in his 40s. You can hire that twenty-something kid for half my salary, and he might put in more hours (most weeks I top out at around 45), but I can tell you I'm way more productive today than I was in my 20s. And I can learn those "new tricks" just as well or better today.


[1] That's when I was in my 20s and 30s, not during the 1920s and 1930s. Now get off my lawn dammit!

[2] Yes, those are huge over-simplifications, to the point they kind of make me cringe, but the point is these new technologies all have parallels to something older.

Comment Just walk (Score 4, Informative) 635

First -- having a standing desk is awesome, and you're probably doing more for yourself just with that than you could with an exercise program while still sitting 8+ hours a day.

Second -- take a break a few times a day and go for a brisk walk. Ten or fifteen minutes of walking will clear your head, helping your concentration for the next couple hours of work, and get your heart rate up a little.

Third -- cut out the crap and start eating healthy.

Fourth -- don't buy into the "you need to get motivated" crap. If getting motivated worked, there wouldn't be such a huge industry in motivational books/conferences/blogs. Motivation will last a week or two, but when that initial enthusiasm wears off willpower and discipline have to be there to take over long enough to establish new habits. For most people that takes about a month.

Fifth -- lead a balanced, healthy life. That's not always possible, but when something is out of whack in your life there are going to be consequences, so take care of yourself -- not just physically, but also mentally, emotionally, and spiritually.


Slashdot Top Deals

For every complex problem, there is a solution that is simple, neat, and wrong. -- H. L. Mencken