skysight-inc/HackerNews huggingface dataset:
> Perhaps the pool of people with 15-20 years that are still doing programming is very small

I'm at 20 years of paid, professional coding, and 30+ if you count my Apple IIe/gs days and fooling around with C++ as an undergrad.

It took me about a week or two to make friends with the borrow checker, and mostly those were self-inflicted wounds from trying to write aggressive zero-copy code.

I think that Rust works very well for certain coding styles, but the learning curve is much higher for other coding styles. If you've been scarred by C++ and you're used to treating variables as mostly immutable, the learning curve is pretty reasonable. But if you work in a style with a lot of mutability and you've never wrested with "const char *" versus "std::string" in C++ (which both exist for a good reason in C++), there's more to learn. So I could legitimately see it go either way.

My handy litmus test: Do you utterly despise C++, or do you have a complicated love-hate relationship with it? If you fall in the latter group, you may fall in love with Rust on the first try. If you've never even used C++ enough to have an opinion, then it's possible you might not care about high-performance static languages and the prices they pay to go fast, and so Rust's trade-offs might not even be interesting to you.
I think they're referring to something like the blind auditions orchestras used to deal with their own gender disparity issues.
So if that diabetic was eating 1000 calories/day, they would not loose weight? That's literally, physically impossible.
Once you get past the learning curve, Rust is a joy to work in, and you can switch your mind off to things that the compiler can help you with. The trouble is that it takes longer to grok than the four days most people give it. It's not really something you can bash into submission based on past experience with another language.
"mostly homogeneous racially similar people"

Arf. Arf.
Let me know when you're site is back up, it sounds interesting.
Has he GP edited his comment? "Pauseless" in quotes seems to suggest recognition that the GC is not truely pauseless. I interpretted the comment as being in contrast to Go's GC, which also purports to be very low pause.
I don't know how he could really do much more damage at this point. What would killing him achieve. And also can't they get him in Russia too? I mean in a country like that with all the mafia, etc. A few million would go a long way. I wonder how much Russia is protecting him from a CIA hit. In Russia he's much more of a threat as Putin's useful idiot than he would be on American soil. I am not saying he's a useful idiot, I am saying he's a useful idiot to Putin and that's why Putin has given him protection. Also I don't think that you hand over a chip like Snowden without serious concessions from the US. But could happen under Trump.
>Isn't it funny how in the real world, suddenly the so lauded 'type safety' really just doesn't matter that much in practice.

I've been writing Javascript for years and if there's one thing I've learned it's that type safety matters on the large scale. Don't get me wrong: I actually love Javascript. It's my go-to tool when I want to just get things done. But when you start scaling things out and get a lot of moving parts going, type safety really helps lift the mental burden of tracking everything yourself. That's why TypeScript is so popular.

I've been a huge fan of dynamically/weakly typed languages for a while but I've fallen in love with Rust. Yes, it can be a bit painful at the start but it doesn't take hours to get basic IO working and it's quite beautiful once you get into it. The mind-bending part is the ownership model because nothing else has ever had something like that. But, you know, that's just my opinion.
> abusing the H1-B visa system by purposefully keeping wages low?

I hate this argument. All immigration has a first-degree effect of lowering wages, because it increases the supply of labor.

Believe me, foreigners do not like H1Bs, its a piece of shit, and would wish for free passage or as easy as it can be. And if that happened, that would lower wages of everyone, and raise theirs. Reneging that h1b allows to hire cheaper people is reneging immigration.

You want to raise the wages of foreigners, just give them more freedom to change companies, so the parent company will not have as much leverage. But thats not the compnies fault, thats the governments fault. Its the government that suppresses wages in a very negative way.
Another programmer finds myObject.doExplicitThingToWorld() far more expressive and easy to understand

By definition, I can reason more about my function returning a monadic context than I can about theirs. I can get free theorems from my function, I can see clearly if I'm doing both input/output, (or just output), and I have laws to help me understand how I can compose this function with others. None of that comes for free when side effecting freely.
They share the same underlying C and CUDA libraries. The Python and Lua modules are different. You can see both projects have pretty much the same contributors because they are sharing the code base using git-subtree.
I think that the Go team worked very hard to make something that programmers actually like using. Yes, it is annoying to do a lot of `check if err is nil`, but at the same time, exception handling is something that can be esoteric, whilst it's trivial to see what your example does.

