Mailing List Archive
tlug.jp Mailing List tlug archive tlug Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- Date: Fri, 25 Jul 2008 06:19:54 +0900
- From: "Stephen J. Turnbull" <stephen@example.com>
- Subject: Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- References: <20080718055807.GC18016@lucky.cynic.net> <82c89d700807180109l6b922486mc4d9027c096bc21@mail.gmail.com> <4883F362.3050100@sun.com> <b6c67a3d0807202032m5ed3843fu9eb6c2e851e26a0e@mail.gmail.com> <48844B78.9080505@sun.com> <87iquyh5pb.fsf@uwakimon.sk.tsukuba.ac.jp> <20080722093518.GC450@lucky.cynic.net> <873am1hlq5.fsf@uwakimon.sk.tsukuba.ac.jp> <20080724041853.GM2936@lucky.cynic.net> <87iquvyc7y.fsf@uwakimon.sk.tsukuba.ac.jp> <20080724112711.GB7891@lucky.cynic.net>
Curt Sampson writes: > On 2008-07-24 16:26 +0900 (Thu), Stephen J. Turnbull wrote: > > Curt Sampson writes: Taking things out of order, here's the executive summary. > > > As for languages themselves, there is ample evidence that some > > > are more powerful than others, > > > > Well, feel free to set up your straw man. Which set of languages > > would you choose? > > C++, Java, Ruby and Haskell, since I have reasonable knowledge of all of > those. But you say below that in Google's situation, you see no reason not to substitute Python for Ruby, and every reason to do so. So what you're saying is that Google's whole mistake is not to add a modern functional language to the mix. How about a declarative language like Prolog? More to the point, where's SQL? Surely Google uses SQL out the wazoo. And what problem does use of Haskell solve for Google? Google's big problem is concurrency. So is STM a standard part of GHC 6.8? How well-debugged is it? Can you refer me to the HOWTOs on using it to solve google-sized problems? How does this interface with modules written in other languages that don't have STM? Is it as efficient as SP-J's chapter in "Beautiful Code" would suggest, or does it require problems that are as easy to factor in your head as the toy problem he presents there? We now return you to your on-going discussion. > > > It appears to be a matter of people's comfort level with change. > > > > Well, that's a resource cost. If, as a manager, you consistently > > ignore people's comfort levels.... > > I think you're talking about quite different situations from the ones > I'm talking about. The situations I've seen have managers that don't > appear to care particularly about employee's comfort levels, and they're > not implementing this better stuff because the *managers* are not > comfortable with it, not the employees. Well, then, iterate the problem. It's the managers' managers who need to deal with comfort levels, and guide their people (the first level managers) through change. > The world is much closer to Dilbert than your representation of managers > making the best possible decisions that they can for their companyies > and employees. Sure. However the world is also a lot more complicated than you make it out to be. Agile programming is a very local technology. That's not to say it can't be applied enterprise-wide, but it has to be done by smallish groups on a group by group basis. Training is an investment in future performance at the expense of current. A group that refuses to invest in training can often do better on its current task. This may get it more resources in the future. That tradeoff has to be managed very carefully, and it is rarely managed well. So what we have is people who are responding pretty well to the incentives they face *and still getting the wrong answer*.[1] If you want to call that "closer to Dilbert," well, guess what? You're right. So what? "Dilbert" is a caricature, not analysis. It leads to a situation where you say that Google has the dumbest and smartest people in the industry, and they're the same people. A nice ko-an, but satori generally leads to leaving the rat race, not to teaching the rats how to run faster with less fatigue. > > Also, we weren't talking about general change. > > I think we were, back a ways in this thread. Again, you were, but that's hijacking the thread. No, we were talking about disruptive innovation, which is a problem caused by the fact that the system is in a local optimum, which remains locally optimal even though the global optimum has changed. Mathematically this is known as a catastrophe, aptly enough. People are quite accurate in seeking local optima based on selfish motives. There are a number of heuristics (altruism, benefit-cost analysis) for jumping to a better local optimum, but finding a global optimum is a risky business. > > This means that not only do you have to make your own people happy > > with the change, you also need to get your clients and suppliers and > > complementers on board. > > Yup. Which is exactly why you should be starting off on this kind of > thing early, rather than doing nothing about it until you've fallen > behind the rest of the industry. Everybody knows that. Everybody also knows that jumping on the current trendy technology is likely to cause a catastrophic loss. So what you're saying is that you've identified the "silver bullet that works," and Google is being stupid to not adopt it. Reread your Brooks recently? > > BTW, one of the reasons why Google sticks to those languages, I'm > > told, is that they work very well together. It's relatively easy to > > port from Python to Java to C++, or to write portions of your Python > > programs in C++, as you need more performance. > > Sure. But then again, speaking of Haskell (since I happen to be > particularly familiar with it), it produces standard binaries just like > C++ does, has more or less equivalant performance, is better than Python > at interfacing with C when you have to (which you generally don't need > to do for performance reasons), and is at least as compact and quick to > code in as Python. This stuff is out there, and if you happen to decide > that your future is a language without a good compiler and run-time > system currently, you can also dedicate a hacker or two to it. It's possible to write unreadable Python, but I haven't seen much. There are very strong customs in the Python community (the "Zen") that lead to readable code. On the other hand, have you read Darcs's code? I don't think it's an accident that it's that hard to grok, in the sense that it was written by a single idiosyncratic individual with little to guide him in the way of style. Where is the Kernighan and Plauger, or even the Kernighan and Pike, of Haskell? Try going to Amazon and typing "programming style C/C++/Pascal/Python/Smalltalk/ Lisp" (yes, even Lisp!) and then try "programming style Haskell". The second group is 90% conference proceedings! And Haskell, like Lisp, is very amenable to exponential recursion. As anybody who's had much exposure to Darcs knows. Most problems already have Python solutions, and if you spend a month lurking on c.l.python and python-dev, you'll surely find a list of posters whose ideas you trust. Many of them have written books on how to solve problems relevant to you. Is that true for Haskell or Ocaml or Standard ML? Finally, Python has a path forward. Yes, it has problems and lacks, but many of these are being addressed in Python 3 (which is, I predict, going to be a disruptive innovation ... many existing Python 2 shops are going to get their butts whupped by upstart Python 3 firms). Python 3 development is very much driven by the experiences of Python programmers in large-scale enterprises (including Guido van Rossum of Google who is very pointedly *not* free to work *on* Python itself most of the time, because he spends most of his time programming *in* Python for his employer). Can you say the same for any of these advanced languages, except maybe Erlang? Don't get me wrong: Haskell is everything you say it is technically, and more, as far as I can tell in my limited experience, especially with Haskell. My point is that propagating those advantages in a large enterprise is not going to be as easy as you think. Again, we end up at the same point: a large enterprise can't adopt technologies like Haskell very easily (even though it can promote them as Microsoft does). However, I don't think a programming language or a deployment scheme can be as disruptive as you seem to think. I do not think that failure to adopt Haskell "now" can kill Google. > Heck, MS, who you'd think would not be nearly as technologically > advanced as Google, Why in the world would you think Microsoft would have anything less than the most technically advanced labs in the world? Cf. AT&T Bell Laboratories. The question is does it show up in the practices of the programmers who use their systems? > not only has squirrelled away in one of their research labs a > couple of very, very smart researchers/hackers dedicated to Haskell > and GHC (the most advanced of the Haskell compilers) full time, but > has gone so far as to start building OCaml into .NET in the guise > of F#. I don't see much like this coming out of Google. Yeah, I know where Simon Peyton-Jones works, and he's not the only Haskell hacker at Microsoft Labs. But how many of those Nobel Prizes at Bell Labs actually made it to telephone company practice? As for Google, Google prefers to squirrel away Linux kernel hackers. And coming out of Google? Surely you jest; if there is any really high-tech stuff happening at Google, the last thing they want is for it to get out, no? > ROM? At any rate, a programmer experienced with Python who's reasonably > smart ought to have no trouble picking up Ruby fairly quickly. I can't > see any reason to bother, since if you already have a full Python > infrastructure in place and people experienced with Python to go with > it, you might as well move your Ruby guys to Python. Neither language > offers enough over the other to make it worth changing from one to the > other, as far as I can see. Heh, heh, heh. > > Do you propose that each new Haskell programmer who knows little about > > Java spend at least half her time porting old Java programs just > > so that when maintenance is actually needed, she'll already have a > > program written in a language she understands? > > This is a thoroughly ridiculous scenario. No, it's a disruptive scenario. That is the kind of thing that has to happen when a disruptive innovation is introduced, although Christensen assumes it happens in marketing rather than engineering. I don't see why that should be a necessary constraint, though. > Consider the following: > > 1. If you're moving away from Java, yes, you want to start porting > any programs that require heavy maintenance and modification to > your new preferrred systems. > > 2. Google has massive reserves of Java talent; anybody who doesn't > can find a decent programmer who knows Java reasonably well quite > easily. > > 3. It would be pretty darn unusual for someone who knows Haskell not > to have a reasonably decent understanding of Java, or be able to > pick it up quite quickly. It's not a language issue per se. Certainly most people who are interested enough in languages to learn Haskell are going to be able to learn Java syntax. The problem is the massive infrastructure of libraries that languages like Java, Python, and C++ bring with them, and the well-known idioms for doing things in those languages. Those things will take them years to pick up, just like anybody else. Faster, yes, but same kind of O(f(n)). To the extent that these are just 3rd-party facilities that are SWIG-able, it won't be a problem. But it's typically not true; every programming language community seems to reinvent things like web frameworks multiple times. Footnotes: [1] While "the market" doesn't have the answers to all economic problems, it's such a good answer to many of them that even ordinary people no longer consider them "interesting problems" most of the time. Nevertheless, we don't really understand markets very well, as we see from Vernon Smith's Three Laws of experimental markets: 1. Experimental subjects do not do the calculations economists use to characterize market behavior. 2. We don't know what they do do. 3. The subjects get the right answers anyway! Note the similarity of Law 3 to "still get the wrong answer." But now we need to know what they're doing wrong, otherwise we have little hope of improving the situation. P.S. Smith enunciated those laws in about 1983. We now know a lot more about why markets work in the face of the failure of experimental subjects and others to compute.
- Follow-Ups:
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
- [tlug] STM (was: Re: work times & accommodation @tokyo)
- From: Attila Kinali
- References:
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: David Shanahan
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: jim grisanzio
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Philip Lee
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: jim grisanzio
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Stephen J. Turnbull
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Stephen J. Turnbull
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Stephen J. Turnbull
- Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- From: Curt Sampson
Home | Main Index | Thread Index
- Prev by Date: Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- Next by Date: Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- Previous by thread: Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- Next by thread: Re: work times & accommodation @tokyo, WAS: Re: [tlug] Embedded linux dev wanting to find work in Tokyo.. Seeking advice.
- Index(es):
Home Page Mailing List Linux and Japan TLUG Members Links