1. 6

    Coming from Python, the language is really fun to use: it feels like scripting.

    I wish I could find a use case for Nim at work ! I hope some good folks will improve the quality of the HTTP stack in the standard library :)

    1. 4

      My potential use case is where Python scripting simply does not have the raw performance needed, including when Multiprocessed.

      I have a lot of ETL scripts that do relatively simple text transforms. Ported a few to Go, but a faster “scripting” environment would be very useful. I spend a lot of time in Python, but not enough in Go where I can switch back and forth quickly.

      Of course this won’t apply when dependent libraries don’t have Nim equivalents.

      1. 2

        I have wondered about this use case as well. It looks like you could integrate nim into an existing python codebase with nimpy pretty easily. Unfortunately, management are pretty conservative about which languages are allowed where I work so I doubt I’ll be getting any practical experience with this approach any time soon.

    1. 12

      Am I the only one who hates Snap (and Flatpak) for the simple reason that their main objective seems to be to wrestle control over software availability from open-source maintainers/packagers to the (proprietary) producers of the software?

      In that regard, Snap/Flatpak have zero things I want and everything I don’t want.

      Those who want to ship software without the additional bit of scrutiny added by repository packagers can fuck right off, at least on systems under my control.

      1. 4

        If you’re going to run proprietary software, I’d rather install it with snap than a packed shell script that does god knows what.

        1. 4

          As a producer of open source software (published on github), I hate Snap for a different reason. It looks like Canonical wants to wrest control of software availability from the producers to themselves, breaking the link between the user and the producer of the software. The Snap store is closed source, and software can only appear on the snap store with Ubuntu’s permission, under their conditions. Flatpak looks better because it is a fully open source ecosystem and software producers can run their own flatpak stores, or serve app binaries directly out of a git repository that they control.

          As a user, I hate snap because I have no control over sandboxing or updates. It feels just like the toxic relationship that Windows users have with Microsoft software updates. I haven’t tried Flatpak. I like appimage as a way of distributing binaries directly between users and producers, cutting out middlemen.

          Those who want to ship software without the additional bit of scrutiny added by repository packagers can fuck right off

          You can fuck right off yourself. There are millions of projects on github, including a lot of super niche and specialized stuff that interests me but probably will never appear in repository packages, due to a shortage of independent 3rd party repository packagers to package all the stuff I’m interested in.

          1. 2

            It is a problem when snap inserts itself into the install process: https://ubuntu.com/blog/chromium-in-ubuntu-deb-to-snap-transition

            Having snaps as an option is not a problem. But using them should be a specific choice, not a shadow install from apt.

            1. 1

              I can agree to a certain extent. Not a fan of Snap at all.

            1. 19

              This article is a bunch of concept name-dropping and strong but unsupported assertions without a lot of explanation. It was hard to tell whether any of the explanations were correct because none of them were precise enough to be falsifiable.

              For a much better explanation of categories, see Category Theory for Programmers.

              1. 4

                The author has published versions three distinct version of that for Haskell, Scala, and Ocaml. Very nice.

              1. 7

                This is some tremendous clickbait holy shit. I have no idea what point this article makes because I’m not going to click anything with a title like this. It’s at the same level as something like “10 crazy things you never knew about Linux”.

                1. 4

                  Submission of an article like this is a good way to get informed contrary opinions for those who may have the benefit of enough domain knowledge to spot the mistakes. There were no comments on HN at the time of this posting, but within 12 hours some very good response here.

                1. 5

                  I used Scala a bunch at Apple, and then my current teams use it. I really find it grating, for the same reason I find C++ grating – it is just a giant pile of stuff without a clear through-line, and it encourages all kinds of nasty shorthand. It is almost perfectly designed to irritate me, but since I’m just a Mr Manager Person now, and no longer expected to generate it, I can accede to my team’s desire to use it.

                  But I’d never recommend that anyone start a new project with it.

                  1. 1

                    I counter that as a manager, you have more of a responsibility to identify and defuse team-draining issues than the individual contributors do.

                    1. 1

                      This is true, yes. I am comfortable with the team’s usage of Scala (lots and lots of Spark), and the team is comfortable with the insanity. I just stay the F. away.

                      1. 1

                        Ah, Spark is one of those nagging reasons to use Scala that’s hard to avoid when you need it. You have my sympathies. Please try to maintain space for the non-Haskell developers on your team, or you may find them running for the exits before too long. Speaking from experience.

                        1. 1

                          Yeah, it’s sort of the lingua franca. Happily, my people are more into Spark than they are into Scala, so I’m not that worried that some of the horror will creep in.

                          1. 1

                            Noting that PySpark lags Scala in the Spark API in some areas, is Python a viable option where Scala is troublesome in your case?

                  1. 1

                    Is there yet something like GraalVM that’s actually open source, not controlled by Oracle, and possible to build yourself?

                    1. 1

                      It’s an Oracle project, but the source is available: https://github.com/oracle/graal

                      1. 1

                        Have you tried building it from source? Without any Oracle provided binary? Last time I tried, I failed.

                        1. 1

                          Looks like source builds are dependent on JVMCI, so the source tree is all Oracle.

                    1. 1

                      What is the advantage to a workflow like this, vs running tmux on the host?

                      1. 2

                        It’s hard to talk in terms of advantages; they are just different. One is very dependent on keybindings; the other can be invoked, say, programatically. But the choice for one or another is down to personal taste.

                        1. 1

                          The programatic approach as a differentiator makes sense. Tmux is mostly habit for me, having memorized the basic keybindings.

                        2. 1

                          I like dtach/abduco because my terminal emulator already does everything tmux/screen does, all I need is detachable processes, especially on remote connections. Although I can’t help but wonder why it’s so difficult to un-disown (adopt?) a job on Unix. I remember using reptyr to lasso a nohup job gone wild in production.

                        1. 3

                          My initial reading of this was: “christ, it’s been demonstrated to be airborne?”

                          That’s an interesting topic: if you read things published by CDC virologists it’s always “not a chance” but the USAMRIID virologists aren’t so sure.

                          Glad to hear I mis parsed the title so badly. Airborne Ebola would be a very bad thing indeed.

                          1. 2

                            if you read things published by CDC virologists it’s always “not a chance” but the USAMRIID virologists aren’t so sure

                            Is this a case of politics (fear) overriding study data?

                          1. 3

                            Spoiler: Stick with stdlib until you really, really need to go elsewhere. Happy to see I’m not the only one who came to this conclusion.

                            1. 1

                              That approach could be applied to most scenarios, correct?

                            1. 3

                              As a big user of and advocate for MongoDB, I initially upvoted this before reading it, because I expected it to be an article about how MongoDB has stagnated and will get its lunch eaten by more interesting and reliable alternatives.

                              Instead, it was a pretty empty “don’t worry they’ll all come crawling back to PostgreSQL someday” article. Of course PostgreSQL will keep going and support more document-store like features. SQL isn’t dying – it’s just losing its role as the Hammer for everyone’s Nail. Now we have more tools. People are not being duped by MongoDB or other NoSQL databases, they’re just finding that it’s a helpful tool in their arsenal.

                              1. 1

                                People are not being duped by MongoDB or other NoSQL databases

                                There are some, but the term “duped” might be a bit harsh. Its easy to find posts about projects that jump completely into the NoSQL pool, and find that is does not solve all their problems. The resolution is often a mix of data storage platforms that fit different workloads.

                              1. 2

                                Has the idea of a minimum rep to be able to downvote been considered?

                                Downvotes are a way for the community to self maintain. Minimum rep would keep the mechanism of “cleaning by community” in place, while requiring some level of constructive participation before being able to affect other posts.

                                1. 2

                                  It was by account age before (and still is for comment downvoting) but from what I recall, a lot of the users downvoting things with “poor quality” that probably shouldn’t have were users with enough karma to otherwise do so.

                                1. 1

                                  “One question begged of Big Data has been – is anybody actually handling data big enough to merit a change to NoSQL architectures?”

                                  1. 1

                                    I think part of the issue is that the volume (aka size) is only one of the 4 Vs. I would think that the velocity will end up having more of an impact on the architectures because of how some of the consensus algorithms end up working (well…velocity in combination with distribution (think transatlantic / transpacific) in combination with volume (larger clusters)).

                                  1. 2

                                    We used Erlang at my workplace until recently. I have to say I don’t really mind it, I pretty much agree with most of the criticisms that have been levelled at it (strings as lists of ints…, et. al.), but overall I was happy with it. The things it does well, it does really well.

                                    1. 1

                                      The things it does well, it does really well.

                                      Is there a list of these things somewhere?

                                    1. 1

                                      The first thing I thought that tag might refer to was http://rstatd.sourceforge.net.

                                      Why not “statistics”?

                                      1. 1

                                        Perhaps, but it is worth considering that R and statistics have partial overlap. Not all statistics discussions are about R, and in some cases R is used for things like graphing and data parsing.

                                        Perhaps there is a need for both tags.

                                      1. 2

                                        Oh, a challenge! :) Even the C like C++ version was still using std::string, which is slow. I attached a faster version to a github issue if anybody is morbidly curious.

                                        1. 1

                                          I am. Which github issue?

                                            1. 1

                                              Ah! Part of the article I posted. facepalm

                                          1. 7

                                            Why does everyone keep saying Go has C-level performance? The latest Alioth benchmarks indicate that it is only about half as fast as C. http://benchmarksgame.alioth.debian.org/u32/go.php

                                            And the part about Go being faster than Java is certainly not true. Java blows Go out of the water in certain benchmarks. http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=java&lang2=go&data=u32

                                            There are a lot of reasons to like Go, and it is pretty fast, but it’s still not “within a close margin” of C’s performance.

                                            1. 2

                                              We’re on a logarithmic scale, and there are clusters. Looking at the Mandelbrot results, you can see one cluster with most members at around 50× slower than C (Smalltalk, Lua, JRuby, and PHP, with Python and MRI Ruby as outliers on the slow side, and HiPE as an outlier on the fast side) and another cluster between 0.9× and 3× as slow as C (C, Ada, Java, C#, Haskell, Dart, and barely SBCL). Go is definitely in the “C-level” cluster and not the “PHP-level” cluster.

                                              1. 2

                                                Why does everyone keep saying Go has C-level performance?

                                                Probably because we each have a different perspective. For example, I can understand the “within a close margin of C’s performance” moniker if you’re moving from a language that is 40x slower to a language that is 2-4x slower. You may think that 2-4x slower is not a close margin, but someone else might. Depends on what you’re doing I guess.

                                                1. 2

                                                  Exactly. Coming from Python, Go gives me a set of performance options with lower effort than I would have to invest if I was to use C instead.

                                                  1. 2

                                                    I suppose the “close margin” is open to interpretation, but saying that Go is “closer to the performance of native languages than other enterprise level languages such as Java, Scala, Erlang et al.” is clearly untrue. Erlang is slower than Go, but Java and Scala are both faster than Go in certain benchmarks. On that note, Haskell, OCaml, and SBCL are also faster than Go at some benchmarks. That’s why I think saying “Go has C-level performance” is a bit disingenuous, since a lot of other languages have similar or better performance.

                                                    1. 2

                                                      The phrase “native languages” doesn’t even make sense. How is go not a native language itself?

                                                      1. 1

                                                        You know, it’s possible to disagree with people without accusing them of dishonesty, which is what you are doing when you call them “disingenuous”.

                                                        Unfortunately, I can’t downvote you for extreme rudeness; the closest options are “troll” (which would imply that you’re being disingenuous, which I have no reason to believe) and “spam”. So I’ve chosen “spam”.

                                                  1. 1

                                                    I’m seeing a github 404 at this address.

                                                    1. 1

                                                      URL changed, and I can’t seem to edit now. Posted in a top level comment.

                                                      1. 1

                                                        I’m not sure what the etiquette is, but you may want to delete and resubmit.

                                                        1. 1

                                                          Its been too long it seems, I could not delete or edit. I would resubmit otherwise.