23 comments

[ 0.18 ms ] story [ 71.8 ms ] thread
It looks a lot like python + javascript.
static typed python+javascript
Lambdas? LINQ? OOP? This looks nothing like js.
Nemerle's coolest feature(or most evil, depending on your perspective) is its macros - it's one of the few modern languages that support them.
Exactly. AFAIK, it has small core language and all other constructions like if/else, while, for, foreach etc are made with macros.

I think that Nemerle is Lisp macros + static types + OCaml (algebraic data types, pattern matching) + .Net ecosystem (even Visual Studio support).

how does it square typing with macros? is it typed after macro application?
yes, but macros can operate with typed AST too
There are different "macro stages" to allow macro application on both typed and untyped source.
so if macros can operate on typed source and/or on the typed ast tree, do they (the macros) have a type system that guarantees that they will preserve correct typing? or are types still checked agan (globally?) after applying the macro?

what i'm really asking is, is there anything "smart" about how the macro works with the type system?

Macros are expending in the typing process. In macro you can use compiler API to type some untyped AST (for example, argument of macro).

For example, "foreach" macro use compiler API to infer type of collection. This macro generate specialized code for different collection kind (array/list/IEnumerable).

> The world of statically typed languages has the same framework (Scala’s Lift). But the implementation for Nemerle is based on macros and recognized standards such as LINQ.

I can't stand it when people parade around the "recognized standards" some company made up and then recognized on their own.

So far Scala is the only language I have looked at that does a decent job of mixing object oriented and functional constructs without making your eyes bleed. Nemerle seems pretty nifty based on it's feature list but I'm wondering what programmers they are targeting. .NET programmers seem pretty happy with C#/F# so they don't have much incentive to adopt another language.
It looks all nice and well, but why can't languages these days be compiled ? I reckon it's way harder to do, but there's no major impediment to achieve what can be achieved in a language based say on the CLR.
Why waste time writing a compiler when you can leverage much of the work already done to optimize .NET?

If the clients don't have it, make your installer download it and be done with it.

It's much harder to get enough of a .NET runtime together for a new platform than it is to lean on a platform compiler and binary toolchain which must already exist. It's all very well saying "just download the installer," but that won't get my nemerle code running on my phone.
What phone? Chances are Mono run there...
Nokia N900. Ok, so there's Mono for Maemo, so that's not a particularly convincing argument in itself. However, the point stands - replace Nemerle with Scala, for instance, and I'm stuffed (mostly).
only windows installer...
Beautifully written intro that gave me a complete feel for the language. I think that it is a really difficult thing, to communicate that well.

All the best ! I hope Nemerle becomes a fantastic option on the .NET platform. Though, with the speed that Microsoft likes to develop C#, it might most probably end up looking like this.