I would like to start a discussion about the virtues of 
[dogfooding](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) within the 
Nim community.

This comes in response to [a comment on 
reddit](https://www.reddit.com/r/nim/comments/7smw81/nim_future/dt7xmab/):

> "For god's sake use something like discourse for forums. Current forum does 
> not leave a good impression to users, is not comfortable to use and is barely 
> working. I understand dogfooding philosophy, but Nim is system's programming 
> language. It is awesome nim can be used to build websites and some websites 
> built with Nim should definitely exist. Like say nim sandbox or paste site. 
> Making forum with bare-minimum functionality and dropping it on your 
> community is a mistake if you are not going to develop this forum into a 
> product that could compete with already established solutions. And frankly - 
> people want you to develop Nim, not a freakin forum. Please "

**I couldn't DISagree more!**

I've always mentioned [nimforum](https://github.com/nim-lang/nimforum) as a 
major accomplishment; that, **despite being relatively new, Nim already 
self-hosts a fully functional message forum!** It is a demonstration of how 
easily something like this can be built in Nim.

[Dfeed](https://forum.dlang.org/help#about) also deserves a positive mention, 
but message forums in other compiled bare-metal ["system(s)" 
languages](https://en.wikipedia.org/wiki/System_programming_language) (ex. 
[muro](https://github.com/OUISRC/muro), 
[gobb](https://github.com/stevenleeg/gobb)?, ...?) are well behind. (Please 
correct me if I missed something.) What does it say about Rust, Swift, Julia, 
Haskell, Crystal, etc if, despite being more popular, they _still_ don't have 
an equivalent of nimforum?

I don't like RST, but, that aside: **This forum is fully functional, 
comfortable, free, and usable from all browsers**. The 
[latter](https://meta.discourse.org/t/discourse-shows-blank-page-when-javascript-is-partially-blocked/29543)
 especially cannot be said about Discourse. I am going to post this message 
from w3m (a text-only console browser) just to prove this point! 

"Dogfooding" is an example of deferred gratification, avoiding the easy path in 
order to accomplish much more in the long run. It encourages you to spend more 
time "being the driver" rather than a passenger, investing into creating and 
improving rather than following others. And it's not like we're reinventing the 
wheel: the existing solutions are very far from perfect!

I think the free Web software that is popular today (WordPress, MediaWiki, etc) 
is only popular because of momentum, starting at a time when languages like Nim 
were not yet around. Discourse is an especially clunky piece of software with 
dozens of dependencies (both inside and outside of Ruby gems), which means more 
of a security attack surface. Nim Web apps, in contrast, can run from a single 
jailed static binary. And of course: Ruby / Rails [doesn't 
scale](https://www.quora.com/Why-did-Twitter-move-away-from-Ruby-on-Rails).

Lastly, as an advocate of _genuinely free_ software, I can't avoid mentioning 
that nimforum is fully [copyfree](http://copyfree.org), which cannot be said of 
[the more established forum 
packages](https://en.wikipedia.org/wiki/Comparison_of_Internet_forum_software), 
also noting that PHP and some other dependencies have more restrictions. 
(Discourse itself is GPL.)

If I wanted to start my own Web-based forum for whatever reason, I would use 
nimforum as the base. When the count of developers who use Nim goes from 
hundreds / thousands to millions, I'm sure there would be lots of nimforum 
forks adding whatever bells and whistles that people want to add.

I would highly encourage the Nim community to **take "dogfooding" further**, 
especially in creating independent Nim-centric alternatives to "the new 
Microsoft"s - proprietary giants like GitHub, Reddit, Twitter, Facebook, etc... 

Reply via email to