skysight-inc/HackerNews huggingface dataset:
You should finish it. By the end of the essay, the guy has successfully argued himself out of half of his original thesis, and has laid the seeds for finishing off the other half. That's one of the good side effects of essay writing: You can start out arguing one thing and eventually find yourself having to argue something else.

One of the things the guy missed is there in plain sight in his essay:

You need to get to know the libraries, struggle with the environment, find or tune a text editor, look for tools, and so on. Most of the effort has to do with housekeeping chores, which are surely not mind-expanding by anyone's measure. If you hope to be productive in the new language, things are even bleaker: proficiency has less to do with the language itself than with the myriad technologies you must master to use it effectively.

Unfortunately, everyday productivity is a lot of housekeeping chores, one after another. While your higher mind is soaring with the architecture astronauts, the rest of your mind had better be editing text efficiently, and running top and netstat, and administering the version control system.

And more than half of the point of learning a new language is to force yourself to experiment with a different tool ecosystem. The point of learning Ruby isn't just to learn Ruby: You get to learn about Rails and Capistrano and the obsessive use of test-driven development and, in my case, git. (If I'd been a kernel hacker, I'd have known about git. I presume the Rails folks learned about git because some kernel hackers, seeking to learn a new language, wandered into the Rails community.) You want to be forced to experiment with different tools because sometimes they're better: git is just a much better tool than Subversion, and don't get me started on CVS. Even when the alternatives aren't better, you become a better technologist by playing with them. If I'd never played with a Java IDE I would have no chance of understanding how Java programmers think. If I'd never actually deployed both Rails and PHP I wouldn't understand why PHP deserved to live. (Yes, it's filled with stupidly broken parts, but it's so easy to deploy, and it's fast, and it's not that hard to comprehend.)

The other thing this guy doesn't seem to understand is that there's a difference between tourism and living in another country. When you "learn a new language every year" that doesn't mean you have to become a pro in your new language. You can visit, kick the tires, read a couple of introductory books, write some simple code, read some code to something more complicated, and then move on. Yes, that means you're a dilettante -- but it's better to be a dilettante than to blindly plug away at the same thing for a decade.
So this is an article about an April fools joke, a day after April fools...?
It's just his opinion.

Learning new languages teaches you what you know and most importantly don't know. Coming from a Java working background, I find Ruby on Rails pleasantly abstruse and remarkably concise (which makes it hard to learn, coming from the land of boilerplateness).

I have a long commute on the train and I find that when I am trying to debug/learn - (learning Ruby on Rails) - the time flies by like that. If that isn't a benefit (making time fly by when you're having fun learning), I don't know what is.
Completely agree you shouldn't choose a language just because you feel like learning a new one but the article ignores the design implications of choosing one language over another. I just don't think it is a particularly complete or well reasoned argument and is a border line rant.
Ok..I am officially getting tired of reading about how this guy failed at Gigamon
You erred in your capitalization. From http://xkcd.com/about/

How do I write "xkcd"? There's nothing in Strunk and White about this.

For those of us pedantic enough to want a rule, here it is: The preferred form is "xkcd", all lower-case. In formal contexts where a lowercase word shouldn't start a sentence, "XKCD" is an okay alternative. "Xkcd" is frowned upon.
You erred in your capitalization. From http://xkcd.com/about/

How do I write "xkcd"? There's nothing in Strunk and White about this.
For those of us pedantic enough to want a rule, here it is: The preferred form is "xkcd", all lower-case. In formal contexts where a lowercase word shouldn't start a sentence, "XKCD" is an okay alternative. "Xkcd" is frowned upon.
I did that last month for a dev server. Read their budget guide and bought most of the components. Spent about $500 and got a nice 4GB dual core box built.
The article's not bad. His main focus, and he states it, is not to constantly learn new languages for the sake of profit. As a hobby cool, but not for profit. I can agree with that. There are all sorts of topics you could learn for fun and profit, and investing in a new language is not necessarily the silver bullet to mad coin.

