the loch ness monster is real
a new programming language has been sighted, it goes by the affectionate name
"nessie" and it claims to be the loch ness monster of programming languages.
the main trait of nessie it borrows from python: indenting. the main difference
to python: it is typed, something that python developers are now considering
for python 3.
ever since i started using python myself i have to agree, indenting is one of
the best ideas in the evolution of the syntax of programming languages that has
been made in a long time. indenting is a must for readable code anyways and
anyone who thinks that indenting is a problem is either writing sloppy code or
has simply never tried python.
i like concise and explicit syntax without redundancy. and that's something
that nessie promises to offer. the syntax should serve both the user and the
compiler. the compiler should not try to guess what the user wants to do, but
it should also not force the user to be overly verbose.
nessie offers a number of interesting things that python does not (yet) have.
one of them is static typing. this topic has always raised a controversy in the
python community. nessie may be the way out for those that do like static
typing without forcing their opinion onto the rest of the python community.
there is also the very compact use of operators on all kinds of data
operations, like splitting a string: instead of s.split(" ") nessie uses s/" "
you divide the string at the spaces. the reverse of course also works: arr*" "
joins an array to a string.
there are many more operators and they can all be applied to almost any type.
there is a well evolved runtime library that offers an astonishing set of
features from image manipulation, a calendar module that supports any kind of
date manipulation you have ever dreamed of, support for most internet
protocols, xml, database access, you name it, it's there.
like python nessie is object oriented, but it offers class member protection
that allows to add security features to your application that are simply not
possible in python.
one interesting feature here is nessies class syntax. you don't need to mark a
class with a keyword, but just but the contents of your class into a file. the
filename becomes the class name. instantiate or inherit the file elsewhere and
you are done.
a bit more about types: nessie is statically typed but it does not make you go
out of your way to make things work like java does. there is a mixed type which
will hold anything, and brings you back to the same dynamic typing flexibility
that python offers. you may also combine any types as you like:
string|int|float. incidentially a similar syntax for types is being discussed
for python.
container types may be specified generic: array (which is really array(mixed))
or more detailed: mapping(string:array(array(int(0..359))). the latter is a
dictionary with keys of type string and 2-dimensional arrays with integers
ranged from 0 to 359 as values. as you can see the typing is very flexible, you
may be as specific as you want and as generic as you need.
let's have a look at nessie itself:
nessie:
void main()
write("hello world!\n")
pike:
void main()
{
write("hello world!\n");
}
python:
print "hello world!"
nessie is more explicit than python but less redundant than pike.
apart from the indenting syntax, nessie is essentially a dialect of pike. it
uses the pike runtime which brings with it a great amount of features that have
been evolving since the late 80ties. the features described above are really
all just inherited from pike. nessie actually just adds the indenting. a minor
difference, that may have a large impact on those that don't like braces.
python and pike are both great languages, and so is nessie. it's time for some
change.
Nessie: http://steam.iaeste.at/nessie/
Pike: http://pike.ida.liu.se/
greetings, martin.
--
cooperative communication with sTeam - caudium, pike, roxen and unix
offering: programming, training and administration - anywhere in the world
--
pike programmer travelling and working in europe open-steam.org
unix system- bahai.or.at iaeste.(tuwien.ac|or).at
administrator (caudium|gotpike).orgis.schon.org
Martin Bähr http://www.iaeste.or.at/~mbaehr/