Functional rulez, OOP sucks?

I am a pretty laid back guy, but lately I have started getting a bit worried about the state of programming, or more specifically loud mouthed blog-wielding programmers. I have seen so much stupid shit floating around that I feel it is my duty to stick an IBM Model M keyboard in the ground and wave the flag of Sanity in peoples faces.

It seems that quite a few programmers have discovered a “new” paradigm called Functional Programming, and suddenly it has become fashionable to dismiss Object Oriented Programming as the Old Way To Do Things.

Continue reading “Functional rulez, OOP sucks?”

Behind the curtains of Darkfall

It’s been almost 7 years since Darkfall was released. I spent 10 years working on that mmo, and I wanted to make sure the technology behind Darkfall wasn’t forgotten so I wrote an article about it.

Darkfall still is one of the few MMOs that supports very large scale battles (hundreds of players), and that is only possible because of the technology powering the game.

Click here to read about the technology behind Darkfall – Spenefett.

 

Three kids, a job, a life, and a dream

Way back in 1998 me and a few friends started something that changed all our lives. I was 24 at the time, just finished with computer science studies at the university in Bergen, and had moved to Oslo to start working in a company that reviewed and sold games. The company was going to build a gaming network and I was hired to help them. Here I met Claus and Bjørn Tore who had the idea for an mmo called Darkfall.

I had been nurturing a dream of making games since I was a kid, and hearing about Darkfall made me want to turn that dream into reality. From the autumn of 1998 we started getting all the pieces into place, and after a couple of false starts we founded Razorwax in May 2000, and had seed funding secured by July that same year.

Fast forward to April 2002. Our original investor told us we weren’t going to receive any more money from them, but since our offices were in the investors building they would let us stay there a while longer so we could try a last-ditch effort to get proper funding. Continue reading “Three kids, a job, a life, and a dream”

Maturing as a programmer – How to supercharge your career

From the age of 11 one thing that was absolutely certain to me was that I was going to be a programmer. That was the age when I got my Commodore 64 and started to program in BASIC. I loved programming so much, that after a while I was programming more than I was playing games. There is something so sweet and pure about programming that nothing else in real life really can match it. Even with the bugs, time constraints and frustrations a modern programmer deals with, programming is still a sweet deal! Continue reading “Maturing as a programmer – How to supercharge your career”

How to avoid Play Framework killing performance

Note: This article is about Play Framework 1.2.x and might not apply to Play 2.x projects.

The other day I had to convert some code from C to Java. This code runs some pretty simple calculations, using a few classes as data-holders, and running a few thousand iterations. I had to get this working as part of the backend for a Play Framework web application.

In C the code would run blindingly fast, and return the results within 10-20 milliseconds. All good!

After a couple of hours of converting the code and fixing the pointer/reference/initialization oddities between Java and C, I got the code running. Well, more like walking, or lazily sauntering along. The Java code took 4 seconds to run. I know Java is perceived to be slow, but my experience with it was telling me that there is no way it should be so slow.

Continue reading “How to avoid Play Framework killing performance”

Hibernate, just stop it!

In 2001 Hibernate was created to ease development for the hordes of unhappy developers fighting with Java’s poor EJB implementation. EJB was so confusing and over-engineered that Hibernate’s simpler approach seemed like pure heaven in contrast.

Eventually hibernate inspired Java’s JPA and became a certified implementation of JPA.

History lesson is over.

Lets look at the status today. Right now Hibernate is a very popular ORM java library, maybe the most popular of them all. And I can’t understand what is wrong with people. Continue reading “Hibernate, just stop it!”

Dragons’ Den – Into the mouth of madness

This year Bergen had its first Game Development Festival, arranged by Linn Søvig, JoinGame and the Norwegian Game Developers Guild. The festival was named Konsoll, the Norwegian word for Console (read: Xbox, Ps3, Wii and the likes).

Disclaimer: I am on the board of the Game Developers Guild, but was not involved with the workgroup that was responsible for arranging Konsoll.

Dragons’ Den is based on a TV show. The concept goes like this:

A hopeful entrepreneur has a set time to present his great idea to a panel of experts, and then the panel has a set time to critique the idea. When I say critique, I mean tear apart, as dragons do.

At Konsoll the Dragons’ Den was set up so that the entrepreneurs had 5 minutes to present their ideas, and the panel had 10 minutes to give feedback. After the feedback each panelist would have a fictional 10 million Nok (around  $1 300 000) to distribute to the participants. The panel was Alex Trowers from Boss Alien Ltd, Bjørn Alsterberg from BTO, James Portnow from Rainmaker Games and Tor Ole Rognaldsen from Fuzz.

Continue reading “Dragons’ Den – Into the mouth of madness”

Pragmatic OOP

In my last blog post I talked about people pushing a process as the magic bullet when it is the people that matter. Having the wrong people on a team can cause havoc and kill a project. Sometimes these wrong people are cargo cult programmers.

According to Wikipedia: ‘Object-oriented programming (OOP) is a programming paradigm using “objects” – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs.’

OOP is supposed to be a practical way to organize a program into hierarchies of objects where similar objects can inherit behavior from each other and override that behavior when necessary. Objects can also contain other objects and that is a technique called composition. Certain programmers pick up OOP and fall in love with the rule-set without fully understanding it, or they over-apply the principles. These people are cargo cult programmers. Continue reading “Pragmatic OOP”