I have a bunch of questions, hoping to get answers to some of these before I go and bury myself in Nim - it's tempting, I've been lurking for at least a year, many aspects of this language are extremely enticing.
What's the status of Windows support, as far as the language itself goes? Is it generally supported?
Is it possible to build a Windows DLL with Nim, or is it planned?
And (for me) most importantly: what kind of IDE support can we expect? I mean, as a language, how smart can we expect IDE support to become, and what's the current level of IDE support?
I don't fully understand Nim yet, but I understand it does compile-time transformations of the AST - so, as far as "code intelligence", can we expect things like proper auto-completion, design-type type checks, and other inspections that would require some degree of static analysis of source code written in Nim?
Is there enough static information in the language and syntax to support, say, auto-completion and type-checks for code that uses one of those snazzy-looking DSL things for HTML generation?
Thanks!
Many people here use Windows, Windows is completely supported.
DLL creation/usage is very easy and OS independent. --app:lib compiler option for compiling DLL, dynlib pragmas for import and export.
Nim compiler's IDE support: http://nim-lang.org/idetools.html
Nim's IDE: https://github.com/nimrod-code/Aporia
There's also some Visual Studio support, I didn't try it: http://forum.nimrod-lang.org/t/672.
Sublime Text isn't an IDE, but NimLime has many IDE-like features.
https://github.com/Varriount/NimLime
Works with Sublime Text 2/3, which works on Mac/Linux/Windows. There is also a gentleman (Demos here & on IRC) working on/off on a Visual Studio plugin.
IdeTools are currently broken in Nim, so that limits the amount of ide support we can currently implement, but once that's fixed, really the sky is the limit IMO; auto-complete, type checking, etc would all potentially available for IDEs, if they make use of it.
Is there enough static information in the language and syntax to support, say, auto-completion and type-checks for code that uses one of those snazzy-looking DSL things for HTML generation?
We are about to find out, but I'm quite optimistic. Good intellisense relies on heuristics anyway, Nim's flexibility requires a few more of these, but since for instance the AST can be created without any symbol lookups at all, it all looks perfectly do-able. That said, I think eventually macros like 'class' need to be written so that they can deal with partially correct ASTs.
Fantastic, those were basically all the answers I was hoping for!
Ever more curious about Nim now :-)
Thanks!