HN user

robbrit

581 karma
Posts2
Comments155
View on HN

Yep they are two very different languages. However with the possible exception of the build times argument, the points for choosing Go over C++ also apply to Go over C.

They touched on this in the article, but I'll go into more detail here since it's been fashionable for years to bash on "Blub" languages like Java or Go. I myself was guilty of this for a long time until I started using these languages in settings where they shine, and developed an appreciation for them.

The argument is nothing to do with machine chugging time, and is entirely towards developer time. The problem with expressive languages like Lisp, Ruby, Python, etc. is that the language ends up varying from person to person - the more expressive the language, the more variance there is. This is a feature when you're a small team because the abstractions you build let you move quickly, but it is a bug when you're a large team maintaining a piece of software over years, where developers have come and gone. The ramp-up time to learn and understand the various abstractions that people have built over the years ends up accumulating and cancelling out the gains that those abstractions gave earlier on.

Blub languages on the other hand tend to be more uniform, so it's easier for someone who isn't very familiar with the code to dive in and understand what is going on.

What I meant was the machine learning systems that have developed in the last decade since the 2008 crash. Many of these are black boxes with thousands to millions of variables, and it's very difficult to understand exactly why a ML algorithm made a decision that it did.

it is easier these days to find Go devs than C devs

Not really actually, there are still loads of C devs (or C++ at least) and a lot more jobs in C and C++ than for Go.

Having made engineering decisions between C++ and Go, my key reasons for picking Go over C++ are:

* Simplicity when multi-threading

* It's much easier for someone who knows neither language to become productive in a professional environment in Go than in C/C++

* Fast compile times - no more typing "make" and then going off to get a coffee

* Lots of modern niceties that are more fragmented in the C world: third-party vendoring, unit testing, style guides, etc.

Having Go experience on my resume, I do get a lot of recruiters reaching out to me for Go jobs. It's quite popular for infrastructure work.

This is in the US, not sure if it's the same in other countries.

"Machines are taking control of investing..... Funds run by computers that follow rules set by humans"

One of the points that the article makes is that this statement is changing, that computers are increasingly creating their own rules. The literal next sentence:

"New artificial-intelligence programs are also writing their own investing rules, in ways their human masters only partly understand."

You're right though, that the responsibility still falls on the humans. Anybody running algos that they don't understand should ensure that they are covered from a legal/ethical perspective.

Speaking for Canada rather than Europe but I imagine the argument is mostly the same. The supply and demand ratios are different. Canada has very few pure software firms like Google or Amazon compared to the US, so there is significantly less competition for the engineers that work there. This drives prices down - or rather, prevents prices from being driven up.

77 is a large enough sample size to produce statistically significant results in a lot of cases, depending on the problem. For example, using 77 men and women, you could easily see a statistically significant difference in height between genders.

This paper is pretty simple, it's just a straight-forward before-and-after test. They are holding a lot of factors constant and not doing an observational study, so 77 is actually a fine sample size for something like this.

most of us have seen managers try to improve quarterly numbers at the expense of company health

Yep, this does happen. The point though, is to let shareholders rather than managers decide if this is a good choice. If managers are sacrificing the long-term health of the company, shareholders can vote them out or choose to sell their stake.

This is one of the downsides of the rise of passive investing and ETFs based on market cap - less votes are going into the system and holding people accountable.

it's still javascript

This is exactly the reason why Typescript took off and none of the other compile-to-JS languages did (other than a brief flash by CoffeeScript). Dart had a very similar problem as Reason - it wasn't Javascript. The interop between Dart and JS libraries was just too much of a pain to deal with, where in Typescript everything just worked.

Since building your own ecosystem that rivals the JS ecosystem for libraries is an extremely difficult task, any candidate to replace JS must have good interop with its libraries to be successful.

Not that I've worked in a lot of places, but everywhere that I've worked that uses C at all treats it this way. Writing new C code is considered a no-no.

From my experience hiring in startups (and personal life experience, having left the startup world at 28), over-30s have higher salary requirements than startups can afford. It's not even just a Bay Area thing; in pretty much all markets you pay a premium for experience.

Does anybody know how hard it is for non-Chinese citizens to live and work in China?

One of the competitive advantages of the US has been its ability to draw top talent from all over the world and not just its own citizens. Chinese citizens leaving the US is not a good thing, but it is just one nationality. If China manages to draw talent from everywhere, then the US has a real problem ahead of it.

For example, my team in the US only has a few US citizens on it, most of us are foreigners who moved here for the opportunities. While a few are Chinese, the majority are from countries other than China and the US.

Law of Demeter 7 years ago

I've never found that sticking strictly to the Law of Demeter makes your life that much easier for the reasons under "Disadvantages" in the article.

I prefer a more relaxed form of the law: you can do something like a.b().c(), where b is a method that returns an interface. I think of it as a "composite interface". You can repeat the nesting as much as you like, however it gets a little hard to read after a while.

You might be able to get into a Master's program without a Bachelor's in CS, provided you can demonstrate understanding of the material. OSSU has a great curriculum for replicating that: https://github.com/ossu/computer-science

A Master's or Ph.D. will help you get into more research-oriented programs where you're working at the cutting edge. If you don't care too much about reading papers and that sort of thing, you can also get good mileage out of Udacity's AI nanodegrees: https://www.udacity.com/school-of-ai

I did the AI nanodegree a couple years ago and was able to get hired in an AI-focused role through their referral program, however I had a decade of software engineering experience to complement it so it was easier for me. If you want to focus on modern machine learning, the AI one might be a bit too general and you'd be more interested in the machine learning program.

Go Creeping In 7 years ago

Technically yes, however it is not type-safe. Idiomatic Go usually tries to be at least somewhat type-safe, and so the standard library's sort package uses interfaces instead of comparison functions. This is a bit more tedious to write unfortunately.

Go Creeping In 7 years ago

A lot of the time in Go you do have to copy-paste-tweak - sorting lists for example requires quite a bit of boiler plate.

That doesn't mean the code above is good, just that the lack of generics sometimes makes copy-pasting in Go inevitable.

Never mind that BBC is funded by royal charter rather than by customers, so they get paid whether people read them or not.

You're confusing accuracy with bias. It is possible to give an accurate account of a story despite having a bias, so long as you're still stating the relevant facts. The bias comes from the interpretation and whether they state the facts in a positive or negative light.

As for biases, WSJ is known to be center-right, NYT is center-left, The Economist is biased towards classical liberalism, etc. When you read the stories you can take the bias into account pretty easily.

In the era of fake news and clickbait, I'm very happy to shell out some coin for quality news. I've found WSJ to be one of the most objective newspapers out there (along with BBC) since they focus on describing what happens, rather than adding in lots of conjecture.

The opinion pieces are another story though (pun intended), I generally try to avoid those.