Please don't learn to code - <AUTHOR> http://techcrunch.com/2016/05/10/please-dont-learn-to-code/ <comment><USER2> I never interpreted "everyone should learn to code" to mean "everyone should get a job as a software developer". Coding is a highly useful skill that can be applied in many professions. It doesn't mean everyone has to write professional quality software in the hottest language du jour.

"Learning to code" just means recognizing when a problem can be solved by applying a discrete series of repeatable steps and then learning how to tell the computer to do those steps rather than doing it yourself. The productivity boost we could get just by eliminating people manually copying and pasting (or, dear god, re-typing) things from one spreadsheet to another would be enormous, let alone other applications.

<comment><USER3> Exactly this. I think the article misunderstands, and/or misinterprets, the Learn To Code "movement". It's not a call to enlist more people as software engineers, it's a desire to teach powerful problem solving techniques and tools to everyone.

<comment><USER4> I have often seen it pitched as "Software engineers make a lot of money! Everyone should learn to code!". It's not quite an explicit link, but it's often strongly implied.

<comment><USER5> And all the studies showing software developers or "IT people" make the most money.

Individuals can understand nuance, people don't.

I'm reminded of that exchange from Men In Black. J (Will Smith) insists that people will understand about aliens, K (Tommy Lee Jones) disagrees:

J: "Why the big secret? People are smart. They can handle it."

K: "A person is smart. People are dumb, panicky dangerous animals and you know it. Fifteen hundred years ago everybody knew the Earth was the center of the universe. Five hundred years ago, everybody knew the Earth was flat, and fifteen minutes ago, you knew that humans were alone on this planet. Imagine what you'll know tomorrow."

</comment></comment></comment></comment><comment><USER6> This advice is as good as someone saying "please don't learn to play music".

Not only is is bad advice since there is obviously value in learning to play music even though you are never going to become a professional musician.

But saying don't learn to code it's like saying "please don't learn this category of language which will make you able to communicate with the very ecosystem that is increasingly dominating your life.

It's like saying. "Please be illiterate in the most important language you can learn besides your native one for the future"

In Denmark there is an expression "fagidiot" meaning idiot of their trade. I.e. people who are so puritan about what they do that any mistake is considered almost fatal.

It's like going to the movies with your friends from the army who can't enjoy a war movie because a gun doesn't really sound like that or you can't fire that many rounds of your M-16.

The probper advice is of course' "Please learn everything you consider interesting, and keep learning even if you suck at it and will never become a professional. Learning something means growing as a person."

<comment><USER7> _This advice is as good as someone saying "please don't learn to play music"._

The analogy is quite strong, here - perhaps more than the author realizes. I get the basic point about not expecting just pick up a book or two and crash the gates, overnight. But there's something fundamentally disheartening about a statement whose core message boils down to: _" Don't try"._

<comment><USER6> Exactly. Coding is one of the first really really important industries which have as much foundation outside academia as it does inside to allow for people to become masters beyond any comparable education the might take.

It's so important that even learning to pseudo code is going to take you a very very long way.

Code is IMO language. It's the language if you'd like of the future, how cliché that might sound.

Understanding even the basics of code (as of music) is almost of value way beyond becoming an expert in the field.

</comment></comment></comment><comment><USER8> > _The line between learning to code and getting paid to program as a > profession is not an easy line to cross. Really. It took me more than a year > of self-taught study before I got a freelance gig._

That actually makes it sound easy.

<comment><USER9> Yup.

"With no credentials I was able to work hard on my own for a year and then landed an entry level position with very good future prospects."

What other lucrative professional industry is this easy to break into?

<comment><USER10> Well, there are other skilled professions that pay well and are relatively easy to get into. Welding for example.

<comment><USER11> US avg. salary welder: $37,000

US avg salary software developer: $99,500

<comment><USER12> A simple mean doesn't fully illustrate what's going on there. Most welders are self-taught, and while their skills are more than adequate for what they're doing they likely don't have the skills necessary to (for instance) weld stainless steel or aluminum.

A welder who graduated from Tulsa Welding School with a year or so of training is likely going to start out somewhere around $50k. I have a friend who went there and specialized in underwater welding, and now he works for BP in the Gulf somewhere. His job consists of mostly inspecting the work of his juniors, and he makes about three times what I make as a software engineer.

<comment><USER13> > specialized in underwater welding...

> ...and he makes about three times what I make as a software engineer.

Hazard pay is coming into play here. For me, that's not worth it.

<comment><USER14> I was scuba diving at age 12, it's not as hazardous as you'd think with proper training.

<comment><USER13> Yep, I'm open water certified so I understand the hazards. People still die doing it all the time.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> 1103: "Please don't learn to read."

1527: "Please don't learn to write."

1965: "Please don't learn to type."

2012: "Please don't learn to code."

<comment><USER16> Actually when I see that stream of events, it makes me really wonder what's the next step...

<comment> Null-Set Please don't learn to train AIs

<comment><USER17> "Please don't feed the humans."

</comment></comment></comment></comment><comment><USER18> This seems like a ripoff of the old Atwood article, down to the plumbing analogy.

