Hello, everyone!
I am a Javascript developer doing mainly network programming with Node.JS, I start in various projects like web api, private servers dofus, minecraft
A few months ago, I took an interest in Nim and opened a ticket to try to help his popularity on their forum : https://forum.nim-lang.org/t/4799#30067
The concern was the ecosystem, I can't find many libraries to do what I would like, for example there really isn't an official web framework and the age of the language is not for me a sufficient reason, just see Julia, the Genie framework exists and yet Julia is also recent!
Today, I heard about version 1.0 and a rise in popularity, so I would like to reinstate myself in Nim
Do you think Nim can go beyond languages like Go? I mainly want to do network programming and the standard Go library is perfect for this task, and for Nim?
Thank you all for your answers
I can't speak about web framework but at Status (Nim's main sponsor), we live and die with network programming. We are building a decentralized ecosystem with a focus on the infrastructure side, messaging at the moment but addressing storage is planned.
Most of the backend codebase in production is in go but we are discussing replacing parts in Nim. And all our code is open-source: https://github.com/status-im?utf8=%E2%9C%93&q=&type=&language=nim
Anyway that means that there is an active company with strong incentives to make network programming in Nim a happy story.
I also get paid to work on web project in nim. I use nim server through C side and nim client side through JS.
I abandoned REST a long time ago when I was still doing Node. I have using websockets (https://github.com/treeform/ws) with JSON payloads to comunicate between client and server. I use Postgres as a database (https://github.com/treeform/pg). Its a much better system.
For the front end I made my own UI library. (https://github.com/treeform/fidget)
As nice as the project website looks, I'm honestly a bit confused about the license, which is linked from the website.
If I understand correctly, according to the open source definition the license isn't an open source license despite what the project website says. If I'm not mistaken, there seems to be a conflict of the license point 4 ("Restrictions") with points 5 and 6 of the open source definition.
Generally, it allows any non-commercial use, and for commercial individual/team use, and not corporate use; and generally allows modification and distribution. Seems quite not bad.
The definition of open source at opensource.org seems to be quite restrictive; by common sense, sources are open, if just are freely accessible, in the original, non-obfuscated form.
The definition of open source at opensource.org seems to be quite restrictive; by common sense, sources are open, if just are freely accessible, in the original, non-obfuscated form.
In this case common sense is not correct. Making sources available online does not provide legal rights to use the code, or to claim authorship or guarantees that the rights will not be revoked in future, or protections against patents & so on.
Well, then... call that "not-legally-usable-for-some open source" :).
Or "with restrictions". Though seems the only restriction about the sources themselves is "You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation.". That shouldn't be an obstacle? And other restrictions are about software use, not sources.
Still: you can use the thing, and if you dislike something in it or miss something, you have ability to modify/implement that. Yet you can get inspirations in it, and even just copy-paste from it. So, sources are open?
Yet take this particular example: you can obtain the sources just now even absolutely "legally", if you're so concerned; adapt to your needs; and build a web-site with it for yourself, and for somebody (even for money). So, even, "legally open" source for this case?
Even if someone's desired use is not allowed, it's still that use "not legal", not sources "not open". You won't claim a shop to be closed, just if it doesn't hand out goods for free. :)
And the definition at that site rejects this case, on ground that some uses of this software are not allowed. But 1) this has nothing to do with sources being open, 2) most typical uses are allowed, 3) even those, who cannot use it as they wished, still are allowed to get sources, modify, compile, all that. So, does not that definition define something very different, than being "open source"? Being much more restricted/specific as a definition?
Thanks for your extensive reply!
I think I see where our misunderstanding comes from. As I understand, you're seeing the term "open source" literally from the perspective of an individual user. In contrast, my perspective is that of a software maintainer picking a license for their publicly visible project.
When it comes to open source licenses, I assume most people would expect that they comply with the open source definition of the Open Source Initiative. The term "open source" in the context of software was hardly used, if at all, before the term was agreed upon by a meeting in 1998.
Now, if a project picks a license and announces its software as "open source", I (and many others) would expect that the license complies with the open source definition, even if technically it doesn't have to. If this expectation isn't met, this comes across as false advertising. Again, I don't expect this thoughtfulness from a regular user of the software, but I usually expect it from developers picking a license for their project.
Don't get me wrong, I believe the maintainers of the project have the best intentions about this license. My point is only that advertising the project as "open source" is quite misleading.
Because most of the linked pages are unmaintained. TLDR is pretty maintained sin people can contribute to it.
Licenses are restrictions.
You have licenses like WTFPL which mentions no restrictions, then software is Proprietary for the law.
Just like a software with no license is proprietary too for the law.
Unlicense which claims to be the no-license license is another example that makes your software proprietary.
Open/Free Source are commercial by definition.
NimWC is free open source software.
License was open for public discussion of everyone.
https://github.com/ThomasTJdev/nim_websitecreator/issues/111#issue-460490111 and linked.