I also feel like there has been a lot of emphasis put on keeping the APIs consistent, which is something that a lot of developers will tell you makes PHP a nightmare sometimes.
I'm not really aware of what dev tools Google killed besides code/code search, but I would hope that as they get more serious about Google Cloud they will get better about not pissing off developers unnecessarily.
Exactly this. If you're a massively parallel web service, who cares about some GCs, and who cares about crashing like 0.01% of all transactions? Monitor it, crash it, fix it, deploy it, move on.

If you operated a nuclear reactor with this mentality, I'd be concerned. If you're operating acme.org with that mindset... godspeed?
How do you profit share when your unprofitable for 5+ years?
I'm actually an engineer on the BitTorrent Live product and we definitely hear that desire. While we can't exactly open source the protocol itself, some of the libraries we've developed are currently freely available under permissive licenses.

If you're interested in the tech and want to read some related stuff, we're hosting an engineering blog over at https://blog.btlive.io/.

https://github.com/bittorrent/scraps

https://github.com/bittorrent/simon

https://github.com/bittorrent/live-build-environments/
> HTTP specs provide response codes that address some of the problems related to addressing documents via their position on machines. (Doing this rather than using CAN is a mistake in the first place, but TBL was working with a slow network before ideas about CAN were very widespread.)

What's the expansion of "CAN"? He never defines that acronym.
My apologies, I can see the rails now.
People who say Rust is hard are probably skipping on reading the really well written Rust book. I'm not a genius in any shape or form, but I am able to write decent Rust apps just fine. I've written an IRC bot in Rust and am working on a file utility now.

It took me longer than 4 days (almost two weeks) to just read the rust book (part time), so yes you're not going to get from 0 to 100 in just four days. If that's your benchmark, how fast you can get going, then you're right Rust isn't for you. But nobody would expect anyone to get up to speed with C++ in just four days.

Rust is a systems programming language with a focus on security and performance, not a play toy for people looking to write small scripts.
I do, but the problem is FizzBuzz. What's the point of solving FizzBuzz in a SIMPLE way? The whole point of FizzBuzz is to torture the language.
Hacker Who Turned in Chelsea Manning: 'It Was Not My Most Honorable Moment'
It ensures that you consume a state at most once. You can kind of visualize state 'moving' through your functions - going in through the arguments and out through the returned value.
Versioning Better Than SemVer
very contained and rather unique place. very little of their success is transferable elsewhere though.

it's easy to police borders of a super tiny country in the middle of atlantic ocean, not interesting place for smugglers. (been there, and apart from Reykjavik whole island is almost completely empty with tiny closed villages here and there).

> A law was also passed prohibiting children aged between 13 and 16 from being outside after 10pm in winter and midnight in summer.

totalitarian approach, could be successful but also strapping every kid to the bed would prevent drug consumption. its a question how far will state go to remove freedom to protect citizens.
I wouldn't worry about trying to learn enough about Rust to be able to develop something in it before you try. It is an extremely difficult language to learn. I tried reading over the section in the book about ownership and borrowing a few times and just didn't get it. For me and the other rust developers I've worked with, the best way is to just dive in, fight the checker and eventually it will make sense.

For me I feel like it took time but I've formed a good intuition and understand of the rules, but I would have a very difficult time formalizing a description.
The rule is there are no rules. The answer is "it depends".

If the only language your developers are familiar with is Ruby and you're developing a real-time, high-performance, system, then you shouldn't write it in Ruby.

If you need the kind of availability/scalability/encapsulation that microservices provide in your application/use-case then you should use them. Don't break you application into micro-services just because everyone says it's a good idea. An Angry Birds app on an iPhone doesn't need to be split up into micro-services running on said iPhone.

If you don't have redundancy and you lose your server then you're hard down. If you're OK with that fine. If you want to continue operation with one server down then you need redundancy. Redundancy doesn't necessarily add as much complexity as you seem to imply.

Continuous Integration is usually a good idea regardless of all other variables. If you have more than a single developer working on a system it's a good idea to keep building/testing this system with every change so you can catch issues earlier. You start very light-weight though with a small team. Even a single dev can do CI, it's not that hard.

