OJ’s rants What would OJ do?

31Oct/0925

The Future is Erlang

erlangFor quite a while I've been using my spare cycles to chew over a problem. This problem is not one that hasn't been solved before, but one that I feel can be solved in a much better way. From the bit of research that I've done, I can see at least three areas which can be improved on dramatically. So I've decided, after a long period of deliberation, to go ahead and build my solution and release it to the world as a service!

I know, this kind of thing happens thousands of times a day. Some arbitrary geek decided to build the next killer app and expects to make a crapload of cash out of it. While that would be nice, the ultimate goal isn't the cash. The goal for me is to build something that gets used, and for me to begin to master an area of technology that I've had a quiet passion for for a long period of time now.

My plan is simple. While learning the technologies that I will be using I'll be building another application and blogging about it so that all of you can learn with me. Meanwhile, I shall use my learnings to build this other application at the same time.

The final result should be a series of posts which help other people learn the technology stack, give better coverage and visibility to languages and technologies that a lot of the geek world doesn't know about (and really should!), and for me to carve myself a bit of a niche here on the East coast of Ozland. I am hoping to be able to consult my services out to other businesses as a result.

For those that are interested in following along, here is the full tech stack and toolset that I'll be using:

  • Erlang - A fantastic cross-platform functional programming language that has some amazing features.
  • Webmachine - A HTTP toolkit which sits on top of Mochiweb that makes it easy to build well-behaved HTTP applications.
  • Nitrogen - An Erlang-based framework that makes it easy to build websites.
  • Riak or CouchDB - Both of these amazing pieces of tech are potential candidates for the back-end storage. I'm not yet sure which one I'll go with.
  • jQuery - A great JavaScript library for the front-end.
  • VIM - My favourite text editor :)
  • Xubuntu - Ubuntu Karmic Koala with XFCE as the window manager.
  • Mercurial - My favourite version control system.
  • Trac - A project tracking tool.
  • VirtualBox - My choice for virtualisation. I tend to run Windows 7 as my primary OS, so most of my dev will be in a VM. When I get my desktop machine back up and running (with all three monitors!) it'll most likely multiboot Win 7 and Xubuntu.
  • Google Wave - I'll be using this for communications with some really switched on people in the Erlang community who have kindly offered to help me with questions and whatnot specific to some of the areas of tech I've mentioned above.

During the course of my blogging/learning I'll be focussing on Webmachine, Riak/CouchDB, Erlang and Nitrogen. All the other tools will probably get mentioned along the way, but the primary goal is to focus on these things.

I'm really excited! I'm currently in the process of documenting my goals and the design for the main application. Once that's done, I'll get started with the fun stuff. I've got a lot to do and it should be a fun ride. I hope you enjoy following along!

  • OJ
    Thanks Johann. More to come very soon I promise!
  • Johann
    Can't wait to get an update, as I'm pretty much at the same decission stage, especially how to marry nitrogen and webmachine.
  • OJ
    Hi Damien, Thanks for the comment mate! It left a smile on my face.

    Wave is indeed amazing. I don't think people fully appreciate how powerful it is yet. I also don't understand some of the FUD that comes with "Google owning your data" when ultimately it'll be open sourced and you can have as much control (if not more) as you would with email.

    BTW, your blog is great! It's now in my RSS ;) Cheers!

    PS. Do you use Twitter?
  • Sounds interesting OJ. It's good to see forward-looking BrisVegas-ites embracing functional languages like F# and Erlang, and alternate database platforms.

    As for Google Wave... I was one of the 4000+ attendees with their jaws on the floor when it was demo-ed to the public at Google I/O earlier this year (http://www.necessaryandsufficient.net/2009/06/g...). Truly revolutionary.

    I'm looking forward to seeing what you do with this well-chosen stack. Best of luck with it.
  • OJ
    Good question Noah :) I think it's one that deserves a quality response that I plan to put in another blog post.

    So watch this space!
  • noah
    Hi OJ, I'm interested in why you decided to use Erlang over Haskell? What were the main benefits?
  • OJ
    I was pondering this point a little more recently, because I've been using wave more and more. One thing I forgot to mention was that ultimately, in case you didn't know, Google Wave will be open source and you can have your own federated wave server. Which means, your data lives on your server, and nowhere else if you so wish.

    So Google won't own your data if you don't want them to. I certainly don't think that your FUD is justified in this case :)
  • OJ
    Thanks buddy. I will let out snippets of info along the way with regards to some of the goals. But the overall vision will remain in my head only... for now ;)
  • oh all right then.. just remember when you make your google trillions that I helped you protect your ip :-)

    Good luck - sounds like fun.
  • OJ
    You can ask, but in a public forum at this time I'm not going to answer :) I hope that's ok. I'm not solving a problem that hasn't been solved already, but I know that nobody is using this tech in this space with the goals that I have (or they haven't made it public). So this card will be kept a bit closer to the chest.

    I hope you understand :) I'll be talking a lot about my experiences anyway, and writing another fun app alongside it which is a mirror of the CodeSmackdown project that I'm building with a couple of friends. It should be fun.

    Cheers mate!
  • hmmm nobody seem to have asked what it is you are building - so can I ask ? ( help ? )

    I think the stack looks great so based on that I am also keen to see what you do - what ever it may be :-)
  • You say that like it's a bad thing :-P .... looking forward to it!
  • OJ
    Thanks dude :) You're one of the unlucky ones who has no choice!! :-P
  • I like it - sounds like a pilgrimage I'll want to follow along with!

    Good luck with it!
  • OJ
    @jamesrichards: Good stuff mate, let's hope we all learn something along the way!
  • James R
    Sounds exciting, I will be following along to see where this all leads.
  • OJ
    Cheers Ferd! In the mean time, I hope to continue to find time to preview your awesome Erlang site :)
  • OJ
    Great stuff Flavio. Hopefully we'll be able to teach each other a thing or two!
  • OJ
    If you stick something up on the web, it'll end up in Google's hands one way or another ;)

    I'm not too worried about that to be honest. It's just discussions, it's not the source.
  • Sounds like a pretty neat project. I'll try and follow along :)
  • Flavio
    This is great! I've bookmarked this page. I'm taking a similar Erlang trip. Currently looking for more info on properly tying together Webmachine with Nitrogen then with Riak.
  • r2
    I hope goole wave will not be the future. I don't want to know all my data in googles hands.
blog comments powered by Disqus