News for hackers. Stuff that matters.
Re:Go hits the concurrency nail on the head by CydeWeys on Thursday October 04, 2018 @01:51PM (#18142045)
I've found that being mainstream is the most important factor in choosing tooling. Being mainstream has incredible advantages. It means you're going to find lots of help, resources, answers to questions, sample code, and high quality and well maintained libraries.
Re:Go hits the concurrency nail on the head by cube2222 on Thursday October 04, 2018 @02:01PM (#18142115)
It's the only thing really holding me back from going more into Rust.

At the same time, there is a sweet spot in popularity, when there is a very good quality/noise ratio in the library ecosystem, I'm not sure though, if rust's there at the moment.

Re:Go hits the concurrency nail on the head by XorNot on Thursday October 04, 2018 @07:17PM (#18144495)
Losing static compilation, Go-style, holds me back from Rust. The sheer number of platforms I can target with Go without doing anything special is amazing, whereas Rust forces me down the libc merry go round again.

A reliable recipe for 0 dependency Rust binaries so long as I stayed in the Rust ecosystem would be a good motivator to use it.

Re:Go hits the concurrency nail on the head by steveklabnik on Thursday October 04, 2018 @07:23PM (#18144516)
As long as you’re on Linux, it’s quite easy to use MUSL. Other platforms don’t offer something comparable, so we’re kinda stuck.
Re:Go hits the concurrency nail on the head by mirceal on Thursday October 04, 2018 @04:08PM (#18143227)
I'm sorry but that argument does not hold much water. Any developer with [maybe] the exception of people fresh out of school can and should be able to learn new things. Fast. On-the-job. If you really believe that you're going to use X because it's mainstream and really popular and be okay you're kidding yourself. Also, as you grow older, you learn to see the matrix and appreciate new things that come along when/after you use them and are able to see how they are better or worse iterations on ideas that were already out there.

Also to answer your comment directly. Being mainstream != lots of help, resources, answers, samples, high quality/well maintained libraries. Being mainstream means that a lot of people have heard about you and a lot of people try using you / pick you up. Sometimes mainstream things do get to that place, sometimes you find yourself in an immense "the emperor has no clothes" ecosystem where everyone wants to use X because it's the cool/hot new thing. If you don't understand what the tool you want to use is good for and you forge ahead, most of the times, you will have a bad time.

Re:Go hits the concurrency nail on the head by int_19h on Friday October 05, 2018 @08:24PM (#18152774)
> If you really believe that you're going to use X because it's mainstream and really popular and be okay you're kidding yourself.

Actually, if there's anything that someone fresh out of school learns in the industry, is that you do use things that are mainstream and really popular (in the particular niche you're targeting), because that's what your colleagues and management expect.

OTOH, when people come and say, "we'll rewrite this in X - it's the hot new thing, and it can do it all so much better, so don't worry about IDE support etc!", and push it through, the usual consequence 3-5 years later is a bit-rotting codebase that is hard to work on and maintain, because the people who pitched it have moved on, the tooling was never great and now doesn't even see bug fixes, and new developers on the team have to undergo a long initial ramp-up process to be able to do anything.

Sometimes it works out, sure. Usually when the hot new thing becomes mainstream eventually. But most of them don't, so unless you like to gamble, the safest bet is to wait and see and then adopt it. Let someone else be the guinea pig. The more immediate productivity gain is very, very rarely worth the pain.

Re:Go hits the concurrency nail on the head by mmjaa on Thursday October 04, 2018 @01:57PM (#18142094)
.. and of course, the old standard, if its mainstream .. you are replaceable.
Re:Go hits the concurrency nail on the head by fixermark on Thursday October 04, 2018 @02:02PM (#18142128)
Totally agree, with the added observation that as a software engineer, I want to be replaceable. If my software can't be divorced from its creator, it can't outlive me. I don't want to be glued to my work inextricably; if you can't be replaced, you can't be promoted.
Re:Go hits the concurrency nail on the head by mirceal on Thursday October 04, 2018 @04:11PM (#18143247)
being replaceable is a noble goal. the problem is that maybe some people don't want to be replaceable and maybe they want/seek to gain some kind of job security through the tooling they use, their idiosyncratic processes or just through rejection of new technology. those people are IMHO doomed to obsolescence.
Re:Go hits the concurrency nail on the head by nicheftw93 on Thursday October 04, 2018 @03:10PM (#18142713)
Anecdote time: making yourself too specialized makes you easily replaceable too.

At a previous gig, a problem dev, who insisted on only using Erlang, was painted into a corner by eng at large who did not want to learn/support another language (Ruby, Python, JS, Java, and R were all over).

This dev eventually got fired, as they didn't really contribute much to "the big picture". Since their efforts were so limited in scope, their Erlang work was quickly replaced using the other languages, and consumers of the results never noticed.

YMMV. But that's a old standard that should probably die

Re:Go hits the concurrency nail on the head by enraged_camel on Thursday October 04, 2018 @04:28PM (#18143370)
If everyone chose mainstream languages we would never invent and adopt any other language ever.
Re:Go hits the concurrency nail on the head by EpicEng on Thursday October 04, 2018 @07:30PM (#18144553)
Luckily we don't live in that world and never will.