Live data from Hacker News

Prologue: A web framework written in Nim

github.com

31–40 of 72 posts

Re: Prologue: A web framework written in Nim

#31
post #3

I guess all roads do lead to Prolog. Why risk the naming confusion? Doing a search for "prologue language" yields millions of Prolog results on both DDG and Google.

I think none mentioned here the fact that prolog and prologue are two different words.

Prolog is a made up word, an abbreviation for "programmation en logique". Prologue means the introductory part.

So why the confusion? I believe prolog is an excellent name for a logic PL and prologue is too for a web framework. Why change it?

https://en.wikipedia.org/wiki/Prolog#History

Re: Prologue: A web framework written in Nim

#32

Not the most relevant point, but those commit messages don't inspire confidence :/ E: I do like it, though. Don't want to bash on the project for no reason, just would prefer it if the maintainer tried to have better commit messages!

I agree. I have absolutely no idea what was changed in most of those commits. If I relied on this framework it would be a pain in the * to trace down when a potential bug was introduced, or to just get an overview of what's being worked on.

Re: Prologue: A web framework written in Nim

#33
post #3

I guess all roads do lead to Prolog. Why risk the naming confusion? Doing a search for "prologue language" yields millions of Prolog results on both DDG and Google.

I think none mentioned here the fact that prolog and prologue are two different words. Prolog is a made up word, an abbreviation for "programmation en logique". Prologue means the introductory part. So why the confusion? I believe prolog is an excellent name for a logic PL and prologue is too for a web framework. Why change it? https://en.wikipedia.org/wiki/Prolog#History

Also it's not the first time I get garbage results from google's fuzzy matching, happens with other words too. Arguably it's annoying and should be improved instead.

Re: Prologue: A web framework written in Nim

#34
I've been following Nim for a while now (including back when it was called Nimrod), but the big reason I've never dug much more into it is because it repeats the Billion Dollar Mistake[1] of allowing values (yes, not all values, but important ones) to be nil without explicitly using Option types.

It's disappointing that Nim has not (perhaps cannot, for backwards compatibility) learned the same lesson here that most other modern languages have, and used explicit nilability embedded in the type system.

And to preempt the argument that "you can't, for performance reasons!", you could do the same thing as Rust does and explicitly opt-in to having your code break if something is nil, via a call like `.unwrap()` which the compiler may optimize away.

[1] https://www.infoq.com/presentations/Null-References-The-Bill...

Re: Prologue: A web framework written in Nim

#35

NIM really is a full stack language and ecosystem. It has a first class compiler to JavaScript (though, I admit, I don't know how tuneable it is, so I think it just compiles down to ES5, it'd be nice to do a differential build where it would compile down to ES5 and/or ES2015/ES2016 at the users discretion) Only thing it needs now is a compile to CSS solution and you would never have to leave the language. Its a very…

Not to harp too much on your nitpick of the syntax, but I'm curious why `#[]` rates as more attractive to you than `{..}`? To me they are equally utilitarian, and I can't figure out why one would be strongly preferable.

That said, I do find the placement of Nim pragmas to be cumbersome, resulting in really long lines or awkward line breaks. I wish we could place the pragma declaration on the line before procedures.

  proc callme(formatstr: cstring) {.exportc: "callMe", varargs.}

Re: Prologue: A web framework written in Nim

#36

I've been following Nim for a while now (including back when it was called Nimrod), but the big reason I've never dug much more into it is because it repeats the Billion Dollar Mistake[1] of allowing values (yes, not all values, but important ones) to be nil without explicitly using Option types. It's disappointing that Nim has not (perhaps cannot, for backwards compatibility) learned the same lesson here that most o…

https://nim-lang.org/docs/options.html

Re: Prologue: A web framework written in Nim

#37
post #32

Not the most relevant point, but those commit messages don't inspire confidence :/ E: I do like it, though. Don't want to bash on the project for no reason, just would prefer it if the maintainer tried to have better commit messages!

I agree. I have absolutely no idea what was changed in most of those commits. If I relied on this framework it would be a pain in the * to trace down when a potential bug was introduced, or to just get an overview of what's being worked on.

I was trying to track down a problem in the nim-lang/Nim repo, and had a similar impression. During a `git bisect` run I thought I'd made a mistake as I saw duplicate messages pop up, until I realised there are an enormous amount of duplicate messages in the repo.

A lazy scan right now shows over a hundred "make tests green again", a dozen "fix(up|)", handful of "WIP", etc. And beyond that a huge chunk are just "update ". Even with ~20k commits you can catch duplicates in a single unlucky bisect session.

I think I've come to the conclusion that /we/ in this subthread may be the problem though. Loads of projects are like that, and hardly anybody else cares. I suspect it just depends on how you are treating your VCS; I think it tells a story, others seem to think it just a snapshotting tool.

Re: Prologue: A web framework written in Nim

#38

I've been following Nim for a while now (including back when it was called Nimrod), but the big reason I've never dug much more into it is because it repeats the Billion Dollar Mistake[1] of allowing values (yes, not all values, but important ones) to be nil without explicitly using Option types. It's disappointing that Nim has not (perhaps cannot, for backwards compatibility) learned the same lesson here that most o…

https://nim-lang.org/docs/options.html

The real question is: how much of standard libraries and broader ecosystem use them? Scala has null values, but broad usage of Option and Either so I can often write code as if null didn't exist.

Re: Prologue: A web framework written in Nim

#39
post #22

Earlier quoted context omitted.

This project isnt a language, it's a framework. Searching "prologue framework" or "prologue web framework" returns this repo as the first result.

But is is confusing if you know what Prolog is. Real world example: Once there was a new browser from Mozilla called Firebird. There was also a previously established RDBMS called Firebird. No one believed the browser and the RDBMS would be confused, but none the less Firebird the Browser is now called Firefox. The reason is a little confused - Mozilla at the time claimed something like "Firefox was only the code nam…

> Edit: also, searching for "prolog web framework" gets you stuff about using prolog for web application development. So, yeah, naming is not great and your assertion is not entirely correct.

Is this a typo? I would certainly hope that a search for "prolog web framework" would not include results about a web framework written in Nim named "Prologue"

"Prolog" and "prologue" are completely different words with different meanings-- they are only homophones. It's not really analogous (at all) to the Firebird situation where the names of the projects had the exact same name, same spelling and all.

If this project were named "Sea", do you think people would conflate it with the "C" programming language?

Re: Prologue: A web framework written in Nim

#40

I've been following Nim for a while now (including back when it was called Nimrod), but the big reason I've never dug much more into it is because it repeats the Billion Dollar Mistake[1] of allowing values (yes, not all values, but important ones) to be nil without explicitly using Option types. It's disappointing that Nim has not (perhaps cannot, for backwards compatibility) learned the same lesson here that most o…

> ... allowing values (yes, not all values, but important ones) to be nil ...

What!? What that even means? Value types can't be nil in nim-lang, these are always initialized, but you can use Option[T] when you need it.

If you mean reference types (`ref`) hopefully this PR will land soon https://github.com/nim-lang/Nim/pull/15287.

Post reply on HN