Who cares though? I think as long as we're constantly learning, whether it's new programming languages, economics, or snowbaording, it makes life interesting. New skills always seem to come in useful at some point. Make the investment in learning things that interest you and it'll always pay off. Don't let someone else tell you what NOT to learn. That's jut silly. Heck even learning COBOL or FORTRAN would benefit you with a little insight, and might be fun in a retro sort of way.
Really, the main risk of changing code that doesn't need to be changed is that there is input data out there, which you don't have access to, that works fine with the current code but your refactoring might introduce some incompatibility. Of course, depending on the situation, it can still be worth munging the code to be more manageable, but I would certainly not do that without a reasonable set of tests.

Well, writing the tests after some exploratory programming can work just fine, especially when you're tackling a defect of some kind, such as "this input doesn't work". The first thing I'd do is figure out why it doesn't work, and then try a fix. Then try and guess at some possible new failures you might have introduced, and feed the original code and your changes with the test cases and see if you get what you expect. Then throw in loads of random real-world input data to make sure that still works.

I'm not suggesting there are hard-and-fast rules here, I'm just trying to suggest some techniques that have worked well for me. Foreign code is always tricky and is always as much about making your own changes as it is about damage limitation. It's like making changes to your own code, except with blindfolds on.
>The real problem here is that it’s hard to respect any article that mentions a study without providing references. I refuse to grant credibility to anyone using a study to support an argument without a reference. If the study was published I can read it myself and see what it actually says.

Unfortunately, most research today is behind a pay-wall, leaving little opportunity for an average Joe to check it.
And yet form validation is not tied to the ORM. The ORM is leverage where a form is generated from a model, but that's not what you said.
Eh...you can build something as good and cheaper than this if you carefully monitor Fry's ads.
Third round of Next Web start-ups
The article makes a good point. While everybody enjoys being treated well, perhaps it's possible to overdo it?

I mean really, are slides and firemen poles a necessity? The answer is NO, unless ... you want your engineers to never leave.

No matter how you sugar coat it, work is still work. Having neat perks at work is nice but in my opinion it shouldn't turn into a kindergarten playground.
Here we go: today's Fry's ad in The Dallas Morning News:

$230 for Q6600 + ECS GF7100PVT-M
$200 for 1TB Seagate SATA300/32MB, 7200RPM
$60 for 4GB PC6400 DDR2
$70 for Antec uATX Minuet 350 case
--------
$560

