Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×

Comment Re:You nerds need to get over yourselves (Score 1) 212

When people say coding is the new literacy they are not suggesting that everyone become professional programmers anymore then saying someone should be able to read and write means they should become professional writers.

Exactly. Go back a couple of hundred years and you even have well-off people saying 'I don't need to learn to write, I can afford to hire a scribe'. You had people saying 'not everyone needs to learn to read and write, there aren't enough jobs for that many scribes anyway'.

Before he retired, my stepfather was the head groundskeeper on a golf course. Not exactly the kind of job you think of as requiring coding skills. Except that they had a computerised irrigation system that could trigger sprinklers in response to various events (humidity sensors, motion sensors, time, and so on). It came with a partly-graphical domain-specific programming language for controlling it. It's going to be very hard in the next 50 years to find a job that doesn't require some programming to do it competently - even this kind of stereotypically low-tech job requires it now.

Comment Re:grandmother reference (Score 4, Insightful) 468

It's really the only viable answer to piracy that's left and publishers are embracing it wholeheartedly.

I used to pirate games and I used to buy games. I eventually couldn't be bothered with pirating and worrying about malware or with trying to jump through the hoops that the publishers wanted, so I stopped playing games altogether. Then gog.com launched and sold me games that I was nostalgic about, cheaply. Then they started selling newer games. I spent more with them last six months than I did on total on games in the five years since Steam was launched and the industry wend DRM-happy. I can download DRM-free installers for all of the games, often in OS X, Windows, and Linux versions.

It turns out that there's another answer to piracy that works: sell your product in a way that's easy to use at a reasonable price. Stop worrying about pirates and start worrying about customers. Someone who wouldn't buy your game anyway who pirates it is not a lost sale, but someone who can't be bothered to put up with your treating them like a criminal and so doesn't buy from you is. Buying a game from gog.com is easier than pirating and, if you factor in the cost of your time, probably cheaper as well.

Give me a product I want for a reasonable price and I will happily hand over my money, because I feel that I'm getting something valuable in return. Don't, and... well, computer games are not the only form of entertainment available.

Comment Re:You nerds need to get over yourselves (Score 5, Insightful) 212

Programming is absurdly simple. Back in the 80's, you couldn't throw a stone without hitting a kid who wrote games for his home micro as a hobby.

There were plenty of kids who knew how to write "10 PRINT FART; 20 GOTO 10" or who typed in listings from magazines, and I agree that programming at that level is probably accessible to most people - but you can't equate that level of programming with modern software development.

You've probably noticed this yourself, but there are a LOT of really stupid professional developers.

I wouldn't phrase it as "really stupid professional developers". There are certainly a lot of incompetent professional developers, and they're part of what's formed my opinion about some people not being mentally equipped for software development. Do you honestly believe that such a proportion of people who make their living developing software are that bad at it purely because they're lazy, apathetic or unmotivated?

For the obligatory car analogy, most people are probably capable of learning to swap to a spare tyre, change the oil, or top up the radiator (learning some simple scripting). Most people are probably not capable of learning to design high-flow intake manifolds or variable valve timing mechanisms (useful commercial software development).

Comment Re:What? (Score 1) 212

Once upon a time, your mechanical write-from-spec person was referred to as a "programmer", whereas taking fuzzy requirements and designing the logic was the job of the "analyst", a role roughly equivalent to today's "software architect". Someone who was proficient at both roles was an "analyst programmer".

Comment Re:You nerds need to get over yourselves (Score 5, Insightful) 212

Interestingly, it's not usually 'nerds' who push the idea that software development is something that everyone is even capable of, much less that it's something that most people should try and learn. It generally seems to be people who have grasped the basic idea that "programming means giving the computer instructions" and got excited about it, but never went beyond writing a few loops and some if() statements.

Anyone who's taught programming at a university level will know that even among intelligent students who want to learn, there are a large minority who (while they have many other valuable skills) are just not mentally wired to think in the way needed to develop software. It's a huge waste to try and push these people into doing something that they're not equipped for, instead of focusing on talents that they do have.

Comment Re: DirectX is obsolete (Score 1) 135

