David Brin proves blogs work

If you’re not convinced yet check this out.

So a week ago I blogged about David Brin’s “Why Johnny Can’t Code” essay at Salon.com:

Hello? David Brin? Are you out there?

Click and check it out my blog entry, mainly because David Brin is out there, and he found me, and he answered on my blog. How cool is that?

Hi David! Great to hear from you! 🙂

And no, I didn’t ask anyone who knew him to ask him to stop by. David, can you tell us about how you found the blog post about you, please? That’s a metaquestion about the way blogs and the web work. Better than I thought, obviously – and I’m writing one!

Apart from that interesting metaquestion, this post is essentially a reply to your comment, David, done as a new post so that I can use a good code example and a screenshot – which I can’t do in a comment. So here is your comment on my previous post:

Har! Cool writing. Nice blog.

As for my essay on Salon, “Why Johnny Can’t Code”… alas, It was NOT about BASIC per se. Only a small minority seemed at all interested in even looking at my core idea, which was how to create a nice, comfortable starting point for millions of kids, so they could use their computers to do a little COMPUTING for mild classroom assignments, and so get a taste of this way of looking at the world.

Indeed, the tiniest fraction seemed to grasp how valuable it once was (but no longer) for ALL kids to be able to easily type in little illustrative examples at the end of each math or physics chapters. Everyone seemed to think it could still be done. But it cannot. I repeat that. It cannot AND it simply, simply cannot be done.

It does no good to preach what languages kids SHOULD have. Most don’t. Period.

People who praise their specific beloved language, without noticing that millions of kids have no easy, quick, turnkey pedagogical access to ANY common computer language, are missing the whole point.

Thrive!

With cordial regards,

David Brin
http://www.davidbrin.com

And here’s my answer:

David, we are in violent agreement on all points that you raise, and as proof I submit that myself and my coworkers (Jonah Stagner and Walt Morrison) have spent the last 18 months of our lives designing, building and offering to the world educational freeware that (yes, for the first time in decades) allows beginners to learn a simple way to do real programming. Last year’s version was literally called Kid’s Programming Language – and this year’s version is Phrogram (it’s not just kids any more).

I am particularly glad that you clarified that your point is not about BASIC per se, because we believe that we have built what you and your son are looking for – and that what we have built is not only more modern, it is also (important seperate point) far superior to the variants of BASIC that you and I and millions of others played with as beginners 20 or 30 years ago. Can I also mention that we have versions of Pong available both in KPL and in Phrogram – written in 160 simple english-language instructions?

We believe that the only thing we are missing is indeed your most important point: making Phrogram and KPL common languages so that they are available to millions of beginners, including but not limited to schoolkids. We are working on that, but as you’d guess, this is a tough thing for three independent-minded and un-funded inventors to do on their own. Grassroots word-of-mouth is all we have ever had for marketing and PR, though despite that we think if you take a look at the KPL and Phrogram sites you will see that this is already quite a success story. Hundreds of thousands of downloads and 17 international language translations provided by volunteers around the world already prove that point.

We are a success story precisely because what you are asking for is important and badly needed, and because many around the world agree with you, and because when they found KPL and Phrogram they found them to fill that need.

Allow me to answer a specific request in your comment with an actual working example from Phrogram. First, your request:

how valuable it once was (but no longer) for ALL kids to be able to easily type in little illustrative examples at the end of each math or physics chapters

Here’s a screenshot of an example I put together in just a few minutes, which plots the cosine function, but also can plot sine, tangent, arctangent and a parabola, with modification of a line of code:

Phrogram Plot Cosine example

And here is the complete Phrogram code. Please pardon the lack of formatting in the code here – WordPress is not made for code formatting. In Phrogram, this code is all nicely indented to match its structure, and it’s color coded, with comments in green, keywords in blue, etc… The ZIP file of this example, as well as properly formatted code, is available here in my forum post on the Phrogram site.

Program PlotCosineFunction
Method Main()
Define X As Decimal = 300.0
Define Y As Decimal = 0.0
Define myPen As Pen

// Draw the axes
SetAlgebraCoordinates()
myPen.LineWidth = 3
myPen.Color = Colors.Black
myPen.MoveTo(
300, 0)
myPen.DrawTo(300, 0)
myPen.MoveTo(0,
300)
myPen.DrawTo(0, 300)

myPen.Color = Blue
Define LastX As Decimal
Define LastY As Decimal

// draw the function
While X < 300

LastX = X
LastY = Y

// Divide and multiply by 40 in order to exagerate the
// function so it’s pattern is visible using pixel
// coordinates. You can see different functions plotted
// by commenting one out and uncommenting another
Y = Cos(X
/ 40) * 40 // Cosine function
//Y = Sin(X / 40) * 40 // Sine function
//Y = Tan(X / 40) * 40 // Tangent function
//Y = ArcTan(X / 40) * 40 // ArcTangent function
//Y = ((X/40) * (X/40)) * 40 // X squared is a parabola

X = X + 3

// Don’t draw the line when calculating the very first point
If LastX > 300 Then
myPen.DrawTo( X, Y )
Else
myPen.MoveTo( X, Y )
End If

End While
End Method
End Program

This could of course be a fancier example, but in the interests of blogging an example I wanted to keep it as simple as possible. What do you think? I look forward to hearing from you again!

One thought on “David Brin proves blogs work

  1. […] by Jon Schwartz, who blogged about this example, noting that by changing just one line of code, it could be modified to plot sine, tangent, […]