Author Topic: The death of BASIC  (Read 9698 times)

0 Members and 1 Guest are viewing this topic.

Offline Herra Tohtori

  • The Academic
  • 211
  • Bad command or file name
Oo---kay. :wtf:

Let's not make this a god damn calculator coding platform war thread... I'll just say this and end this there:

I've only ever used the TI-86, and it has been enough for everything I've gotten a chance to do with it. I think TI-89 wouldnt have been allowed in out matriculation examinations since - as far as I know - it can perform symbolic integrations and stuff like that.

Also I've never tried a TI-83, but if it really is faster and has more functions than 86, well, thats very... interesting, to say the least. :confused: :hopping: We got our calculators as a group offer, and I don't think 83's were offered so... what gives, I've got a calculator that does what I want it to do. As I said, if I need something fancy I feed the equations to Mathematica and that's it.

AMD 64 3200+ gives, unsurprizingly, better counting power than whatever is embedded in TI-86.



Anyway, back on topic now, m'kay? :D
There are three things that last forever: Abort, Retry, Fail - and the greatest of these is Fail.

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
The 89 is by far the best one. It has the same hardware and capabilities as the 92+ but looks like an 83, and it's allowed in most college classes and standarized tests such the AP ones. On the calculus one, it's practically an answer key and does most of the problems for you. I still have my 92+ somewhere (haven't used it in years though :p), which is an 89 with a larger screen and a full keyboard, but it's not allowed on many tests that the 89 works fine for.

I did some stuff with VB at one point in high school, although I don't remember any of it now. The only programs I know how to write are console-based math computation apps. I generally use Mathematica for those but have done stuff with C++, Matlab and Fortran as well.

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
i did alot of vb, it was very easy to program simple games with. i made an asteroid clone and a multiplayer top down shooter. both were atrocious examples of what not to do when programming.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline ZylonBane

  • The Infamous
  • 29
the only good thing about basic was "nibbles"  :p
A nybble is a unit of computer storage. It doesn't have a damn thing to do with BASIC.

IMHO, the problem with learning programming these days is how stupidly complex modern development environments have become. Someone who's learning to program needs to be able to sit down and type PRINT "HELLO!" and have it actually happen without having to import libraries, declare prototypes, link and compile, and all that other distracting cruft.
ZylonBane's opinions do not represent those of the management.

 

Offline kode

  • The Swedish Chef
  • 28
  • The Swede
    • http://theswe.de
turncoat is referring to one of the games that were included with qbasic in a few of the dos versions. it's a snake clone.

also, pylonbane, are you talking about integrated development environments or programming languages? most languages I program in doesn't need an IDE, and can without much trouble be programmed for in a nice text editor like emacs or vi and then compiled (or in the case of ruby, run) independentally. even java, which however is a bit nicer to program in a _good_ IDE than without one.
Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner confessedly unworthy.
- Ambrose Bierce
<Redfang> You're almost like Stryke 9 or an0n
"Facts do not cease to exist because they are ignored."
- Aldous Huxley
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

 
He's referring to the API that lies between the code you write and the system. Regardless of IDE, you still need to import certain basic libraries that provide stuff like I/O and advanced maths.

That said, IDEs are becoming too complex as well. Or rather, they do too much for the programmer. Someone who's learned Java with Eclipse and never had to work on a group project (and even some who have) might have no clue how to compile and run a program outside of that environment. Also, the nature of Autocomplete coerces programmers into writing a program bottom-up, since the IDE can only guess the names of functions already implemented/declared.
IDEs are very useful tools, but everyone should start off with a text editor, a command-line compiler and some version of 'make' before they move onto the time-savers.

Case in point: half of my CompSci group were using Eclipse in 2nd year. After two weeks of committing bad Java code to the repository, they finally asked me how to compile it.
Me: Type 'make'.
Them: We're using Windows.
Me: Yes. Hence the file 'make.bat' in the project dir, alongside the makefile. Just type 'make'.
Them: Why can't you just use Eclipse, like us?
Me: Because I'm buildmaster and it's my job to make sure this works when submitted, at which time it will be tested by someone who does not have Eclipse. And besides, I'm using a basic text editor with syntax highlighting only and I've already done ten times more work than the rest of you put together.

Second-year Computer Science students?  ::) And people have the damn nerve to complain that the course is too hard...

But I digress.
'And anyway, I agree - no sig images means more post, less pictures. It's annoying to sit through 40 different sigs telling about how cool, deadly, or assassin like a person is.' --Unknown Target

