
Ask HN: Pick a language.  What are some project ideas that show it off? - cujo
I realize that if I pick up a web framework, web projects are the obvious application space.  But what about &quot;raw&quot; languages?  If I want to see toy around with, say, haskell, what&#x27;s a good application space to show off it&#x27;s feature set&#x2F;paradigm and build something that&#x27;s not just a crappy &quot;Hello World&quot; application?&lt;p&gt;In other words, let&#x27;s get a listing of project ideas (not startup ideas) per language that show off that language&#x27;s strengths in a non-trivial but below expert-level way.  Go!
======
cessor
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/](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.

------
computerslol
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](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.

------
Oculus
Node.js and Real-time.

WebSockets are a real blast to work with in Node.js. Some libraries to get you
started:

SockJS - [https://github.com/sockjs/sockjs-
node](https://github.com/sockjs/sockjs-node)

ws - [http://einaros.github.io/ws/](http://einaros.github.io/ws/)

engine.io -
[https://github.com/LearnBoost/engine.io](https://github.com/LearnBoost/engine.io)

------
jan3er
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.

------
domrdy
I always refer to Docker when telling people about Go.
[https://github.com/dotcloud/docker](https://github.com/dotcloud/docker)

------
ing33k
bitcoin price aggregation deamon in Go !

