Re: Jester memory usage keep rising using sqlite
Is this true with manual memory management as well, or just the built-in memory management and GC? Like, if you were to, say, manually allocate space to load and copy/resize a 20 megapixel photo, will the app continue to occupy 200 MB of RAM even after the memory is released by the app?
DOM bindings
Looks like there are no bindings for Canvas in the DOM package? I take it the DOM package was hand-written by someone? That's not the approach that most languages take - usually the (Interface Definition Language, IDL) specifications are parsed and compiled into interface specifications for another given language, e.g. Nim. The DOM API is a moving target - and if you're going to write a full-stack web-application with Nim, having a complete, reliable and (especially) up-to-date DOM API seems kind of important. Are there any practical reasons why IDL can't/shouldn't be parsed and translated to Nim, rather than (as I assume they were) hand-writing them?
Re: Installation on 64-bit Windows
> A Nim script to install Nim on a machine which doesn't have Nim on it? Well, a Nim program then - compiled executables can stand alone, right?
Re: Installation on 64-bit Windows
> there was no offense implied There was no offence taken really, I took it in good humor. I should have clarified "Ouch, thanks" with a > Any others? Why not a Nim script? Tools etc. are installed with Nim scripts. Seems "at hand"?
Re: Installation on 64-bit Windows
> I have yet to find a single programmer on Windows that acts this way Ouch, thanks. For the record, I have been programming for 30 years, professionally since the mid-80s - I can program in around a dozen languages, and have built some fairly big and complex systems over the years, so I do consider myself a _programmer_. But I grew up on languages like Pascal, Delphi, Modula-2, JavaScript, ActionScript and various Basic variants, and consequently learned from the start to count on languages and development-tools that work "out of the box", where you can focus on solving problems, rather than getting distracted by a lot of environment issues and manual setup. Growing up on said languages, I also never had any love or interest for languages like C or C++, where you have to get distracted by things like memory management and other low-level cruft. I think Nim holds a lot of promise for programmers like me - it appears to be a language with multiple "levels", kind of like Scala or Rust, where you can choose to program like I would program in Java or C#, where I don't have to get distracted by things like memory-management or threading issue, but where someone else who needs or wants to can go to more low-level features and manage memory etc. if they need to. Anyhow, whether it's a "setup.exe" or step-by-step instructions, for "idiots" like me who just want to try out the language and use it to solve problems, things surely could be improved. It shouldn't take hours for someone like me to get a working language and editor installation set up. Nim surely appeals to more "hardcore" programmers because of it's depth, but I think you have potentially a much larger audience among people who use more "humble" languages like PHP, JavaScript, Ruby, Go, etc. - all languages that even lazy Windows users can more or less click to install and dive in. I think Nim has the potential to compete with all of those. If we can figure out how to install it, haha
Installation on 64-bit Windows
On the download page, it says that the Windows installers "have some known issues and so will unlikely to be provided further in the future" \- and that "We now encourage you to install via the provided zipfiles", so I wanted to do that. So I decided to start fresh and removed my previous installation. There's a link to mingw-w64.org somewhere else on the page, but I could find no real instructions or recommendations on how or where to get a working GCC installation - especially not on their website, which lists dozens of distributions with different versions etc. and still no recommendation on which one to get. Somewhere else on the page, it says "GCC is recommended on Linux and Clang on Mac. The Windows installers above already includes a C compiler" \- but the Windows installers aren't recommended, so that's not very helpful. I finally decided on MSYS2, and found instructions on stackoverflow for installation: [http://stackoverflow.com/a/30071634/283851](http://stackoverflow.com/a/30071634/283851) I've never used MSYS2 - to be honest, I'm not completely sure I even understand what it is, or why I had to install it. It's like Bash for Windows, kind of like Git Bash? I also had to figure out where it actually installs the GCC binary, because it doesn't add the folder to the system path, so the GCC command could not be run from a normal Windows shell. Well, I finally have it working, I think - at least, typing "gcc -v" outputs "gcc version 6.2.0 (Rev2, Built by MSYS2 project)", so far so good, right? Unzipped nim and ran "finish.exe", and this is where I'm stuck - it says "No compatible MingW candidates found in the standard locations". However, if I try to compile something, it seems to work?? I type "nim c koch.nim" for example, it compiles, and emits a "koch.exe". Both "install_tools.nims" and "install_nimble.nims" seemed to fully compile and execute with the "nim e" command, so I'm not sure what the error-message from "finish.exe" is even about. Do I need to do anything else, or do I have a working setup now? If you want more Windows users to try nim, I really think you need to provide more complete installation instructions - it took me hours to get a working setup. You seem to assume that most users have a working C compiler setup already, which most Windows users likely do not. In fact, most Windows users will give up if you don't provide a working "setup.exe", because that's what we're used to. Most of us don't have or use (or want) command-line package managers - it's not really "a thing" on Windows. And yes, we're pampered that way - but most successful languages do ship with a "setup.exe" for Windows users, so that's just what we're used to. Either way, if you want us to install not only nim but it's dependencies manually, please do try to provide complete instructions.
Re: Love nim but at the same time starting to hate it...
FWIW, on our team, we ask developers to put as much documentation inline as possible - and only use external documents when absolutely necessary. The reason being simply this: documentation needs updates. When the code changes, often the documentation should too - and it's really easy to forget that, if the documentation for the code is in an entirely different system. If you weren't the original author, you might not even realize that external documentation exists. As part of our development process, during code review, we look for changes that require documentation updates - a pull request isn't merged until it's complete with documentation updates. It doesn't work 100% of the time, but it works pretty well - a lot better than the documentation for our old platform, which was located in an external system. IMO, information overload in the source code is a problem that can be managed - either by folding in the editor (which may increase the risk of forgetting to update the documentation!) or by writing smaller files, e.g. fewer members per file, which is usually a good thing either way. In my experience, external documentation always rots. Inline documentation has a better chance of actually receiving the maintenance it requires. Just my two cents.