If you have more links, I'll be happy to add them.
I have a much longer list of companies that use Go (https://quicknotes.io/n/1XB0-companies-using-go) but it's harder to find descriptions of rewrites than find out who's using Go.
1,904 karma · joined December 23, 2009
If you have more links, I'll be happy to add them.
I have a much longer list of companies that use Go (https://quicknotes.io/n/1XB0-companies-using-go) but it's harder to find descriptions of rewrites than find out who's using Go.
If you don't bother reading it, it suggests that Edison hired people on H1B as their own employees and then fired existing employees.
The facts in this article are that Edison fired some IT employees and instead hired contractors from Infosys and Tata.
Those contractors are employees of Infosys and Tata, they don't work for Edison. Implying that they do is the first attempt at misleading readers.
Another fact is that some of Infosys and Tata US employees are H1B visa holders.
So it's possible that some of those H1B holders will end up working but the article doesn't actually make that statement other than a hearsay (a statement made by someone (in this case apparently an Edison worker being laid off) but not verified by the "journalist" writing the article) i.e. it's quite possible that none of the people who will replace Edison employees are on H1B.
We just don't know and the article either is so poorly written as to hide the facts behind the headline or is maliciously or incompetently distorting the facts.
Stock in a company is worthless (literally, as in "worth $0") until 2 things happen: * the company gets sold * the company does an IPO
Those are hard for all kinds of companies but next to impossible for a consulting company.
Consulting companies don't scale they way product companies do.
Revenue of $20k/month is nothing (this is what Google spends on a good engineer per month). They don't make enough to pay you a market rate.
How is this company going to ever get to multi-million dollar a year profit (a condition necessary but far from sufficient for a sale or IPO) ?
You seem to be so pre-occupied with details of the deal that you seem to be missing the obvious thing: investing in this company looks like a terrible idea because there's no way this company is going to be so successful to warrant a sale or IPO.
The same goes for patents, for example http://www.nolo.com/products/patent-it-yourself-pat.html (although the very fact that you think about patents to "secure intellectual property" betrays a naïveté about how those things work in real life. If you don't have tens of thousands of dollars (at a minimum) to spare for a patent lawsuit, then obtaining a patent is pointless).
Realistically, there's not much you can do.
You could sue that person but it would be costly (lawyers fees) and the outcome is unknown (those things usually are not litigated so there's little case law to fall back on).
You could send them an e-mail to the effect of "I noticed you've removed my name from your fork of my project. It's not cool and violates the attribution clause of MIT license. I would appreciate it if you restored my copyright attribution.". The important thing would be to not be too forceful or else you might end up with the opposite result (i.e. they'll just dig in).
Or you can just let it go.
Here's the essential difference between Go and Erlang: Go gets most of the things right, Erlang gets way too much wrong.
So what does Go gets right but Erlang doesn't:
* Go is fast. Erlang isn't
* Go has a non-surprising, mainstream syntax. You can pick it up in hours. Erlang - not so much.
* Go has a great, consistent, modern, bug-free standard library. Erlang - not so much.
* Go is good at strings. Erlang - not so much.
* Go has the obvious data structures: structs and hash tables. Erlang - no.
* Go is a general purpose language. Erlang was designed for a specific notion of fault tolerance - one that isn't actually needed or useful for 90% of the software but every program has to pay the costs
* Go has shared memory. Yes, that's a feature. It allows things to go fast. Purity of not sharing state between threads sounds good in theory until you need concurrency and get bitten by the cost of awkwardness of having to copy values between concurrent processes
So sure, if you ignore all the major faults of Erlang (http://damienkatz.net/2008/03/what_sucks_abou.html, http://www.unlimitednovelty.com/2011/07/trouble-with-erlang-..., http://ferd.ca/an-open-letter-to-the-erlang-beginner-or-onlo..., http://sacharya.com/tag/erlang-sucks/) it compares very favorably to Go.
You just have to overlook ugly syntax, lack of string type, lack of structs, lack of hash tables, slow execution time. Other than those fundamental things, Erlang is great.
In Go, iteration order of keys was always non-deterministic.
At some point it was changed to be also random i.e. iterating the same hash the second time would produce a different sequence of key/values than the first time.
This is exactly what the article says, except using more words.
interface{} is nothing like void* because it's type-safe. interface{} is (type, value) i.e. it remembers the type of the value it contains. void * is just a value.
Your code snippet has a bug because you didn't check the type assertion result. Here's a fixed version: http://play.golang.org/p/vlsXtEmgMs
In C a cast is unsafe because it doesn't tell you if you did something wrong.
In Go, type assertion is safe. It tells you if it succeeded and if you ignore it, it'll panic, informing you that you have tried to perform an illegal operation.
For more see: http://golang.org/ref/spec#Type_assertions
"Security" is an invisible quality, by which I mean it cannot be easily observed and because of that it cannot be easily compared and because of that is not going to drive adoption.
This is in contrast to visible qualities: price, performance, availability of the source code and its licensing terms, size of the ecosystem (number of applications for the OS, number of books, articles, conferences, programmers who know how to program for it) etc.
How exactly will you demonstrate that Ethos is more secure than, say, OpenBSD?
Even if consider employees salary to fall under that dubious categorization, good luck proving the salaries were "likely depressed" when during that period the salaries went up. A lot.
It seems that it only affected lazy and apathetic engineers i.e. those who couldn't be bother to send out a resume.
It's bad because after he bought short position, he's using his money and influence to crash Herbalife, by any means necessary, buying fake concern from various "community" groups, trying to influence government officials to start investigation etc.
Metaphorically speaking, he's a corporate terrorist, trying to cause distress in a company in order to profit from it.
And let's be clear: he doesn't care what happens after (potentially temporary) drop in Heralife's stock price.
He's end-game is not fixing Herbalife via some government action, all he needs to make his billions is temporary drop in stock price caused by FUD that an investigation would create.
Of course trying to ruin a company by bribing government officials to begin a witch hunt investigation is wrong if you stand to profit billions of dollars from that witch hunt.
Given the enormous profit he'll realize if he's successful in discrediting Herbalife, I can easily discount all of his other arguments as BS. He has no credibility in the matter if billions are at stake.
Note that I'm not defending Herbalife. Maybe they are scammy company that should be investigated and regulated more by the government - by that investigation shouldn't happen because a billionaire starts buying politicians, lobbyists and "non-profit" lapdog organizations.
US government already has established channel for complaining about unethical companies: Better Business Bureau. They don't need manufactured complaints.
There are much more good programmers out there than break away products like WhatsApp.
You can't create successes like WhatsApp just by hiring good programmers. There are plenty of great teams that didn't achieve product/market fit and failed.
There are plenty of great programmers at Facebook or Google that do important but not wealth creating work (not on the scale of WhatsApp wealth).
In cases like this most likely the reason why WhatsApp is popular is that there was a person in charge who had the right vision for the app and came up with just the right set of features and a little bit of luck.
But even that person isn't valuable per-se in the sense that you should hire him for your company at all costs hoping that he will create similar wealth for your company.
I'm sure I'm butchering the analogy, but those are Schrödinger's successes: you can only tell they're successful at the time of the exit, but not at any time before that.
Unless he's the one who started WhatsApp, it would have been developed and successful anyway and Facebook would have to buy it for the same amount of money.
The reality is that product/market fit is much more powerful force than programming capabilities of any single engineer.
Penflip apparently is just one person.
If penflip makes $500k/year, it's a lot for 1 person but not even close to covering 11 people.
Collaborative writing is not a junk idea. There is a bazillion of different takes on that (draft, all the etherpad clones, google docs, ...).
In SV, poor(er) people complain about too many rich(er) people coming in.
When it comes to immigration, rich(er) people are afraid of too many poor(er) people coming in.
Also they are not removing freedom of movement, they put a limit on rate.
Which is something U.S. has been doing for decades and nothing bad really happened because of that.
In addition, the math for Switzerland is much different.
It's hard to change demographics of 300 million country by letting in a few hundred thousand immigrants.
According to the article, already 25% of 8 million Swiss are foreigners. That would be a pretty alarming number if you were native Swiss. If the current trend continues (80 thousand immigrants per year), that would be 50% in ~25 years.
Let's also not ignore the real danger of ethnic-based or religious-based conflict, like Bosnian War.
There is a very simple explanation for religion: most people conform to the culture of their surrounding.
That's why most people growing up in Muslim country become Muslims, most people growing up in Mormon area become Mormons, most people growing up in atheist countries are atheist and Germany (yes, I'll go there) had a surge of Natzis-ism.
Cultural norm is a powerful thing.
But hey, I'm open to changing my mind given some evidence.
Why don't you sequence a few deceased atheists and a few deceased religious folks and by way of simple diff isolate the "religion" gene. There might be a Nobel prize in it.
They have debated this many times over in the past.
What they don't do is repeating that debate every week. It would take a lot of their time and is largely pointless (in the sense that person that starts the debate with 'go sucks because it has no generics' will not be convinced that it was the right (or at least practical) decision to make regardless of how cogent your arguments are).
People talk about getting rid of nil like it's actually possible.
It's not.
If you have pointers, they sometimes have to start the life uninitialized (i.e. with a value of 0) hence nil pointers.
As you admit yourself, the proposed solutions don't actually get rid of anything. At best they can force you to handle nil value by wrapping it in some wrapper.
Guess what - if you have that kind of discipline, you can do the same in C++.
Why aren't people doing that?
Because it comes at a cost. There's a cost to the wrapper and when it comes down to it, you still have to write the code to handle the nil pointer whether you're using a wrapper or a raw pointer.
It just doesn't buy you much.
Finally, fixing crashes caused by referencing a null pointer is downright trivial. Spend a few weeks chasing a memory corruption caused by multi-threading and you'll come to a conclusion that fixing a null pointer crashes (which can be done just by looking at the crashing callstack most of the time) is not such a big deal after all.
Google's bottom line is the same as everyone else's: making money.
Currently, the ads are very lucrative for them and they use the money from ad business to both expand the ad business (like investing in YouTube or Android) AND try to find other sources of revenue (e.g. Google Fiber or Google Apps for enterprise).
You can't assume that Google is terminally stupid and can't see past their current business model.
Google Fiber is not free. If people use Comcast, they'll see as many ads from Google as if they were using Fiber. Google can estimate how much ADDITIONAL ad revenue they could expect per user from Fiber vs. Comcast usage and that's probably not much.
At $70 or $120/month, this can be very profitable business (long-term, of course, initial investment is huge). Outside of US, companies make good profit at lower prices.
Same goes for self-driving cars: transportation is a massive industry. Taxis alone are $10 billion industry. Personal car ownership and use is massive. If Google could get a piece of that business, it could be more profitable than their ad business.
It's clear that both Microsoft and Apple are pulling the strings. They didn't collectively spend $4.5 billion to just have Rockstar do whatever they want. (Not that creating a patent troll under any scenario is morally defensible for Microsoft or Apple).
The shell games provide them plausible deniability only to naive.
They sued Android. Android is a big threat to both Microsoft and Apple.
Coincidence? I don't think so.
What could possibly go wrong?
2. Angry mob or your opinions should not dictate where people choose to live.
I could offer many suggestions as to how you should live YOUR life to better suit MY goal and ideas, but I don't because that would be stupid.
You should choose a place to live that suits YOU the best and you should offer the same curtesy to others.
The "occupy Google bus" movement is straight-up bullying.
As http://golang.org/s/go13nacl describes, supporting Chrome is not a goal for 1.3 release, only being able to run nacl-sandboxed executables from command line.
2. Our software also needs to be fast. No one needs a slow database engine. There is no high-level language that beats C on tasks like writing sqlite.
3. Finally, show me that unicorn high-level language with strong, automatically provable invariants and one piece of widely used, reliable software that was written in it.
Sqlite works. Testing works.
If there actually was a credible alternative to C for writing software that is efficient and reliable with requirements that sqlite has, I can assure you that people would use it. The problem is: it doesn't exist.
Do you think that if cricket players formed a union (maybe they already did, I have no idea), they would be paid as much as NFL players?
Of course not. NFL players are paid so much because the league can afford to pay them and still stuff their bank accounts.
The same goes for TV/Movie writers - good, proven talent is in low supply and there are millions at stake, so it makes sense to pay well to get the best. The 5th box office hit on a given week usually makes a fraction of what the 1st and 2nd does, so it makes sense to optimize for hitting the 1st spot and you do that by getting the best talent and you get the best talent by paying them more than others.
We (programmers) don't need the unions to be paid well because there's still more demand for talent than supply of such talent.
If it ever happens that we need unions to be well paid, the unions won't help much because you can't pay high salaries if you don't have high revenues.
Also, given that software companies are generous with stock options, as part owners of the business, we should be very much against overpaying the employees, even if they are fellow developers.
Offers are made based on your past experience and interview, before an employer can do a full psychological profile to see if you're a good fit.
So number one priority is to have a good resume.
Then you just "feel out" the current rates based on what you currently make and taking in other signals like glassdoor, salary ranges in job postings in your area (jobs listed on AngelList are most transparent about that) and talking to your peers.
The best way to get good salary is to get multiple job offers and increase your demands with each successive offer.
Yes, it is time consuming, but much less than writing code and with much better long-term effect on your salary.