Science vs. Engineering - <AUTHOR> http://jadagul.tumblr.com/post/123631186748/ive-decided-lately-that-people-regularly-get <comment><USER2> Author makes a really good point but I think he presents it in a way that doesn't make it obvious and sets it up as ego stroking "science vs engineering" (which I can already see in the comments).

Science on it's own is not robust enough to build models for real-world decision making - things we could consider in the domain of engineering. If a scientific paper finds a correlation between red wine and heart disease this may be interesting and important clue for scientific study but this is not enough to develop a model of nutrition and certainly not enough to recommend consuming red wine for hearth health. Plenty of people don't realize this and you see articles "red wine good for your heart" \- without a robust model of human metabolism/nutrition we just can't make claims like this. The food pyramid is a perfect example of this flaw.

<comment><USER3> Definitely true about science on it's own not being robust enough -- but I think you might be going a bit too far saying that "without a robust model of human metabolism/nutrition we just can't make claims like this". Yes, such a model would be awesome, but since it's not forthcoming any time soon, it is still useful in the meantime to be able to make claims of this nature using other evidence, such as experiments and even statistical studies, as long as we don't take results for 100% truth (although, taking model results for 100% truth would not be a good idea either).

</comment></comment><comment><USER4> Science is commonly defined as usage of scientific method. So science is just trying to find truth with the best possible tools. Nothing more and nothing less. I think here is the common and problematic misconception. Scientists are saying "look, we used the best tools" and people are hearing "hey, we found the truth!". But science is not about the destination, it's all about the journey.

Engineering lacks such rigid definition. I've thought about it a lot, and I think deep down engineering is always optimization.

If you invent a new need for people and fill it with a toy, that would be marketing. But if you solve previously solved problem better, that's engineering. You got closer to the optimum, even though the way you solved might be described as "invention". So engineering inventions would be just leaps in optimization.

Now if you optimize economical or cultural stuff, that would not be engineering. So engineering is "optimization of technology".

I do not think "engineering" as a term should be expanded to the fields this article suggests. The term started off as "art of building of siege engines". And so far we don't have "sales-engineering". It's called marketing and it works pretty good considering there is big human factor everywhere. Medicine is good term too. These fields are just naturally more difficult to squeeze accurate data out.

I think the best model how to deal with the human factor comes from medicine. Rigorous meta-analysis is pretty solid. If we import the way tech or natural science is researched, that would be: "just use better instruments and measure more carefully". Which is pretty obvious dead. Because you will just get more expensive studies that still disagree with each other.

<comment><USER5> I don't think it's quite that clear cut. Crash tests are focused on building safer cars, but it also neededs to validate it's model of what happens in a crash. So, sending human cadavers down a track is science, but what about comparing the crumple zone deformation with computer models?

</comment></comment><comment><USER6> Surely engineering is just about building stuff that works, or "meets requirements".

Is there any kind of engineering for which that is basically not the case?

Science is about understanding the natural world by building and testing hypothesis.

I can think of some grey areas. For example, in the 20th century it was discovered that the harmonic modes of oscillation of large structures, like bridges, was rather important to their structural stability. Once this was well understood, clearly it was the engineers who built better and stronger structures with inbuilt dampening and so forth. But who actually sat down and figured out the math behind structural harmonic response, and showed how it could lead to disaster? A scientist or an engineer? It seems both very sciency and engineery.

<comment><USER7> There's a grey area, but I find your example (or the way you posed it) a bad one. Creating a mental model is science, even if it was done to be applied in a engineering context.

First, even the math and science behind the structural harmonic response was made by an engineer, it was a science advance after all. They allowed people to better understand the world, creating models of phenomena that are observable. Of course, engineers can do science, as anybody else can, and that does not transform science endeavours into engineering endeavours.

However, it must be noted that there is a lot of science in engineering: people can approach engineering problems and subjects with a science mindset so they can advance engineering. A new DSP algorithm is basically math, even if it is math with some constraints set by engineering realities, and may be analysed as such - more often than not, by people with engineering degrees, who are doing science.

Both engineering and science are less about fields of knowledge and more about process: if you are trying to understand something, and to observe things that exist in a methodical way, aiming to create a model that can reproduce and predict events, you are doing science. If you are trying to design something that help you efficiently achieve some practical goal, you are doing engineering.

</comment></comment><comment><USER8> If you know what you're doing, it's engineering; if not it's science. ~ Richard Hamming

<comment><USER9> Apparently a number of engineers I used to work with were actually scientists!

</comment></comment><comment><USER10> On the crest of the wave-front of any advancements is science, followed by research, followed by development, then engineering.

\- Science finds the new things

\- Research plays around with these things and susses out repeatable factors

\- Development sees if those repeatable factors can be turned into a product

\- Engineering builds those products

(- and sales and marketing sells them)

</comment><comment><USER11> An interesting topic. I agree the two terms are usually imprecisely joined. But I think the author's definition is too binary.

Science and engineering are a continuum. At one end is the theoretical scientist who discovers new knowledge; at the other the engineer who applies knowledge to serve some practical end. But between them lies the applied scientist whose purpose is to extend scientific knowledge to make it valuable to scientists working in other domains. And the process of doing that always involves lots of engineering -- discovering the reproducible limits of a phenomenon or a technique toward achieving some goal. Inevitably then, many applied scientists and engineers share the same job.

For example: Were Salk and Sabin scientists or were they engineers when they refined a method to inoculate against polio? Certainly they were applying science, but what was their principal role: a) discovering new knowledge or b) refining a technique? Once it moves from the petri dish to the human, isn't medicine usually more like engineering than science?

As I see it, at some point the boundary between science vs engineering blurs to an a degree that the difference is negligible.

</comment><comment><USER12> While the humorous distinctions are all great, they are also sort of tiresome to me. Maybe I'm the only one. To me it's a symptom of a world where we have too much specialization. To do "science" a scientist will often have to do "engineering" and I also feel like engineering expands knowledge just like science does.

</comment><comment><USER13> [https://xkcd.com/242/](https://xkcd.com/242/)

<comment><USER14> Not really directly related to the OP (sorry), but I have always wondered how the hell people manage to remember the right xkcd. Awesome :)

