It's a lot like Visual Basic, except: 1) Portable to MacOS and Linux 2) Easier to just jump in and write apps with 3) Produces apps with no DLL dependencies.
Give it a try, you might find it meets your needs.
Please, it takes kids YEARS to recover from the damage that learning any flavor of BASIC does! "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
-- Edsger W. Dijkstra, SIGPLAN Notices, Volume 17, Number 5
Things (specifically BASIC variants) have improved since Dijkstra wrote that, but an underlying fundamental
Have you tried RealBasic? It's not VB, it's closer to Java than any flavor of Basic from the past. In fact, I wouldn't mind at all if they changed the name... but try it before you knock it.
Yes, I have looked at RealBasic, at least briefly, and I agree it's not as bad as the language(s) that Dijkstra was complaining about (you'll note that I even said something along those lines). But if it's more like Java, then what's the point? Just teach 'em Java, and that way they'll have something that might actually be useful to them someday.
Frankly, I think Pascal or Python or Scheme or Modula or Eiffel or Smalltalk would be a much better choice for an introduction to programming, but I certainly don't see the point in switching to an obscure language that is vaguely derived from BASIC just because it still has the string "Basic" in its name, especially since you should be moving away from anything named "Basic" as rapidly as possible.
I'd probably recommend ADA before I recommended RealBasic, and I'm not a huge ADA fan. But it is (like RealBasic) a much better language than its reputation would suggest.
The point is that RealBasic has a nice mature evolved interface where a kid can drag a button to the window, write a bit of code, and BAM they have a working application. As far as I'm aware, you can't do that in any Java IDEs with near the same simplicity as in RB. I hope that other Slashdot posters consider the *entire* problem domain instead of only "which language syntax is better?"
Actually, NetBeans lets you drop controls on a form from a palette, right-click, choose 'events', and for any event, Netbeans will write a stub function and the event handler to run that stub function.
More importantly, students should probably not be taught programming by starting with GUIs at all. The inversion of control and event handling gets in the way of learning simple programming.
The point is that RealBasic has a nice mature evolved interface where a kid can drag a button to the window, write a bit of code, and BAM they have a working application.
Shouldn't the purpose of taking a programming class be to learn to program not drag and drop? Only once a person can program should they then use an IDE, be it language specific or general purpose.
Noooo! Why would anyone teach students using Pascal instead C/C++. Does anyone think the BEGIN/END is really more straightforward than {/}? As students, they are going to have to *learn* things when they program, and curly-braces are the least of it.
Is 'record' and clearer than 'struct'?
If you don't want the students to have to deal with memory management, then use a garbage collection library with your C compiler. If you want to CYA, tell them that they are using a GC library. If y
What is wrong with Pascal as a teaching language?
I am using a modern variant (Delphi) and that does not do GC by default (except via COM interfaces and for strings).
Pascal does require explicity memory management too.
If you teach them Pascal, and don't explain that Pascal does GC, then they will be hosed when they get to a C/C++ course and don't understand why they have to manage memory.
Pascal does not do GC.
And yes, most of Pascal is cleaer than C...
Pascal: myDates: array [1..10] of Date;
C: Date myDates[10];
What is the low bound and high bound of myDate in C and in Pascal?
How do you do an array from 99 to 104 in C? You cant... neither you can't do 2 or more dimensional arrays in C (you have to relly on arrays of arays and manually initialize them).
There is plenty stuff where Pascal is FAR clearer than C, its designed to be so, while C is designed to be a portable assembler.
I spit in the general direction of "conciseness", and it's kinsman "cleverness".
To quote Kernighan:
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
I used to be a clever programmer, but then I graduated and got a Real Job, and had to read the code written by both Clever and Grown-up programmers. Guess which code was easier to modify, debug and add functionality to. Guess which code had less bugs.
A good (but not huge!) dose of verbosity and simplicity would go a long way towards making more robust applications.
Another relevant quote, by Jeff Polk, co-creator of CVS:
There's no obfuscated Perl contest because it's pointless.
RealBasic (Score:3, Insightful)
It's a lot like Visual Basic, except:
1) Portable to MacOS and Linux
2) Easier to just jump in and write apps with
3) Produces apps with no DLL dependencies.
Give it a try, you might find it meets your needs.
Noooooo! (Score:5, Funny)
"It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
-- Edsger W. Dijkstra, SIGPLAN Notices, Volume 17, Number 5
Things (specifically BASIC variants) have improved since Dijkstra wrote that, but an underlying fundamental
Re:Noooooo! (Score:3, Informative)
Re:Noooooo! (Score:3, Interesting)
Frankly, I think Pascal or Python or Scheme or Modula or Eiffel or Smalltalk would be a much better choice for an introduction to programming, but I certainly don't see the point in switching to an obscure language that is vaguely derived from BASIC just because it still has the string "Basic" in its name, especially since you should be moving away from anything named "Basic" as rapidly as possible.
I'd probably recommend ADA before I recommended RealBasic, and I'm not a huge ADA fan. But it is (like RealBasic) a much better language than its reputation would suggest.
Re:Noooooo! (Score:2)
Re:Noooooo! (Score:2)
More importantly, students should probably not be taught programming by starting with GUIs at all. The inversion of control and event handling gets in the way of learning simple programming.
learning to program (Score:2)
The point is that RealBasic has a nice mature evolved interface where a kid can drag a button to the window, write a bit of code, and BAM they have a working application.
Shouldn't the purpose of taking a programming class be to learn to program not drag and drop? Only once a person can program should they then use an IDE, be it language specific or general purpose.
FalconRe:Noooooo! (Score:3, Interesting)
Noooo! Why would anyone teach students using Pascal instead C/C++. Does anyone think the BEGIN/END is really more straightforward than {/}? As students, they are going to have to *learn* things when they program, and curly-braces are the least of it.
Is 'record' and clearer than 'struct'?
If you don't want the students to have to deal with memory management, then use a garbage collection library with your C compiler. If you want to CYA, tell them that they are using a GC library. If y
Re:Noooooo! (Score:1)
Re:Noooooo! (Score:5, Informative)
If you teach them Pascal, and don't explain that Pascal does GC, then they will be hosed when they get to a C/C++ course and don't understand why they have to manage memory.
Pascal does not do GC.
And yes, most of Pascal is cleaer than C
Pascal:
myDates: array [1..10] of Date;
C:
Date myDates[10];
What is the low bound and high bound of myDate in C and in Pascal?
How do you do an array from 99 to 104 in C? You cant
There is plenty stuff where Pascal is FAR clearer than C, its designed to be so, while C is designed to be a portable assembler.
angel'o'sphere
Re:Noooooo! (Score:5, Insightful)
I spit in the general direction of "conciseness", and it's kinsman "cleverness".
To quote Kernighan:
I used to be a clever programmer, but then I graduated and got a Real Job, and had to read the code written by both Clever and Grown-up programmers. Guess which code was easier to modify, debug and add functionality to. Guess which code had less bugs.
A good (but not huge!) dose of verbosity and simplicity would go a long way towards making more robust applications.
Another relevant quote, by Jeff Polk, co-creator of CVS:
Re:Noooooo! (Score:1)
Re:Noooooo! (Score:2)
Just found on the internet over the years.
The Kernigan quote is pretty common; I think the Perl humor was in someone's signature.
Re:Noooooo! (Score:2)
There is an obfuscated perl contest. It is pointless, but they have one anyway.
Re:Noooooo! (Score:1)
Date myDates[9];
???
JJP
Re:Noooooo! (Score:2)
Re:Noooooo! (Score:2)
Re:Noooooo! (Score:2)