“10 Ten Reasons why You’re Programming Wrong” — How to bore/annoy your audience

After watching the video “The Web Will Die When OOPs dies” and reading a few hip articles, on “how to improve your code,” gave me an idea. If someone is writing to give advice on improvements they should provide real world examples to why their suggestions/fixes to a language/framework are necessary.

Instead of articles of “Top 10 ways to improve your code;” I’d rather see an article about how something was improved. Take small segments from your own application or an open source project and write up a small report on how your suggestion[s] improved it. If you’re writing an article for developers, we’re interested in the proof and technical content. If your suggestions didn’t work out, we’re still interested in the story about the journey, or the technical observations that you found. Making vague suggestions and recommendations (without evidence) bore a technical audience. When you make vague suggestions to someone, you’re making an statement that you know more about their work or problem than they do. Your audience should be intelligent, if not then still write for an intelligent audience. Vague statements don’t address interesting problems, or new approaches.

So going back to the video I mentioned earlier. I like his tactless approach. He’s taken a good deal of experience from web development and he is presenting his argument. He doesn’t attempt to ask for others for opinion, nor does he attempt to tell his audience how to do their job. He just merely presents issues that he found, and his way of trying to solve those. The last thing that I loved about his talk is that he never once tried to push the latest hip language or framework. He mentioned a few frameworks, and then made a critism.

  • James Smith

    urg. I watched this thing, but like WHATEVER so yeah, nobody got it right, this guy trying to tell us if he was there, heading up the WC3 it would all be just dandy, nobody knew and things changed fast and it was hard to get it right, what survived survived, it’s not pretty but it works ok, are we supposed to be like ‘yeah dude you such a genius because after the fact you can point out the mistakes’ and also XML doesn’t actually suck, it’s an ball-ache but it’s conceptually sound and well principled from a computer science standpoint, maybe if he worked an big-ass enterprise software engineering he’d know, rather than make wordpress theme’s or whatever the fuck he does. Also in Javascript with memory management using typed arrays you can write a C compiler and straight compile a AAA title 3D game to play at 60FPS. http://www.youtube.com/watch?v=Rj49rmc01Hs KNOB END.

    • Dan Howard

      Stop apologizing. shicks could you remove this clown’s link to that idiot
      Brendan Eich? He should change is name to Brendan Blech.

      • crash025

        Whats the issue? James is entitled to his own opinion. 

        • James Smith

          ok, it’s my first day back at work and I was probably not in a great mood. I should’ve watched the whole thing to the end, I used to feel the same way about much of the web tech, I mean I saw a demo of google’s play framework GWT compiled to javascript, a demo game with little green peas , tile based with physics, and the only thing I thought was ‘could do that in 1995 with macromedia shockwave’ – so here we are 17 years later and the difference is not that we can do more, just that it’s ‘open’ = so my beef with the WC3 is not that it’s tech is bad, but that it’s soooo slow, but that’s the nature of design by consensus. to be fair I think they’re better now.

          I don’t mind being called a clown if ppl. have a valid engineering/computer science argument to back up what they’re saying, the more flame trolling/abuse there is, usually the less evidence and knowledge they have to offer.

          I think you should reconsider javascript, I’m not a javascript fanboy, in many ways the language is (almost) irrelevant, the argument is between JIT (just in time) and AOT (ahead of time) compiling, as the model for delivery. 

          take C for example, you can AOT compile and deliver your software, but of course it’s not cross platform and so you can’t do it in the web browser (even google’s NaCl doesn’t get around this) 

          you can AOT to a virtual machine bytecode and run it on a VM, like Java/ActionScript 

          or you can JIT compile, like V8 does.

          JIT compilation dynamically optimises to use processor registers to cache values, by changing the bytecode, you can’t do this with AOT compilation, even JIT compiled C beats AOT compiled C.

          the V8 compiler is the result of a project started in 1987 by David Ungar, for a language called ‘Self’ it is based on the premise that can be infered from the original Church/Turing thesis – that is any Turing complete language should be possible to transform into any other Turing complete language and thus it should be possible to get equal performance from any language PROVIDED the compiler knows enough about the hardware it is running on and the intention of the program (yes I know a slightly circular argument but JIT compiling  is circular, the program is optimised by running it and watching what happens.) 

          V8 is pretty much state-of-the art, and not all major browsers have JIT compiled browsers in, is it as fast as AOT compiled C – NO, but it’s near enough and just to repeat – you cannot make AOT compiled C cross platform.

          There is room for a virtual machine architecture (like Java and AS3) to include JIT optimisations but the question is then ‘it is worth it?’ you might get a few microseconds but there starts to be longer compilation time and introduction of bytecode complexity, there are possible comparisons with CISC and RISC here, CISC seems like a good idea, but in the end it was better/faster to do simpler compilation step and have a massive register array 

          Stepping back from compilers and looking at JS the language, it’s got problems yes, but with the addition of typed-arrays in WebGL capable browser/hardware you can use these structures as your heap, and then you have a typesafe non garbage collected heap, with no autoboxing overhead, infact other than a explicit namespacing statement and module handling there’s not much that you can’t compare with C (which is why you can compile C to Javascript if you have WebGL typed arrays on hand) is it as fast ? NO, is it cross platform, YES, is it fast enough? like I said, I’ve seen demo’s of 3D games with particle effects and post 3D rendering filters running at 60fps – on a good machine, admitidly, but as a developer you should not be thinking about now, but you should be thinking ‘what will be standard in 2 years’

          so if you want to write an application once and deploy to android, ios, mac and windows it’s actually your only choice, no flash or java on ios, flash on android, ok you can use adobe air and make an app, but it probably isn’t going to be any better, so at least consider it.

          as for Brendan Eich, look at IE6, look at Chrome, look at IE6 again, look at IE10, then look at the only browser that bridged that gap, and it’s called Firefox, and realise why open source matters and be a little more grateful.

    • crash025

      A few of your points. I agree with you, if he was incharge of the W3C we’d still be in the same position or worse. But hey! If that was the case we’d be saying the same thing he was saying. 

      Take his presentation with a grain of salt hes got some good points. However, this whole Javascript “is now hip” fad is obnoxious. Javascript is fine on webpages for creating webapps. Intensive applications that require special hardware [GPU, system access] nope.