"You know what they say about the simplest solution."
"Bill Gates avoids it at every possible opportunity?"
-- Nuke and Colonol Drekker

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
i never could understand compilers. they used to drive me nuts. the quake c i was using, while not a real language, had a nice compiler. it was simple and to the point, and i understood how to use it. even trying to compile freespace under linux was easyer, i had a hard time getting all the required packages. but i did thanks to taylors help. anyway im no ****ing programmer, so my expieriences with it are rather crappy. i have a hard enough time writing script.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 
After using pascal on a unix system... I'd take an IDE anyday  :ick: :no:
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 
Pascal? SPEAK NOT THE NAME OF THE DAMNED LANGUAGE.
'And anyway, I agree - no sig images means more post, less pictures. It's annoying to sit through 40 different sigs telling about how cool, deadly, or assassin like a person is.' --Unknown Target

"You know what they say about the simplest solution."
"Bill Gates avoids it at every possible opportunity?"
-- Nuke and Colonol Drekker

 

Offline ZylonBane

  • The Infamous
  • 29
He's referring to the API that lies between the code you write and the system.
I'm referring to all tangential elements-- the IDE, the compiler, class libraries... everything.

IMHO, the absolute best environment for initial baby-step programmers is an interpretive environment. One where you have nothing more than a window that you can type things into and it immediately runs them and prints the results into the same window. And heck, a lot of times that's all I need too.
ZylonBane's opinions do not represent those of the management.

 

Offline kode

  • The Swedish Chef
  • 28
  • The Swede
    • http://theswe.de
Pray, v. To ask that the laws of the universe be annulled in behalf of a single petitioner confessedly unworthy.
- Ambrose Bierce
<Redfang> You're almost like Stryke 9 or an0n
"Facts do not cease to exist because they are ignored."
- Aldous Huxley
WAR IS PEACE
FREEDOM IS SLAVERY
IGNORANCE IS STRENGTH

 
Hey Delphi was quite a good language.  :)

Perl on the other hand... PERL CAN DIE
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 

Offline Polpolion

  • The sizzle, it thinks!
  • 211
This is a programming language thread, so What is the difference between Java and C/C++? My sister said Java is slow, my brother said Java is crap, and my dad says Java deletes memory caches or something... Also, someone said that Java and c/c++ were the same thing. Even I know thats not true. I just don't know why.

 

Offline Goober5000

  • HLP Loremaster
  • 214
    • Goober5000 Productions
C programmers like to say that goto is evil

GOTO is not evil.  It's used all the time in assembler, and it can be quite useful in modern languages too.  For example, in many languages (including C and C++), it's the most efficient way to break out of multiple nested loops.

IMHO, the problem with learning programming these days is how stupidly complex modern development environments have become. Someone who's learning to program needs to be able to sit down and type PRINT "HELLO!" and have it actually happen without having to import libraries, declare prototypes, link and compile, and all that other distracting cruft.

QUOTED.  FOR.  TRUTH.

Which environment would you rather learn to program in?  This...

Code: [Select]
PRINT "HELLO!"
HELLO!
Ok

Or this?...
Code: [Select]
#include <iostream.h>

int main(int argc, char *argv[])
{
    cout << "HELLO!" << endl;

    return 0;
}

[...after compiling and running...]

HELLO!
Press any key to continue

 

Offline Flipside

  • əp!sd!l£
  • 212
Agree 100% with Zylon and Goober here, I started on Basic, and ended up moving onto Z80 machine code.

The only downside of 'old' basic was that it could teach bad programming habits, but the trade off was instant access to the computer. Interpreted languages will always be slower than compiled ones, but for simply opening a window on the possibilities, BASIC, or an equivalent is essential.

Quote
For example, in many languages (including C and C++), it's the most efficient way to break out of multiple nested loops.
.

Now, back in my day that would be considered a very naughty thing to do :p Mainly because you would leave a load of trash Return pointers on the stack which could seriously Fubar things later on in the program ;) The way I was taught, you used an 'escape pod' variable, which would be flagged if you need to leave the loop early, and included that in the exit conditions for the loop.
« Last Edit: September 15, 2006, 07:59:22 pm by Flipside »

 

Offline Turey

  • Installer dude
  • 211
  • The diminutive form of Turambar.
    • FreeSpace Open Installer Homepage
I started on basic, then jumped to C and then from C to Java.

IMHO, IDE's are for programmers who already know what they're doing. Autocomplete and things are fine, if you've done it by hand before. Otherwise, stick to Notepad2 and the command line.

