Live data from Hacker News

3 Dogmatic Beliefs that Make Development Painful

info.rjmetrics.com

11–15 of 15 posts

Re: 3 Dogmatic Beliefs that Make Development Painful

#11
post #4

I disagree with the first point. I think that there are such things as objectively bad languages, and that their use should be avoided. Whether or not C++ or PHP is on the list can be argued ad infinitum, but there isn't any reasonable argument for implementing anything in, to take the most extreme example, Brainfuck.

I absolutely hate C++ myself, and yet I'm an expert in the language, and I still use it when I need a combination of speed and object-oriented development (which comes up a lot in game development). So is it an objectively bad language? Arguably. It just happens to be better for some tasks than all the alternatives, giving me code that's "safer" than C, almost as fast as C, and portable to all the platforms I need to…

One would hope that in light of great compiler tools such as LLVM, different parser generators/toolkits and extensible IDE's we wouldn't be stuck writing code in a languages designed in the early 80's, manually separating definitions in to headers and using preprocessor to "include" files. Every time I see the accretion of junk/legacy design decisions in software get entrenched further (eg. Microsoft pushing for a return to C++) I die a little.

Re: 3 Dogmatic Beliefs that Make Development Painful

#12
post #4

I disagree with the first point. I think that there are such things as objectively bad languages, and that their use should be avoided. Whether or not C++ or PHP is on the list can be argued ad infinitum, but there isn't any reasonable argument for implementing anything in, to take the most extreme example, Brainfuck.

Additionally, while the author is correct that a bad developer is a bad developer regardless of toolset, it's much easier to completely fuck everything up in certain languages. It's quite easy to write code that allows for buffer overflows or XSS vulnerabilities in some languages, and not quite so easy in others.

The important thing, to me, is that the language's path of least resistance leads you to The Right Thing. This generally improves quality of life for good devs and reduces the amount of harm bad devs can cause.

Re: 3 Dogmatic Beliefs that Make Development Painful

#13
post #8

Earlier quoted context omitted.

taking it as an incontrovertible dogma is not useful I dare anyone to provide any example of incontrovertible dogma as being useful.

In four words: Always use version control.

I stand corrected and submit to your wisdom.

Re: 3 Dogmatic Beliefs that Make Development Painful

#14

Earlier quoted context omitted.

I absolutely hate C++ myself, and yet I'm an expert in the language, and I still use it when I need a combination of speed and object-oriented development (which comes up a lot in game development). So is it an objectively bad language? Arguably. It just happens to be better for some tasks than all the alternatives, giving me code that's "safer" than C, almost as fast as C, and portable to all the platforms I need to…

One would hope that in light of great compiler tools such as LLVM, different parser generators/toolkits and extensible IDE's we wouldn't be stuck writing code in a languages designed in the early 80's, manually separating definitions in to headers and using preprocessor to "include" files. Every time I see the accretion of junk/legacy design decisions in software get entrenched further (eg. Microsoft pushing for a re…

The problem is the huge activation energy required to get people to move to a new language.

Microsoft TRIED to get people to move to a "better" language (C#, which IS arguably better than Java) but the .NET runtime is massive and doesn't ship with existing tablets/phones, meaning it (or rather, Mono) would add 10Mb+ to a download size that needs to stay under 20Mb to download over-the-air (2G/3G/4G).

A lot of people did jump on that bandwagon, but C# isn't really great for games, and so the adoption has been lukewarm outside of the Xbox/Windows Phone development community.

Point is, until someone has created something that really is BETTER than C++ in the ways that it needs to be (which probably requires heavy investment in tools as well as libraries), it's going to be an uphill battle to get people to change.

Even if you had the Perfect Ultimate Language designed an implemented today, you'd need support in everyone's editors, debuggers (including source-level remote debugging support and any necessary server modification on all target platforms), cross-platform build support to all the relevant architectures, C/C++ linkage (unless you plan to rewrite all current libraries), JNI linkage (so you could interoperate with Java, which is required on Android), and support for multiple paradigms (NO single-paradigm language will ever be adopted across the board, nor should it be -- different programming problems are solved best with different paradigms).

Honestly "D" is the language that best fits the bill that I'm aware of, though it has a long way to go as far as support on other platforms and mindshare. I haven't yet USED D, though, so I can't really critique it intelligently.

Re: 3 Dogmatic Beliefs that Make Development Painful

#15
post #7
post #2

The TDD issue is really the biggest for me. I've run into many developers over the years who shout how much more efficiently things would be built if we all just did that. Surprisingly few do it themselves, though, due to a "lack of time". The contradiction in that never quite hits them for some reason. TDD has it's place, but taking it as an incontrovertible dogma is not useful.

It depends on the person. Does writing tests help you understand the problem, and if so, does that help you solve it faster? Only you can answer that. Here's a quote from Rich Hickey that really struck home with me: > I never spoke out 'against' TDD. What I have said is, life is short and there are only a finite number of hours in a day. So, we have to make choices about how we spend our time. If we spend it writing…

I agree with essentially everything that you said. The one thing that I'll add is that I was speaking specifically of Test Driven Development, not of tests in general.

The benefits of using tests as documentation come regardless of religious adherence to test-first, and in my opinion are often hindered by it. I agree that tests can make great documentation, as well as adding value for a number of other reasons (regression, etc).

I severely question the concept of writing them first in all (or even most) cases, though.

Post reply on HN