<comment><USER15> [https://relevantxkcd.appspot.com/](https://relevantxkcd.appspot.com/)

</comment></comment></comment><comment><USER16> In other words: engineering is _applied science_. Science is just _science_.

</comment><comment><USER17> The easiest way I found to describe the differences between science and engineering (and I think about this fairly often) is by analogy with learning how to drive a (manual) car.

There are a few key skills one needs to master to be able to drive a car through any kind of circuit: from the basics, such as shifting up and down and the appropriate times, to drifting at will. Given enough time and "research", people can master this aspect effectively. That's science.

Engineering is the rest of the driving experience. The placement of traffic lights, how to synchronise them so two perpendicular roads are not green at the same time, and all of the signaling (stop, yield, etc) that we are used to.

The difference is there is a bigger solution space in engineering: there is no "one correct answer", and the factors involved in determining whether something is a good engineering solution are much broader. For example, reusing the signaling example above, the "stop" sign doesn't _have_ to be a hexagonal red shape, but some early civil engineer figured that shape is the most adequate.

<comment><USER18> I don't really know, computer science seems concerned with equipping the student with the best tools to solve a problem, and mastery in the creation of them. Computer engineering concerns itself with similar concepts, but at a lower level of abstraction. It's still not EE, which is lower still.

I studied computer/electrical engineering for part of my undergrad, and computer science for my masters. The biggest difference I recognized was the level of abstraction. Each has it's own maths, systems of reasoning and analysis.

<comment><USER19> "Computer science" courses are mostly misnamed. The research faculties they're located in are usually scientific (in that they concern research into computability and computation), however what undergraduate students mostly learn is the primitive form of engineering that we've gleaned from that science so far.

I have an MEng in Computing, because my alma mater is one of the few that realises the distinction.

<comment><USER18> I'm talking from a graduate perspective, but the courses I TAd for undergrad were not what I would call 'primitive engineering' as there is an emphasis on analysis and rigor.

It is a science to be able to build programs and prove things about them. It is way more abstract maths than anything in engineering (linear algebra still has some physical grounding in reality, where category theory is more for the organization of mind).

</comment></comment></comment></comment><comment><USER20> Science = questioning and understanding the natural world

Engineering = applied Science

<comment><USER21> I would argue that programming = craft. Not engineering like a civil or structural engineer would understand it.

<comment><USER22> We have the theory[1] to make it robust as civil or structural engineering. We don't use the theory at our own peril.

[1] A good starting point [https://en.wikipedia.org/wiki/Hoare_logic](https://en.wikipedia.org/wiki/Hoare_logic)

</comment></comment></comment><comment><USER23> Where I work we have everything from pure science to pure engineering and it's definitely a continuum. Sometimes it's painful to be caught in the middle but I think that's really where the interesting engineering happens.

However, there are also some forms of engineering that are not very science based, you get a process or product to work and you don't exactly know why. You can still use scientific methods to get to a safer, more controlled process but don't necessary exactly know why something works. We call that "taking the art out of engineering" and it's an important part, especially in large scale manufacturing.

</comment><comment><USER24> I think this is missing the point about resource management, which I think it's one of the most important things about engineering. That is, the difference between "effective" and "efficient"

</comment><comment><USER25> science is about 'why', while engineering is about 'how'.

<comment><USER26> Generally accepted philosophy of science is positivism, which states that 'why' in general is unanswerable and we should satisfy ourselves with descriptions. Therefore science is more about precise descriptions and their predictive power.

<comment><USER25> it's exactly the reason scientists formulate hypotheses (and null hypotheses), and verify them with observable data.

In short, hypotheses are the key instruments to investigate into unknown(and hopefully, consistent) world.

</comment></comment></comment><comment><USER27> _Engineering, in contrast, is the technique of using science to produce tools we can consistently use in the world._

Semantically, wouldn't one call a neanderthaler creating/perfecting a useful tool an engineer as well, even though science was not really used directly?

<comment><USER28> Chomsky said some interesting things about science's impact on engineering/medicine:

 _"Until very recently engineers learned from the sciences, but most of what they knew was craft. The crafts were so much more advanced than theoretical understanding that the engineers worked like artists. You know, you learned how to do it. Physics didn't really get to contribute to engineering theory until fairly recently. In fact, when I got to MIT not that long ago in the 1950s, it was still largely an engineering school, and physics was taught as a service. But if engineers wanted to construct electric circuits or build a bridge and so on, you learned for the profession and you learned some physics – and it helped you, but now it's changed."_ ([http://www.justresponse.net/chomsky_offers_advice.html](http://www.justresponse.net/chomsky_offers_advice.html))

Science is a social movement, with a history we can look at. Like many movements, there's lots misleading written about it. Often going into religion, especially when groups try to claim its prestige for themselves. (We might include mainstream economics here, but hilariously many capitalist economists aim beyond science, closer to math. At least many Marxists "only" claimed to have Scientific Truths.)

<comment><USER29> >At least many Marxists "only" claimed to have Scientific Truths.)

Marx was probably using the German word "Wissenschaft"[1] which is not the same as modern empirical science, it's means something like structured knowledge and it includes branches of knowledge like history or literature that aren't called science in English.

[1] [https://en.wikipedia.org/wiki/Wissenschaft](https://en.wikipedia.org/wiki/Wissenschaft)

</comment></comment></comment><comment><USER30> "Imagine trying to build a device based on the information that acceleration due to gravity is probably between 9 and 13 m/s^2"

Software engineering must be a special case. Half of it is about handling uncertain states and preparing for unknown future uses.

<comment><USER31> Actually, this is where I stopped reading because in my opinion the author gets it exactly backwards.

Engineers need to build things with safety thresholds. Most devices will probably experience situations where it is accelerating at a greater rate than just that due to gravity. Engineers work in a messy world without controls and try their best to deal with non-ideal scenarios. They live in a world where a cow often cannot be idealized as a sphere. Because of this, the precise acceleration often doesn't matter, what matters is that the device works exactly within some range of operating environments. Only in cases of metrology do engineering devices need precise measures of external factors.

Meanwhile, scientists need precise measurements of environmental influences because they seek to eliminate them from experiments. otherwise, the signal cannot be distinguished from the noise. That is why the mass of an electron is known to an exaggerated precision, not because an engineer needs to build a device for it, but because (gross simplification) the precision is needed to be able to subtract electron related signals from the Higgs boson signal.

<comment><USER32> err... "Only in cases of metrology do engineering devices need precise measures of external factors." actually no

Have s look at an IC engine and the tolerances required for an engine to work.

Let alone say correctly designing nuclear rectors to handle two phase flow in its cooling loops.

<comment><USER33> Well, IC manufacturing may be the GP's perfect example.

You can't count on wafers being exactly at the same size, so you build your machinery in a way that precise sizes aren't important, only relative measures within a wafer is.

You can't count on alignment measurements, so you build your machines to use the only alignment invariant available, that is the size of a single wafer (and call it self-aligning).

You can't count on features having any specific size. They vary wildly, in proportions that in any other specialization of engineering would be disastrous. So, you just manufacture them, test after the fact, and throw away the parts that do not comply.

The entire field of IC manufacturing is about how to not need measurements and be resilient to errors.

Also, I don't know much about nuclear reactor design, but I'd be very surprised if they used measurements with several algarisms.

<comment><USER32> I am not sure what your point is? what is "measurements with several algarisms"

</comment></comment></comment></comment></comment><comment><USER34> Science covers a large range of precision. you also have things like c or α known to much higher precision than the average engineering quantity.

</comment><comment><USER32> I was always told that Engineers are scientists with thumbs and engineers defiantly do do scientific experiments - as we did at my first Job.

</comment><comment><USER35> Could someone parse the following heading for me, please?

 _" Trendy teaching as confusing science for engineering"_

(I'm not a native English speaker)

<comment><USER26> It means teaching according to the latest (scientific) trends/discoveries as opposed to teaching what provably works.</comment></comment>


Ruby 2.0.0 Released - <AUTHOR> http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/ <comment><USER2> Overall, a good feature set. I only see some utility for keyword arguments, admittedly, but I tend to write very functional code, so maybe other people will get more mileage.

Refinements, as I understand them, are a bad idea.

I understand the motivation, but this is not the way to go about it. There's now a new scope all over the place (the set of refinements applied to any given class). This means that the behavior of any given class now can depend heavily on context.

This makes optimization a bitch, for the same reason that it makes programming a bitch. I can now have two Strings, one Refined by ActiveRecord, the other Refined by Sequel, which expose a different set of incompatible methods.

<comment><USER3> Totally agree about refinements. Hopefully the community pushes back enough on that experiment so it gets deprecated and removed.

A better design approach to achieve this effect is wrapper objects (similar to jQuery and Underscore.js) where I can add functionality to existing objects. Ruby has everything we need for this already, and makes it quite easy to do.

<comment><USER4> Aren't refinements a "fixer feature", i.e. something 99% of developers should just ignore it until they really get into a problem with badly done monkeypatching, then use it to solve the problem and just move on? Why do people get so excited about them, both in a good and in a bad way? Just use them inside your library code and make sure people using your lib/framework can just pretend they don't exist, keep monkeypatching "chained inside" as your dirty little secret:P)

<comment><USER5> Charles Nutter does a good job of explaining why you can't just ignore refinements: <http://blog.headius.com/2012/11/refining-ruby.html>

In summary, they makes the Ruby language harder to implement, and Ruby code harder to understand. You can't pretend they don't exist if their existence compromises the meaning of your code and the performance of your chosen Ruby implementation.

</comment></comment></comment></comment><comment><USER6> I do wonder about the long term success of Ruby. Rails is easily the most visible project for Ruby. Rails is big, and all that code represents a high barrier to entry for any framework in a different language that wants to compete. However, a lot of people I talk to are moving to pure JS front-end + REST backend. In this world Rails doesn't deliver any particular value (in my opinion).

Ruby also has utility for doing lots of scripting type tasks (things like Jekyll). The libraries you need to do this are simple to write. Python is perfectly adequate for this task already, as is Node (modulo callback spaghetti). So there is no barrier to entry here.

In summary I don't see any project going forward that provides enough value to maintain interest in Ruby. Thoughts?

[NB: I'm not saying Ruby is going to die overnight. I just think it will slowly become less relevant.]

<comment><USER7> > I just think it will slowly become less relevant.

That's true for virtually anything. Do you think C/C++ or Java or JS will be mainstream 30 years from now. They will be in the same situation FORTRAN is today: important because of lots of legacy code, but not a viable choice when starting a new project.

Of course some of them will never die. LISP comes to my mind. :-)

<comment><USER8> C and C++ will very likely still be "mainstream" 30 years from now.

Essentially every important piece of software today, from operating systems to programming language implementations to server software to applications, is written in one or both of them. All of these systems are not just going to go away.

C is over 40 years old, and C++ around 30, yet in that time nothing has come along that can compete with them. Some other languages have tried, but their success has only ever been partial, and typically in just one or two specific domains.

<comment><USER9> Go is making a strong go at it. No pun intended.

<comment><USER8> Go hasn't really seen much success. It isn't as obscure as many other languages, and being supported by GCC does help it out, but we haven't seen any major adoption of it. Maybe that'll change at some point, but it doesn't look very likely.

</comment></comment></comment></comment></comment><comment><USER10> Basic Ruby 2.0 benchmarks calculating pi from gist [1]

$ ruby --version

ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin12.2.1]

$ time ruby pidigits.rb 10000 2>&1 > /dev/null

17.51s user 0.11s system 99% cpu 17.639 total

$ ruby --version

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]

$ time ruby pidigits.rb 10000 2>&1 > /dev/null

4.64s user 0.27s system 99% cpu 4.927 total

That's a significant difference in speed. Going from 17.51 seconds to 4.64 seconds

1\. <https://gist.github.com/thoughtpolice/5025417>

<comment><USER11> If we see these sorts of improvements overall, then this is a _very_ exciting update

<comment><USER10> Agreed. Testing against some of my production apps now to get a better feel.

<comment><USER12> How did it go?

</comment></comment></comment></comment><comment><USER3> This is pretty exciting. Might be too early to tell, but it feels like the Ruby versioning recently has been done very right. The switch from 1.8.x to 1.9.x was slightly painful, but I think 80% of Rubyists have made the jump.

I'm hopeful and expecting the switch to 2.0 by 80% of Rubyists in 2013.

Compared to the adoption of major version releases by Python/Java/C#/PHP, I think that's something the Ruby core release team can be proud of.

<comment><USER13> 1.9 was not supposed to be a wide release, and it contained more breaking changes than 2.0, IIRC.

<comment><USER3> I'm not 100% sure on the history, but I believe 1.9.x started as a dev release and then they changed their minds and decided it was a wide release. That initial confusion might be why the community took the time to go from 1.8 to 1.9.

I think they've learned from that, as 2.0 looks like a much cleaner/easier transition.

<comment><USER14> On the other hand, it means we've now had point and minor releases that broke everything (1.9, 1.8.7, and I think even one or two of the 1.8.7 patch releases actually backported breaking 1.9 features), while the major release is apparently one where nothing from the prior release should break. I'm not convinced that means they've 'learned their lesson' so much as that they still don't know how to version things.

We'll see how 2.1 goes, I guess.

<comment><USER15> Indeed. I hope that ruby itself starts following the semantic versioning [0] that is so popular with ruby developers. Now that they have a "clean slate" with a 2.0.0 release, they could!

[0] <http://semver.org/>

</comment></comment></comment></comment></comment><comment> grey-area There are some nice features here:

 _Keyword arguments, which give flexibility to API design_

This looks good to replace all those options hashes in rails for example, though I wish they'd made it an all or nothing thing, apparently you can still do this:

        def foo(x, str: "foo", num: 424242)

i.e. use some named and some unnamed in the same method which looks ugly.

 _Module#prepend, which is a new way to extend a class_

Compared to something like Go, I do worry the Ruby inheritance picture is becoming overly complex, but I guess there must have been some use case for this - anyone know where it is going to be used?

 ___dir__, which returns the dirname of the file currently being executed_

This is a great little enhancement which means I can replace File.dirname(__FILE__) from the start of a lot of utility scripts. Would love to have seen more little improvements like this.

 _The UTF-8 default encoding, which make many magic comments omissible_

At last! This should have been in 1.9.

 _Performance improvements_

While these are incremental, it's nice to see more improvements - thanks Ruby team!

 _Onigmo, which is a new regexp engine (a fork of Oniguruma)_

Not sure what this changes from Oniguruma.

 _Refinements_

Refinements seems to be the headline feature for a lot of people, but I have two hesitations about it: it's encouraging a practice which has come to be seen as one of the most dangerous parts of Ruby - monkey patching, and the process of deciding its inclusion seems to have brought about a few schisms with the community developing alternative Ruby implementations because of performance implications, and raised wider issues about the Ruby design process:

[http://www.confreaks.com/videos/1278-rubyconf2012-toward- a-d...](http://www.confreaks.com/videos/1278-rubyconf2012-toward-a-design-for- ruby)

There is the argument of course that it's attempting to limit monkey patching and therefore limit the damage caused, but should it be encouraged at all? It'd be interesting to hear more on what happened here from anyone has been following this closely.

<comment><USER16> Module#prepend doesn't look too bad from me from a complexity perspective - inheritance in Ruby boils down to two parallel trees: One of the inheritance chains, and one of the method lookups. Really we're dealing with a single tree of "actual" inheritance, with some of them being "hidden" in some contexts. It gets a bit complex if you want to do meta-programming or do something that depends on the inheritance hierarchy, but mostly it behaves the way people expect in regular use.

Refinements, on the other hand, looks brain-damaged to me. I see the rationale, but the outcome looks more complicated and error-prone than the situation it is trying to address...

And it looks like the type of thing that will "infect" other code, just like C++ code for a while got infections of throw specifications on member functions, that then got propagated all over the place and cause major pain every time you tried to modify code. Until most people stopped using them much again except in very limited circumstances.

<comment> grey-area Yes it's not hugely complex, but it does complicate the composition side of code inheritance a little more as you have to think about how a module might be included as well as which modules and which superclasses you have. Contrast this with go which has no inheritance and only simple composition and is vastly simpler to comprehend re the reuse of code due to those limits.

Re refinements I agree and find it worrying that it was added given the widespread objections.

</comment></comment></comment><comment><USER17> And this day shall be know as Ruby Two's day.

<comment><USER17> I've been waiting for that for a long time ._.

</comment></comment><comment><USER18> my personal best new feature is:

"The UTF-8 default encoding, which make many magic comments omissible"

because i'm from Germany and we had to add: # coding: utf-8

in every freaking controller to get our german stupid letters (öäüß) to run without problems.

so i'm looking forward to my next project where i can use 2.0 from the scratch.

thank u!

<comment><USER12> Why are you writing special characters in your controllers?

We are Danish, and are writing comments in English, and all locale strings is placed in i18n-files.

</comment></comment><comment><USER19> Anyone have any thoughts on why python and ruby are so similar, yet so far apart? They are obviously very close, because people switch between them all the time. And they are compared on everything (languages features, libraries, tooling...). I think it's a healthy competitive environment.

<comment><USER8> The biggest difference is the communities surrounding each, and the impression each leaves on people.

When I think of "Python", I think of a mature, helpful, experienced, talented, well-educated community. I can generally trust their advice, I can trust their code, and I can trust their technical decisions. It feels like collaboration is important and encouraged.

The Ruby community, whether this is deserved or not, leaves a very different impression. Anything good is quickly and heavily overshadowed by the unnecessary and petty drama, the egos, the fixation on worshiping certain figures in the community (DHH, Zed, why the lucky stiff), poor technical decisions, inexperience, repeated displays of very immature conference behavior, and so forth.

In can reflect very poorly upon a language when the community is generally toxic, like in the case of Ruby, or very positively when the community is generally superb, like in the case of Python. This is true even when the languages themselves are rather similar, from a technical perspective.

<comment><USER20> I think this is a little unfair - you do prefix your thoughts on the Ruby community with 'whether this is deserved or not', but then treat your perception of the community as fact.

I'm a Rubyist, and I've found that the vast majority of the community, events, interactions, etc are smart and civil. Yes, the Ruby community does have a bit of a publicity problem, but that's just the noisy/stupid minority.

Perhaps this is a common issue more broadly. (Are all PHP developers stupid? Are all lawyers money-hungry scum? Do politicians have no regard for intelligent discourse?) Our media (whether that be mainstream or Twitter and HN) is great at highlighting the controversy, but not a good source for a deeper understanding of the lay of the land.

</comment></comment></comment><comment><USER21> 2.0 on the 20th. Happy 20th!

<comment><USER22> Ruby is now also 20 years old. <https://twitter.com/yukihiro_matz/status/305334327938519040>

<comment><USER21> That's what I meant - 20th birthday

</comment></comment></comment><comment><USER23> I've been waiting for native keyword arguments for years. A great addition that should make code more maintainable.

</comment><comment><USER24> I guess, Rubinius is no longer relevant? I remember it was a very promising project back in 2008.

<comment><USER25> Evan Phoenix (the creator) left in 2012 to work for LivingSocial. EngineYard, his former employer, had been funding work on it last I heard, but there haven't been any releases since 2011.

<http://blog.fallingsnow.net/2012/03/28/a-new-door-opens/>

<comment><USER26> > there haven't been any releases since 2011.

Every commit is a release of rbx. Yay continuous integration!

That said, there hasn't been a numbered release in a while, through there will be a 2.0.

<comment><USER25> Yes, sorry for not being clearer. I'm basing the "there hasn't been a release since 2011" comment off of the Rubinius homepage, where the last numbered release is 1.2.4.

The Rubinius 2.0 preview release came out in June 2011: <http://rubini.us/2011/06/07/inside-rubinius-20-preview/>

</comment></comment></comment></comment><comment><USER27> Congrats Ruby team - really well done. 20 great years.

</comment><comment><USER28> Is ruby 2.x faster than 1.9.x. Any benchmarking data?

<comment><AUTHOR> Yes, there are performance increases. Sasada-san gave a good talk at RubyConf this year on 2.0.0's internals and performance enhancements: [http://www.confreaks.com/videos/1272-rubyconf2012-implementa...](http://www.confreaks.com/videos/1272-rubyconf2012-implementation- details-of-ruby-2-0-vm)

</comment></comment><comment><USER29> My favorite new feature. Keywords arguments. As a Python convert, I really missed those.

<comment><USER30> Just curious: what made you switch?

</comment></comment><comment><USER31> I totally agree about refinements being a terrible idea. Brian Ford (of Rubinous) makes an excellent argument: <http://www.youtube.com/watch?v=BagNfTbXn3w>.

What is the best way to let Ruby team know that refinements are a bad idea?

<comment><USER26> > What is the best way to let Ruby team know that refinements are a bad idea?

Get involved in the discussions on ruby-core.

</comment></comment><comment><USER32> Serious question - should I learn Ruby?

I spent a little time looking at Ruby in the past. It seems like a nicely designed, clean language. However, it seems to me that it lost to Python in many domains. In addition, I've heard stories about Ruby having performance problems. For example, I heard Twitter rewrote their backend in Java/Scala because Ruby didn't perform well enough.

Recently I was at a Cloud Computing symposium thing attended by academics and industrial developers. No-one in the room was using Ruby for development anymore. Has it died? Is there any point learning it?

<comment><USER33> Learn what you want to learn, because your tools will change. Many Ruby programmers came to Ruby because of Rails. I'm part of the camp that stuck around because of JRuby for a while, but nowadays I find that I write very little Ruby and a lot more Python.

Don't worry too much about what you hear about performance. If you are building a Twitter, then yes, it might matter what language you're learning. Ruby, Python, and PHP tend to be in the same ballpark in terms of performance, with each having their own warts.

As of late, I've been most interested in golang.org. You can learn the basics in an afternoon at tour.golang.org.

<comment><USER32> Cool, thanks. Actually, Go was an alternative I was considering for my next language. More worthy than Ruby? Is it a possible Python replacement?

</comment></comment></comment><comment><USER34> I wonder, is asynchronous exception handling going to make exceptions useful in evented/fibered code? Because right now, the ability of your stack frame to unpredictable blow up is a complete nuisance.

</comment><comment><USER35> Congrats, Ruby Team. Always good to see a new release. Onward and forward.

</comment><comment><USER36> I was stuck on this for a few hours, so hopefully this might help someone. If you are install ruby 2.0.0 with rvm, make sure you do rvm get head before doing rvm install 2.0.0 or rvm reinstall 2.0.0

</comment><comment><USER37> I like Ruby but keywords arguments are the solution to a problem which shouldn't exist in the first place. Namely functions like..

myFunction(something, 23,23,100, somethingElse, true)

People should write smaller, more specialized functions instead (less arguments). That makes software both: more efficient and more maintainable.

If you start thinking: "Damn I wish I had keyword arguments to make this function call more comprehensible!" .. the problem is elsewhere.

<comment><USER38> 100% disagree. For some use cases they are very useful. Like, imagine a function that generates an HTML snippet, and can optionally assign some specific class names/ids to some of the elements.

<comment><USER39> As much as many people seem to hate the way Objective-C does things, I really like how it intersperses the arguments in the function name. It makes it so easy to identify parameters.

Most languages:

      someObject.throwProduce(apple, myEnemy, 14, 17);

Objective-C:

      [someObject throwProduce:apple at:myEnemy withForceInN:14.0 maxDisanceInM:17.0];

As long as you name the function appropriately, it's clear what each parameter does without having to look up the name. Many people complain about the long names (in this case throwProduce:at:withForceInN:maxDistanceInM:thenWaitInMS:), but it avoids the situation you have in other languages where there are 4 functions with the same name but different signatures. In Obj-C the naming conventions discourage such ambiguity and encourage self-documenting names.

</comment></comment></comment><comment><USER40> Just submitted a pull request to Homebrew to have this added. Can't wait :-)

<comment><USER9> I'd definitely look at rbenv. Combined with it's plugin ruby-install, you've got a pretty simple and powerful alternative to rvm. I use it exclusively.

<comment><USER41> rbenv is definitely better than rvm, but if you use the same ruby version between all your projects, a single version of ruby installed through homebrew is a much better way to go.

</comment></comment></comment><comment><USER34> Does anyone here have a link to the new rubydocs for this?

</comment><comment><USER42> We need tutorials. Videocasts! Please.

</comment><comment><USER43> Nice. Time to use to_hash.

</comment><comment><USER44> Still waiting for Ruby 2.0 Benchmarks

</comment><comment><USER45> Congrats! Great works

</comment><comment><USER46> ruby pls

</comment><comment><USER47> Ruby rocks my socks.

</comment><comment><USER48> Today, I'll lose at least 50 karma points, but it's worth:

Why people still use Ruby?

1\. Because they get dream day rates for maintaining rusty slow legacy systems

2\. Because they do not want to learn new languages and can stay in their comfort zone

3\. Because they think it's still 2005 and nobody cares about slow server response times

And now Ruby lovers, click on downvote or give your reasons why you still use Ruby.

<comment><USER49> Ruby lovers are all about "feelings" and "style", they don't care if their language of choice is objectively worse than, say, Python or Lua.

Ruby truly is the Apple of the programming world.

<comment><USER50> I fought with Python for weeks before I picked up Ruby. It clicked perfectly and I've never had to fight with it.

I don't see how Python can be _objectively_ better than Ruby.

I don't know enough about Lua to comment.</comment></comment></comment>


San Diego Bans Startups - <AUTHOR> https://docs.google.com/presentation/d/1_XFThKF1Xepr8CuT-S5rM1pbj_PHbB-6lKDc34eP-g4/edit?pli=1#slide=id.p

<comment><USER2> Disclaimer: I live in San Diego. Working on starting a startup (read: planning)

The presentation references [http://www.sandiego.gov/nccd/zoning/home.shtml](http://www.sandiego.gov/nccd/zoning/home.shtml)

This all doesn't sound so bad. Some of the nitty-gritty details sound a bit annoying, but overall it just sounds like legalese for "don't abuse running a business from your house". What I'm hearing when I read this is that we don't want people running hair-salons or restaurants out of their homes.

<comment><USER3> Is this just municipal San Diego? Or is this the county of San Diego?

It doesn't sound too bad but I live elsewhere in the county and would like to understand. I can leave if this is going to be a huge problem for me, though I would prefer not to.

Thanks.

Edit: Sorry if this sounds stupid. I previously lived someplace where the city and county government were combined. I don't think they are here but ...:-)

<comment><USER2> Not stupid at all. Laws/Rules can get.... messy.

I _believe_ it's city. The webpage graphics say "City of San Diego" in several places, and the County of San Diego has it's own website - [http://sdcounty.ca.gov](http://sdcounty.ca.gov) \- it's zoning ordinances may be found here. [http://www.sdcounty.ca.gov/pds/zoning/index.html](http://www.sdcounty.ca.gov/pds/zoning/index.html)

Hope that helps!

<comment><USER3> Thank you.</comment></comment></comment></comment>


Get specific (2008) - <AUTHOR> https://sivers.org/get-specific <comment><USER2> No need for the (2008) thing in the title. This is actually a new article from February 2018. I had an old post there, but completely re-wrote it last week, keeping only the title and URL.

Thought you guys might like a programming example that I edited out of the article:

Back in 2004, I wanted to be a great Ruby programmer. I had dabbled, but wanted to accelerate my learning to the expert level.

So I called Tony Robbins' company, and signed up for a personal coach. We had a phone call once per week, to help me stay on track achieve my goals.

On the very first call, when I said I wanted to be a great Ruby programmer, he asked, "What does that look like? How will you know you're great?"

Whoa. Hmm. I had never actually defined it. He was waiting for an answer, so I picked something. I said, "If I have read all of these six Ruby books, completed all of the exercises in them, and memorized what I've learned."

He said, "How many chapters in all?" So he had me go add up the total numbers of chapters across all six books.

Then he had me predict how many chapters I could do per week. I said 6.

Then he said, "OK so now you've got your plan. One chapter per day, six days per week, including doing the exercises, saving what you've learned in flash cards and quizzing yourself later, and in 12 weeks you'll be a great Ruby programmer, by this definition. If by then you don't feel great, we'll pick a new goal."

And just like that - a year of vague procrastination was now a specific list of goals to be achieved each day. It helped me more than anything.

It's tough to talk about because it sounds so simple, but man, it's effective!

<comment><USER3> I like the premise but...

Football analogy: run your playbook, keep moving the chains. This works for most games, but sometimes QB needs a read option.

Music analogy: if you got all the notes down how will you play the jazz?

;)

Ps - thanks for writing through the years and especially for this: [https://sivers.org/kimo](https://sivers.org/kimo)

<comment><USER2> Thanks Ron!

</comment></comment></comment><comment><USER4> The example Derek uses in this post about looking for a booking agent reminds me of an anecdote he told several years ago (as I recall, it was part of a speech or a Q&A he did at Berklee College of Music) about how he went about reverse engineering the process for getting into Rolling Stone -- he phoned Rolling Stone masquerading as someone working for a label trying to find a new publicist, and asked if they had any recommendations. From this he got a list of publicists that Rolling Stone liked, which were the publicists who were most likely to be capable of getting him written up in Rolling Stone.

I actually put a version of this into practice several years ago when I was a looking at how to break into the world of trade publishing -- I had a manuscript for a fantasy novel, and decided my ideal outcome was to get published by Tor (a name that appeared on the spine of many of my favorite fantasy novels growing up). I went to the bookstore and compiled a list of books that had Tor's name on the spine, then went through the books and identified the ones that were most similar to my own manuscript in terms of subject matter/tone, length, and target demographic. Then I opened each book, flipped to the "acknowledgments" section, where most authors take the time to thank their agent. This game me a list of agents who A) represented books similar to mine, and B) had successfully sold books to Tor.

I think the lesson is that if you don't know the specific way forward, it's often as simple as starting at the goal and working your way backward -- want to know which publicists are on good terms with Rolling Stone? Ask Rolling Stone. Want to find out which agents have sold books to a specific publisher? Grab some books by that publisher and open them up.

<comment><USER5> Did you ever get the novel published?

<comment><USER4> That book remains unsold, mainly for lack of trying on my part -- around the time that I was ready to start sending out query letters, I landed some contract work working on visual novels. Getting my first contract involved spending a week or so assembling a writing portfolio to satisfy the company I was applying to, and once I had that portfolio, I started sending it off to any visual novel company that posted a classified seeking contract writers, with a pretty high success rate. (My portfolio started as a collection of ~5 writing samples; with each opening that I applied to, I would pick out the 3-4 writing samples which seemed most relevant to the position I was applying for and just send those. Each job I completed gave me another writing sample to add to the portfolio, and the longer I kept working in the visual novel space, the more specific I could get with tailoring my writing samples to the positions I was applying for, so the result was sort of this "snowball" effect where success beget more success.) Once I had my foot in the door, my inertia continued to carry me forward from gig to gig, and visual novel work eventually became my main source of income (I quit my "day job" back in 2016).

Having a steady supply of contract work kind of sapped my motivation to continue doing any writing on spec; the appeal of toiling away privately on a novel with the hopes that it will one day get published becomes a lot less attractive when you have offers from people who are willing to pay you to write _right now_. Once the contract work started, I also sort of rationalized procrastinating on sending out query letters for my unsold novel with the reasoning that my query letters would be a lot more impressive when I could start them with a paragraph listing the visual novels I'd worked on as a contractor, along with information about the number of copies they'd sold.

That being said, although I never sold that novel, the time I spent working on it certainly wasn't wasted -- most of my early gigs in the visual novel space came as a direct result of the strength of my portfolio, which included parts of the original manuscript. So, while I didn't sell the manuscript, it did help with the first few critical steps of my writing career.

In an interesting quirk of fate, the editor that I'm working with for one of my current visual novel projects is also a senior editor at Tor, so despite never sending out those query letters, I somehow managed to stumble my way into a working relationship with someone at the publisher. Perhaps the moral of this story is that all roads lead to Tor. :)

<comment><USER6> great writeup, got a website or portfolio?

<comment><USER4> It's not a complete portfolio, but I keep a list of projects I'm currently working on at [http://kineticliterature.com/now/](http://kineticliterature.com/now/)

<comment><USER5> Oh, you're working on Necrobarista? I remember seeing the trailer a while ago and it intrigued me.

[edit]

I realized this comment was relatively vacuous, so I suppose I should say what it is that intrigued me. I had trouble putting my finger on it, until I realized that it's mainly the fact that while it is clearly a VN, it has its own distinct aesthetic. Too often I feel like VNs made outside of Japan try way too hard to look Japanese. This can work well, or poorly, but it constrains things both in terms of style and target audience.

Obviously the production values don't hurt either :)

</comment></comment></comment></comment></comment></comment><comment> d--b Well, it is sort of obvious that you need to get specific at some point to get anything done.

The problem is we tend to resist the work needed to get specific, because:

1\. it kills the dream. Dreaming about being a successful actor is nice. Getting specific about working as a waiter while taking acting classes for years is not exactly the fun part. Yes, maybe it's stupid to dream about stuff that won't happen ever, but it's completely human, and it should be totally fine.

2\. sometimes it's good not to dive into specifics too early. You may have your goals wrong, or you may have multiple specific ways to get there, but need to carefully mature your thoughts about the problem so that you take the right decision. To take the same example as the article: if a musician comes to you saying: "I need a booking agent", well perhaps the first question to ask is "why?" rather than "who?".

</comment><comment><USER7> Interesting article.

As the saying goes, the first step is always the hardest; and from my personal experience, I can attest that writing (especially through the old school 'pen and paper' way [0]) can serve as a very effective tool in de-cluttering the mental muddle that comes with formulating anything new.

Think of writing as an extension of the brain's working memory -- by offloading cognitively taxing task of keeping track of nitty-gritty details of task at hand, the prefrontal cortex gets a bigger pie of the mental energy -- which helps one to focus on the stuff that actually matters.

[0] [https://www.nytimes.com/2014/06/19/science/researching- the-b...](https://www.nytimes.com/2014/06/19/science/researching-the-brain-of- writers.html)

</comment><comment><USER8> I think something that usually keeps me from doing this is that I don't want to accidentally set the wrong specific goal and make myself go off in a tangent.

<comment><USER9> In practice, my projects more often fail because I don't do anything, than me going off in the wrong direction.</comment></comment>


Ddays: Plan Your Events Together - <AUTHOR> https://www.ddays.app/en/ <comment><AUTHOR> Ddays is an app all in one for planning easily potlucks, garden parties, trips and all events with your friends.

It gathers everything you need to organize events in one private space : Polls, todo lists, grocery lists, budget management, bill splitting and many other cool things.

If you want to save your time, use Ddays!</comment>


As Apple and Samsung dominate, Japan's tech giants are in a free fall - <AUTHOR> http://www.washingtonpost.com/world/as-apple-and-samsung-dominate-japans-tech-giants-are-in-a-free-fall/2012/09/28/04c6eb36-0944-11e2-afff-d6c7f20a83bf_story.html?hpid=z2 <comment><USER2> As someone who worked at Sony in the US and later founded a successful startup in japan, I feel I can speak with a bit of authority here… The main thing to realize is that this article is talking about Japanese 'tech giants' missing the boat, not HN-style software startups.

For many years Japan dominated and succeeded with well-built consumer hardware. The best and brightest minds became hardware engineers at Sony, Toshiba, Fujitsu, etc… When the industry shifted to software _and_ hardware blended together in a seamless fashion - an ecosystem bigger than the device itself - those minds were particularly ill-prepared for the fast paced, just- ship-it style development cycles that software demands. The product looked good on paper but the lifespan of the consumer relationship was inferior because it didn't include the user's newly found software lifecycle.

We all know how Microsoft missed the boat when the internet came along and disrupted their office/windows strategy. Now, imagine a whole country filled with Microsofts. Japan has floundered in denial for a while.

The good news for Japan is that the in the last few years I have seen a huge growth of people diving into it. There are a ton of coworking spaces and incubators popping up, and people seem to be focusing on software now. I actually think the big earthquake was a bit of an awakening for people here. More people want to work at a company doing something cool. The younger generation seems to understand that hardware is no longer king, even if they don't have the mentorship and guidance they would have in the US. It may take a bit of time but I think it is already under way. They have amazing work ethic and drive and I am hopeful that Japan turns the ship back towards innovation.

<comment><USER3> It all boils down to a population problem. Japan is ageing and software demands huge work force. Only India and may be China in the near future can bridge the gap. It is not accident that Silicon Valley has more Indian engineers than any other foreign nationality.

<comment><USER4> I am an Indian (from Goa). Your idea that the millions of Software Engineers from India are going bridge the gap is misguided, IMO.

What Software innovation has India done? Do you know of any compiler companies from here? Or any Operating System companies? How many linux kernel engineers does Infosys or TCS have? Both companies are sitting with billions in cash. Do you think any senior directors there are thinking - let's create a microchip, even if it's way behind Intel or AMD? I remember reading an interview of Bjarne Stroustrup - he said AT&T gave away their compilers to their competitors (like HP) knowing fully well it would strengthen them. Is any company in India on the same level as AT&T, who can see the bigger picture ? Maybe Tata's come close (not TCS). Indian senior management are like glorified buniyas - who when they put down 50 paise, expect Rs 1.5 back. It took Standard Chartered to come to India and sponsor a marathon. That should tell you a lot about senior management here.

On a larger scale is any Indian company thinking we can build a commercial aircraft? Only HAL builds fighters - but that's a govt company. Soon Microsoft is going to create an opportunity for everyone to erode their Desktop OS share by walling off developers? Do you think TCS or Infosys is building a Linux Distro like Canonical/Ubuntu? Do you think they have the balls to get into that market and try and take market share?

The fundamental thinking of India seems to be flawed. Everyone wants a piece of the outsourcing pie. Synergies and bullcrap like that. No products come from here. I believe we are already suffering a much worse fate than Japan. Videocon is a collaboration with a Japanese company (since the talk was about electronic majors from Japan). Where are the real indigenous products from India, so that we can have the same fate as Japan? The only advantage the 1 million "good" engineers you claim is cost. Once the cost advantage goes, people are going to be jobless, not bridging any gaps.

I went to 2 leading BPOs with my compilers for Survey Programming and Cross Tabulation. The VPs said the thought of writing such products never crossed their minds. They were not interested.

If you want to see the difference in Indian thinking - compare with Germany. Open source is available to everyone and that means countries too. I have read many articles about Germany using Open source in govt offices and there was an article about France and Libre Office.

India cannot go down the same road as Japan, because we dont have the products in the first place to go down that road.

I don't know if your "bridging the gap", means supplying engineers to other countries. If yes, then this is the typical thinking that creates the net negative cash flow in economies like ours.

<comment><USER5> fellow goan here, and i have to say that while you are mostly correct, things are beginning to shift. there are a sprinkling of homegrown "product" companies popping up in bangalore and pune, and a small but increasing participation in various open source communities. hopefully by the next decade indian software engineers will be motivated by seeing what they can build, rather than by where they can make a quick buck solving someone's outsourced problems.

<comment><USER4> I will believe this, when I see products which are not your typical social products coming from here, not your next twitter app clone variants, after people have done their first walk through using Rails.

What would be challenging products showing some tech know-how (note there is hardly an innovation in any of this, but demonstrates some level of tech competence)?

1\. Take the g++ source code or clang, intercept it at the point it creates the parse tree and create a code navigation(cscope for c++) or lint like tool.

2\. Chapter 6, PAIP has the bare bones of a flight search engine in lisp. You need to add more parameters and a different metric function. Open source the solution to disrupt current monopolies.

3\. Google is solving the language translation problem.

4\. Disrupt the big 5 in audits (PwC etc). Create an accounting /audit package that uses similar ideas as git. Use SHA1 entries to track accounting entries. PwC, screwed up Satyam's auditing and got away with it (because of bribing?). In the US, Arthur Anderson was destroyed as an entity for fudging Enron. Since we are used to bribing the govt to pass laws, TCS or Infosys could throw weight on the govt to pass a law to accept streams of accounting records using "git push". Audit data is now a weekly or monthly disclosure, using git push to a govt location. Much lesser chance for companies to fudge data once you have a much tighter cycle, tamper proof because of SHA1 checksums.

<comment><USER6> _In the US, Arthur Anderson was destroyed as an entity for fudging Enron._

Actually, it was simply killed by the initial indictment, which for an auditor is a death sentence. Several years later the Supreme Court unanimously reversed ([http://en.wikipedia.org/wiki/Arthur_Andersen_LLP_v._United_S...](http://en.wikipedia.org/wiki/Arthur_Andersen_LLP_v._United_States)), but by then it was way too late. I.e. this was a typical abusive political Federal prosecution; Enron in general gave the usual suspects an excuse to wreck horrific damage, including most especially SarBox which was the final nail in the coffin of the VC funded hi-tech startup business model.

As for Satyam, at least in US auditors proceed from the assumption that the company it not lying to them and they do some spot checks to verify (e.g. "You say you have 150 widgets of this type in that warehouse; let's go look at them." And "You say you have 29 crores in this account at that bank; call the bank and authorize them to tell us about the account."). If the company is sufficiently fraudulent, as I recall reading Satyam was, auditor malfeasance is _not_ assumed, you check to see if the auditor's verification procedures were reasonable and if they ignored anything they shouldn't have, but otherwise you can't assume they too were corrupt.

Auditing is expensive from both sides, the auditor and the company being audited, where a number of people are tasked with supplying the auditor the information they need and demand (e.g. those verification checks). If a company is running a sufficiently sophisticated scam, e.g. their official books are very carefully constructed fiction, I don't see how their pushing out regular records would help. I.e. the way they pull off their scam is to continuously make everything look good, as opposed to trying to put together a false set of books just before the audit, which would likely result in enough errors auditors would have a good chance of catching them.

</comment></comment></comment></comment></comment></comment><comment><USER7> I wonder if Japan suffers from a younger generation or a something being lost in translation. I'm reminded of this article:

[http://www.theverge.com/2012/7/24/3177332/ia-oliver- reichens...](http://www.theverge.com/2012/7/24/3177332/ia-oliver-reichenstein- writer-interview-good-design-is-invisible)

>Japanese web or app design is not comparable to Japanese art, graphic design or architecture. I could fill a page explaining why. It has to do with the way Japanese read, with the corporate fear of doing something different, and with the generally low level of design for the masses.

>One reason why Japanese web and app design feels weak is that technology requires good active and passive knowledge of English. English is the lingua franca of contemporary web and app development, both of our tools and our discourse. Even if you master English-based Objective-C or JavaScript, if you are not able to communicate with the international community of developers and designers, you miss out on what is desirable, even what is possible. Japanese developers and designers that don't speak English are trapped within the relatively low level of tech and design that currently reigns in the Japanese corporate world.

\-----

>Even the Japanese companies' strengths matter less now, as consumers have lost the willingness to pay a premium for quality.

This is not true or Apple would not be as successful as they are today. In some areas foreign manufacturers have caught up enough where quality is less of an issue such as TVs. Consumers now value the TV less. This is not true of smartphones, tablets, or cars. The latter is an area that Japan still carries a heavy amount of influence.

<comment><USER8> Not just web development. Programming in general. Can't imagine what it would be like to learn programming and don't understand English.

<comment><USER9> _> Can't imagine what it would be like to learn programming and not understand English._

(I read your sentence with an implied subject, which is fine for casual grammar, but the second phrase is subjunctive because the first is, so "do not" and "don't" fit poorly there, even for casual speech.)

Just imagine everything in a different language. Hydro Quebec had an application in French.

This is more evidence that community is key for programming. Community even trumps native language!

<comment><USER8> > _English degree put to good use there_

That sentence did felt a bit awkward.

All mainstream programming languages are based on English and so are the majority of resources. Even APIs for the operating systems we use and the protocols for communication.

Everything is pretty much exclusively English. It'd be such a huge disadvantage.

<comment><USER9> _> Everything is pretty much exclusively English. It'd be such a huge disadvantage._

So, you're saying it's inconceivable that someone could be competitive in the field without English skills, not that programming in another language period is inconceivable. I'm totally down with that.

</comment></comment></comment></comment></comment><comment><USER10> I wonder why Samsung and LG are doing so much better. They are just the kind of giant do-everything conglomerates that are failing in Japan. South Korean culture is rather similar to Japan, especially in business and education.

Some things I can think of: 1) Korea got started later, and has not had the chance yet to get stale like Japan did in the 90's.

2) The population pyramid is not as inverted.

3) Korea has more PC focus, while Japan is about more gadgets. See how Starcraft, a PC game, is enormous in South Korea but unknown in Japan. That means more software and programming focus early on.

4) Lower labor costs. Not as low as China, but low enough to compete.

<comment><USER11> Because Korean is hungry, just like China.

Japan thinks nothing will change, everything continue smoothly, nothing bad will happen.

... and yes I live and work here(Tokyo) for many years.

<comment><USER12> Yup. I blame the bubble.

I think many of Japan's woes are really a direct result of its earlier success. Post-WWII Japan was _extremely_ poor, and succeeded incredibly because they had a crazy-good work ethic, a relatively well-educated population and tradition of industrial development, and were willing to make sacrifices; as you state, "they were hungry." However the success that followed resulted in changing the very attitudes that engendered that success, and the bubble with its excesses accelerated this change greatly. Japanese confidence, lifestyle, etc, are all now firmly that of a rich, "we've succeeded! time to kick back!" country ... just in time to get the rug yanked out from underneath it.

The instincts and mechanisms that got them so far aren't well prepared to accommodate the changing world, but having tasted wealth, the country isn't really all that eager to toss out what made it wealthy, even when that clearly isn't working so well anymore... "better the devil you know..." etc.

This is the fate of all successful countries to some degree, but what I wonder is: without the extremes of the bubble, could Japan have achieved a more nuanced transition, becoming a rich country, but maybe remaining a bit more flexible and wary?

I don't think it's really true that everybody thinks "nothing will change, everything continue smoothly, nothing bad will happen." Japanese people very much _see_ the country's malaise and feel worried about the future... but merely recognizing the problem intellectually isn't enough. There has to be a change in "gut instinct" too, and that is much harder. I suppose one way to do it is to increase the pain level to the point where continuing as-is becomes intolerable, and something _has_ to change; unfortunately that seems to be route Japan is taking... :(

<comment><USER6> The major problem I have with this thesis is that Japan's birthrate started falling off a cliff in 1974 ([http://en.wikipedia.org/wiki/File:Bdrates_of_Japan_since_195...](http://en.wikipedia.org/wiki/File:Bdrates_of_Japan_since_1950.svg)), when things were getting quite a bit better, but still a dozen years before the formal bubble started.

</comment></comment></comment></comment><comment><USER13> I suppose Japan is suffering from the _island effect_ , at least in their mobile sector. Like Finland, they got a preview into the smartphone world (Japan with i-mode, Finland with WAP). Companies were built, investments were made, and they flopped, burning out a lot of entrepreneurs and killing investor confidence. And then the real smartphone boom happened, and we moved into it too cautiously.

I don't know enough of the French software business, but it would be reasonable to assume that they had something similar when Minitel was replaced by the web. How did the companies react and recover?

<comment><USER14> I think you are forgetting an important part of the equation: the interior market. In France it was much easier for entrepreneurs to move from the Minitel to internet, than for people to trust a new medium over a trusted one that worked seemlessly for decades.

So while your average American was emptying his wallet buying stuff on the web, French were still checking their bank accounts on the Minitel. That makes for a slow start, but eventually we moved on and there has been a lot of successful web startup in France (that usually end up either moving to SV, and/or being bought by American giant, but that's another story).

</comment></comment><comment><USER15> I almost feel bad for Sony. I've bought Sony TV's all my life, but when it came time to buy a large flat panel TV, and I did all the comparisons, I bought a .... Samsung. No comparison - Sony just doesn't hold up anymore, and a lot of it is the internal firmware. I did buy a Sony BluRay player, and the UI is absolutely the worst piece of junk I've ever seen. Shoulda bought a Samsung!

</comment><comment><USER16> Nintendo is also at risk of free fall. If the WiiU doesn't perform well this may be the last home console unit we see them release. Not to mention their mobile gaming market has been decimated by Apple (IMO the 3DS should have been cancelled and redeveloped as a 3DTablet to compete head on with iPad)

<comment><USER17> Wouldn't say Nintendo is remotely at risk of free-fall. I think they are slightly at risk of losing the viability of running their own games platform, a self reliant strategy which suits their conservative, long-term philosophy (Nintendo is a much older company than almost everything in the tech sector).

But if they have to pack-in their hardware business, they still have their IP, their human capital, their connections, their marketing abilities. Mario on the AppStore would be a licence to print money. They just wouldn't be in control of their own destiny as much as before.

I can imagine them signing an exclusivity deal with Apple, who unlike the other players in the game space don't have an internal development division.

<comment><USER16> Good points and yeah, heck you're right Nintendo is over a century old. But I think more likely than a Nintendo/Apple partnership - is a Sony/Nintendo partnership. A deal that would leverage both companies' strengths to more effectively compete against Apple.

Apple is now Nintendo's biggest competitor, a deal with them is a last resort and would certainly be a white flag end of their hardware division.

</comment></comment></comment><comment><USER18> Interesting article and it echos my own views of Japan after visiting the country last month for the first time in my life and spending 2.5 weeks there.

I grew up in the decade[1] where Japan absolutely dominated the consumer electronics industry hence, I've always long held this view of Japan being one of the most technological advanced economy in the world. But when I actually went there, my view completely changed. They still are, to a certain extent[2], but from a tech industry standpoint they are starting to lag behind IMHO.

For example, when I was in Akihabara, I was told it was a electronics mecca filled with all the latest Japanese gadgets and gizmos but when I was there last month, all I saw was a myriad of chinese made/manufactured stuff. Most of the electronics stuff I've already seen in my own country and there was nothing much that looked truly new[3]. Maybe if I was walking down these streets 15 years ago, I would have been pretty wide-eyed. Even if you look at the one electronic device that a Japanese brand still dominates (which is mobile), the Docomo made mobile phones are all mostly using android and majority of them are flip phones[4]! And if you don't see someone using a Docomo made-phone, it will most likely be an iPhone.

Don't take me wrong, Japan still is a fairly advanced country[5] but my trip there last month made me realize that they are fast falling behind the rest of their Asian counterparts: China and Korea in particular. These once mighty Japanese tech companies needs to start making bold innovative moves instead of living in the past and being hankered down by bureaucracy. If they don't do it soon enough, one day it will be too late and it will have a devastating effect on the Japanese economy.

[1] Child of the 80s/90s.

[2] Japan may be losing innovative and competitive ground in terms of anything tech related but they are still quite ahead in some aspects. I.e. The transportation industry (trains in particular) are light years ahead. The Shinkansen(bullet train) itself was built in the 60s but still looks like it was designed in the 25th century.

[3] Most of the electronics were "new" and "latest" but none of them were "unique". They were the same Korean, Taiwanese or China branded electronics that you see anywhere else in the world (or at least in my country). You will be hard pressed to find any funky new Japanese gadgets or gizmos.

[4] [http://www.blogcdn.com/www.engadget.com/media/2008/05/ntt- do...](http://www.blogcdn.com/www.engadget.com/media/2008/05/ntt- docomo-906i.jpg)

[5] One thing I admired when I was in Japan is that, a lot of their technology (transportation system, infrastructure, telecommunications, etc) were built decades ago but it still looks fairly advanced to this day. Though, you will noticed it is starting to age.

<comment><USER19> It's the economy, stupid. [1]

<https://en.wikipedia.org/wiki/Lost_Decade_(Japan)>

20 years of no growth buried them under a mountain of debt, crippling the domestic market which had been a big part of their rise (c.f. china).

[1] It's an expression.

<comment><USER20> >20 years of no growth buried them under a mountain of debt, crippling the domestic market which had been a big part of their rise (c.f. china).

I don't think a lagging economy explains why Sony and most Japaense tech giant missed the web/mobile boat. They missed that boat, because they missed that boat. The US economy is in its own "lost decade" but Apple, Google, and Microsoft are doing quite well.

<comment><USER19> It doesn't seem like you really gave a reason for thinking it not to be true. It's an awful big coincidence that all of japan's CE firms would lose their ability to innovate simultaneously around the time of a extended economic slump.

You're thinking in overly short time horizons. Major economic impact takes time to reverberate. Where was Sony in '95? On top. US Stagnation started in '08 give or take, so it really hasn't been that long. A lot of California's current success (in the web and elsewhere) can be traced back to the economic policies of the 90's and the easy money of Y2K. Where do you think the angel money came from? What would happen if there weren't small innovators available everywhere for google et al to purchase to keep their growth up?

<comment><USER18> I couldn't agree with you more.

When I was in Osaka, I stayed at a backpackers and I met a few young Japanese locals. Between my extremely poor and limited Japanese and their broken English, we were somewhat able to maintain a conversation and I mentioned the same thing to them.

Since it was only a subset of 5 or so people, I wouldn't count it as the general consensus of the Japanese people but they were very aware of how stagnant the big Japanese tech giants (and the country's economy) have become and how Japan is already lagging being China and Korea.

What I did find interesting is that these young blokes blame the government rather than the company themselves.

</comment></comment></comment></comment></comment><comment><USER21> I think it's primarily because 1). these companies push their employees so hard and 2). a majority of them don't know English 3). software programming is seen as something for nerds too lame to do electrical engineering

1 is important because as we all know, if you are a good programmer, it's not because you are _good_ it's because you spend your spare time catching up on other facets and honing your skills. When there isn't time for that, what do you expect to happen?

2 is equally important simply because Japan is stuck in their own land of tech help. I think things are much better now because of Google Translate and such, but most Japanese programmers have basically been isolated from us.

3 is the biggest one. Despite Ruby got invented there, most programmers there do not know it. There are no Japanese Operating Systems. There is no Japanese business software market. Most Japanese companies have absolutely _terrible_ sites from last decade. [as a source <http://www.economist.com/node/18958643>]

So, what's to be done about it? Well, luckily Japan has insanely high internet speeds, and everything is moving to virtualization everywhere else. So, at the end of the day, there is a big chance that everything could shift in Japan at a much, much higher rate than in America. However, this will take a number of consulting companies pushing pretty pro American attitudes towards business culture as well as programming, which simply isn't going to fly all that well there.

Personally, I think Japan needs a much higher number of startups, and they need to basically do a startup chile thing for web startups. They need them badly, they need a majority of the existing work force radically retrained, and the people coming into the work force need to be pushed in very different directions compared to the usual.

Japan has the might, they have the know how. The main problems are simply that they can't keep up with the rate of development and change that other companies can handle, and the only way that's going to change is if these companies start isolating portions of themselves like startups.

My personal idea, which I would be very happy to see go into use, would be to start holding out of work 'bounties'. Coolest Erlang program developed this month gets $2000! Best new language gets $5000! That pushes people to become better, share knowledge, and find other smart people to get ahead and get the money, which would hopefully lead to those groups of people doing startups together after finding a possible 'founder'.

Also: there is no FSF/EFF in Japan. And because of the max 1% of the budge the military gets they don't even have the intelligence companies or the drive for them as we do.

p.s. I can't read Japanese, so everything I know is hearsay.

<comment><USER22> I work in a Japanese company which began strongly in the mobile market (on imode) but which is now pretty much pandering to the lowest common denominator with fortune telling, social games etc... My workstation is a win xp box from a few years ago with 2 gig ram. So is everyone else's. We still invest a lot of time & effort making flash/terrible HTML inline styled tag soup for the Gala-kei market (Galapagos keitai / mobile). Being native English speaking, I'm often tasked with obscure bug squashing or creating demo apps to show other debs how to use something, since most documentation is in English. I will bide my time for now, but i do feel a need to move to a more forward looking position.

Oh, and I'm usually one of the first to go home.. We work in a massive open desk environment so i'm pretty sure of that!

<comment><USER23> Haha, it's Gree, isn't it? I'm guessing things aren't going so well since kompu gacha was banned.

</comment></comment></comment><comment><USER24> Much of this was predicted pretty well in Alex Kerr's 2002 book "Dogs And Demons: Tales From the Dark Side of Modern Japan". Some of his criticisms seemed a little overwrought but I think his general thesis has been proven out.

<http://us.macmillan.com/dogsanddemons/AlexKerr>

</comment><comment><USER25> not true. Japan tech control digital photography and videography

<comment><USER26> Right, they make nice glass, nice sensors, and nice processing chips. But once you've taken the shot, you use Abode Photoshop to do the editing, and share it using a PC or Mac.

That is, assuming you didn't shoot with your iPhone.

<comment><USER27> IIRC, a lot of the components in the iPhone are made by Japanese companies.

</comment></comment></comment><comment><USER28> Isn't this to some degree a matter of fixating on consumer brands? To my understanding Japan still runs a massive trade surplus in high tech equipment and parts and has many super profitable firms making that stuff. The parts that go into or make your phone or TV comes from Japan. This is just what I hear.</comment>


In Australia, Even Learning About Encryption Will Be Illegal Soon - <AUTHOR> http://www.gizmodo.com.au/2015/12/in-australia-even-learning-about-encryption-will-be-illegal-soon/ <comment><USER2> How to even comment this !?</comment>


Show HN: Chrome Crypto Ticker - <AUTHOR> https://chrome.google.com/webstore/detail/crypto-ticker/jhdfbnhbjoefbemgebjomaokpcagjplm?sh2 <comment><AUTHOR> Hey all! I've just created a ticker for crypto currencies. I'm looking for some feedback and ideas to improve my plugin.

Best regards!</comment>