Tuesday, April 27, 2010

Monday, April 19, 2010

As journalism turns cheap

Cheap journalist turn to the "social media" for stories

ABC The Drum Unleashed - Stand by your tweets

Thursday, April 15, 2010

A brief history of Javascript

Javascript is the ugly duckling that is now ruling the internet. It's now a fully grown ugly arse duck! But you'll respect it because it got a lot right where corporations have failed.

Back in 1996 I heard how Netscape was coming out with a new version 2.0 that would include Javascript. Apparently in a deal with Sun Microsystems they renamed it from Livescript and it would allow programming to be embedded into HTML and run in the browser instead of on the server.

At this time Netscape defined the web. If you browsed webpages you used netscape. Sure it crashed a lot. Yes it ran out of memory when some punk decided a page with 12 frames would be cool. But if you used anything else you were missing out on the full glory of the web. So when Netscape said they were doing something cool for the internet you listened with equal interest, excitement and doubt.

Sounded like a toy. Netscape already messed up websites with the damn <BLINK> tag. Sure you could have some nice effects like a live clock or a image changing on a timer. But they'd just be gimmicks that no one would care about in time. Java would let us all write proper applications for browsers. How wrong we were...

The next 5 years was a mess. Java proved to be a dog. Never lived up to it's promise as it ate up memory and cpu like a glutton and never did anything fantastic. Sure you can get some nice Java programs no but in the late '90s there was two camps. Newly trained Java engineers getting high salaries from companies who believed the shit Sun was putting out promoting the language like the second coming. And people like me waiting for it to die in a fire because it was frankly crap.

And in that time where was Javascript? It was a toy. Used more by adverts trying to get in your face than any serious programmer. Microsoft's IE and it's half arsed 'jscript' as well as Netscape's own sporadic support for Javascript made it useless for any serious programming. There was nothing you could do to get it to run consistently across browsers.

Then over the last decade a push for web standards finally got a hold. The DOM interface became a standard and there was something javascript programmers could latch onto. Suddenly you could manipulate the page in real time in a way that worked across all modern browsers. It was taken more seriously but still didn't get much traction. Until some smart people realised you could use it to make asynchronous requests.

Ajax was a word thrown around for a while. It took some digging to find out what it meant. And even then it wasn't clear why it was useful. Then like an explosion on the internet it all became clear in one app. It was 2005 and the internet changed thanks to Google Maps.

Rarely does one website change the entire direction of internet growth and development. Suddenly everyone wanted Ajax style programming and that meant they had to learn Javascript. With that one hit it became clear you could now write applications not just websites.

Now it's taken for granted. If you try and create an interactive website without the application style interfaces Javascript can bring you'll be considered slow and clunky. Thanks to browser improvements Javascript is running faster than ever and can be more secure than flash. Javascript is running on mobile phones! To think it used to crash my computer 10 years ago.

Tuesday, April 13, 2010

Move over Java, I have fallen in love with JavaScript

Move over Java, I have fallen in love with JavaScript

Or as I would say: Move over strictly typed languages with slow compilers. But that doesn't have the same ring to it.

Tuesday, April 6, 2010

C++ sucks part two

You like speed? C++ will not get any faster

Because C++ support for multi-threading is lackluster. You've pretty much got to roll your own carefully constructed tools to avoid even the most common mistakes multi-threading can introduce.

"What about C++0x?" I hear you say. Screw that! Sure a lot of the stuff being proposed is a huge improvement. But it's been sitting around since 98. When am I going to see this in a compiler? When can I use it? I'm slowly dying here as processors get more and more cores.

To write a program in C++ today is to write code that will never run faster. Or will probably crash trying.

You like speed? C++ build times will feel like riding the bus

Builds are sooo slow. While trivial programs can build from scratch in seconds. Typical programs can take minutes to build from scratch. Complex programs can take so long to build it's usually farmed off to servers to do a 'nightly build'.

Let's do some math. Assume a program takes 2 minutes to build and maybe due to crappy makefile handling the programmer does 10 clean rebuilds a day (on average). If programmer is paid $40 an hour then he's paid about $300 a year just to run "make".

You like clean code? Good luck because header files suck

Why in C++ do we have to define all our class functions twice? Because if we try and inline them we just make the builds take forever. Every change to a header file can trigger scores of files to rebuild. If you've got a key file like a render it can chain hundreds of files to rebuild just from adding a comment.

So we carefully construct our header files. Fill them with forward declarations and carefully define our class interfaces in the hope we wont ever have to touch the header file again.

But of course interfaces change all the time. We're constantly adjusting things and kicking off painfully slow builds. Or in a rush to get things working including other header files only to chain up even more slow builds in the future.

But frankly we don't even want header files. A computer could figure out the interfaces for a class. But why doesn't the compiler do this for us in C++? It's just a dumb language that wants you to hand hold it through the build process.

Thursday, April 1, 2010

I love a good car crash

Internet's not special, says communications minister

The screech of tires. The smashing glass.

Great. Now I have to be certified.


Thanks to you bastards who went out to become certified scrum/xp/agile dicks. Do I need to go so far as putting CSP after my name?