np

Welcome

Hi and welcome to the np reference site. np is an attempt at making a small and minimal programming language for web development. It runs as a FastCGI process and can be attached to pretty much any web server with a trivial configuration change.

Curious?

Try it out now >
pain free, in your browser

What is it like?

When writing code in np, you only have to think about each current request, as opposed to more heavy-weight application server frameworks such as Ruby on Rails or Tomcat where the app is running the whole time. In this respect, np is a stateless runtime environment. This allows for a very simple development process. You can try out the language directly from the tutorial hosted here. If you feel really adventurous, you can also download the package and experiment with it on your own server.

It's just an experiment

At this point, np is nothing but an experiment that popped into my head, something I liked to try. It's not complete. You can't really do useful things with it yet, but it's mature enough to at least head on over to the tutorial and get a feel for the language.

Why didn't you use XYZ framework?

That was not the point of the exercise. I wanted to explore what it feels like to write a parser, a lexer, and an interpreter without using a framework or some other ready-made solution - and I didn't really consult any literature either. While that may sound foolhardy (and I'm sure the implementation pays the price for it), the point was to discover and think about a new set of problems I never experienced before. While this is clearly a learning project, I don't think it turned out so bad. Hopefully. Maybe.

So what are the dependencies?

I tried to use as little external frameworks and libraries as possible. The glaring and obvious one is of course the Java runtime, which this project is written for and this is also what np uses to run itself. Beyond that, I'm using an Apache library for encoding and decoding HTTP and HTML stuff, as well as an ancient (and I do mean ancient) FastCGI library to hook the whole thing up to a server. I only tested on Nginx so far, but there is nothing in principle preventing people from using it from Apache Http Server or anything similar.

Does the world need another language?

Probably not, but it's fun anyway. There are some things I wanted to explore with np, many of them have to do with dynamic typing and scope. It's not yet a prototype language, but it will be when I'm done with it.