skysight-inc/HackerNews huggingface dataset:
The beauty of Python, is that there is a lot of choices when it comes to frameworks. Actually, probably Python is one of the those langues which makes using a framework strictly optional. And there are so many options if you do things that are not your average web app.
With Ruby, you are stuck with one, good framework, but not much if you want to do things very differently.

Django, Pylons, Cherry.py, web.py, Turbogears, and countless of other frameworks.

And I completely agree, on the fact that object oriented programming in Python is not pretty at all, but as a language it wasn't necessary ment to be used that way.
"The average 13-year-old white student scores better on the SATs than the average 17-year-old black student."

Thanks for the citation, but since I can't look up the book right now, perhaps you can answer a question. Is that really measuring the "average?" Or the average score of 13-year-old white students who are taking the test? That's a very biased sample; for instance, I took the test when I was 12 only because I seemed likely to qualify for the Center for Talented Youth.
A self replicating machine, this brings to mind Terminator and AI taking over the world.
The racial diversity bit is clearly a red-herring.
i've heard some other kul quotes that would make great headlines.
It's been in Java since about 2000.
Well finger length correlates with better SAT scores. I propose that finger length measurement replace SAT testing.

http://www.livescience.com/health/070522_finger_sats.html

Although I myself did well on the SAT's, I too am hesitant to support the use of correlations like these in determining what students, or anyone deserves.

With regard to SATs and academic performance, the first google result:

"Findings indicated a very low correlation between SAT math scores and overall college math grades of six graduating classes at one university"

http://eric.ed.gov/ERICWebPortal/custom/portlets/recordDetai...
Thanks for the detailed information!

I liked Ruby, but one of the things that turned me off from it for web development is deployment: not only do you need a server in front (such as Apache or nginx), but then you need to also monitor the couple of Mongrel servers for your app, which take up quite a bit of memory. Since I'll be using a VPS with only 256-512MB of RAM and want to create a couple of sites, I don't see Ruby as being a good solution.
"Various studies conducted over the lifetime of the SAT show a statistically significant increase in correlation of high school grades and freshman grades when the SAT is factored in." from wikipedia http://en.wikipedia.org/wiki/SAT
Twitter: Why It’s So Great And How To Effectively Use It
Yes, it is true that Live, Yahoo and Google are pretty close in terms of relevancy. People think of Google being the best, but the fact is that other engines are catching up. There are 200 search engines out there and most of us only know about the 4 big ones. Back in 1997, everyone used Yahoo or MSN and thought they were the best. Same applies to Google in 2008. There will be other players that will take over in the next few years.
a) There are excellent reasons why Python requires passing 'self' to each method. The article linked to three of them; I'll just link to one: http://effbot.org/pyfaq/why-must-self-be-used-explicitly-in-...

b) form_for(Model.new) is great. That's why I've successfully gotten it added in the next version of Pylons. SQLAlchemy is a zillion times more powerful than ActiveRecord, but if you need hand-holding, you can use an AR-ish layer on top of it, such as Elixir: http://elixir.ematia.de/trac/wiki

I've been using Rails for a year and a half, and every time I get a chance to work in Pylons, it's like a breath of fresh air.
Shame... I remember pointers being the challenging part of the class.
"... It's like exercise: you know it's good for you. People tell you how good you'll feel for it, and maybe you even remember vaguely that you thought it felt good after a long hot yoga session ... AND THAT is the motivation to go do it again. ... The fulfillment (sic) in shipping is shipping. ..."

Shipping advice like this for software is to what "out of shape PE teachers" prescribe to get fit.
I agree with that, teach computer scientists mathematics while they are in high school, NOT CS. Have any other mathematicians out there had to review mathematically intense papers written by CS students. Frightening isn't it! How about we update the whole AP system and bring it into the 21st century.

AP Chinese or Japanese Literature courses are still being debated, but we were teaching Italian Lit?

I think we should start giving our brightest young men a larger dose of mathematics and Asia. They will work the rest out on their own if we give them good fundamentals.

