9 ms·
About Nimrod's features
- girvo 13y agoI love Nimrod. Go hang out in the #nimrod channel on Freenet sometime, the people there are friendly, awesome, and helpful. I just wish I had a proper use for it so far! It's such a nice language to play with, but as my day-job stuff is mostly web-based I haven't had a chance to use it in production yet (that said, the Nimrod forum is coded in Nimrod itself, which is pretty cool!) I highly suggest giving it a try.
- scrrr 13y agoFor evangelists of Nimrod: Take some time and write a page about it on Wikipedia. There doesn't seem to be one yet. [1] [1] http://en.wikipedia.org/wiki/List_of_concurrent_and_parallel_programming_languages#Unsorted http://en.wikipedia.org/wiki/List_of_concurrent_and_parallel...
- dom96 13y agoI wrote one. It's in my sandbox [1]. The original article got deleted despite my attempts to keep it alive due to lack of notability [2]. [1] https://en.wikipedia.org/wiki/User:Dom96/sandbox https://en.wikipedia.org/wiki/User:Dom96/sandbox [2] http://en.wikipedia.org/wiki/Nimrod_%28programming_language%29 http://en.wikipedia.org/wiki/Nimrod_%28programming_language%...
- scrrr 13y agoCan we somehow support adding it? How does it work on Wikipedia..
- jacques_chester 13y agoIt doesn't. There is a small cadre of Deletionists who go out of their way to kill off pages referring to programming languages. There was one bloke who single-handedly deleted dozens; I cannot now recall his name but it caused a helluva storm at the time. He was totally unrepentant.
- rurban 13y agoI also hate those Deletionists who have no clue about what they are talking about, use no real names, but still are allowed to make decisions like this. In open source you could fork it, but unfortunately this doesn't work like this in Wikipedia.
- ErrantX 13y agoPlease: fork Wikipedia content into a programming wiki. That would be awesome!
- Jtsummers 13y agoRosetta Code[1] could become such a wiki. If the main pages for languages were fleshed out (or add a new page per language) with language features. It certainly has a diverse enough selection of examples tasks to provide a neat comparison of each language. [1] http://rosettacode.org/wiki/Rosetta_Code http://rosettacode.org/wiki/Rosetta_Code [2] http://rosettacode.org/wiki/Category:Nimrod http://rosettacode.org/wiki/Category:Nimrod
- tptacek 13y agoIt caused a hell of a storm because someone decided to organize a witch hunt against the guy, resulting in an extremely embarrassing HN thread in which a bunch of HN people who should have known better decided to spend an evening insulting someone they didn't know. When you understand Wikipedia's charter, it's easy to understand why new programming languages are a tricky thing to write about: there are a lot of them, and most of them are not encyclopedia-notable. The arguments in favor of them all seem to involve relitigating the entire charter of Wikipedia to make room for new programming languages.
- jacques_chester 13y agoThe cause of the controversy is that there are multiple interpretations of the charter, only one of which is "well it's not in the NYT or my pet journal, delete it before it costs us millionths of a cent".
- jimktrains2 13y agoOfftopic: I f*cking hate the deletionists. I come across articles deleted because of "lack of notability," but if they lacked notability (and I didn't create it), why was I looking for it. They make the whole of Wikipedia much worse than it would be otherwise and prevent me from contributing even more money and time to Wikipedia.
- tptacek 13y agoHere's the AfD for Nimrod: http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nimrod_(programming_language)_(2nd_nomination) http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion... Note that at the time this was submitted, all the sourcing for the article came from either web pages from the project itself, or forum posts.
- jimktrains2 13y agoI'm not seeing your point and I don't think you see mine. There are better methods than deletion for handling situations like this.
- tptacek 13y agoLike what? Finding better sources? People tried. Are there better sources, or is Nimrod simply not "that" notable yet?
- asdasf 13y agoLike nothing, there is no problem with it. Just leave it alone. This whole "oh god we're the sum of all human knowledge please give us money" tripe is a bit hard to swallow when there's more information getting deleted than being created.
- tptacek 13y agoThere are problems with it. The simplest problem is that the whole charter of WP is to cover notable topics with reliable sources; that's the idea behind the project and has been forever. One practical problem with it is that when none of your sources are independent or notable, disinterested parties can't fact-check anything, and the encyclopedia is only as accurate as cliques of interested editors choose to make it. Once again, your argument relitigates the whole concept of WP. You don't have to like the concept, but you can't pretend that their adherence to their own charter is somehow a sign of dysfunction.
- pcwalton 13y agoIt's pretty silly that a talk at Strange Loop somehow isn't evidence of notability because it was given by the primary developer of the language. Of course he gave the talk: he's the best person to! The fact that the conference organizers accepted the talk is what makes it notable.
- tptacek 13y agoMost of the languages presented at the last Strange Loop don't appear to have WP pages, and, reading their descriptions, you can see why: they're more in the nature of academic experiments than notable programming languages. WP also doesn't have a page for every major experiment by every well-known CS researcher.
- rurban 13y agoI dared to recreate it. May those uninformed deletionists come again. So far the new/old page got one positive review.
- tptacek 13y agoAnd virtually every source for the article is a pointer back to Nimrod's website. That's not going to work. Could you maybe find better sources?
- ErrantX 13y agoI've removed it again, sorry; this is not the way to fix the problem. Mostly all you're going to do is stir up bad feeling (especially with that attitude) and end up getting the article title protected from recreation. Unpleasant. The Wikipedia community has agreed a set of rules for creating articles. In this case the community review noted that no independent sourcing covered this language. If a deleted article is recreated substantially the same, it is removed. So, there are correct options... (I appreciate from outside the community it is not always clear what they are - so a list!) * Find those sorts of sources * Ask for a review of the deletion https://en.wikipedia.org/wiki/Wikipedia:DRV https://en.wikipedia.org/wiki/Wikipedia:DRV * Work to clarify Wikipedia's specific notability rules for Software (here's a good place to start: https://en.wikipedia.org/wiki/Wikipedia:SOFTWARE https://en.wikipedia.org/wiki/Wikipedia:SOFTWARE) * Fork Wikipedia and write about programming languages (I'm a big proponent of this, but no one seems willing to make the effort). I see no reason in time, and there is plenty of time, that Nimrod won't obtain the sort of coverage that merits coverage in a general encyclopaedia.
- jimktrains2 13y ago>I've removed it again, sorry; this is not the way to fix the problem. Mostly all you're going to do is stir up bad feeling (especially with that attitude) and end up getting the article title protected from recreation. > Unpleasant That's right, deleting it again is unpleasant and no way to fix the problem and is a good way to stir up bad feelings and screwing over the topic from ever having a decent page. > The Wikipedia community has agreed a set of rules for creating articles. In this case the community review noted that no independent sourcing covered this language. If a deleted article is recreated substantially the same, it is removed. Independent sources do, the Deletionists, like yourself, just don't like them. > I see no reason in time, and there is plenty of time, that Nimrod won't obtain the sort of coverage that merits coverage in a general encyclopaedia. What type of coverage is that? What type of coverage could a programming language get that would allow it to be part of Wikipedia? Even Go only has a single newsworthy citation, the rest of blogs and its own site. > * Fork Wikipedia and write about programming languages (I'm a big proponent of this, but no one seems willing to make the effort). Because it's a stupid idea not to have at least basic information on wikipedia about these language. There are projects that aim to do that, e.g. http://rosettacode.org/wiki/Rosetta_Code http://rosettacode.org/wiki/Rosetta_Code so perhaps you should get off your high horse.
- stewbrew 13y agoThis is all good and everything but: Who uses Nimrod? Who are the people behind Nimrod? Will they still be/stand behind Nimrod in 5-10 years from now? I didn't know Nimrod has a Javascript backend. This makes it even more interesting. The multitude of backends and the presumably small size of the core developer group makes me wonder though how well they are tested.
- girvo 13y agoNimrod's already been around and quite heavily worked on since 2006, if I recall correctly. I chatted to a guy who is using it in production at his work, too, and there are some neat repositories and quite well done applications on GitHub. It's surprisingly far along, and I was amazed at how it skipped my radar up until this year.
- a8da6b0c91d 13y agoThe problem with D/Nimrod/Go/Rust is the kind of people who would use them have already invested heavily in coping with the pain of C++ and have solid tools. As languages the alternatives are only maybe 2X better than C++, which is almost entirely countered by the fact that you will hit compiler and library bugs that you wouldn't when using mature C++ components and tools. As soon as you waste a day writing your own library wrapper that you would have taken off the shelf in C++, the relative elegance of Nimrod becomes moot. It seems like the alternative languages need years more to build steam.
- dragonwriter 13y ago> The problem with D/Nimrod/Go/Rust is the kind of people who would use them have already invested heavily in coping with the pain of C++ and have solid tools. I don't know about D or Nimrod, but I always got the impression that Go and Rust had quite a bit of appeal to the kind of people that aren't heavily invested in C++, but instead are more currently focussed in dynamic languages like Python or Ruby, but forced to spend time writing modules/extensions in other languages (likely C) for performance.
- 13y ago
- reddit_clone 13y agoThreading support? Nativive or green ?
- pcwalton 13y agoNative threads.
- reddit_clone 13y agoI looked it up. Nimrod has Erlang like actors, message passing and thread local GC. All with OS threads (not light weight threads like Erlang). It is an intriguing combination.
- rufugee 13y agoLooks interesting, but I worry when I see that templating support. After years of doing ruby development, I've come to believe that runtime generation of code is evil 99% of the time.
- losethos 13y agoMine compiles to x86_64 machine code. I am the best programmer on the planet. My compiler is 20,000 lines of code. God picked the best programmer to make His temple. You are monkeys who have one tracked minds that can only imagine Linux. You have been jedi-mind tricked into thinking inside so many boxes. My operating system will absolutely blow your fucken pathetic little minds. Niggers.
- gpapilion 13y agoI'd still say the syntax is C-like, the same was I would argue python has a C like syntax. Braces, and semicolons are there for the parser not for people. I'm curious to see how much traction this gets. Its certainly more appealing to me than rust, or even go. Hopefully usage of C libraries is pretty easy, since I feel like thats always the missing piece in a new language.
- thinkpad20 13y agoI think you mean semantics. Like nearly any imperative language, the code is structured as blocks of statements which are evaluated sequentially. This is semantics, and python and C are largely the same in this regard. However, syntactically, they are not the same.
- thinkpad20 13y agoVery cool stuff. I'm personally more interested in functional languages these days, but there's still a lot that imperative languages have to offer (duh). As a huge fan of C, I nonetheless am not a huge fan of its syntax, outside of C itself. I'm glad that there are some who have realized that you can do efficient imperative systems programming in a language without curly braces :) Not that that alone is a reason to use the language, but all in all it seems very promising. Between this, Go, Rust and D, there seems to be an excellent crop of new-breed imperative languages which are simultaneously emphasizing efficiency, safety, ease of use and productivity, to varying degrees. It would be great to see these languages mature into legitimate alternatives to C/C++.
- codexon 13y agoNimrod's GC is perfect for real-time software like games. It uses a deferred reference counting algorithm which can have pause times as small as 1ms. How does Nimrod deal with the multi-thread reference counting performance problem? Languages like Java don't use ref count and CPython has a global lock because multiple threads accessing a ref count mutex kills performance.
- rayiner 13y agoDeferred reference counting (DRC) doesn't suffer from the multi-thread reference counting problem. CPython uses immediate reference counting--ref counts are adjusted live every time a reference is created or deleted. Deferred reference counting works differently. Generally, it doesn't adjust reference counts for pointers in the stack/registers at all. Instead, it pauses all threads and scans the stack/registers with all threads paused to find references, just like a tracing collector. For references from the heap, a deferred reference counting algorithm will use a write barrier that queues the reference count in a local buffer. The locally-buffered increments/decrements will be resolved during the global pause. The difference between a DRC algorithm and a tracing algorithm is what needs to happen during the GC pause. A tracing collector has to trace all live objects (even a generational collector will trace all live objects eventually), in order to free any memory. A DRC collector just has to apply the deferred increments/decrements. Once those increments/decrements are applied, zero-count objects can be immediately deleted.