Tim LS
Posts: 37
Nickname: parchandri
Registered: Jul, 2005
|
|
Re: Heron Needs a Killer App
|
Posted: Aug 22, 2005 11:07 PM
|
|
Why would "teaching programming" be a killer app?
Firstly, I don't think teaching programming IS a killer app. If all your language is good for is teaching, it will never get used outside the university, and students won't be deeply interested in it because it won't get them a job.
Secondly, it's probably easier to teach a bad programming language.
You're really hoping to get in on the ground floor right? Getting into the hearts and mind of a new generation of programmers.
You might be dreaming of being Pascal. People taught pascal because they think it is simple to understand. And it is, because it doesn't do much. And in fact you can understand the design and implementation of the language too. But these are much less important than they were 10 years ago. Having the source for a language implementation is useless for true beginners, they won't be able to understand it without some pertinent theory in algorithms, etc.
You might be dreaming of being Java. People taught Java because it was massively hyped, and somewhat useful, so it was adopted by companies. I spent far too much time 'learning Java' looking at API docs, trying to find the right function to convert a class X into a class Z, and not understanding why the right one worked.
The programming course for junior high school kids run at my university, however, was all Python. And I think that was a much better choice than Pascal or Java.
Firstly, (agreeing with Todd Blanchard) because it's normally interpreted, and comes with a source level debugger. (Which is a great thing for understanding the bug in your program. But why doesn't the debugger do step backwards? That would make it much more useful :) )
Secondly, because it has good libraries, so that you don't have to struggle through at a very low level, as I did with Pascal.
Thirdly, because the language isn't needlessly complex to suit the compiler - they don't have to struggle with excessive formatting characters. &*->{};
Fourthly, because the language enforces some code style.
Fifthly, because you can quite easily go into GUIs with it, using Glade. When I started programming I could write 'programs': things to print "hello world". But I had no clue how to make something which looked like Notepad, or even a blank window. That should have been easy too! That would have let me impress my friends.
Sixthly, because you can use it without OO. And then you can add in the objects later. You can use it without exception handling. And then teach exceptions later. You can teach functions as first-class objects later. Just about everything is initially optional - but still there when you want to talk about it next semester.
If you're still hoping to get into the hearts and mind of a new generation of programmers... solve their real problems. Don't think you can just give them something academically interesting. Don't they want to write games? In a language powerful enough to build companies? Get them a real job? Solve their research problems?
And my request: write a language that people can teach themselves. I think a lot of really good programmers started that way. And a lot of people don't really understand the lecturer because he's got a funny accent. :)
|
|