Incidentally, the idea that Calculus is an AP course is indicative of the challenges facing education in the US. This course, and all of the math up to it, should be required to graduate high school. AP should expect more, at least differential equations, and I myself would be more comfortable if AP required Advanced Calculus, (Real Analysis).

Some people think I expect too much. To them I would say look at the numbers. China has more HONOR students than the US has STUDENTS, even when we include the drop outs. Keep in mind that includes only their TOP students, their 'B' students are excluded from that count, and a 'B' student in China would be an honor student here. The luxury of educational tracking as we have known it is one that is too expensive for us going forward. Time to raise the bar. It is going to be increasingly difficult to address this issue through immigration. Education is the only way out. All hands on deck. We should start to do what it takes to get this done.
Unfortunately the College Board changed the information architecture scheme on their website a couple of years ago so the URLs from my class notes no longer resolve.

There is one study that shows there is a correlation between SAT score and college GPA, but only for students whose HS GPA is above a 4.0. In general though the test doesn't really have any validity.

Here is a link to the studies the College Board is promoting:

http://professionals.collegeboard.com/data-reports-research/...

EDIT: http://www.fairtest.org/facts/satvalidity.html
These, of course, are not problems with Ruby -- so fellow Rubyists, don't get bent out of shape over this. It's a list of his priorities, which don't happen to align with the current state of Ruby. It's not hard to come up with a different set of criteria that make Ruby look perfect and Python look unusable, and I'm sure other people here will do just that.

But interestingly, all three of his main arguments in favor of Python (more mature, more consistent, and more complete documentation) also sound like great reasons to use Common Lisp over Python.
I also recommend Catalyst/DBIx::Class. It's a deadly combination. Both are totally modular, so you end up creating a really flexible system when you build a large application. I recommend using Catalyst under FastCGI with nginx (using TCP to connect to your FastCGI processes.)
I don't personally use Ruby very much, if for no other reason than it seems to invoke my innate fear of Perl ;)

That being said, JRuby is a seriously reasonable choice for a production dynamic language. I use Rhino instead because I think JS 1.7 is a better language, but you can't go wrong with either one. One of the nice things about using a dynamic JVM language is that you can have the all of the really nice benefits that Java offers for infrequently changing infrastructure code (checked exceptions, mostly) without any of its drawbacks for prototyping or rapidly evolving web logic (no first class functions or object-literal syntax).

If you find yourself interested in Rhino but put off by the somewhat unapproachable state of the language in general then let me know, I have some code that really bridges the gap that I'm in the process of preparing to be open-sourced but I'd be happy to share it with anyone who is interested on an exploratory basis.

- b
Check out page 10: http://www.amazon.com/gp/reader/0815736398/ref=sib_dp_pt#rea...

Unfortunately I don't have my copy on me so I can't look up the footnote in the back. IIRC it was the SAT, but I'm not entirely positive.

If you want to see something really telling about standardized testing though, check out this Greg Palast article on how the NCLB discriminates against minorities:

http://www.phillyblog.com/philly/nation/13968-no-child-left-...
But Java isn't exactly any better.