Actually, a lot of these games just use WINE's implementation of DirectX. This either translates the calls to OpenGL or implements a DirectX state tracker directly if you have Gallium drivers configured correctly. The same is true of a lot of Mac games. Good luck getting WINE to run on a console though...

Comment Re:DirectX is obsolete (Score 1) 135

Your typical GPU driver is about 10MB of object code. It contains a complex optimising compiler and controls a device that has complete DMA access to your computer. It is written with speed as the only significant goal. Making a GPU driver 1% faster contributes enough to sales to pay the salaries of several driver developers. Making the GPU driver more secure generates zero additional sales.

The shader code that's fed into this stack from WebGL is sanitised and is completely safe to run, assuming that your driver stack is 100% bug free. Still feel safe?

Comment Re:DirectX is obsolete (Score 1) 135

If you write a game that uses Direct3D, you can easily target Windows, XBox, and Windows Phone. If you write a game that uses OpenGL, then you can easily target all of the major desktop, mobile, and console platforms. If your game runs on a generation-old console, then it will run on current-generation mobiles as well. This gives you three markets: First release for high-end PCs, second for consoles, third for mobiles. You can get a solid revenue stream out of each one. You don't lose the Windows marked by choosing OpenGL, but you do lose every other market by using Direct3D.

That said, the APIs are so similar these days that you'll typically use some middleware to provide the abstraction. All of the important code is written in the shaders and these are much easier to port between GLSL and HLSL than they are to port between different GPUs and maintain performance.

Comment Re:Modula-3 FTW! (Score 2) 492

Implementing this in the standard library means that the language needs to support pass-by-reference (which Pascal and C++ do, but C doesn't). This single feature does a lot to reduce readability. In C, I know that inc(x) is a function that does not modify the value of x, without reading any additional code[1]. In Pascal or C++, I need to look at the definition of inc() to know if x will be the same before and after the call.

An important idea at the core of readability for a language is the amount of code that I have to read to understand a single line. In any language that has pass-by-reference, this amount is larger than a language that doesn't. To achieve the same thing in C, I'd have to write inc(&x), and then everyone reading that code would know that x may be modified. (Note: the almost-equivalence of array and pointer types in C is a good counterexample where Pascal wins massively in readability).

[1] It could be a macro, but most coding conventions require macros that can't be used as if they were functions to be all-caps.

Comment Re:Modula-3 FTW! (Score 2) 492

This would be true, except for two things:
  • Lines with more than 66 non-whitespace characters decrease readability.
  • Statements with more than 66 non-whitespace characters are common in most programming languages.

This means that you end up either with lots of continued statements or lots of overly-long lines in Python. If you have the former, then it's hard to see the indentation. If you have the latter, then you can see the indentation but the overall readability suffers. This can be fixed by using tabs for semantic indentation and spaces for alignment and an editor that supports highlighting tabs, but the Python style guides tell you not to do this.

Comment Re:Modula-3 FTW! (Score 1) 492

There are some simple things where C is far more readable to a moderately experienced programmer. Consider the beginning and ending of blocks. In pascal, these are signified by begin and end. When you look at a chunk of Pascal code, they can be hard to pick out because they're just words in a sea of words. In C, you use the { and } symbols. These are symmetrical and the human brain has spent a lot of time evolving to be trivially able to spot symmetry because symmetry normally means 'predator about to try to eat me'. You can very quickly spot a column that has a { at the top and a } somewhere later (much more easily if they're aligned together and there's nothing else on the line). There were some studies done in the '80s that confirmed this, though sadly a lot of C coding conventions specify brace placement in a way that reduces readability.

The main strength of Pascal is that it forces you to think more than C. If you don't write what you mean in Pascal, it usually fails to compile. C will happily do... something. This level of redundant verbosity makes Pascal both quite a frustrating language for experienced developers and a great language for teaching. I find that people who learned Pascal tend to write better C code than those that didn't, but neither group has a strong desire to write Pascal.

Slashdot Top Deals

Understanding is always the understanding of a smaller problem in relation to a bigger problem. -- P.D. Ouspensky

Working...