Generally I'm extremely positive on Java :-p
578 karma · joined August 27, 2010
Generally I'm extremely positive on Java :-p
I'll try to be more mindful in the future, but I think "the original characterization doesn't trash him" is defensible. If he sees the blog and thinks its unfair, he's perfectly able to reach out (we're not actually very close). I make it clear we value different things but I never explicitly say "this guy sucks" _because I don't believe that._ He's a fantastic dev who's built great systems, but I wish we had a better framework for chatting about Golang.
Edit: I've updated the language with a few more details to better reflect how that whole interaction went down, which was a playful chat between two seasoned devs with ~12 companies between them. I didn't want to spend too much of the article on the anecdote, so I originally cut out some surrounding context (he was excited to "get into it," it's not like I just came at him when he said "I like Go").
Maybe it doesn't when applied correctly, but IME whether or not the technologies are a good fit aren't even discussed. At least in technical ("soil") terms; discussion is all about risk aversion in non-technical terms ("atmosphere") without saying that's what's happening.
I don't think folks should sweat every technical decision and I think there are many ways to fail with exotic tech (I'd be hard pressed to think of a better choice than Redis or Postgres, for example) but somehow certain technologies seem to be used even though I feel they're terrible in for cases like server programming.
Thanks for the read and thoughtful comment!
jk jk, super cool
Also, before Atom and VS Code, Adobe worked on Brackets, which was a text editor built with web technologies (pre-Electron) with a lot of the same goals.
All this to say… it still wouldn't have been my preference (I love "View Source") but there's plenty of evidence they made attempts to engage the broader developer communities and do a fair bit of work in the open.
Some tech, some culture, some of my life, whatever was interesting to me that day or few days. Have some favorites/highlights on that front page.
- How do I run tests? Oh, you can't really dune runtest on executables, only libraries. So how do I run tests on executables? Make a library with the core of the functionality and wrap it, I guess. Wasn't obvious.
- Tree-like heirarchy of dune files confused me since it wasn't really explained anywhere. I wanted my source files in a `src` directory; most of the examples assume your `dune` file is just hanging out with the source in the toplevel.
- Does `dune` handle dependencies (like I would declare them in a rebar.config, mix.exs, or a package.json)? Not really, it plays with opam, requiring one to read a bunch of docs for opam, and its files, and where they should go.
- The syntax of the dune files changed a bit from when I started the project (it was just moving from jbuilder -> dune). Less of an issue now, though I still question the use of s-expressions.
- Can I load an interactive shell with the definitions? There's a command in the documentation for it, but it didn't work quite right when I tried.
- If you look at other projects, you'll see they use opam files differently from one another.
- How do I add a dependency in my current switch (something like npm --save install <library>?) I tried `opam install --deps-only`, but it complained sometimes about the state of uncommitted files.
I understand why it's like this (trying to tie together a ton of use cases) and love developing in it after it's all said and done, but there are a lot of rakes to step on.
I find OCaml really enjoyable once I got going, but I do think the initial setup is a major barrier to larger adoption. I think a post on howistart.org might be useful, but it'd probably be polarizing since most functions have two major ways of doing it (Jane Street vs. not, Lwt vs. Async, etc.).
GADDAGs are different because they're more like "reversed prefix" trees, but they help with the issues of placing a new word from a dictionary onto the board using the existing letters of another word.
[1]: https://en.wikipedia.org/wiki/GADDAGNo, I think changing license terms to "won't be used by a company which separates families or violates international human rights laws," and not renewing the contract is fine enough.
> Github emphasized that they don't know what is being done with the on-premises, firewalled software they sold to ICE.
You don't have to know what ICE is doing with your software to know what they're doing more generally.
> What about the guy delivering pizza to ICE headquarters -- is he cancelled too? He doesn't know if the "must separate the children at the border" team or the "let's arrest the leaders of this slave trafficking ring" is eating the pizza.
"Cancelling" isn't a real thing, not distinct from "public opinion," anyway. If people want to direct ire to pizza delivery employees they can, but they're not, so I don't know why you're making this comparison.
> At least to me, some of the other protests in regards to ICE have been even more obviously incoherent, like the demand for Wayfair to stop selling clean beds for detained people to sleep in.
Any endeavor with lots of actors won't be entirely coherent, unified, or consistent. Some people think that Wayfair making profits on selling beds for prisons isn't some great altruism on Wayfair's part, and ICE would have a harder time building prisons if there weren't so many people eager to supply them; I don't know how much I'm on board with that as an effective protest, but I can at least understand it.
This used to be done with Distillery[1], but I suspect its use will go down now that Elixir has native OTP releases.[2].
In either case, there's still work behind it, but it's not like deploying Ruby, Python, or Node, where you have to be pretty careful about library paths and runtime versions.
[1]: https://github.com/bitwalker/distillery
[2]: https://elixir-lang.org/blog/2019/06/24/elixir-v1-9-0-released/But, this is a fallacy. Vaccines don't cause autism, the Earth isn't even a little flat, and GG wasn't in any way "about" ethics in games journalism — some people were led to believe it was, but they were useful idiots who were purposefully corralled to create a smokescreen. So I'd argue strongly against claims that the Wikipedia page is "biased" if it doesn't mention the ethics storyline. e.g.
notice the lack of cultural hell during "Gerstmanngate" — https://kotaku.com/yes-a-games-writer-was-fired-over-review-...
Or how the "sex for good reviews" accusation was about a game that never received a review from that publication
Or the chat logs that were found of the channers who worked the whole thing — https://www.dailydot.com/parsec/zoe-quinn-outs-4chan-behind-...
It's understandable, for parties with less information, to think this was more balanced than it was, but I hope with appropriate information we could stop giving that side credibility.
A great comic illustrating the dynamic http://chainsawsuit.com/comic/2014/10/15/the-perfect-crime/
Has this author ever spoken to anyone who's tried using a smartphone or OS that isn't Apple or Google? "People love free stuff" isn't a sufficient explanation, it reads like someone trying to blame consumers, to say nothing of the ethical implications behind the conscious, deliberate decisions behind each of the scandals they're happy to wave away.
- Extremely long poll lines, especially in underserved areas or those mostly populated by racial/ethnic minorities.
- Making people vote on a work day without federal holiday means that it's a financial obstacle, and employment risk. Again, this mostly hits the poor and underserved.
- No paper trail, and extremely hackable voter machines, not enough movement to fix them. [1]
- Voting Rights Act rollback: it was almost impossible to vote if you were Black in racist-run parts of the south (really, look at this [6]), and the protection against this got rolled back in 2013. There's been a bunch of voting law changes since [8].
- ID requirements that have been researched thoroughly and demonstrated to do almost nothing to reduce fraud but virtually always lower turnout, usually to minority populations. [7]
Aside from the topic of voter turnout itself, there are many other ways the democratic ideal is attacked by policy, such as gerrymandering[2], or the fact that we often refer to political parties as "half the country" when in reality only ~26% of the electorate voted for the current president[3], it was a single-digit percentage that voted for each of the eventual candidates in the primaries[4], and even "the electorate" is a lot smaller than our adult working population because felons aren't allowed to vote and we imprison more adults (mostly from poor and underserved populations) than any other industrialized nation. [5]
All this to say, yes, there's a lot of understandable apathy in our system, and we shouldn't judge their lack of desire to vote as some kind of moral failing. But there are many people who would love to participate in a democratic process but there are many concrete (and solvable) factors (with evidence and history beyond "an assumption") preventing participation, and the end result almost always favors a small group of people who don't represent the general population and already have a lot of power.
[1]: https://www.deconstructconf.com/2018/elle-vargas-primary-directive-on-elections-interference
[2]: https://www.washingtonpost.com/news/wonk/wp/2015/03/01/this-is-the-best-explanation-of-gerrymandering-you-will-ever-see/?utm_term=.58b2297c703c
[3]: https://www.cnn.com/2016/11/11/politics/popular-vote-turnout-2016/index.html
[4]: https://www.nytimes.com/interactive/2016/08/01/us/elections/nine-percent-of-america-selected-trump-and-clinton.html
[5]: https://en.wikipedia.org/wiki/United_States_incarceration_rate
[6]: http://www.slate.com/blogs/the_vault/2013/06/28/voting_rights_and_the_supreme_court_the_impossible_literacy_test_louisiana.html
[7]: https://www.washingtonpost.com/news/wonk/wp/2016/02/04/new-evidence-that-voter-id-laws-skew-democracy-in-favor-of-white-republicans/?utm_term=.5ddefa4ccf27
[8]: https://www.rollingstone.com/politics/politics-news/welcome-to-the-first-presidential-election-since-voting-rights-act-gutted-179737/This almost certainly won't catch on because inertia is very hard to overcome, but how amazing would it be to have computers do more of the heavy lifting for us?
(this is guided by my reaction to the product, where I saw the following:
* Syntax is a detail, you choose one you like without altering the semantics! It's a view layer.
* Static types (present in many other languages, less of a gamechanger)
* Analysis of dependencies of and users of code at-a-glance.
* in-IDE integration with social element of it
These were what struck me as the most novel bits, but I might have missed others)
He's written pretty extensively (and in my opinion, not wholly incorrectly) about why the types who frequent this community is not one whose members he cares to appease.
As a few examples: Objective-C was only popular for years because it was required to write iOS apps. Ditto JavaScript being the only way to write for web. Ruby only got popular after Rails. C++ was the blessed way to write for Windows in the 90's. Java had a giant marketing budget, "write once, run everywhere," and was looking to be the best way to write for the web (lol applets). This isn't a perfect explanation, but in many of these cases, it wasn't about eager-vs-lazy, control flow constructs, variations in type systems, or anything related to what the language offered you, it was primarily necessity to be on the platform of your choice.
After that, tooling evolved, and they became easier to write major projects in. Why write a web app in Erlang when the JVM has every major templating system, an implementation of CommonMark, several high-performance JSON libraries, model validation, several mature build systems, and thousands of Stack Overflow answers?
This makes it hard for languages like Crystal or Nim to take off, but ON TOP OF THAT Prolog is asking its devs to completely change how they approach programming.
What would it take to make Prolog take off? A killer app. Which, in the 80's, looked like it was AI :-p
* It's a jobs ad; it shouldn't be frontpaged and they're not paying anyone $500k.
* Nobody says "I want 100 steaks for 200 dollars and I couldn't find it; there's a steak shortage!!" Labor markets and scarcity are a thing, I'm sorry this person isn't getting (by their own admission) the same output from their few employees as the world's most valuable companies. I wonder how good their consulting is if their reaction to tech's labor market is "the world is rigged and most developers are useless or untrustworthy."
* I'd be curious to know what the author's tech chops are. There's no shortage of non-tech people who think building an app is "simple" because "I know what I want and explained it to you" and surely the issue, should problems arise, is that the developer was subpar. "I'd pay you, but you can't do the work." Please.
This is exactly the person you avoid in your career, life.
And even records are hardly a quirk like the ones I listed for JavaScript: as long as you remember that they're just syntax around tuples, you're hardly ever surprised by what they do. You'll never get a runtime behavior you didn't expect.
I disagree with this; while the syntax is unusual for many, its semantics are extremely simple and clear. I don't think it has anything quite like:
* JavaScript having `null` and `undefined`. * JavaScript lacking have proper integers. * JavaScript strings being UTF-16, so things like "".length don't work. * Scoping of 'this'. * The unmanageable automatic typecast rules * Semicolon insertion. * JavaScript `with (x) {` (maybe a cheap shot since it's so uncommon, but we are talking about language design).
Main quirks I can think of for Erlang are when people trip up over "strings", <<"binaries">>, and iolists. But I'd love to hear where others run into proper semantic quirks.
I happen to agree that, relative to other industries, we're overpaid and get to live pretty lavishly for the little sacrifice that working on building systems with code entails.
That said, when you look at the value we generate for the people we work for, and remember how we are necessary to their wealth generation, I think it's worth having a conversation about organizing.
https://twitter.com/paulg/status/785769454516916228?lang=en
And we, in turn, were criticized for daring to express our thoughts that, if Trump were elected, YC would play the typical role of the moneyed, comfortable, and powerful, and not use any of its significant power to work towards a better end.
Anyways, cool to put a moratorium on political discussion < 15 days before the electors vote and 45 days before Inauguration. I feel relieved, and not proven right at all.
(Not to disparage the change or the work behind it! I think it was the right call, and again, love the language and community. Just expressing, after the last experience, that I'll wait until 1.0 since the language is still undergoing drastic changes)
Software should serve people and they eradicated countless memories/achievements, eliminated a priceless historical record.
I don't mean to diminish how untenable the previous situation was, and I'm sure I'm underestimating the difficulty/cost of what they ended up doing. I appreciate their work, engineering, and use the service regularly. But it's an "Our Incredible Journey" part of their story and I don't want to let them off the narrative hook for it. They made ~$1b on this content, after all.
Hardly, when talking about brash/abusive behavior in the context of an industry where women are underrepresented, I think it's plenty fine to mention that there might be a connection to be made.
> the gender of the poster makes no difference
Eh, I don't agree. It's well-observed in social sciences that men are given more leeway to be abusive than women are; one example is how often words like "abrasive" or "bossy" come up in performance reports: http://fortune.com/2014/08/26/performance-review-gender-bias...
Or just look at our popular media: how many male antiheroes on TV have enough audience to support them vs. women antiheroes? For every Walter White or Doctor House or Tony Soprano, how many unlikeable women are there? Roxane Gay writes about this pretty well. http://www.buzzfeed.com/roxanegay/not-here-to-make-friends-u...
> Does the gender issue really have to be shoehorned into every story?
Per above, I don't think it's "shoehorned." And I think it's fine if we talk about it more than we currently do, because there's plenty to suggest we don't talk about it enough or are insufficiently introspective about it.
The fact is, you're putting in 15 hour days to give them a chance to get extremely wealthy. You deserve to do so in a way that lets you live a life you are happy with. Always a relevant link http://www.jwz.org/blog/2011/11/watch-a-vc-use-my-name-to-se...
Employment in a startup can be very rewarding, but it needs to be mutually beneficial. If you're getting taken advantage of, bite back. A good friend doesn't just praise you, they criticize you when you're failing, and in this situation the company is failing you, as both an employee and a human.
Good luck.