Throw in another $60 for 4 more GB of memory, and you've got what he's got, but with a bigger disk and much, much smaller case (it probably won't be as quiet) and for only $620 instead of $900.
Video chat startup Seesmic acquires Twitter client Twhirl
Are IPO’s Dead For Silicon Valley Start Ups?
I'm using Flashblock, and I wish your site was a little friendler to it, instead of telling me I need to install Flash. Whitelisting your site directly works, but that's a lot more effort than I normally want to go through.
You misread the article. He's not arguing against learning new things. He's arguing against learning the specific new things you want him to; he'd rather learn business or security.
The unfortunate fact is that if you're optimizing for marketability, you're going to learn PHP, Java, and C++.
A real phenomenon: there are people who never get anything done because they are constantly dabbling in the language flavor of the moment.

Another real phenomenon: some of the best programmers in the world still rely entirely on C. [Late edit: "and outperform developers in modern languages"].
I think really what he is arguing is the marginal benefit of learning a new language diminishes with each new language. Which is probably true if you only learn the syntax and then move on. But thats not what software development is ,the language is a tool that a culture uses. Using your example with Rails , alot of its culture (MVC , TDD , etc) seem to be being adopted in other communities. I would argue that the reason is someone had a extended vacation in Hotel Rails liked what they saw and then brought it home. Finding out how different people do different things and adapting them to your needs is valuable in all contexts.
All of the other people who own generic or semi-generic doorway pages should pay attention to what these guys are doing. There's probably a business in creating the ad and content relationships that can then be matched up with the appropriate domains ...
The FriendFeed Disjointed Comments Problem
If everyone understood these things and could think clearly about them, CMMI would just be a bad dream, rather than a productivity nightmare.
Depends whether you are optimizing for the widest possible number of jobs, or the highest salary/coolest job.
I didn't fail at Gigamon. Gigamon is a very successful company. I retired from Gigamon. I failed at a previous company but after I stepped down as a CEO, it is now doing quite well. I actually don't talk too much about failing. I prefer to focus on succeeding. But in between the two extremes is really where the fun stuff begins.

So I guess my addiction is that I LOVE talking about entrepreneurship ... guilty as charged.
"not found"
Startups and the “Validity of the Idea”
Distance Map Morpher
This site seems to automatically capitalize the first letter of the first word you submit.
thanks... an extra "l" will do that.
Free is Killing Us. Blame The VCs
In the first session of the famous SICP lectures, Hal Abelson likens computer science to magic.

http://www.youtube.com/watch?v=zQLUPjefuWA
I love to see this stuff, but, as far as I've read, Apple's not going to let you ever publish such things on iTunes.
I think he's operating with the assumption that all languages have the same concepts, just with different "lexical and syntactical bureaucracy." But I think the point of the advice to learn more programming languages is to expose yourself to different programming paradigms. And in order to do this, I don't think you need to become an expert in the nuances of that language, but you need to become comfortable in thinking in new ways.

If your language of choice is C, and you learn Pascal, then you haven't gained any new concepts. But if your language of choice is C, and you learn Prolog, then you will be exposed to a whole new way of thinking.

My native state of coding is procedural with a sprinkling of OO, mainly to represent families of concrete data types. I find functional programming appealing on an emotional level, and my attempts to learn how to think functionally have changed my native coding habits, even in non-functional languages.

My pragmatic advice is learn enough of a language from a different programming paradigm so you can apply that new way of thinking to your native language.
I promised myself long ago that I would never engage a "language war" thread. Not sure if I'm actually breaking my promise, but this article was too compelling to ignore. The author states what I've intuitively known all along, but was never really able to explain.

I am proficient in about a dozen languages, but only use 3. I go back to the SPS, PL1, Fortran, and COBOL days, and would rather chew razor blades than ever use them again. Today, I use javascript on the client and php on the server; I have yet to find a problem I couldn't solve with them.

In the years in between I discovered BASIC and have found it to be the Swiss army knife of apps. Not the old Dartmouth Basic, and certainly not anything Microsoft bastardized, but there are many other versions that seamlessly integrate with relational data bases that I think are a dream. <laughter dies down>

It's actually reached the point where I "think" in BASIC, design my app, and then sometimes write in in javascript or php.

I certainly wouldn't recommend my approach to someone else, but I think that's the whole point. Use the right tool for the job and get good at it. I see no need to learn new languages just for the purpose of learning something new. If I get "curious" or want to expand my mind, I can think of several hundred app problems waiting to be solved in any language, take your pick.

Thanks, Gustavo Duarte, for the chance to put a little thought into this. Time to xfer control back to work (GO TOs not allowed).
Is it legally negligent to teach C++ in CS1?
The ad revenue on a domain that doesn't get any traffic??? I'd be surprised if it made 5 figures a year to be honest.
I Couldn't Resist...Youtube vs Broadcast.com 10 years ago
> It's not so much to "open my mind" as it is to keep myself marketable after Java's impending demise.

As someone who is starting to step out of the comfort zone of Java, I agree about marketability. However, Java is not going to disappear, it's firmly entrenched. It's like COBOL. I'm not sure how Sun pulled it off exactly but Java in it's 13 years has spread itself in a lot of corporate systems/applications/backends (some of which may be COBOL). Ruby on Rails and other minority languages are the minority in some companies precisely because the majority don't like the minority ("RoR? We don't use that"). However, there are some rogues in companies who are trying to bring RoR in discretely (I'm trying to be one - developing business cases for RoR adoption on small projects)
Ten Things You Didn't Know About Facebook
What's the right time to become your own boss?
"Heck even learning COBOL or FORTRAN would benefit you with a little insight, and might be fun in a retro sort of way."

<sarcasm>

So would gargling Drano.

</sarcasm>

(I always thought about COBOL like this: Let's spend 3 hours getting dressed to go outside and pick up the mail.)
m-x slime (starts slime and sbcl)
c-x-2 (split window in two; one for coding one for REPL)

..open a file at the top window by pressing c-x-f and typing in hello-world.lisp <enter>

..yay, start coding..

c-c-c to eval forms
c-c-k to eval/compile the entire file
q to close down "popups" (exceptions .. etc.)

yawn .. what's the problem? .. are somewhat, "limited"?
I think exercising the mind is the hardest thing to do because it's so easy to take the path of least resistance.

What are your thoughts on the (1) Marathon Monks of Japan and (2) the Lung-Gom-Pa's (near mythical if not mystical) of Tibet?

(1) http://www.millennium-tv.com/Monks.htm
(2) http://www.planetultramarathon.com/lunggomparunners.htm
Growing willpower is pretty much impossible for me--I'm smart enough to reason my way out of anything, even if it's something that will benefit me in the end (ie: exercise). The key is to not think about it. If I start to think about not wanting to go to the gym, I won't go. I realized that I was doing this, and decided to use my incredibly stubborn nature to defeat it.

I just say, "No."

Cliche, yes, but it works. It works so well, in fact, that none of my friends will discuss anything with me if I'm in a jovial mood, as when the argument begins to look up for them, and I no longer feel like defending my own point of view, I will simply contradict whatever they say.

I'm sure they also hate that I'll start arguing fine points that really have no relevance to the topic at hand, but...haha.

Willpower is exactly that, the strength of your will. The person with a strong will will do exactly as he decides fit, regardless of arguments presented by any camp, including his own.

Some call it will power, some call it determination. Even others call it perseverance. But in the end, it is pure OBSTINANCE.
Here here. Learning a new language can be fun - opportunity cost be damned.
"Check out this video. No, go on, watch it. The rest of this won't make much sense until you do."

Sorry, ain't gonna happen. This may be the most interesting piece ever presented, but I won't find out.

If I'm at a client site, no sound card, no headphones (I want to hear their people), and I don't want to clog their pipes.

If I'm in my office, I never watch video on-line; it's too easy to get side-tracked and lose hours.

OP should put "(video)" in post.

Am I the only one who feels this way?
You can use CUSP (an Eclipse plugin which provides similar functionality to SLIME for EMACS), and the commercial impls have their own (admittedly EMACS-esque) IDEs. There's even a SLIME-derived plugin for vi! It really is worth the effort to learn EMACS, though.

I'm unconvinced that installing lisp libraries is so very horrible; I've had far more trouble with python ones, myself.
Well... To respond to Ted's rant, the obvious difference between Google and those late-90's companies is that the latter burned through an enormous pile of VC cash without producing much profit. I agree with Ted that the fish-tank-pod-thingies seem a bit much, but...

Look at it this way - in 2007, Google generated a 4.2 billion $US profit with roughly 16,000 employees. In that same period, Wells Fargo generated just north of 8 billion $US profit with roughly 159,000 employees. And Wells Fargo is a pretty healthy company. So I'd say that those 16,000 employees at Google are some pretty valuable people, and if massage pods in front of fish tanks is what it takes to keep those people, then more power to 'em. Doing the math, I'm guessing that what they spent on that office space is less than the payroll for 65,000 Wells Fargo employees.
A different view point.

From Peter Norvig's "teach Yourself Programming in 10 years"

"Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal)."
I haven't read too deep into the Apple guidelines yet for writing and distributing iPhone apps. Could you expand on why Apple wouldn't allow an app written using something other than Obj-C to be distributed through iTunes?

I've been learning Obj-C, but naturally if I could use a language I already know, I could avoid a huge learning curve and get right into creating an app.
"Willpower" is a word to describe a non-issue.

"What, you don't beat your children? What willpower!"

"You'd rather miss a meal than rob a bank? What willpower!"

"You don't murder your enemies? What willpower!"

Funny how easy life gets when you stop thinking about "willpower" and start doing the right thing.
Excellent. Small amounts of self-righteous can be good. Too much and you become annoying and dangerous to people actually taking your advise. Applying your experience and trying to apply it across the board is just plain ignorance. All businesses vary in needs across different stages of growth. There is no use trying to derive formulas where formulas don't apply.

Interestingly enough, I think this "my way" approach that super hacker takes is the same type of attitude he likely resents in "business types". In doing so, he misses the one major thing that IS needed in startups -- flexibility.
Learning RoR is fun because I like personal challenges. If it were easy, it would be boring. It's like a new way of thinking, not just programming. And like jjburka said, it's like taking a vacation from the land of Java.

I don't want to pretend that I am not learning RoR to be more marketable, and it's a joy to learn RoR, to build little RoR apps that I can use from my iPhone that make my life less stressful/easier.

Because I don't have 2-3 years of experience, I realize that I won't be able to pass a rigorous RoR interview. Especially those at interesting startups. My workaround to this might be by developing one or two Ruby GEMS that add value to the ecosystem (going to RailsConf '08 will help me get my bearings)
Swiss German is for all intents and purposes a different language -- it's nearly as far away from German as Dutch. It has different grammar. This is confusing at times because the Swiss write Hochdeutsch but that's not the language that they use to communicate in. Comparatively Austrian German is rather paletable. :-)
Purely anecdotal, but I went to a Boston Ruby group meeting a couple weeks ago. I didn't hang out for long, but both of the 2 people I talked to were there to hit on developers! One offered me a job in the elevator. Last week, a funded startup called me with a job offer out of the blue--they new a friend of a friend.

I think it depends on the job you're optimizing for--ruby and python are good choices when optimizing for startup jobs.
> If you invoke the collapse of commercial AI to explain Lisp's current state of disfavor, you then have to explain why the collapse of the dotcom bubble didn't have a similar effect on Perl or Java.

I'm not saying AI Winter is the definitive explanation, but AI collapsed so thoroughly that there were barely any AI companies still around. Even at the worst of the dotcom collapse, use of the web was still growing among the general populace, and the principle leaders like Yahoo, Amazon, and Ebay are still around.

Your argument about Lisp losing interest because of the PC boom is really interesting, and I think it has some merit. Still, doesn't it beg the question of why people didn't just port Lisp to the PC and keep going? That's what happened with Unix -> Linux.
pacman -S clisp

I don't know what this fellow's problem was, clisp is fairly easy to install. Getting asdf to work properly might be a pain, but clisp itself was easy.
How to Make Online Auctions More Successful – for Both Sellers and Buyers
Google to sell search marketing unit of DoubleClick
Distraction Free Editing
Four Cornerstones of an effective Elevator Pitch
He's wrong. We got there because of economics: the marginal costs of digital products are essentially zero, and so tend towards free:

http://www.squeezedbooks.com/book/show/7/information-rules-a...
ManagedQ: The Search Application
I don't know if it's true that free is killing us. I can point to several counterexamples, such as 37Signals and FogBugz that charge for their applications, and are apparently healthy. I think that no matter what, there will be people who want quality service without the advertisements.

The author compares launching big and launching small, but really they're apples and oranges. Yes, to launch big, you need to make a big splash and either be free or very low priced. But the alternative is still there: get the niche market, and launch slowly and by word of mouth of your users.

I don't think we're in a situation where you can't launch small and make a living.
this guy said it better than i ever could:
http://www.paulgraham.com/avg.html

hint: look for blub programmer.