[http://blog.codinghorror.com/please-dont-learn-to- code/](http://blog.codinghorror.com/please-dont-learn-to-code/)

<comment><USER19> Not sure if this applies to everyone - the home page loads, but that page does not. I can, however, read it via cache: [http://webcache.googleusercontent.com/search?q=cache:m8BHxct...](http://webcache.googleusercontent.com/search?q=cache:m8BHxcttCiAJ:blog.codinghorror.com/please- dont-learn-to-code/)

</comment></comment><comment><USER20> I think this what people really are looking to stop:

"Tim just got a new phone. Tim needs his IT friend/family member to help him add wifi to his phone. However, by help, Tim hands the friend/family member the phone and now it works!"

Like others have said, the layman wants "computer science", but really wants "computer literacy". Phones, software, technology changes so fast that current teaching methods become outdated in years (I'm looking at you Intro to Computers classes). As computer literate users, we get you go to "Settings" and poke around til you see something like "Network" and then something like "Wireless" or "WiFi" and are set. However, would I do this same behavior with a car? Pop the hood and poke around?

Computer Science seems like the route to people because of the side benefit of "figuring it out on your own" comes naturally after 3 weeks of programming. Don't understand something? You have to pool every resource you have (instructor notes, slides, books, websites, etc.) to 'get' it. And even then its not an 'AHA' moment. Its a pray and 'whew' when whatever you did works.

But somewhere along the way, most programmers pick up that 'it', that computer savvy-ness that people are looking for. They want to stop being dependent on IT people because all we do is huff and puff about how simple a task is (regardless of program, if someone asked you how to bold text, how would you get them to bold the text WITHOUT pointing at the screen?).

Personally, it doesn't have to be "learn computer science", but it needs to be a complete redesign to the "Intro to Computers" style class.

<comment><USER21> The fad when I was taking CS 101 in 1985 was "program verification", so the first thing they taught all the freshmen was "programming calculus" [1], to write code in a stripped down "CF Pascal" dialect, along with proofs of its correctness.

I suspect the real reason was to weed out as many people as possible from perusing a degree in CS, because at the time everybody was signing up for CS because they thought it was the ticket to make lots of money.

If you didn't already have practical programming experience, you were fucked, because you had no frame of reference for what the proofs they wanted you to write were about.

If you already knew how to program, it was frustrating and useless, because you already had an intuitive understanding of the concepts they were trying to teach, but you'd never actually use those "programming calculus" proof techniques in real life -- the scope of the proofs was microscopically small, and couldn't scale to real-world non-trivial problems.

[https://www.cs.umd.edu/~basili/publications/proceedings/P39....](https://www.cs.umd.edu/~basili/publications/proceedings/P39.pdf)

</comment></comment><comment><USER22> > "with President Obama pushing for legislation to include computer science in > every public-school curriculum."

Computer science or computer literacy? The latter would probably be quite useful.

<comment><USER23> > "I would no more urge everyone to learn to program than I would urge > everyone to learn to plumb."

Agreed, but I would expect everyone to know how to flush a toilet. I think computer literacy is essential, not for your kid's career, but for your kid's life.

<comment><USER24> Similarly, plumbing literacy is very broadly useful. Even if you never become a professional plumber, you will probably benefit if you can figure out why a toilet or sink is not working as expected.

<comment><USER25> Yeah, if you turn the pressure off and are careful, you can do a lot of poking around. Like with computers. Turn the power off, and you can poke around quite a bit. Not so much with phones and modern day laptops though :/

</comment></comment></comment></comment><comment><USER26> "Everyone should learn to code" makes at least as much sense as "everyone should learn trigonometry." To me, it makes much more sense, actually.

I'm a software engineer. I might not be if I wasn't exposed to it in high school. Exposing more people to software is a decidedly good thing because it gives people agency. Teaching coding in high school also can enhance math and science that's already being taught. It gives students another interface to the curriculum that's far more exploratory than pen and paper. Everyone should learn to code.

Everyone should not be a software engineer. Obviously. People should do what interests them. That doesn't mean bootcamps are bad. Actually, I work at one! I think we do a really good job. There are problems with the market that Basel correctly identified. Its hard for consumers to assess the quality of bootcamps. There are certainly are snakeoil salespeople out there. But, I've watched hundreds of my students go on to start fulfilling careers in tech because of their hard work and ours. The market will sort itself out. The bad actors will eventually go out of business.

<comment><USER27> Every high school should have a calculus teacher. That doesn't mean that all graduating students will know calculus when they leave.

And at least since 1990, every high school should now have a computer science teacher.

It's not so much that everyone should learn to code, but that everyone should be able to have enough of an introduction to it that they will then know whether they need to learn the rest of it or not. Even if they don't, they will still have a better idea about what it entails, and technology will be less arcane magic and more like something that anybody could learn if they had the time and motivation.

<comment><USER26> I agree. I'm not sure everyone should be forced to learn for loops, or whatever. I also don't think high schoolers should have to memorize the krebs cycle or the fact that pv=mrt for gas systems.

I don't know. I really think young people should be in an environment where they can explore and grow passion for things. I think coding is fuel for that fire. I think its not enough to have CS teachers around. I think people should be exposed. It should be in the ether. You should see it in chemistry. You should talk about genetic programming in biology.

I just think HS should be so different from what it is now.

</comment></comment></comment><comment><USER28> Could it be that the future will value the ability to read code highly, where where writing it will be a specialisation?

Consider the discipline of western music. Many accomplished people learn to read music, but fewer to write it. Particularly to write at sophistication. Code is written to be read: when you compose choral music you need to be mindful of an individual chorister's ability to pitch intervals, and to find notes within the scale. (Handel and Haydn and Mozart are far easier to sightread than Bach and Beethoven.)

Strangely, our education system around computer code focuses on ability to write code first, and read code either as an afterthought, or not at all.

Our traditions come from programming languages which were very difficult to read. Unless you understood the tools for composition purposes, you probably couldn't read them. Even the early scripting languages were impenetrable.

Composition-focused languages like python and golang change that. Whitespace- orientation and named parameters/purpose-build-arg-structures help a lot. Also, you can write sophisticated python/go without understanding complex type systems. Compare to the mental checklist you run when you need to work out where a Java or C++ method call is being dispatched to.

Note that western musical system is far from general-purpose when it comes to the building blocks of sound waves. It has no mechanism for the rich world we call subtones, and it's not fantastic at rhythmic sophistication. Its strength is in the power you get within the tradeoffs between the notation and standardised instruments.

<comment><USER29> A lot of programs are single-use throwaway scripts customized for a specific use case, or at best have a lifetime measured in months or years. Whereas with music there are centuries-old pieces that are still perfectly usable and probably better than what a composer would produce as a replacement. So no wonder our attitudes towards reading and writing are different.

> Composition-focused languages like python and go change that. Whitespace- > orientation and named parameters help a lot. Also, you can write > sophisticated python/go without complex type ontology.

This is backwards. Languages without (or with limited) type systems are very hard to read, because you have a lot less reliable information about what's going on.

<comment><USER28>
        > Whereas with music there are centuries-old pieces that
        > are still perfectly usable and probably better than
        > what a composer would produce as a replacement.

As I see it, reverence for traditional composers comes from the culture where more people read than write. Other factors too - humans bond through sharing of specific tunes, and copyright makes manuscript artificially expensive and sparse.

Good composition is engineering.

When you study grades for composition or improvisation or kodaly teaching, you are taught systems by which you can write music. And you are taught to look out for ways to find new systems for yourself.

This surprised me. Up until then my mental model was that all art was subjective. But in western music, if you're doing something weird you're in trouble. Particularly in an exam.

Once you're trained in the art, you can hammer out good pieces on demand. Sophisticated pieces take time, as with coding.

By way of example, Kodaly would write exercise problems for his students on- demand, just to demonstrate a point during a lesson. He'd sit down for two minutes and scratch out a new piece, which they'd them perform. Faster than having to find an example in something that's in your existing library. Some of these exercises have lived on. This isn't evidence of genius. Rather, he was an engineer of the John Carmack school. Someone focused on an outcome, dismissive of the "don't reinvent the wheel" crowd. He had a need, he followed a system, a neat minimal piece was born. He considered it throw-away code.

We'll never know, but Mozart Coronation Mass shows signs of aggressive corner- cutting to get a product out the door. He reuses a lot of ideas across movements, he reuses an idea from one of his operas for one of the features. And - because it's a mass - he got his structure and words for free. It's good music, but we shouldn't put it on a pedestal.

        > This is backwards. Languages without (or with limited)
        > type systems are very hard to read, because you have a
        > lot less reliable information about what's going on.

In the hypothetical I describe, it would be the author's responsibility to make it clear with the restricted tools they have available. Code would truly be written for the reader.

</comment></comment></comment><comment><USER30> I think (and have often said) there are too many software developers.

However, I also believe that way too few people are technologically literate, and if anything that number seems to be going further down. To live effectively in an information society, people should not only be aware of what computers do, but they should also be able to write small programs that help them in daily life, as opposed to relying on the umpteenth horrible web service to accomplish trivial data processing.

So, more people who know how to code basic stuff can only be a net-positive as our society is moving away from manual labor. At the same time though we need less people becoming actual programmers. Our profession is absolutely flooded with people who are less than competent.

<comment><USER31> I agree with you - but I believe there are too many developers because there are, in general, not enough jobs.

There are millions of above-average to quite-high intelligence people on Earth, and computers are now so accessible, one used to be able to be bought for _$5_ (rpi zero), before supply ran out. In many other fields (especially ones requiring soft skills), "Who You Know" often is the only determining factor between you getting a job and being unemployed and (incorrectly) being deemed useless by society.

Humanity is unfortunately growing increasingly redundant, to the point where even specialized areas of medicine which take _7-13 years_ of additional schooling are facing automated extinction within the next 25 years. There are some industries, such as Accounting, which could have been automated years ago, but artificial barriers are put up between computers and clients of Accountants.

Unfortunately also, the people in power, seeing this, are just after a massive cash grab before it all falls down.

<comment><USER30> _> but I believe there are too many developers because there are, in general, not enough jobs_

True, but that is sort-of hidden under development methodologies and frameworks that enable untalented people to do less with more. It's also compounded by the fact that companies are _horrible_ at hiring and making software decisions.

 _> the people in power, seeing this, are just after a massive cash grab_

Well, people are always trying to do cash grabs, but in this context I can't help but wonder if the software development ecosystem is maybe exhibiting an unconscious immune reaction to our increasing obsolescence. I've seen different fields react differently to it.

In a typical office environment, there is _maybe_ 1 hour of actual work going on per person per day, yet companies are not getting rid of those people. You already mentioned medicine, here the immune reaction is generally a quasi- religious aversion to change, even where that change saves lives or improves quality of life.

In software, it's on-site basketball courts and clueless people with meaningless university degrees spending their days tricking bloated frameworks into performing trivial tasks.

<comment><USER24> Regarding the cash grab, it seems like some industries have a large number of players after a cash grab which will destroy their reputation, but the cash is worth it to them. In other areas, most people seem to value their reputation and will act with integrity most of the time.

</comment></comment></comment></comment><comment><USER32> In my opinion there would be two benefits to widespread coding literacy. The first one is that a wider range of people get in touch with the concept of programming and can consider it as a career option. This would IMO also help diversity. This does not mean everybody has to make a career of it, just like with all other subjects. The second benefit would be that a lot things people do manually right now could be helped along by simple ruby or python scripts. If more people had that tool on their belt, they could use it when it's beneficial for them. They don't have to be a full-time dev for that.

</comment><comment><USER33> This is attacking a strawman, as someone who will enthusiastically promote coding in schools and who try to teach my kids coding, my idea has never been that everybody needs to become a software developer.

To me learning coding is like learning math or history. It is an essential skill for modern society even if our primary job is not necessarily centered on those skills.

I believe done right, programming is a good way for many to understand many concepts in mathematics better. Many fields would benefit from just minuscule amounts of automation, yet they are not doing it because those working in the field have no understanding of the possibilities of automation. Having basic understanding of programming would let you understand better when and where tasks can be automated, even if you aren not necessarily the person doing the automation.

Almost everybody today use some form of software for their job. This software could offer better forms of automation of repetitive tasks if there was a basic general knowledge of the principles of programming.

Understanding how a task can be divided into multiple steps, which can be repeated by loops or conditionally performed by if statements does not require deeper understandings of singleton patterns, factory objects, strategy patterns, open closed principles, linked lists, binary search trees etc. Useful things can be done with simple programs.

</comment><comment><USER34> Agreed on not just doing it for the money, but learning for the sake of learning can be very rewarding and valuable.

I'm a marketer, but I consider myself a technical one. I taught myself HTML and CSS years ago, picked up some JS, learned quite a bit of Ruby and RoR, some database stuff, and genuinely enjoy learning about computers and how they work.

I don't use the bulk of it in my day-to-day, but knowing how to break down a problem into individual components, and more importantly, knowing the scope of what is possible with technology, has been a huge benefit for me (particularly on the analytics side of things).

I'm learning guitar now after having been pretty decent at clarinet when I was younger. It is humbling, and a slog, but it is making me think about music in new ways, and now I'll never look at a talented guitar player again and think "yeah, that looks easy, anyone can do it" when I know I physically can't stretch my fingers to play half those chords yet.

Learning a new discipline, even just the basics, is often enough to expand your world view, give you newfound respect for those that are experts, and can help you grow as a person. Being a "Renaissance Man" is something a lot of people have given up on but an idea I still think has quite a bit of merit.

</comment><comment><USER35> >an even greater number are run by modern snake-oil salespeople tapping into the average American's desperation.

I need to see some data on this.

It is true that whenever code is being written, someone on the team needs to understand the problem well enough to ensure that the requirements are being met with an appropriate architecture and design. In many organizations, these roles are filled by experienced persons, and the project just needs programmers.

Boot camps should do two things: 1) Identify persons with a mind for programming and the will to learn it; 2) accelerate that learning far beyond what a person can self-teach, with a focused curriculum that will enable them to contribute to a team on completion.

The point of the 'everyone learn to code' movement is to address the long term loss of better-paying manufacturing jobs with jobs that pay better than minimum wage. For sure, not everyone qualified for manufacturing is going to be a good programmer, but manufacturing automation is expanding, our competitiveness will depend on it, and the manufacturing robots and systems need to be programmed by someone.

</comment><comment><USER36> >>Meanwhile, my friend wrote his code only after thoroughly understanding the problem. He used almost all the allotted time to think about the problem. He did not write code until minutes before the deadline.

I fully appreciate this. Indeed, coming up with good idea of exactly what the problem is and then getting an idea of a computational solution are the most crucial steps to programming. Once you get a fairly clear picture of a computational solution, you can very easily write the code.

But coding is what must be done ultimately. If you do not write code that can be executed on an electronic (till now) computer, you haven't actually solved the problem, period. No amount of hand waving can do away the coding. I think, a child who learns to code can get many cognitive benefits out of it.

Of course, jumping right into coding without giving a thought as to what the problem is is a sure-shot way to frustration and other ill-effects. It's like getting a soldering gun and trying to build a complex circuit without doing any analysis and design first.

</comment><comment><USER37> This is like writing 'Please don't learn algebra', to me. Life revolves around computers; they are not merely appliances.

<comment><USER38> I hate to be so negative and come down hard here, but no, no it doesn't. Life does not revolve around computers any more than it revolves around movies, cars, or food. Life is about experiences and relationships, happiness...(and love too with a bunch of mushy other crap). The sooner we all realize this, the better.

<comment><USER39> Computing explains the technological world around us. The same reason it's very beneficial for society to have a solid understanding of basic science (and that doesn't mean being scientists), today society should expand its horizons and have a basic understanding of computing (without being software engineers).

I don't need to be a mechanic in order to fix my car was used a few decades ago. Today, cars may very well be black boxes, but if society had a basic understanding of computing, perhaps they'd advocate for more open car technology. It's beneficial for everybody.

</comment></comment></comment><comment><USER40> As someone with zero previous experience who attended an 8-month "Software Developer" program (not at a bootcamp but at a locally well-known public school in Vancouver) 2 years ago, for the hyped-up reasons the author mentions in the article (job availability, the "cool dynamic startup" factor, flexibility), I certainly agree with the premise that coding is simply not as easy as some people advertise it to be, and is not for everyone.

Now in a Junior Dev role working on complex ETL applications for the last year and half, I certainly feel like I am running on thin ice in my role due to my lack of knowledge about data structures, algorithms, and general computer science basics.

Certainly, the internet offers many resources for the right learner, but for those like myself who are not particularly gifted individuals, it would take another number of years to think about calling myself a "software developer" instead of a "coding technician".

<comment><USER41> Keep at it. What you can learn on-the-job from experience is much more valuable than anything you can learn in a dev bootcamp or through other avenues, IMO. I doubt you need many fancy "algorithms" to write complex ETL applications.

</comment></comment><comment><USER42> > Basel Farag is an iOS Engineer (he thinks). Besides GPU processors, robits > and AI, Basel enjoys learning about computer science, astronomy and > philosophy. He was once referred to as "the Daft Punk of people," a phrase > whose meaning eludes him to this day, but which he's pretty sure is a > compliment.

Please don't learn to humblebrag.

</comment><comment><USER43> I see it more as offering the opportunity to people to have an interest in it. I learned to code in my own time, by digging around and finding tutorials and snippets.

Part of my secondary school (high school) education was mandatory science classes where we covered biology, chemistry and physics. The majority of that stuff I haven't used since. With computers being more and more a part of our daily lives, why shouldn't coding be part of what we teach our kids? If they don't take an interest in it then that's fine, but there'll be a good chunk that will then use it later on in life.

Not to mention that it's actually great for teaching problem solving. Showing that breaking down a problem and solving it in a number of steps really helps grasp how to solve a problem.

</comment><comment><USER44> I think the article title and body are a bit disconnected. The author doesn't _really_ want no one to learn to code. They do, however, want to make sure people understand it's not going to be their golden ticket to the Wonka factory.

</comment><comment><USER45> I feel like I've read this article before somewhere. Regardless, it's about 2-3 years too late. This "learn to code" stuff was all the rage up until about a year ago but has since died down a bit.

<comment><USER19> Yes - I don't know if it's a trend, but it seems like plagiarism in internet journalism has been gaining steam lately. I think the internet is full now; we can stop creating new content.

<comment><USER18> The neat thing about the ease of searching news sites is you can see the incredible proliferation of news articles that are just rewriting someone else's scoop.

</comment></comment></comment><comment><USER46> "Please don't learn to code" keeps echoing in my head as "Please don't learn to read and write music".

There's intrinsic value in understanding the technology on which our life now fundamentally depends, as well as value in the intellectual rigor and skill development that "learning to code" requires.

I worry that the ultimate end of the "don't learn to code" path looks likely something like Economics -- a sadly esoteric subject on which those ignorant of it are nonetheless dependent, to their detriment.

</comment><comment><USER47> It is useful for people to understand what goes into developing software in the same way that it is useful for people to learn geometry in high school. Code is the most tangible form of algorithmic thinking that is accessible to most people. If a few hours of coding help people understand what it means to think that way, then it's a good thing for them to do. I took a drawing class, as an adult, to help me understand artistic perception. I'll never make a trade of it, however.

</comment><comment><USER48> It would probably more beneficial for everyone to learn the logic used in coding rather than the less important syntax of coding. The logic is what is applicable to other fields.

</comment><comment><USER49> >The line between learning to code and getting paid to program as a profession is not an easy line to cross.

I think if you are a women then going to bootcamps is still a good choice. I convinced my cousin to quit her job and get into a local bootcamp in chicago in 2014. Fast fwd 2016 she finally founds job as a junior dev at a local web dev consulting company. You also get scholarships for women/minorities.

Learning to code is still a good choice if you see yourself enjoying it as a profession.

</comment><comment><USER50> I fully enjoy "knowing" how to code (hacky js/html/css/sql, mostly from stackoverflow). It helps me understand and communicate problems in my day to day job, it's fun to mess around with for creative projects outside of work. I don't think I'd enjoy it as a full time job. I do think the analytical aspects, along with the ability to create something from "nothing" makes it worthwhile to learn for most people.

</comment><comment><USER51> I think adult can do whatever they want. But every kid should be given the chance and opportunity to learn coding, and it should not be mandatory.

<comment><USER52> Why not mandatory? Lots of other core, useful skills are.

<comment><USER51> Because I believe it is not an essential surviving skill for everyone (at least for now).

<comment><USER52> Neither is literature, nor languages, nor history, nor geography, nor mathematics over simple addition and subtraction.

But we teach these to kids so that they have a greater chance of understanding the world around them.

<comment><USER51> Fair point. But what subject should we replace from the current curriculum? Adding another subject seems like another burden for students.

</comment></comment></comment></comment></comment><comment><USER53> Dream of the day everyone decides to "Learn to Hack" \- since learning to code will only go so far.

</comment><comment><USER54> > _Software engineering is a lucrative field, but the transformation from > "coder" to "engineer" is challenging._

And in other news, going from "I know how to read and write" to "I just wrote the next Harry Potter" is also lucrative yet challenging.

</comment><comment><USER55> The learn to code movement created to get more H1B visas for Microsoft rather than fulfill an actual need:

[http://www.slashdot.org/story/275175](http://www.slashdot.org/story/275175)

</comment><comment><USER56> "Learning to code" is a lifelong endeavor. You don't pick a laptop and set aside a few hours. You can't do that if you wanted to learn how to write poetry in French while only knowing English.

</comment><comment><USER57> The author of this article is as much as admitting he was expecting strong reactions from the post title. I believe we should remove this click-bait headlined article from this (mostly) non-polarized place.

</comment><comment><USER58> Learn to code. Coding is a horrible profession from many perspectives. Many people have tried and failed to do it as a full time job. Many people who do it don't do it well.

<comment><USER59> Many people on a lot of professions provably don't do it as well as the superstars in each field. Are University of Oregon law school grads as 'good' as Stanford law grads?

<comment><USER58> I know the bar is pretty high in terms of what is passable as a programmer that works actual gigs. It's higher than a lot of other professions, where credentials mean more than actual performance and you can fudge/bs your way out of many situations. So it's fine if someone wants to try more power to them. Anyone can potentially do it, but to do it at a commercial level you can't just pass yourself off you have to be relatively good at what you do... otherwise you won't get hired or get fired rather quickly.

<comment><USER60> Oh there are plenty of (usually large) companies that love to hire legions of mediocre (or worse) "programmers" to work on large projects.

How do I know this? I work in the defense industry. I've seen some things :'(

<comment><USER27> Yep. I've seen those things, too.

If I weren't politically libertarian already, they probably would have pushed me in that direction. Beware the military-industrial complex indeed.

Part of the reason why I support UBI is the number of people I already see receiving a basic+ income and benefits in exchange for doing a job that doesn't really have any rationally justifiable reason for existing.

</comment></comment></comment></comment></comment><comment><USER61> Please DO learn to code - [https://jobpigapp.com/blog.html#/4](https://jobpigapp.com/blog.html#/4)

</comment><comment><USER62> this does not really fit my experience. If you've got a decently sized brain you can learn to code and get a job doing it. it wont be the best job and certainly to me, developer is not a dream job. its not even a very high paying job. but it pays the bills and can get you a mortgage and there is enough work. software development will be the working class of this century.

</comment><comment><USER63> I'm sorry, but didn't this same article get posted two or three years ago? Looks incredibly familiar.

</comment><comment><USER64> I've heard that in Japan programming is just another job. Are they ahead of the curve on this?

</comment><comment><USER65> okay but should high school really have required classes for Calculus but NOT intro to programming? I don't understand why our kids _must_ learn math at a high level, but even basic programming is not required.</comment>


A Clone of "Space Invaders" in VHDL - <AUTHOR> https://github.com/fabioperez/space-invaders-vhdl <comment> iso-8859-1 Would be really cool to see a fun project like this in CλaSH HDL and compare...</comment>


Ask HN: Why are free iOS apps most downloaded form China and Russia? - <AUTHOR>

I recently launched a free version of my iOS app. On day 1, the most downloads were from China and Russia. Given my app is intended for south indian classical music users, this is an unexpected demographic to be actually interested in the app.
Any insights on why these downloads are happening from China/Russia?
The last time I tried this, China and Russia dominated the initial downloads but quickly came down the list.
It almost looks like some bots are watching for free apps and download them automatically or something :) <comment><USER2> Probably for the same reason most app piracy also comes from China and Russia. On iOS your competitors may be having paid apps, so if yours is free, they'll get yours, while downloading almost none of the paid apps from competitors.

The point is, people there can't afford to buy apps, so they'll get them for free (either from the store, or pirate them). Both countries have large populations, too, so you're more likely to notice the "surge".

<comment><AUTHOR> I'm having a hard time believing the app affordability argument 'cos iOS apps require iOS devices to run them, which aren't by any means cheap in these countries. I'm guessing these were downloaded using a scripted iTunes on a desktop/laptop. But why?</comment></comment>


Plop: A Slack chatbot built using Glitch - <AUTHOR> https://medium.com/@teawaterwire/makers-glitch-amour-e4d2f5869d4d <comment><USER2> I found this article really difficult to read because of all the inline emojis, maybe I'm just getting old? :-(

The problems you found with the editor (no search?!) tell me that OIDEs still aren't ready for me. That said I'm a fairly atypical user. I probably touch my mouse 10 times a day total.

<comment><USER3> > I found this article really difficult to read because of all the inline > emojis, maybe I'm just getting old? :-(

It was distracting at first, but I was glad the were less frequent down further. They didn't add much to the article except noise.

</comment></comment><comment><USER4> It's a pretty funny title because the startup the founders of Slack were working on before Slack was a failed online game called Glitch ([https://www.glitchthegame.com](https://www.glitchthegame.com)) :).

<comment><AUTHOR> Amazing! :)

</comment></comment><comment><USER5> I'm still not convinced by online code editors but this looks promising, you do raise valid points of improvement though.

</comment><comment><USER6> Mods: This title makes no sense. This project is not called "Amour". This is simply the french word for "Love". The title is "Makers + Glitch = Love".

<comment><USER7> Thanks, we've replaced "Amour" with "Plop". I'm afraid little sense can be made of any algebraic combination of Makers, Glitch, Love, Amour, and Plop, so we'll leave the rest of the title as-is.

</comment></comment><comment><USER8> Really dank memes in your article.</comment>


The Limits of Friendship - <AUTHOR> http://www.newyorker.com/science/maria-konnikova/social-media-affect-math-dunbar-number-friendships

<comment><USER2> Reading the comments, I'd say many members of HN should probably invest more time fostering friendships. Its not that difficult to maintain relationships but it is shockingly easy to let them dissipate.

Every so often I set out to "make the rounds" and see my friends who are spread across the country. I'm a bit of a nomad and yet its often my return that triggers close friends to see each other when they live minutes away. Just pick up the phone and call someone from time to time, let them know you give a shit. It's amazing what a phone call once a month and a visit once a year can do to sustain a meaningful relationship with someone.

People are, on average, terrible at staying in touch with one another. Be the outlier, you'll make the world a better place.

<comment><USER3> I wish I would have. Sad thing is, the ease of developing new friendships seems to be a function of the number of existing ones. Once you reach zero, like I have, you're pretty much stuck there.

<comment><USER2> New relationships are a combination of luck and hard work, regardless of your current state. I think having additional friendships just increases the luck side of the equation slightly.

If you want to develop new friendships I'd say find hobbies where you might find interesting people. Some hobbies tend to have more welcoming communities than others, climbing gyms being one of the better environments I've come across for meeting new people.

<comment><USER4> Totally agree. And some sports are just friendlier than others.

I play badminton, and I've occasionally played ultimate frisbee, and both have a great inclusiveness culture, at least in Colorado, Washington, Texas, and California, the places I've variously played. Much of my current group of friends that I haven't met through geek-oriented meetups I met playing badminton.

I also used to play volleyball, but ... well, too many jerks turned me off. Now I only play with friends at parties.

It's worth emphasizing that making new friends _takes time._ It was a year before I felt I had good local friends after moving to Colorado, and 2-4 years before I was doing things with them outside of our original meeting group. It probably could be done faster -- I suck at the whole social thing -- but for the poster above who claimed to be stuck at zero: Put in the time, do the work, _take a chance_ by reaching out, and you _can_ build friendships.

ALSO: Watch this TED talk:

[http://www.ted.com/talks/brene_brown_on_vulnerability](http://www.ted.com/talks/brene_brown_on_vulnerability)

</comment></comment></comment></comment><comment><USER5> What I'd love to know is how people carve out time and energy for learning/self-driven education, hobbies and such in addition to friends, particularly if introverted.

My wife seems to be quite good at making friends, because she invests a large % of her time and energy in socializing, and I feel like it is slightly less awkward for a female to invite female coworkers out to do something than it is for male coworkers (feel free to rebut me here). Fortunately, many of her friends have SO's that I've become friendly with, and we have a variety of "couple friends" we do group activities with where she also frequently hangs out with the female half of that equation 1:1.

I on the other hand have multiple hobbies, am working on teaching myself to code, and am constantly teaching myself new things (for example, I was brushing up on multivariable regression analysis at 1am in bed). I barely have time for this as it is without adding socialization to the mix, but I feel like I get more fulfillment out of my current approach. I've certainly learned more as a result.

I'm also an introvert. I can be very social and likable in the moment, but making new friends and the simple act of socializing is _draining_ vs. my other solo activities which replenish my reserves.

Seriously, I'd love to know how people strike that balance and how they make new friends/maintain existing ones without constantly running on empty from the time and energy it takes to do so.

<comment><USER6> I used to use words like "introvert" and "extrovert" to explain why someone eases into social graces so much better than myself. At some point in my life I realized that socializing, while maybe more intuitive to some, is a _skill_ you get better at with time and energy. Just like any other skill, it's extremely draining and takes a while to reach your goals. You can chock it to being an introvert, or you can invest the time it takes to become skilled at socializing so that discomfort is removed.

<comment><USER7> I don't believe that introversion is like sedentary lifestyle, which can be cured through exercise. I have taught myself to socialize, and people tell me I am good at it. But it has never stopped being draining. I just do it because I know it helps me socially and professionally. Discomfort hasn't really been a factor since my mid-thirtiesbut it is still as exhausting. Unlike in my teens I get invited to parties, but I still go home early.

<comment><USER8> Exactly, it's not that there's an initial hump of energy loss that you get over and it gets easier, it's the same even with those you've known a long time. However, I've come to realise I spend a lot of time complaining about social interaction draining me, but almost none allowing myself the time to have social interaction and recover afterward.

</comment></comment></comment></comment><comment><USER9> > a hundred and fifty, is the number of people we call casual friends—the > people, say, you'd invite to a large party. (In reality, it's a range: a > hundred at the low end and two hundred for the more social of us.)

And I thought I was doing well with 4 casual friends and one close friend.

<comment><USER10> I haven't socialized outside of work with someone who I don't work directly with in... decades? (aside from the person I'm married to :) ) I also see lots of other comments in this thread echoing similar sentiment.

I have a feeling we may be in a community that is an outlier to "typical" social behaviors.

<comment><USER11> I have worked remotely for years. I have no close friends anymore (aside from my wife) and I would not have any casual friends if I didn't go to church every now and then.

But I'm a genuine introvert and don't mind.

<comment><USER12> I work remotely, recently moved to a new city, don't belong to a church, and have about a dozen causal friends locally (most of them gay men, via a random work-connection of my girlfriend's and the fact that the gay community is ridiculously welcoming and outgoing.)

I'd say "Introverts of the world, unite!" but that would kind of defeat the purpose.

I've speculated that the 150-person limit on pre-political human group sizes is due to the limits on our attention: [http://www.tjradcliffe.com/?p=1203](http://www.tjradcliffe.com/?p=1203)

That speculation was based on the idea that men form groups to support each other in mate competition, but it could well also be a primary phenomenon, with 12 or 13 being the absolute upper limit of our attentional resources. That would give 150 people as the typical group size. Either way, it would be very interesting if we could tie those two magic numbers--7 and 150--together somehow.

</comment></comment></comment></comment><comment><USER13>
      Unlike other touch receptors, which operate on a loop—you touch a hot stove,
      the nerves fire a signal to the brain, the brain registers pain and fires a signal
      back for you to withdraw your hand—these receptors are one-way. They talk to
      the brain, but the brain doesn't communicate back. "We think that's what they
      exist for, to trigger endorphin responses as a consequence of grooming,"
      Dunbar said. Until social media can replicate that touch, it can't fully replicate
      social bonding.

Crazy thought: Could the haptic-messaging features of the Apple Watch make it the first mainstream product to tap into this principle?

</comment><comment><USER14> Have you ever lived somewhere, perhaps a city, where all your close friends change every few years because everyone keeps moving? That was my case living in Vancouver. I have since moved and have had to start over myself. I find that it takes a while to build close friends especially once you are in the job market and everyone has families. It also takes a lot of effort to keep close friends because i'm so busy with non-social things and sporting activities that I'm rarely free just to hang as I did in University. This is doubly true for those in relationships as we also have to spend time with our partners friends and families too.

Not complaining, but it's difficult to adjust to compared to grad school.

</comment><comment><USER15> I'm glad that this article points out that the Dunbar number is a RANGE. (That's what you should expect about most numerical statements about typical human beings. The number you hear in a news story is just the central tendency of a number that varies among different individuals.)

The article reports, "On the flipside, groups can extend to five hundred, the acquaintance level," and that would suggest that my group of Facebook friends (a bit more than 700, the great majority of whom I have actually, factually met in person) is a group of acquaintances. And I'm okay with that, as they are FRIENDLY acquaintances, and they interact with one another (in many combinations of individuals who have never face-met even once) in delightful and thought-provoking ways.

I feel a lot of empathy for the younger people commenting in this thread that they feel they have few friends and few channels for meeting any new friends. That may change over time. There have been times in my life when I was much more isolated than I am now, when it would have been unbelievable that I would ever have an online network of 700-some "friends." Of course like a lot of married men, I've invested most in my relationship with my wife, and she is by far my best friend, and also a connection to other friends. I do think the article makes a good point that it's wise for each of us to enjoy some of the in-person aspects of friendship (hearing someone's voice, maybe tapping someone on the shoulder or hugging or whatever as is appropriate for the friendship) to build a connection with people that just can't be built by keystrokes sent over the Internet.

</comment><comment><USER16> In high school I had 30 casual friends and 15 close friends, at University I had 20 casual friends and 10 close friends, now I have 10 casual friends and 5 close friends, I predict them to reduce to zero when I get married. :(

<comment><USER17> It's unfortunate you don't consider your spouse a close friend.

<comment><USER16> I hope my girlfriend doesn't read this.

<comment><USER18> I hope your wife doesn't read about your girlfriend.

</comment></comment></comment></comment><comment><USER19> Path was basically founded on the idea of Dunbar's number and that didn't work out so well. I think they assumed people wanted deeper connections with their friends online than folks really did. This article backs that up pretty well.

It is interesting the conclusion about the thinning of relationships and what the impacts of that are. I agree that you can likely form very strong bonds over the web but I don't think at this point they can replace actual physical interaction for the majority of people.

</comment><comment><USER20> The article says, "Thus, from the size of an animal's neocortex, the frontal lobe in particular, you could theoretically predict the group size for that animal". So I did a bit googling and found another article, here

[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1626378/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1626378/)

This one has another interesting point: "These analyses show that while relative neocortex size is positively correlated with female group size, it is negatively, or not at all correlated with male group size. This indicates that the social intelligence hypothesis only applies to female sociality."

Perhaps after a man gets married with a woman, he could shift much of his social function of the neocrotex to his female partener, and free up that part of the brain for some other interesting stuff...

<comment><USER20> Assuming in a typical courting relationship network, a female is being courted by 8 males at the same time, and assuming all those men would devote much of their resources to their courtship and hence would have few resources to spare for other inter-personal relationships, it looks like the neocrotex of the female would need to take on more burden (e.g. more developed) as to take care of those 8 links, than the neocrotex of each man needs to maintain a single link.

This may explain why most of the time woman is more adept at dealing with those sociality issues.

                                        male_0
                             male_7    o
                                 o     |     o male_1
                                  \    |    /
                                   \   |   /
                                    \  |  /
                                     \ | /
                          male_6      \|/ female
                             o</comment></comment><comment>---o</comment><comment>---o male_2
                                      /|\
                                     / | \
                                    /  |  \
                            male_5 /   |   \
                                  o    |    o male_3
                                       o male_4

</comment><comment><USER21> "On the flipside, groups can extend to five hundred, the acquaintance level, and to fifteen hundred, the absolute limit—the people for whom you can put a name to a face."

This is spot on. I was able to reliably recall passengers I'd had driving for lyft up to about 1000 rides, which is 1500 minus the "number of facebook friends I have".

</comment><comment><USER22> The article makes sense to me, but one point I'd make is that we didn't start becoming more socially distant from each other in the Internet age, from what I see it's an extension of what we experienced in the TV age... Yes, you might be in the same room as other people watching the same TV show, but the level of interaction is minimal, and the content you get from TV is often far removed from your reality so it doesn't really offer much in the way of insight in navigating your current world.

I'll put it like this... I watched a lot of TV growing up, and it has clearly shaped my imagination. If we ever had some catastrophic event after which civilised society broke down, I would have a better idea of how to navigate that world than the one we have now, which I find it easy to be disconnected from. Of course I don't want to live in a dystopia, but it's a reflection on how we connect to what we consume.

</comment><comment><USER23> I read a more basic article on this a while back on Cracked[0], that you might find interesting if you liked this.

I find there to be a lot of truth to the basic idea of this. But I think there is also a lot of individual variation. As I have gotten older and developed better social skills, I recognize that I am an Introvert at my core, and only care to maintain a small number of close relationships. Despite this, I am capable of being social, chatty, and sometimes even charming during social events, when I'm at my best, but I usually have no desire to maintain most of those relationships.

At the core, you have to figure out what is right for you, not what other people or society think you should want, and work towards maintaining that.

[0] [http://www.cracked.com/article_14990_what- monkeysphere.html](http://www.cracked.com/article_14990_what- monkeysphere.html)

</comment><comment><USER24> There are also many positive ways to manage an extended network of friends - ie. the people you don't see on a day-to-day basis.

For example, I definitely don't abuse my social network and groom it on a regular basis, both public and private feeds and profiles. My LinkedIn account has "only" 83 connections and my Facebook has 143. Yes, I know every single one of them. Facebook in particular has allowed me to connect with my extended family overseas so I put a lot of value into each of my posts on there, even if others choose not to. Sometimes I even translate my own posts for the sake of my non-English speaking family so as to guarantee the furthest reach of my social broadcasts.

Everyone is always happy when I reach out to them, even if it's only once a year on Facebook. I also try not to do it on the day of their birthday, on holidays, or on any special day per say as it amplifies the gesture.

</comment><comment><USER25> Anecdotal evidence as part of a Burner-esque 'tribe' of party people: 120-150 is about right.

Same holds true for client relationships in IT.

After that they are just faces in the crowd, not people.

</comment><comment><USER26> So we know that Dunbar's number is really, REALLY important when it comes to human interaction.

But nearly everything in the near past has to do with flouting it, creating huge institutions which absolutely, positively make Dunbar's number look like a joke.

Perhaps that is why there's a lot of trust eroding in the big institutions. When size >> Dunbar's number people have the anonymity they need to start doing less great things and get away with it.

</comment><comment><USER27> > One concern, though, is that some social skills may not develop as > effectively when so many interactions exist online.

Maybe we're just adapting ourselves to the new social environment. We forget what we don't need to survive, and we learn skills in a different form from what is considered as a "normal" in this present time.

</comment><comment><USER28> Many of us complain about not keeping in contact with your friends regularly.

What would you think about an application that notifies us to communicate with friends frequently?

<comment><USER29> I would dismiss any and all notifications with a curt 'oh piss off!' unless they were impeccably timed and had something sentimental like a large photo of me with that friend.

</comment></comment><comment><USER30> Seems like either Dunbar's number is from some alternate reality or many of the commenters (including myself) are the alternate reality...

<comment><USER23> I think it's an average over a large number of people. Online communities, like HN, tend to fill with Introverts, which I think are on the lower side. There are also lots of extroverts out there who genuinely enjoy maintaining huge numbers of friendships, but I don't think they spend much time posting on message boards. Especially ones that tend to be a bit on the pedantic and humorless side, like HN.

Don't get me wrong, HN, I love you the way that you are, even if every now and then I think you could stand to lighten up a bit. But I will confess to a need to visit Reddit for some jokes and pun chains sometimes.

</comment></comment><comment><USER31> I'm doubtful about both the data and the results of this article.

</comment><comment><USER32> interesting point about touch (light stroke) at the end, which online can't replicate, and the apple watch idea of communicating your heartbeat

</comment><comment><USER33> That was a well written article up until the links to sites behind Harvard University's paywall accessing service.</comment>


The Military Is Building Long-Range Facial Recognition That Works in the Dark - <AUTHOR> https://onezero.medium.com/p/4f752fa713e6 <comment><USER2> Can't balance budgets, control inflation or fix deficits.

Can spy on you in the dark.

Life goals.

</comment><comment><USER3> Dead link?

<comment><USER4> I think this is it: [https://onezero.medium.com/the-military-is-building-long- ran...](https://onezero.medium.com/the-military-is-building-long-range-facial- recognition-that-works-in-the-dark-4f752fa713e6)</comment></comment>


Human memory-stimulation devices get $37.5m research boost from DARPA - <AUTHOR> http://arstechnica.com/science/2014/07/human-memory-saving-devices-get-37-5m-research-boost-from-darpa/

<comment><AUTHOR> The title of the article says "Human memory-saving devices", but none of the devices actually store any memories. They're currently just being designed to help people form and retrieve new memories by stimulating certain parts of the brain.</comment>


America closes the last loophole in its hounding of Huawei - <AUTHOR> https://www.economist.com/business/2020/08/18/america-closes-the-last-loophole-in-its-hounding-of-huawei <comment><AUTHOR> [https://archive.vn/WldqZ](https://archive.vn/WldqZ)</comment>


Compact Off-Heap Structures and Tuples In Java - <AUTHOR> http://mechanical-sympathy.blogspot.co.uk/2012/10/compact-off-heap-structurestuples-in.html

<comment><AUTHOR> Funny, I was actually manipulating C structures from Java, and after hitting a nasty issue, went procrastinating on twitter where I stumbled upon this blog post :)

For those interested, there are less low-level ways to access fields in structures, for example Javolution [http://javolution.org/target/site/apidocs/javolution/io/Stru...](http://javolution.org/target/site/apidocs/javolution/io/Struct.html)

I'm working on a very similar lib but where Structs are stateless, allowing to use them concurrently from multiple threads.

<comment><USER2> Just a quick question. For the flyweight idea in the article you get additional thread unsafeness even for immutable data in that you are changing where the flyweight points (which is how you want to do it to avoid creating and destroying a lot of flyweight objects). What is your idea to pool/control multiple flyweight accessors?

<comment><AUTHOR> [Not sure whether the question is directed to the author or to my comment but I'll answer anyway :) ]

Basically, there are 3 notions

1) the buffer (byte[] or whatever) containing the data, immutable at least while the data is being accessed by a given thread

2) the Struct object: defines the structure of a message (field length, offset, arrays etc.)

3) the Message (aka the flyweight) that points to a given offset in buffer and is bound to a Struct instance

The buffer and the message are normally accessed by only one thread, but several threads can share Struct instances (i.e. the dictionary).

Each field (even deep in the field hierarchy) knows its offset relative to the beginning of the message, so values can be accessed like eg.

      int foo = struct.foo.getInt(msg);

The only complicated thing is when dealing with arrays (especially when nested in other arrays). The message does the bookkeeping necessary to safely access elements, ie. the mutable state is stored in the flyweight.

</comment></comment></comment><comment><USER3> Pretty much as expected. I'd be interested to see a comparison with object pooling (obviously not appropriate to the algorithm as written, but in a real system you're more likely to be streaming in data in chunks rather than putting it all in a big buffer and then reading through it), which lets you get a lot of the performance advantages of avoiding GC without completely abandoning Java's safety guarantees.

<comment><USER4> How would it work with object pooling if I wanted to query a large table of data? This is often needed in real big data applications.

<comment><USER3> For that kind of problem I'd probably be using hadoop, which does object pooling internally with the objects it passes into your mappers/reducers.

For a non-hadoop datasource you could do the same thing by hand: stream in the data from the table, turning it into objects from your pool and passing them through to your reducer function in small batches.

<comment><USER4> Interesting. It sounds like your issues are IO dominant since you do not mind the JVM startup cost from Hadoop for each query on each node. I'm more often looking at large data that is all memory resident which tends to drive the design this way. In finance queries need to have latencies way below sub- second which Hadoop cannot come close to satisfying. This is comparing batch to real-time analytics.

<comment><USER3> You're right that most of my big-data experience is batch work, and outside of finance. I guess I'm finding it hard to envision the kind of data where you'd want to work on the whole set, but that set's small enough to fit into memory - for real-time analytics wouldn't you be wanting to stream data and reduce it to the representation you want as it comes in?

</comment></comment></comment></comment></comment><comment><USER5> That is both scary, and so very intriguingly interesting!

</comment><comment><USER6> you can do this on heap with byte[] using Unsafe.arrayBaseOffset and getInt(Object, long), putInt(Object, long, int) and friends</comment>


Adobe attacks Apple - "You're undermining the next chapter of the web" - <AUTHOR> http://www.adobe.com/choice/openmarkets.html?

<comment><USER3> Apple's engineering decisions have produced a platform that works pretty well and is enjoyable to develop for. They've sold a lot of handsets as a result. If it weren't for these decisions, then the sales wouldn't have happened and Adobe wouldn't be trying to strongarm their way onto the platform.

In short, decisions such as not supporting Flash are in fact part of the OS's appeal and this entire debate is bizarre.

Furthermore, Adobe's entire argument that developers and consumers should shun Apple's lock-in for Adobe's lock-in is absolutely absurd!

edit: In thinking about it, the danger of an Adobe (or any other vendor) monopoly on the write once, run anywhere application market is huge. It's several orders of magnitude greater in significance than that of Apple controlling the development environment for its own devices.

Apple will have a large market share in internet-connected devices for quite some time, but it probably won't ever command a majority of marketshare in any given segment (it will command an abnormally huge amount of revenue share though, the way it does with PCs and now phones). If you don't like what Apple offers you as a developer, there are plenty of other targets. If Adobe gets its way and controls the runtime everywhere, and even assuming it works and is fast everywhere (it won't be), then all developers are probably screwed.

Lastly, it's disappointing that Google in recent times has reneged on its relative commitment to HTML5 given its Android and Chrome development decisions to bundle flash into both platforms. This is a much more significant development, with much greater consequences, than changes to the iPhone dev agreement because Android and Chrome, in various forms, are likely to be run on the plurality of devices going forward. We need HTML5 to succeed flash, but this won't happen until the infrastucture is built: implementations need to get faster, dev tools need to be built, et cetera and Google's decisions have likely impeded this process by removing some of the incentive for these things to happen.

<comment><USER4> While native apps are amazing and performs real well on iPhone and iPad,performance of web apps is a disaster on these devices. iPhone struggles to render even the basic javascript effects properly. Having said that i am not disappointed by this. I do not expect the iPhone to provide a full blown internet experience. Its a freaking phone! I still dont get why Adobe tries so hard to provide Flash on Iphone.

On the other hand, the choppy -almost unusable- HTML5 experience on iPad, makes me feel like these devices arent optimized to provide rich experience within the browser realm. Perhaps Apple wants us to depend more on the app store than the web based apps (Google's business).

<comment><USER3> Agreed to some extent. There's a lot of work to be done. Adobe as an additional middle man, however, won't fix anything.

</comment></comment></comment><comment><USER5> _But Flash is popular with developers for building smartphone apps. Many developers use automatic translation tools - some built by Adobe - to convert Flash code so their apps can run on Apple gadgets._

They do?

</comment><comment><USER6> "We publish the specifications for Flash — meaning anyone can make their own Flash player. Yet, Adobe Flash technology remains the market leader because of the constant creativity and technical innovation of our employees."

Read: our player remains the only viable one because we keep moving the goalposts on everyone else.

<comment><USER7> Also: because they're lying — they don't publish the full Flash spec. Any alternate Flash implementation simply doesn't work on video sites with encrypted streams, which means it will never gain traction.

<comment><USER6> Oddly, such a Flash player would probably do fine on major mobile platforms.

</comment></comment></comment><comment><USER8> HTML 5 and CSS3 should be the next chapter of the Web and not Flash - - <USER2> is hopefully a closing chapter.

</comment><comment><USER9> _We believe that consumers should be able to freely access their favorite content and applications, regardless of what computer they have, what browser they like, or what device suits their needs_

That just doesn't jive with reality. Adobe is the sole gatekeeper of where Flash is available and how good the experience is. I don't see Flash Player 10 available for FreeBSD/PPC, NetBSD/anything, Solaris/SPARC, Linux/SPARC, Linux/MIPS, nothing for IA64, etc. Of course I don't blame Adobe for not supporting these platforms but the point is no one else can offer Flash support on them either.

<comment><USER10> You are absolutely right. How long did has the UNIX community had a substandard, or non-existent flash player? Flash 10 still crashes alsa on my Gentoo systems. It seems petty that they can't open source the player. The community will fix it for free! And then they have the nerve to criticize Apple, which is clearly looking out for it's own best interest(Which I don't support, I haven't bought any Apple products). This is blatant hypocrisy.

</comment></comment><comment><USER11> I don't really follow what they're trying to say here.

The reason I (we?) don't want flash in the iPhone/etc web browser is because it performs poorly, eats battery and is unstable.

<comment><USER12> Then don't install it. Adobe's entire point is that you should have a choice. Do you have that choice right now?

<comment><USER11> Is your mom qualified to make the choice? Does she know what impact it will have to install it? Chances are that's a big _NO_. Implications of this? She will install it because uncle Joe's crappy photo gallery site needs flash, and then she'll proceed to complain about the iPhone crashing, go to Apple for support because "her battery life sucks", etc.

Apple makes consumer electronics devices, you can't install new codecs on your DVD player and you can't install new VM's on your iPhone.

I prefer it this way.

</comment></comment></comment><comment><USER13> "No company — no matter how big or how creative — should dictate what you can create, how you create it, or what you can experience on the web."

That argument seems to apply to Adobe more easily than it applies to Apple.

</comment><comment><USER14> Lots of good commentary about this: [http://www.computerworlduk.com/community/blogs/index.cfm?ent...](http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2960&blogid=10)

[http://digitaldaily.allthingsd.com/20100513/adobe-to- apple-y...](http://digitaldaily.allthingsd.com/20100513/adobe-to-apple-you- wanna-hug-it-out/)

</comment><comment><USER15> "When markets are open, anyone with a great idea has a chance to drive innovation and find new customers. Adobe's business philosophy is based on a premise that, in an open market, the best products will win in the end — and the best way to compete is to create the best technology and innovate faster than your competitors."

Is it just me or does that perfectly explain Apple's business philosophy regarding iPhone OS as well? The mobile market is open. Apple doesn't have a monopoly or a majority of the market. There are plenty of other phones and carriers to choose from. The bottom line is Apple is trying to make the best product with the best technology and faster innovation than anyone else – and they are succeeding. Adobe is just-now-almost-ready-to-release-a-beta of a mobile optimized flash player. The iPhone has been out and innovating for 3 years. Adobe is not following it's own philosophy very well.

App store approval, no flash player, 3.3.1, all the decisions Apple have made that have got people angry are all explained by them trying to make the best mobile experience they can. Is it the best ever? Is it the best for you? Is it the only way? If you answer 'no' to any of these you have two options: buy something else or make something better.

Having flash on the iPhone will not make it a better platform (from Apple's point of view, and mine). Did you see the flash content running on the Nexus One the other day? (<http://www.youtube.com/watch?v=0y7XJI4NN7k>) It looks great! If it allows reasonable battery life I want one. But at the same time I want iPhone apps. I don't want the progress of the iPhone and iPad to get stalled trying to get flash to work. Apple can keep innovating in it's way and Adobe can work with Google and HP and whoever else to innovate in another way. They can both coexist.

I think a lot of the issue is Adobe (and by extension flash developers) feel like they are entitled to develop for every platform. Apple has so much mindshare (despite is relatively small market share) that it's the new toy for developers to play with. Flash devs understandably want a piece of it. They are used to being able to write once run everywhere. Adobe is used to being able to tout their ability to allow flash devs to write once run anywhere. Apple's just finally the first company in the position to say no and be able to back it up.

note: I make a living doing flash and web development (5+ years)

</comment><comment><USER16> "We believe that Apple, by taking the opposite approach, has taken a step that could undermine this next chapter of the web — the chapter in which mobile devices outnumber computers, any individual can be a publisher, and content is accessed anywhere and at any time."

So Apple is undermining the advancement of the web by advocating the use of HTML5 over Flash? And how is choosing to not support Flash on their platform undermining the web?

Adobe's rebuttal to Apple on all of this sounds like the movie industry: biding for relevancy when their middle-man is becoming obsolete.

</comment><comment><AUTHOR> Criticisms come directly from the 2 co-founders - Chuck Geschke & John Warnock - love the Sepia-toned photo of the two of them together :-)

</comment><comment><USER17> They produce open specifications for Adobe Flash, so it's 'kinda like open source.' Just like Word XML, right?

<comment><USER18> I would believe its open if a third-party flash player could be used with Hulu.

</comment></comment><comment><USER19> Dear Adobe - please stop pretending to be a tools developer because you really suck at it.

<comment><USER20> Sucky or not, I guess one could argue that Photoshop is a somewhat successful tool, I'd say they are not pretending.

<comment> bjelkeman-again Maybe he meant "developer tool developer".

<comment><USER19> I was actually referring to the IDE that one has to use to write ActionScript code for Flash. Not a very intuitive IDE compared to Eclipse, Aptana Studio, VisualStudio, etc.</comment></comment></comment></comment>


Sven.txt (2000) - <AUTHOR> http://janit.iki.fi/shit/sven.txt <comment><USER2> This is the source code for the Sasser worm by Sven Jaschan. [https://en.wikipedia.org/wiki/Sasser_(computer_worm)](https://en.wikipedia.org/wiki/Sasser_\(computer_worm\))

</comment><comment><USER3> What is this code and why is it interesting?</comment>


The Job Market's Information Problem - <AUTHOR> https://medium.com/@chrisnicholson/the-job-markets-information-problem-192fea6077f1

<comment><USER2> This resonated with me a lot. It's so true when he says, "there's no updated central repository of truth. In addition, accurate information is hard to obtain, because both employers and applicants are incentivized to lie"

I wish there was a system that connects people and employers in such a way that the hiring (and applying) process is more transparent. It doesn't seem like this industry has really changed much over time, and I'd really like to see "software eat HR" sometime soon. #marcandreesen

<comment><USER3> What happens when the centralized repository incorrectly says someone is unqualified? They never find a job again? It would be the same problem as now, just different.

And when the centralized repository says someone is brilliant? If you find a great employee, why would you disclose that so others can poach him?

<comment><AUTHOR> You put your finger on it. The stakes are really high, and a lot of people and companies benefit from a lack of clarity.</comment></comment></comment>


MonoTouch is alive and well - <AUTHOR> http://escoz.com/monotouch-is-alive/

<comment><USER2> Apple are obviously using their discretion to accept monotouch apps _for now_ , but you shouldn't depend on that happening.

I'm in two minds on this. Obviously, the somewhat democratization of app development is a good thing, but it makes Apple look petty for making rules, then only enforcing them selectively so as to keep Flash out of the app store.

Disclaimer: I'm writing apps, but using objective-c.

<comment><USER3> _but you shouldn't depend on that happening_

Relying on any exclusive outlet that doesn't care if you live or die has an implicit risk. It's the same thing with Facebook and Twitter apps. You are more-or-less as their mercy.

As C# is an open language standard, I would be delighted if Apple were to embrace and extend it.

<comment><USER4> +1 from me on that. Although we all know that Apple will never adopt a primarily M$ technology as their own.</comment></comment></comment>


In China, the smiley face emoji means something else - <AUTHOR> https://www.techinasia.com/smiley-face-emoji-meaning-china <comment><USER2> No. On WeChat, the smiley face is used sarcastically to show discontentment.</comment>