Agile is just a buzzword but it doesn't hurt to familiarize yourself with the Agile Manifesto while making sure you're aware of the context in which it arose. It's really mostly about understanding that requirements often change and that we're dealing with humans. Again different projects, team sizes, situations will require somewhat different approaches. Sometimes the requirements are well understood and will change very little. Sometimes you know nothing about what the software will do when you're done.
my experience exactly at the company I worked at for the last 3 years (I'm somewhere else now, and enjoying it much more so far).

Management at that company began to systematically harass, exclude, and demoralize early employees (I was #4) until most of us left. I still haven't got a straight answer, but my best guess is that fear of a down-round was taking over and the founders were eager to claw back some of the equity they had tied up in option grants to early employees, so they could try to protect themselves from the consequences of the impending down round.
> Putin wont gift. Putin might trade.

How about weakening NATO?
I've never used D, but I think it was written before the developer community was ready for a new language.

Now that developers are ready for new languages, D is already an "old, failed" language.

It reminds me of selling a house. If you put your house during a hot market and go into contract right away, but then your buyer can't come up with the money and it falls out of contract three weeks later, bringing your house back on the market it's now no longer "newly available!", and everyone thinks that, because it didn't sell in the first week, there must be something wrong with it.

My personal entirely uninformed opinion of D is exactly that: It's an older, "failed" language. It's not on the upswing in popularity. It didn't catch peoples' hearts and minds. And if only because of network effects, therefore it's not worth learning, simply because no one else is learning it, and so therefore its ecosystem isn't expanding exponentially.

Success of technologies is far less merit than one might expect. See: VHS vs. Beta.
How to make clean meat
You're misunderstanding the suspicion in a way that makes me think that you already have a preconception of my worldview, which, in this case, is entirely inaccurate. You're painting this in a "either you agree with their marketing campaign and identity politics or you're against inclusion" way, which is the type of gross remnant this marketing strategy creates -- thank you for responding with example behavior.

FWIW, IE is the second-most used browser; Firefox is becoming less relevant. Maybe this campaign is meant to counter their downward trend in popularity of consumer-software, but it seems like they want to go into content creation/ideology.
I wasn't commenting on go, just pointing out the library that most people in Rust are using for async-io.
I would say SQL is easier to master than most functional or procedural languages. The true issue, in my experience, is that it is different enough most developers don't want to take the time to learn it beyond the basics, much to their detriment.
Does this bill help with RSUs?
There are real world jobs requiring Go (and it's growing slowly). There are no jobs requiring Rust.

End of the comparison. That's all one needs to know if he's interesting in a career in distributed systems.
No, he's listing useful features.
burning leaves doesn't produce same amount of harmful stuff as vaping (which still isn't healthy, but com on, lets use some common sense here)
Thanks! It isn't everyday that one has a thesis cited to them on HN, unfortunately.
I don't understand why esr thinks his opinion after 4 (four!!) days of Rust is interesting. Am I the only one here who spends a lot longer with a language than that before passing judgement on it?
> I really don't miss having invisible control flow for expected conditions blowing up my programs with long stack traces.

You mean outside of accidentally running into a nil, and having your program spontaneously abort?

Even worse, reliably testing for nil (`if (foo == nil)`) doesn't even save you because go's nils are typed. So `foo == nil` can actually return false even when foo is nil. Utter madness.
Zuckerberg suing Hawaiian land owners in bid to further seclude Kauai property
The Architecture of SciDB (2014) [pdf]
Seems like a very aggressive move. Do these people even care or is he doing this to flush them out? This story deserves more than a blurb of an article.
How Insights Leaders Approach Data Science
Well, you usually don't choose languages based on their technical merits, but rather on the ecosystems around them. These depend on popularity which you get by having traction, which you get by being quickly productive. This is why very tolerant or very familiar languages succeed. Being chosen as one of the blessed languages that are taught in universities is also, of course, priceless. A killer framework (Hello, Ruby) can also do wonders.

Not that this defends the very poor syntactical choices that Lisp and Haskell and their communities have done (minimal grammar is not a good thing! One-symbol names are horrible!), but a lack of popularity is not as damning as it sounds.
Maybe it's a cultural thing but I don't always associate smiling with "happy". My wife were looking at some old pics of our son and we commented how happy he must have been in one of them because of how serious he looked!

NB I'm in Scotland, which does have a bit of a reputation for being a bit dour. ;-)
Native English speakers would then need to fake an "asian" accent?
> But every time I need to dig down into the source code, I quickly realize why Docker falls over all the time with weird bugs, and why Vault's high-availability backend for etcd falls over once per week, and why Kubernetes is capable of inspiring such epic love-hate relationships.

Vault's documentation clearly states to not use ETCD as the HA backend.

Docker's problems stem from their bone-headed decision to start with a client/server architecture that they've been unwinding ever since. They should have started with small composable tools that integrated well with the existing infrastructure (init systems, file distribution, and security infrastructure). Instead they started with an architecture where everything goes over an HTTP socket through a daemon with high probability for contention, deadlock, and failure. None of that has anything to do with Go. They could have built that abomination in any language.

I can't speak for Kubernetes. I have not used it in anger yet.
Upvoted because it absolutely is elitist and dismissive - it's a fair cop!

To pedantically respond to your question, note that what i said was that master programmers "won't be choosing it as their tool of choice", by which i mean that it won't be the language they dream about being able to use on their next project. Of course, if Go is the right tool for the job, a sensible and honest programmer will use it.
Ha! I always tell people I have a complicated love-hate relationship with C++. It was my tool of choice for writing games for 20+ years (combined with Lua for scripting). I knew all the C++, and loved, yet hated, it.

Maybe I'll give Rust a go after all. No pun intended. ;)
Ah, this rings so true.

I've tried to get into Rust on/off and each time I'm left feeling like I needed a semester of instruction just to write a trivial program. Each attempt to go back to it, I would immediately hit a wall.

Go, on the other hand, felt quick to pick up. While I don't use it a lot, it's focus on a few composition patterns, and really sticking by that, made it easier for me to learn and come back to when I go back to my Python-centric existence.

Rust on the other hand, I haven't thought about nor touched, outside seeing an HN headline.
At the minimum, it is something to point at when he gets asked why his project doesn't use Rust, which probably comes up quite a lot.
Those extra frequencies were what I was thinking about. If they're still closed, then military still cripples GPS. The points of military vs civilian for this discussion would still apply.
"Evolution, it should be remembered, predates gender by a long time."

1. Good point - gender is 50 years old (first used in 1963).

2. What about other, non-human organisms? If we leave humans out of it, there have to be significant differences in brains between sexes of different species.
Unethical Army PSYOP experiments on private citizens
FlowDock's threading is vastly superior, in my opinion. Everyone can see progress along threads, and conversations can stay separate.
"Two big conclusions" is a good way to put it.

I would phrase it like this:

• Go is a useful, safe subset of C (with a rather expanded libc.) Go lets you do fewer things than C (e.g. hard real-time things; processor-optimized things) but for most people, they don't need those things, and delving into them was what seeded the bugs into their C/C++ projects in the first place, completely unnecessarily.

• Rust is a formalization/codification of idiomatic C++. It's not a subset; it's a rethink, like Plan 9 is a rethink of Unix. You can do everything in Rust that you can do in C++, and the compiler will catch (nearly) all the bugs you would have left in the equivalent C++ project.

In other words, Go says "you don't need this"; Rust says "if you're so sure you need this, let's ensure you do it right."

For any given piece of code, either Go's assertion or Rust's assertion could be "correct." You either need the things only Rust lets you do, or you don't.

For a large codebase, though, I expect the answer is actually nearly always going to end up somewhere between. Big apps or libraries always have that one part that does heavy lifting and has to go fast, but go fast correctly; and 99% that doesn't.

Thus, I envision the future of many "systems software" codebases to look like this:

1. (1% of LOC) an "engine" library, written in Rust, which compiles to a C-ABI shared object;

2. (3% of LOC) an "engine wrapper" library, written in Go, which imports the "engine" object using Go's C FFI and then exposes a safe Go API to it—and also, the tests for the engine library, written in Go because it's easier;

3. (96% of LOC) the app itself, written in Go, which calls into the "engine wrapper."
I don't know Rust, but code looks readable. Function apply receives two arguments and returns function of one argument (address of b) which returns value of type C. I assume function apply() creates closure, so a.clone() is necessary to create fresh copy of a every time when closure is called. b is passed by reference, so code is generic. Not bad.
100% this, applying occam's razor to software engineering, the simplest solution is most often the best one.

It always amazes me, the instinct by engineers to overcomplicate things. They shoot themselves in the foot and curse when the inevitable subtle bugs start rolling in.
There isn't and there have never been competition from cheap Indian developers.
CS:App you can find it used/cheap on Abe books. You probably want the 3rd version that covers x86-64.

Look at the TOC it covers floating point, TMin/Tmax overflow and casting to unsigned problems, gcc use, assembly (enough to understand how exactly pointers work) and many other things including VM/CPUs/Cache memory ect http://csapp.cs.cmu.edu/

The book Hacker's Delight 2 picks up from here and shows you all kinds of bitshifting tricks and other C specific optimizations, The Art of Software Security Assessment to show you safer C and Robert Seacord's book on The CERT C Secure Coding Standard.
I use Relay for Reddit. It's the best mobile app I've ever used, and only the second one I've ever actually paid for, there's also a free version which I used for a long time which puts ads at the bottom.

The interface is great. You can swipe for (almost) everything, which makes it easy to use one-handed.
A lot of this is because Google used C++ where other people were using Python or Node. It was made to "kill" C++ at Google more than outside of it.