Ask HN: Pick a language. What are some project ideas that show it off?

14 points by cujo ↗ HN
I realize that if I pick up a web framework, web projects are the obvious application space. But what about "raw" languages? If I want to see toy around with, say, haskell, what's a good application space to show off it's feature set/paradigm and build something that's not just a crappy "Hello World" application?<p>In other words, let's get a listing of project ideas (not startup ideas) per language that show off that language's strengths in a non-trivial but below expert-level way. Go!

6 comments

[ 3.1 ms ] story [ 22.0 ms ] thread
I'd say write a little came. Possibly with multiplayer support if you want a challenge.

I recently started writing a clone of the curveball flash game with OpenGL graphics and network multiplayer support to learn haskell. I'm halfway through and I think I am familiar with the basic haskell concepts now.

This is a very good question and it is a hard one. I tend to have a standard set of problems that I use to take my first steps with a language.

A very simplistic thing to do is to generate a "signature survey": http://c2.com/doc/SignatureSurvey/

This generates a simple metric over c-type language code and includes walking a project folder structure and print out all {} and ; (blocks and statements) to get an overview over the complexity of the project.

Another one is "Folder Cleanup". I am a compulsive (Windows-) desktop hoarder. After a while my desktop gets so crowded with symbols that I move them into a certain folder, which I usually name after German dumpsites for nuclear waste. The script sorts files by their types and puts them into certain folders.

This one helps one to explore basic syntax, code structuring, modularity, fs access, working with data structures (recursive descent into dir trees), blacklisting of certain filetypes and so on.

These are very simple generic problems that one can do that in any language; it helps to compare the learing effort for the language and its syntactic and semantic power, for it is a very controlled, well understood problem. Beats hello world, but I am aware that these are not specific to show off what "side" a language "is on".

With python anything will do, but writing a webserver in r can be quite tedious I believe. If a langauge claims to be a general purpose language (as do f# and haskell) the aforementioned problem could do the trick.

bitcoin price aggregation deamon in Go !
WPF (not a language, it's a desktop UI framework):

Windows Media Center (you have to jump through hoops to get it on modern windows, but I feel it's worth it).

Here's what it looks like for those who aren't running windows or don't want to install. http://youtu.be/MSvME6zR7gU

As far as I know it hasn't changed much since Vista. I still consider it one of the best examples of what a WPF experience can be like.

You can use WPF with any CLI (.Net) language, but C# is preferred. WPF is windows only (windows presentation foundation) and can't be used with mono as far as I know.