My youngest sister is taking the AP CS exam next month, and I was helping her study a few weeks ago. The first question she asked me (she's taken a semester and a half of AP CS at this point) was: what's the difference between an Array and an ArrayList?

To explain this, I had to go into: primitives, objects, and references; auto-boxing and un-boxing; generics; memory allocation and garbage collection; the different APIs (one uses length, another uses size)...

About 80% of her textbook was stuff like this. Details of the Java language that have very little to do with learning Computer Science. Only about 20% of her textbook as devoted to "algorithms".
I've lived in Europe and Cell phones weren't that much cheaper. In fact, I spent much more on my cell phone bill. Granted I lived in germany, but their voice plans all really sucked, way worse than in the states. Most plans were like .25 cents to call a mobile line and .10 cents to call a landline. And in germany it costs 20 cents to call a mobile phone from a landline - that really sucks. I don't have any experience outside of germany, but it sure wasn't any better there. Just different - better in some ways and worse in other.
What's wrong with immigration? Don't many excellent Asian students want to move to the US?
I would say learning the ins and outs of a single language prepares you a lot better for general coding in the real world than learning algorithms does. In day to day work, I haven't ever coded up a linked list, but knowing whether Python passes dict's by reference or by copied value is pretty valuable. I had a fundamental understanding of that based on my previous knowledge of the same in Java.
Very good article, but it's incorrect in some areas.

"Companies raise money by selling new stock after the board of directors authorizes the sale to investors. Those new shares are created out of thin air by the company, and will dilute all of the current stockholders."

These shares are not created out of "thin air" as the article states. When a corporation is formed, it requests and is granted a certain number of shares by the state in which it is created. These are the authorized shares. At this point, the company may sell shares from their authorized pool of shares. The shares that are sold to raise money are called the issued shares.

This is the point of error. The shares are not created out of thin air, but are rather moved from the authorized shares to the issued shares pool.

Additionally, the company may decide to buyback some of their shares from the people who they sold the shares to. Shares that are repurchased are called treasury stock. The shares that are not repurchased are considered outstanding. Only the issued and outstanding shares have any voice in the company. Authorized and treasury shares can not vote.

To recap, here is a quick diagram:

Authorized

|-Issued

|--Outstanding

|--Treasury

Outstanding is highlighted because that is the only category that has an influence on voting and percentage of ownership. For most young companies, you won't have to worry about the other classes of stock, but for medium+ companies, it's a good thing to understand going into a negotiation for equity compensation.
College is worth two million dollars. The reason being is that we have two classes in America those who have graduated from college with at least a 4 year degree and those who haven't.

(With the exception of those who quit and create multi-million/billion dollar companies. With enough money everyone is equal.)
Last year I bought my first Macbook and I'm pretty happy with it. I don't think there is anything better out there in terms of quality. I find the price well worth the experience! Maybe the story is different for Macbook Pro??
The more important question is, for the prices they are paying for labor over at Mechanical Turk were the participants sufficiently literate in the English language.
That sounds awful. It's a good thing this class is gone!
Yes, but the issue is one of numbers. It would be challenging, in the extreme, to convince enough Indonesians to move to the US to close the numbers gap. In fact, the projections state that if EVERY Indonesian honor student moved here, and stayed, we would still be short. In short, how many techies can you convince to move to the US? Would that number be equal to the shortfall in students? And MOST importantly, do you bet your nation's future on the belief that all these things will happen?

I am a firm believer that the only sure way forward, is through education.
Everyone's an expert
While I agree that Ruby (in the form of MRI) is pretty limited in the kinds of production applications it's ready to support, I feel just as strongly that Python is an evolutionary dead end.

Personally I predict that JRuby (which addresses most of the issues listed in TFA) will become the mainline production Ruby. It runs adequately fast, and has JVM threading, meaning that ceteris paribus it is 'fast enough' for the largely IO-bound tasks that make up web-programming. And when you program in JRuby you find yourself leaning on the Java libraries for most of the heavy-duty stuff (say what you like about Java, I certainly do, but the libraries are abundant and abundantly production-worthy). Ultimately, when you've got lambda and reasonably low-impedance hash tables then you can make everything else, so there's a future for Ruby.

Python on the other hand is a lost cause. Objects are a valid and important ingredient in a balanced diet of programming abstractions, but 'object-oriented programming' is for idiots or assholes or worse. Objects as a first-class language feature are nice-but-optional, I've worked on large C systems written in an object oriented style (one was a simulation, another was a widget toolkit, both had 'object' as a meaningful native domain concept). First-class functions OTOH are not optional, without them you've designed a language for infants. If you are designing a modern high-level programming language and you choose to cripple lambda (either because you've made regrettable decisions about your syntax that prevents their expression, or because you want to put training-wheels on the language itself, or LOL both) then you're an asshole, full stop. Python's scoping is tragic, at least Larry and Brendan had the humility to admit they fucked up and add reasonable scoping. GVR isn't wrong, 30 years of hard-won experience with correct lexical scoping is. If you think Scheme is wrong then I've got news for you: you are. Funny, now that I think about it it's not even about right and wrong anymore, it's about 'Pythonicity', which basically means that not only is GVR never wrong, if you don't agree then you're some kind of barbaric programming-language outsider. God I can't wait for a good example of Python (and more importantly the frigid, self-righteous, under-endowed Python community, I'm looking at you Paul Prescodd) to come into direct competition (- lisp epsilon) in a measurable, documented way.

At least Ruby and Javascript know that (- lisp epsilon) is the place to be, and they're both in the process of trying to add enough curly-braces to make themselves palatable to Java-refugees and no more.

Just remember: Python's not wrong, you are.

http://www.python.org/doc/faq/general/#why-must-self-be-used...
Upmodded for the thoughtful and informative reply. I really need to take a look at Lua, there seems to be a lot of momentum building around it.
Of course. I'm curious: Do you want to quote the summary, or the evaluation?
"How well does the SAT I predict first-year college grades? The College Board and ETS conduct periodic studies of the SAT I. This usually involves examining the relationship between test scores and first-year college grades, generally expressed as the correlation coefficient (or r value). The College Board's Handbook for the SAT Program 2000-2001 claims the SAT-V and SAT-M have a correlation of .47 and .48, respectively, with freshman GPA (FGPA). This number is deceptive, however. To determine how much of the difference in first-year grades between students the SAT I really predicts, the correlation coefficient must be multiplied by itself. The result, called r squared, describes the difference (or variation) among college freshman grades. Thus, the predictive ability (or r squared) of the SAT I is just .22, meaning the test explains only 22% of the variation in freshman grades. With a correlation of .54, high school grades alone do a better job, explaining almost 30% of the variance in first-year college performance."

http://www.fairtest.org/facts/satvalidity.html
Prepared to get replaced soon by a guy in India or southeast asia.
I only think you should go deep after you learned concepts shallow and wide. It is important that students, very early on, be able to build interesting and meaningful things with their CS skills and experience the associated gratification.

For many people this is essential. My young cousin changed his mind about pursuing CS in college because his HS course work focused too much on tedious details. He was not able to perceive what high-level programs are capable of doing and the power programming as a medium of creative expression. Its a big shame.
The real question is, how does "academic performance" correlate with actual proficiency? In AP Computer Science, probably not much. I'm taking the test soon (trying to skip the course and go on to fun stuff). At least half the review book is about the Java standard class library. Much of the remainder is Java syntax and semantics and the brain-damaged system that Java programmers call "good object-oriented design". Oh, and another thing: chapter 5 of the review book has a section called "The Software Development Life Cycle". The first subsection of that is titled "The Waterfall Model". After explaining the waterfall model, it proceeds to completely neglect the existence of any other software development model.

One of the most noticeable differences between A and AB is that in AB, you go into algorithms and big O notation in much more depth, and you do some work with implementations of binary trees and such. When they cut out AB, they are leaving what is essentially an AP Introduction to Java.

It's sad that this passes off as computer science. I'm taking the test so I can hopefully skip the course and move on to fun stuff that has APCS as a prerequisite. Fun stuff like AI. AI, the class where Python and Ruby are the default languages, and you get to use other things if you want, like Lisp.

(I found this out when I still didn't know much about Lisp, saw someone using it, and laughed at the stupid, old language with all the parentheses. The guy tried to explain that Lisp is a good language, but I wasn't convinced. Later I independently stumbled on some of PG's essays, and I was convinced.)
RAD - framework for programming the Arduino physcial computing platform using Ruby
I bet the alternatives that were considered were:

class Parent
{
void a() {...}
void b() {...}
void c() {...}
void d() {...}
...
void zzz() {...}
}

class B
{
Parent m_a;
void a() {m_a.a()}
void b() {m_a.b()}
void c() {m_a.c()}
void d() { specialized logic }
...
void zzz() {m_a.zzz()}

}

vs.

class B : Parent
{
void d() { specialized logic }
}
Think you are smart? Try to guess more than 4 patterns a minute in this game and you are a genius.
At my dad's work (Rocketdyne-owned by Pratt&Whitney, used to be owned by Boeing, makes engines for space craft), they have several large rapid prototypers that are used to create prototypes for different designs to test, and they even make an air duct used in F/A 18s.

They're really fun, but what they can create is rather limited from my understanding. They can do very intricate designs (even objects within objects, like a triangle INSIDE of a complete sphere), but only out of certain plastics, and only one material at a time, so the usefulness is limited. You couldn't build an engine block with it, because it can't work with the metals.
Yes, but what if your launch doesn't wow folks?
Are people going to come back and give you a second try after you added those killer features?

It's already been four months, two more weeks can't hurt.
Scoping. I got bitten by a huge bug in ruby's scoping last night:

irb> [1,2,3].collect{|n| n+1}
=> [2, 3, 4]
irb> n
NameError: undefined local variable or method `n' for main:Object # Expected behavior - n's scope is restricted.
irb> n = 0
=> 0
irb> [1,2,3].collect{|n| n+1}
=> [2, 3, 4]
irb> n
=> 3 # BAD

I have ruby 1.8.4. Most recent version is 1.8.6. Gotta go see if it's a known bug or worse if it's supposed to work this way..

Edit: elided profanity.
I am not surprised. After all .net IS a very enterprise language, so youd expect to see it in every certification-cafe on every street-corner!
Unlikely. Really, is your job so (un)glamorous that you sit around coding the world's next great sorting algorithm?
I've not been in the paper myself, but many of my friends have, and the first thing they always point out is how badly the paper misquoted them.

I always expected the things I read in quotation marks to be quotations, and it was surprising to find out that's rarely the case. A journalist's idea of quotation is actually to take the gist of what you said, put it in new words, and then put it back in your mouth.
"Mr. Packer said the decision was made principally because of demographic considerations.

Only a tiny fraction of the members of underrepresented minority groups who take AP exams take the tests in one of those four affected subject areas, he said.

The College Board has made it a priority to reach such students, including those who are African- American and Hispanic."
I disagree. There are really two separate stories here:

1) Four AP courses are being discontinued

2) High schools are are redesigning their curriculums and dropping classes in which minorities are either doing poorly or have no interest in taking. (I know that just because there is no longer an AP test for these subjects doesn't mean that schools are obligated to stop teaching the material, but many or perhaps even most of them will. Esp. since high schools are ranked by Newsweek solely based on the number of AP tests taken divided by the number of students.)

In the long run, I think story #2 is vastly more important than story #1.
I've noticed a bias in favour of "What I learned first is better." It applies whether the topic of discussion is programming languages and operating systems or politics and religious values.

(Pre-emption: "bias", not "law".)

Psychologists have lots of fancy words for describing why this is.
Google Jumps Head First Into Web Services With Google App Engine
This is a huge announcement, although I am surprised that it is not designed to support anything other than Python. This hindrance might keep more people using AWS than they might realize.
Shorter glyphobet: Ruby's not Python.
So the issue is a race condition.
Your "bug" is lexical scoping?
Ask YC: Python vs. PHP
So far I have done all of my web programming in PHP. I've also recently learned Python and so far I find the syntax to be annoying (that might be because I'm just used to PHP). But I've heard a lot of buzz on these boards about using Python. Can anyone give me the quick laundry list of advantages/disadvantages for each?
Google App Engine Launches: Signup for free at 10pm PST
That's OK, the homeschoolers of today will be around in 10 years to start companies and employ the others... if anything, you would think that AP Latin would be easier for someone with a decent background in Spanish, as there is much similarity.