I've had several occasions where one of the ppl i was helping learn java would show me code and ask why it didn't work. I told them that they used a completely wrong method call for what they were doing. I mean dead wrong. Input types, output type, usage, EVERYTHING. They then tell me that the computer wrote it for them, and i realize that the first 3-4 characters are the same as the correct method call...  :mad:
Creator of the FreeSpace Open Installer.
"Calm. The ****. Down." -Taristin
why would an SCP error be considered as news? :wtf: *smacks Cobra*It's a feature.

 
The way I was taught, you used an 'escape pod' variable, which would be flagged if you need to leave the loop early, and included that in the exit conditions for the loop.

Course using an escape flag introduces one more variable that can go wrong. Theres no easy way  :blah:
That's cool and ....disturbing at the same time o_o  - Vasudan Admiral

"Don't play games with me. You just killed someone I like, that is not a safe place to stand. I'm the Doctor. And you're in the biggest library in the universe. Look me up."

"Quick everyone out of the universe now!"

 
Return pointers can only get trashed by a GOTO if you're using exceptions or if you make a jump between function scopes. Just breaking out of a few loops isn't going to screw anything up because the compiler will notice the GOTO and suppress any optimisation that might cause it to break.
Static code analysis is sufficient for averting disaster.
The correct way to break out of nested loops is either a boolean flag or an exception, though. GOTO is deprecated in pretty much every language above assembly, although any language I design will certainly include it for the WTF factor.
Actually, C# does have a valid use for GOTO. It's used to jump to other CASE labels in a SWITCH block.

As for Perl, I rather like it. It's certainly not pretty, but it was created to do a range of jobs with minimal typing. That's why there's at least a dozen ways to do anything in Perl. You can pick the way that's best for your overall goal.
The problem with Perl is that people think that, because it looks incomprehensible, it should really be incomprehensible. Following proper coding practices allows for perfectly readable code but, as with so many terse languages, it's only readable if you know the language. And don't tell me that C# or BASIC are far more readable; to the layman they're just as confusing, and besides, I've seen some horrendous messes written in either language.

In short, Perl gets a bad rep because people are willing to judge it before they know it. They're scared off by the symbols, just as people get scared of LISP's brackets. All that weird syntax makes perfect sense once you're used to it.
Sure, Perl has a large number of WTFs in it, but again, every language does. Except possibly LISP. All the gotchas are in the API in LISP.
« Last Edit: September 16, 2006, 12:54:52 am by Descenterace »
'And anyway, I agree - no sig images means more post, less pictures. It's annoying to sit through 40 different sigs telling about how cool, deadly, or assassin like a person is.' --Unknown Target

"You know what they say about the simplest solution."
"Bill Gates avoids it at every possible opportunity?"
-- Nuke and Colonol Drekker

 

Offline Flipside

  • əp!sd!l£
  • 212
Oh, I'm sure that these days it's not a problem, else people wouldn't do it, I'm talking about programming in Z80 over a decade ago here. where, if you screwed up the stack, you locked up the computer solid, so you constantly had to POP and PUSH stuff around. I suspect that these days whatever has replaced the stack is far more complex than a single Last In First Out register that the old 8-Bit systems used. :)

 

Offline Goober5000

  • HLP Loremaster
  • 214
    • Goober5000 Productions
The correct way to break out of nested loops is either a boolean flag or an exception, though.

Nope.  The "correct" way is to do
Code: [Select]
break [loop-label]with the label of the loop you want to break out of.  This is how Java does it.  Without the enhanced break operator, though, GOTO is the next best bet.  "Escape pod" variables clutter up the code and invite mistakes, and exceptions are entirely the wrong approach*.

*Unless, of course, you're doing something that actually does throw an exception, as opposed to generating one yourself.  I'm talking about the general case.

Oh, I'm sure that these days it's not a problem, else people wouldn't do it, I'm talking about programming in Z80 over a decade ago here. where, if you screwed up the stack, you locked up the computer solid, so you constantly had to POP and PUSH stuff around. I suspect that these days whatever has replaced the stack is far more complex than a single Last In First Out register that the old 8-Bit systems used. :)

You might be confusing GOTO with GOSUB.  A loop is itself just a bunch of GOTO and IF statements, and adding another GOTO shouldn't change anything.  A GOSUB on the other hand calls a subroutine and involves pushing the return address onto the stack.  Branching out of a subroutine is definitely a recipe for trouble.