God forbid anyone make any money. Where I work we feed our engineers on the appreciation of free users. That's the only way to fly. Self-entitled much?
God forbid anyone share abandoned code. Where I work we incinerate anything potentially useful when we're done with it. That way no dirty freeloaders can take advantage of it.
Let Pa be the probability that some piece of your open-sourced codebase reveals an important technique or strategy to your competitor, thus leveling a technological advantage you have,
Let Ca be the cost of that lost advantage,
Let Cb be the value of good will from the open source community
It's an email app. It talks IMAP^H^H^H^Hto Gmail. It runs on iOS. How many secret, commercially important techniques do you really suppose it contains?
Suppose it writes to Dropbox using internal APIs? How many developer hours should they spend abstracting/obscuring that usage? What are they going to gain by doing that? What are they risking if that process misses something?
I don't even understand what this comment is trying to say. If you use HTTP to communicate between services, and those services are not publicly accessible, the use of HTTP makes it no longer a private interface?
For a site which supposedly hosting an audience of entrepreneurs and engineers -- people who understand that the value of a thing can be multi-faceted and not always obvious, or that the difficult of any job is easy to underestimate, and that to convince someone to do something you have to appeal to their incentives/concerns rather than your ideals -- the entire argument in favor of opening this app is built on pedantry and baseless assumptions.
> I don't even understand what this comment is trying to say. If you use HTTP to communicate between services, and those services are not publicly accessible, the use of HTTP makes it no longer a private interface?
Yes - if you make a HTTP call from an app, it can be trivially sniffed. Sniffing HTTP is the first thing a third party trying to discover that undocumented API would do, and you don't need source code for that at all. (This is also why you must always sanitize data coming in from a user's device, even if it's from your own app.)
You can make the argument that there would be a time cost cleaning up the internal calls that will no longer work once the servers are turned off. Sure, but: 1) there are no secrets that would give competitors a new advantage, and 2) if you don't have that time, just chuck the code over the fence and see what happens - worst is that no one uses it, which will be the case with closed code anyway.
The is just so unimaginative that I can't believe you've ever seen the inside of a large operation. How are you going to sniff traffic that's communicating on a private network? And how does trivial sniffability not extend to all unencrypted traffic, ergo nearly everything is public? That's a totally useless definition and misses the point entirely.
Your point #1 is totally unjustified: you don't know what you could learn by e.g. looking at a data structure used internally. #2 shows that you are unable to answer the question of which of Dropbox's incentives are satisfied by doing this.
Someone said consumer apps (Carousel and Mailbox in this case) couldn't be open-sourced because they use "internal" APIs.
My point was just that any API over HTTP that's used by a consumer app is not private or internal. It is a public API with unfriendly documentation.
(Note that when I say "unfriendly documentation," I'm not even talking about sniffing. Most consumer apps can be decompiled by non-experts, and then the text-based API calls would be readable.)
That "formula" really isn't particularly difficult to work around.
First off, if you're open sourcing your codebase because you're getting out of a particular market, you have to ask whether revealing techniques and strategies to competitors in that market is really an issue. After all, if those techniques and strategies had given you a competitive advantage, you probably wouldn't be having this discussion.
Second: If you really are concerned about that, just use the GPL.
The assumption here being that the integration of the now disused product into the parent product (Mailbox into Dropbox) has no potential to reveal the internal workings of the parent product e.g. APIs or data structures. Or that those techniques would only be applicable to competitors in that market. Both are convenient for your argument, but there's no reason to think that they're correct. Moreover, there's no reason for a risk adverse company to accept those assumptions.
My point was to challenge open source cheerleaders to actually give a reason beyond their own gain for why a company should do this. Instead, we have blithe dismissals and narrowly constructed hypotheticals built on optimistic assumptions.
> My point was to challenge open source cheerleaders to actually give a reason beyond their own gain for why a company should do this. Instead, we have blithe dismissals and narrowly constructed hypotheticals built on optimistic assumptions.
I'm sorry, but what? Your whole initial argument is a narrow hypothetical "they will see our secrets" with no theory of what those secrets might actually be - what exactly do you expect in return? I gave you an answer based on your formula, and a follow-up comment afterward. Can you expand what about my answer was built on optimistic assumptions, in a way that your initial theory was not?
There are no private APIs nor secret data structures in software that you've distributed to users. It can all be decompiled and sniffed. "Oh but the competitors will see my code" is basically FUD. How many times has YC told us it's all about the execution, not the technology?
Yeah, the difference is that the "narrow hypothetical" is a concern a real person at any company would have when tasked with deciding whether something should be open sourced. It's appropriately conservative.
You, however, are asking everyone to assume that it's totally safe to reveal any/all source code.
> There are no private APIs nor secret data structures in software that you've distributed to users.
That's fine. What about the code that lives on your servers and supports the client?
I didn't really like the article. It was too conversational with unnecessary anecdotes. While reading it I was pretty much annoyed by how the writer didn't respect my time and couldn't just spit out what their main idea was. Like I shouldn't need to read three or four paragraphs to find out if the topic is something I already know about or interesting to me.
This article is basically a fluff entertainment piece for people who just enjoy reading for the sake of it and want to feel smart for it when they're done.
>While reading it I was pretty much annoyed by how the writer didn't respect my time and couldn't just spit out what their main idea was. Like I shouldn't need to read three or four paragraphs to find out if the topic is something I already know about or interesting to me.
And yet, you did the same thing for your comment.
Anyway, your preferred style of writing does exist and its called a research paper. Thankfully, the world is big enough to accmodate other styles of writing.
Thanks! (/s) I expressed a positive sentiment to counter your negative one. If you simply want a list of all the facts about the human body, you know where to look.
For years, from one job in the bay area to the next I worked on products that never made any money and ended up being canceled. Even when I worked on a project that ended up making money I spent a year working on a version that was rebooted from scratch before customers ever saw it.
At a couple of startups that never took of afterward I could clearly see the impact that code I wrote was making on sales and value. It wasn't very much.
I'm not sure why people pay me so much, but I'm glad they do because I get to do what I love (programming, not not shipping), and I get to live off of that at the now rare and fading middle class standard of living.
On that existential tangent, there are times I find it comforting that fools pay me to write code they want written. It's like ghostwriting: it pays the bills. You write a biography for any idiot the way they want it. The 'authors' buy 300,000 copies of their own book through phantom distributors to prop it up to the NYT top 100 list, then they slap their name to it and you go home to your two cats and tell them we don't have to eat garbage tonight.
Other times I yearn working on a popular open-source program or a library or a tool so that I can slap my name to it and actually know what I'm working on, and get some recognition. Or even criticism, because meaningful feedback by peers who actually understand what you do is great.
It's a whole pile of depends. Particularly in your case it depends on what you love about programming.
The guy who rocks into a company, tells them they need to write everything in new-buzzword-framework and use bucket-with-holes-in-it-db is arguably creating negative value and if the world was fair, they'd be paying for the privilege to be there.
On the other hand, the guy who comes in and tries to deliver the product, makes resonably, albeit slightly boring, choices and focuses on creating the thing people want, but the product fails because of poor market fit, deserves to get paid. It's not their fault if business people haven't done their jobs.
Because it's one of the most obvious questions to ask about Silicon Valley? You have to pay a hefty premium for programmers that may leave at any time for a better offer.
The rest of the US is a cheaper, Western Europe is cheaper still, and by the time you look at Eastern Europe you'll see that not only can you find programmers that stay on longer, you can actually find experienced ones.
There are literally thousands of blog posts on why or why not Silicon Valley, and the cost of living and hiring are brought up every time.
It doesn't seem to be so common among marketing people, lawyers, or politicians - all of whom, in increasing order of severity, might benefit from more if it.
I was thinking about exactly this earlier today -- I'm almost suspicious about my level of compensation. I work for a reputable company doing straightforward development, but the stars aligned, so to speak, in the timing of my offer, and I'm probably making twice as much as the average programmer with my experience in my region. I'm good at stuff, but I'm not twice as valuable. I just wonder if this is going to last.
> I can't really find an explanation for it so far.
He basically hinted at that by saying: "because I get to do what I love (programming,...)"
I believe you and gp (lemevi) are talking from 2 different perspectives. Your perspective is more about "don't sell yourself short" or "don't devalue your skills".
The gp's perspective is more about the "mystery of the universe" as to why an enjoyable job could pay more than a boring one. It's a similar sentiment to the successful novelists, comedians, musicians saying, "I feel lucky that people pay me lots of money for doing what I love to do." (Yes, there are tons of programmers who suffer through boring CRUD coding and treat it as "just a job" but there are also many programmers who truly enjoy the activity.)
I experienced the gp's perspective in my first job out of highschool. I happened to be a decent typist so I got a job to transcribe audio to word processing documents. One day, the business owner was looking at his screen in frustration trying to make something work. I looked over his shoulder and saw things like "DO WHILE" and "DEFINE PROCEDURE" on the screen. I just looked at it and then had one of those Jurassic Park moments[1]. I said, "you need to set a variable here, and move that line there, etc etc." He was totally surprised and said he'd pay me double the hourly rate if I could fix the computer program. I couldn't believe it. I had programmed computers during middle school (age 11 to 13) and treated the whole coding activity as "playing with a toy". I stopped programming during high school and worked at a fast food joint for minimum wage. I had no idea that people paid money for programming. People will pay me more for typing "DO WHILE" than mopping floors and hauling out grease buckets?!? That's absurd!
Yes, on one level, one can do all sorts of economic analysis (supply-vs-demand, marginal utility, productivity multiplier of software) and conclude that it makes perfect sense that programmers are paid $X more than brick layers. However, even with that logical rationalization, there can still be this "mystery" of why a person typing on a keyboard in a pleasant air conditioned office makes more than a brick layer sweating in 100 degree heat. It seems unfair that a "game" from my childhood earns more than back-breaking labor.
I've heard it mostly from individuals of more humble backgrounds working on projects with little connection to the value they create. Many people are simply unequipped at seeing how they impact at scale. I've often found myself reminding people of the contributions they've made and even gone to lengths of calculating those contributions so I can show them that, if anything, they're vastly underpaid.
It's nice to see someone have such a nice experience with their employment history. I actually have the opposite experience.
tldr: I am happy you had such good luck; mine sucked.
Worked in Tech Support (for a tech-related company), made tools to make mine and colleagues' from the department job easier and faster. This caught some attention from the infrastructure department, which got me "promoted" to junior sys admin. Nearly everyone kept point out how useful I am[1]. Yay!
But it's not really that much of a yay. It's now expected of me to still do tech support, work on those tools, do sys-ops for some big/corporate/enterprise clients, be the "errand boy" for the other [senior] sys admins (ie, do stuff that's "below" them or that they don't know how to do)
It gets worse. I am the lowest paid employee in the company, too. I get paid less than our DNS admins, simply because they're there longer (there's this certain "culture" in the company which I'll get to in a bit) and they hardly do anything, because most of their job is automated (and more so since I made their job even easier). I wouldn't even mind doing all this, but then pay me for all the three jobs I do. The reason for my salary is "historic": Is started working as a student, and even though I did get a few raises since my initial salary, it's still the lowest one in the company because the "base" salary is still what my student one was. I get paid ~£450 while the next person with the lowest salary gets ~£600 which is an [also under-appreciated] girl from the DNS department. Everyone from the tech support had at least ~£700, while my two sys admin colleagues get ~£1100 + bonuses; oh and I don't get bonuses for the same shit that they do; they even make me do something and then get the bonus for what I did. Sometime in the past they agreed to track "overtime" (which also includes any really special stuff for the really big clients which are outside of the contract that we'd do) under one user on Harvest, and just split it between themselves. I was given access to the harvest account and I tracked my time on it because I was told to do that. But they'd still split the money in half? The fuck. When I asked about it because I was genuinely not sure if I was doing something wrong, the response I got is, and I quote--because the absurdity of that moment is etched into my mind--was, "but I have three kids and you don't." I was too shocked to say anything and just murmured something in agreement. The other admin hasn't got any kids. He doesn't even have pets.
Also, some of the longer-employed employees are trying to push this "we're a family" bullshit, when anyone who's not them is clearly not part of the family, which is clear from how they all interact. If anyone from one of the "newbs" tries to buddy up, all they get is attitude.
And can't look for another job, because I wouldn't be able to relocate due to certain life circumstances that tie me to this town (at least for now).
Typing this is just making me furious so I'll stop now. I'll just like to add that, I am not in need of money, because I come from what is considered a "middle class" (I hate the labels, but they get the point across here) background. However the unfairness is what really gets to me.
[1]: Maybe I'm retarded and they want to make me feel nice.
I also get furious reading this! My advice: Thank them for everything you've learned and explain that you are about too seek other ventures, but you really like working for them, and wish them the best. Then leave as fast as your contract lets you. Take out any semester if you have any left and go on a vacation.
When you have officially quit and your contract is off. You can get hired again and can negotiate a much better contract. Also look for other jobs! And write down everything you've accomplished and the value you add to the company.
And in the future, if you even smell bullshit and think something is unfair, you have to open your voice and argue! You also need to "ventilate" far more often, so that when you "ventilate" it will only be small issues instead of the "huge pile" you just dropped.
I do not think my story is terribly common, but I was in a similar situation about 11 years ago. Somebody noticed, and at some point I was simply given a ~20% raise. I didn't even ask.
Some companies cultivate a recognition of talent, and some don't. Some companies are simply small companies, and the culture reflects some of the idiosyncrasies of a family (for better and worse). Getting a promotion without a pay raise is certainly a mixed signal.
The one thing I'd suggest you look around for, is to understand the business cycle of the company you're working for. If most of the revenue is from contract sys-ops for enterprise clients, pay raises may simply lag based on the client business cycles.
If you can't leave, you have no leverage and rely on the benevolence of others (a trait which is exceedingly rare). I've been in the situation where I went from being the junior hire to the team lead, with only minor pay adjustments. All it took to fix that was to point out (nicely) that I expected to be paid what I was worth, and they had the choice to do so or to risk me walking out. Line up an alternative, then leverage that into a better situation. If you have no alternative, you're not underpaid, regardless of fairness.
I could leave, but I am not sure I want to. I like the people and some of them have become my good friends and the job was genuinely fun until I became a donkey.
I have enjoyed most of it, apart from the parts highlighted earlier which frustrate and upset me.
My alternative is to quit and sit at home. One of the reasons (I'm not sure how relevant it actually was) why I took the job was because my doctor said it'd help manage my depression, and it did, because it made me happy, and the atmosphere and coworkers were amazing.
Although, if by alternative you mean another job, I don't know if I'll be able find one close enough so I can still take care of my mum.
Underpaid isn't really the problem, it's just a symptom of this "broken" culture, where anyone new won't ever be as valuable as the new crew (regardless of their actual value or how much they contribute). And I feel part of my problem right now is that that I'm in the department with all the old employees.
You do "tech support" and are generally tech savvy? Try getting a job doing remote QA. There are online services for testing apps/software. I work for a company that employs such a service to test our stuff.
Now, your real goal, it sounds like, is not to leave your current job, it is to get paid better. You can't do that without mobility.
Or sell yourself to the manager. "This is what I did (proof that you're valuable) - if you assign me to this new thing (and pay me more, since it's harder), I'm going to create 2x the value that I'm creating right now."
Projects fail for all sort of business reasons that have nothing to do with programming. However, that doens't mean that projects never fail because technical folks are not aligned with the business interests.
Sure, if you're just a worker bee, you can be selfish and milk these poorly organised start-ups for all they're worth, but if you wanna step up into those senior roles and actually have a chance of making something of those options, you need to weed out folks who don't care about delivery.
I'm not saying the guy definitely doesn't deliver but there are a number of indicators that suggest that he's not actually suffering from imposter syndrome but is actually just self aware to the point that he knows the companies hiring him are not getting value for money.
Even if that is true, he himself can hardly be blamed for taking the money. Whilst I try to deliver value to my clients, I also bill them as much as I can get away with.
Do you actually have an Android phone? Because this is totally not true at all. Like for example I just installed the imgur app and it's fantastic. I have 1password and it's great. Hearthstone? Yup, amazing. Just like every app I have I'm happy with. I just don't think you have any idea what you're talking about. I know an Android engineer who works for Square and they've got a huge Android team that is doing amazing work.
One of the quoted "transhumanists" is labeling those opposed to CRISPR as "bioconservatives", my first encounter with this word. Let's just keep labeling people and calling them names, this is going to advance the discussion in positive ways I'm sure.
Labels are how humans reason about categories of people, behavior, and things, so raging against the way the mind works is pretty futile at best.
Anyways - the label fits. If I want to tinker with my own genes, it is downright regressive to suggest that I don't own my own body enough to do precisely that.
Questions about passing those modifications into the gene pool are a separate from the question from the freedom of a person to do whatever they wish to themselves. I'd be willing to put up money on a bet that we will eventually have restrictive laws against self genetic modification along the same lines as the War On Drugs, and that those laws will not have exceptions for people who are unable to reproduce.
You don't own your body enough to do whatever you want with it. Everything you do comes down to you controlling and manipulating your own body, and every law that exists is a means of restricting your ability to do just that.
If I genetically engineered myself to produce an STD that selectively mutated into a deadly virus when it comes into contact with certain groups of people selected by genetic markers, well... that's not justifiable under the guise of "owning my own body" -- which is a vague concept anyway. I only own it insofar as everyone else allows me to control it. Ownership is negotiated, it is not assumed.
>> You don't own your body enough to do whatever you want with it. Everything you do comes down to you controlling and manipulating your own body, and every law that exists is a means of restricting your ability to do just that.
Most laws come into play when it involves OTHER people, not just yourself. Laws are to protect people from each other, not themselves.
Laws also protect public resources which you would use if you hurt yourself. For example, emergency rooms. If you hurt yourself, you do hurt others, it's just indirectly. There are plenty of laws for preventing you from hurting yourself. Worker safety. Public health. Motor vehicle safety.
Why do these discussions always swing towards reductions to the absurd and otherwise analogies that are more horrible than usual?
Your scenario is not a thing people are actually doing, or will actually do, and in a universe where it was, it's immune to the kind of regulation I was discussing anyways, so it's pointless to talk about.
Everything you do comes down to you controlling and manipulating your own body
We both know what we're discussing here. Stop it.
Who is harmed or even impacted in any way if I, say, make myself immune to malaria? Or give myself red hair or blue eyes? And don't have kids?
The insurance that everyone in this country is required to have. And I meant "immune to regulation" in the same way that the war on drugs is a complete and total failure at its goals.
This is my first encounter with it as well, but I think its a wonderful label because it accurately describes an attitude towards biotech that I find many people have in a succinct elegant way. I always found calling that group simply "anti-gmo" sort of clunky. What do you find offensive about it?
People with a shared opinion may have a variety of reasons for why they stand on an issue. By creating a label you make it very easy to dismiss at once the entire group without having to consider any of their arguments because of some personal bias or incorrect idea. Maybe you're less likely consider some new criticism because it came from dirty bioconservative who you're not going to even bother with.
You are correct. My point is that at least its more accurate than the labels and categories I already apply. Idk if removing words from our vocabulary would actually help with bias and other cognitive self-deceptions, its an interesting thought.
I don't think my pebble time is a gimmick. Not having to fumble through my bag to pull out my phone on every other notification or to check the time makes the pebble worth it. It's not a gimmick, it's a time saver.
I also no longer have notification noises on, I just have a thing on my wrist that vibrates. Again, a not insignificant quality of life improvement.
If I used iOS instead of Android I'd probably have an Apple Watch instead of a PT, since that works better with that platform.
I don't really care about smart watches being a platform for apps. Maybe that has stalled, but it doesn't matter to me. I haven't found a single app for the PT I think is useful. It doesn't mean I don't find my PT useful. If I lost it today, I'd order another one without hesitation.
Perhaps this is where you and I differ, but I can honestly say there is no notification I have received in the last week, even month, that required my immediate attention. Every single one could have waited 5-10 minutes until I was able to pull out my phone. And my phone is generally on the desk in front of me, so I can see the notifications anyways.
I have to ask, what are you doing that it is so important for you to see the notifications immediately? I just have a hard time imagining what notification is so important that you need something vibrating on your wrist to tell you of it.
For me, it's not about notifications being so urgent. It's about convenience. I definitely do get very important notifications sometimes, but probably very few that need to be responded to faster than 5-10 minutes.
The thing is that I never have to even remember to check. That's why it's so convenient. I've completely eliminated "check phone for notifications" from my mental to-do list. That's a task I simply never have to do again. That might not count for much for you, but in my case I like just being able to place my phone down, forget about it for potentially hours, and still not have to worry about missing anything.
Speaking as a person who goes to a lot of meetings, having the right notifications on my wrist are great. I am rarely late for meetings now, and I can keep track of key events while sitting in those meetings. A look at my wrist is much more subtle than a look at my phone.
I don't need to check notifications right away - but I like to. It's definitely a personal preference and nowhere near a necessity. This is why I don't see smartwatches becoming as universal as smartphones.
> Not having to fumble through my bag to pull out my phone on every other notification or to check the time makes the pebble worth it.
How many notifications do you receive that it would come out to be worth it? Seems like cutting down on the notifications would yield a higher return than spending money on a pebble time, or any other smartwatch.
I carefully manage notifications. Notifications that buzz actually require my immediate attention: slack notifications, texts from my wife, important emails.
As other commenters have noted, this seems like hyperbole. But on the off chance this is true, it really sounds like you need a vacation. HN is a little culty at times, but I'd suggest a long look in the mirror or a good mai tai session on a beach. Get back to you and what is really important to you, we only have so much time on this planet, and responding to every email is likely not going to be on your highlights reel
That deal with Microsoft was one of the first things Jobs did after returning. There's no way Gil Amelio would have or could have gotten the same out of Microsoft. The agreement itself was a significant accomplishment.
Similarly slashing the complex lines of offerings, selling the original colored iMacs at bigger profit margins than Apple had seen in years, etc were all things he pushed in less time than Mayer has been at Yahoo! Of course it's not fair to expect a new CEO of a troubled company to live up to that standard, but it's completely false to say it took him 10 years to "show results".
Just look at Apple's 10k filing from 1999. Net sales were hugely negative in 1997, in the black in 1998 and doubled in 1999.
I love containers as I can finally give up OS X because docker makes developing with virtual machines so painless. I can now once again buy windows hardware and just do my dev using a project's docker container.
wait until one of those dev containers tries to create a symlink in the folder docker-machine shares with your host. (hint: it fails, hard, in an unfixable way)
Not sure what you're on about. I just symlinked a file on the container inside a folder that was mapped to the host and nothing bad happened. Of course the host couldn't see the content of the file, but I was able to remove the file with no errors.
If I recall correctly this is a problem with virtualbox and not docker and it's only if the symlink is made in a specific way, like how npm makes symlinks.
How is Java low level. Java is a high level language. What is "low level" about Java? Do you mean statically typed makes it low level? No it doesn't. It makes it safer though. Low level means direct access to hardware and having to deal with network protocols manually and shit like that. None of which you almost ever do or would want to do with Java considering it runs on a cross platform runtime mostly isolated from the actual OS of the host machine.
It means that when it comes to writing code to deal with a query language, which involves having an AST and manipulating it every which way, Java gets creamed by many other languages. Both the Lisp series of languages (which Clojure is in) and the ML series of languages have wildly better stories for dealing with AST manipulation, as in, better enough than Java that it's worth learning those languages just for that, if that's the task you have.
Whether or not Java is a "bad" choice is a definition issue, that it is handily beaten by many other languages is pretty concrete.
I'm not saying this as a Clojure partisan, or a Java-hater, or anything like that. I'm saying it as one who has used enough of the relevant languages to know it's not even close.
For something more concrete, I'm more on the ML side, so work through https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_... and you'll see what I mean, even if you just do the first couple of chapters. For all that Haskell may be weird in some ways, consider what it means for a tutorial of a language to be talking about parsing in the second section. You'd never get that with Java.
I find i -> i % 2 == 0), still less readable than even?.
But let's step up the game a bit.
Let's produce a sequence of the form [true false false true true true false false false false ...] of exact length 1000.
(take 1000 (mapcat (fn [i] (repeat i (odd? i))) (range)))
IntStream.iterate(0, i -> i + 1)
.mapToObj( i -> Collections.nCopies(i, i % 2 == 0) )
.flatMap(Collection::stream)
.limit(1000)
Generate an infinite series of incrementing numbers, starting from 0, map each to a stream of boolean indicating true/false, flatten that stream of streams, then limit the output.
The thing is that these additions slowly creep into java, which is great. But you still have to wait for the mercy of the language designers.
Clojure is so flexible that it is possible to bring these things in as libraries, resulting in a very lightweight and stable core, and a very rapidly evolving ecosystem.
Also the persistent data-structures of Clojure make life so much easier. It's basically a language build around persistent maps and arrays.
> Also the persistent data-structures of Clojure make life so much easier. It's basically a language build around persistent maps and arrays.
When programming in Java (which I did for 14 years), I always thought about the little machines I was making and how they interacted. In Clojure, I'm thinking about what shape the data should be and what stack of stencils and folds (as a visual metaphor) I need to get it into that shape.
That is to say, Java is object-oriented, Clojure is data-oriented. So take data-orientation and add easy-mode concurrency and you have something wonderful.
To close standard libs gap, let's assume I have static functions for odd() and take() as well as Java8 stream APIs statically imported. After this, it looks pretty compact and readable:
I think he meant in the sense of low-level because of the language primitives offered versus what is possible with clojure (which lets you define your own essentially).
Edit: I see others have offered more thorough answer while I was reading sorry for the redundancy ;p
> As far as the cultural impact of the companies themselves, I think it's been modest at best.
Parents staring at their phones instead of paying attention to kids.
Social networks and their impacts on relationships. Movies these days are unrealistic these days because so much important dialogue happens via WhatsApp, text messages and Facebook Messenger, etc.
Guess who will not be driving their own vehicles in 10 or 20 years? Consumers.