If you only wanted to learn one language

Which one would be the best. I would like to be able to do a variety of things. Everything from doing calculations to making little bitty men jump around on screen. In college I learned languages like COBOL, FORTRAN, and Pascal which I never used. I looked at Visual Basic, but it looks like you will be tied to Windows, which may or may not be a good thing. I’m guessing C is probably the most versatile.

It’s been a long time since I stuck my head into programming, but I get the impression (from friends who code a bit and general computer usage) that C++ or, to a lesser degree perhaps, Java might be the way to go. If it was down to just one, I’d probably go with C++. Or you could be a showoffy git and learn Assembly :laughing:

I’d suggest either C++ or Java. C would probably be easiest for you, however, as it is procedural – the object-oriented paradigm for C++ and Java is rather different from the languages you learned, whereas C is very similar to Pascal.

It really depends on what you want to do with it, though. If you want to write code which will directly control a machine, C/C++ is essential, whether you’re in the Microsoft or Linux/UNIX world. If you want to have fun on the web, Java is probably the better choice. If your application requires speed, C/C++. If you want to develop software quickly, and have a huge library of support objects, Java.

Assembler language is becoming inaccessible nowadays – I had to do some stuff in it a few years ago, and there were no books available, and little or no documentation for the available assemblers (by which I mean GAS and MASM). It was a real bitch figuring things out. Practically everyone uses C/C++ except for the very few people doing kernel programming or speed-demon stuff.

BTW, that was for 80x86 assembler (Intel), not something exotic. I know (or knew, really) 6502, 680x0, and 370 assembler, and could wade through Sparc pretty well.

But a true Vulcan would only program in Lisp. :stuck_out_tongue:

MaPo forgot one other determining factor - if you want the one app to be portable across OSs, Java is the way to go. C++ apps are easy enough to port, AFAIK, but they actually require effort. Java is flat-out cross-platform.

And I wouldn’t say ASM’s becoming entirely inaccessible - I know a fair few guys who can code in 6502 :stuck_out_tongue: Mind you, they use that mostly for writing compression/decompression routines and other such stuff for old console video games :laughing:

[quote=“Tetsuo”]And I wouldn’t say ASM’s becoming entirely inaccessible - I know a fair few guys who can code in 6502 :stuck_out_tongue: Mind you, they use that mostly for writing compression/decompression routines and other such stuff for old console video games :laughing:[/quote]I used to, and Z80 and 68000, entire 100,000 line projects, but I hardly use it anymore, unless you include pixel and vertex shaders, and a little bit of SIMD/MMX/SSE and other stuff you can’t do in high level languages. And it does help you know how a computer works and to write better code. Like knowing how an car works is useful when driving.
I suggest you get some books/look at websites about C/C++ and Win32 or Java. Java does seem to be getting more popular, even though I don’t know it :blush:

If you like a challenge, and you think real languages are too easy, you can try Intercal or Unlambda

Real Programmers Use Perl :laughing:

A friend of mine who is a great Perl programmer (and describes the language as “the duct tape that holds together the Internet”) neverthess suggests than Python might be better. It’s similar to Perl, but easier, and a big advantage is that it won’t let you create “spaghetti code” (that is, an unreadable morass of code that even the author can’t understand a week after he wrote it).

I’m not a great programmer myself, so I can’t say much about C++ (other than it has two pluses in it) or Java, but I’ve played with Python and can say that it’s pretty simple. If you’ve been working with other languages in the past, you should pick up Python in a week or two. You can get some more info at python.org, and there is friendly mailing list if you need some help.

regards,
Robert

Well that explains it. Bloody Perl programmers and their “it was hard to read, so it should bloody well be hard to read”. :unamused:

Good point – but apparently there are a lot of bugs in various platforms that make the goal of “write once, run anywhere” more wishful thinking than reality. :slight_smile:

Sure, but learning it today – I literally could not buy a book on 80x86 assembler back in the U.S. Barnes and Noble told me they couldn’t even order one for me. There were a few used copies available on Amazon, and that was about it. I had to borrow books from a coworker. 6502 is even further deceased:

Sorry, I got carried away there. :blush:

I’m sure there are resources available on the web, and one could probably make a fair go of learning GAS syntax by studying Linux kernel source code.

6502’s still relatively easy to learn - in terms of materials that is, and as far as assembly can be “easy” - but you have to know where to look. Most of the guys I know who know it learnt it in the past few years. But unless you’re hacking oldschool console games, it’s hardly a practical thing to learn.

How about cost? Apparently you can get the Java SDK from Sun for free. I’ve heard that there are free C compilers out there too. And I’m not talking about stealing anything, because I won’t do that. It looks like I will give Java a try.

Richard, if you use Linux, it’s all free. Compiler, OS, everything. UNIX/Linux is much easier to learn C/C++ under than Micro*****, too. Do a search on Forumosa for such keywords as Knoppix and Morphix – you can download a CD which will allow you to switch between Linux and whatever-you’re-running-right-now (assuming Intel-based hardware) at will. Knoppix has all the development basics; Morphix cut a few out.

The Java SDK is free from Sun, but it is rather clumsy to use by itself. You might want to look around for a development environment. There are quite a few which have free trials, free limited versions, and so on.

You’ll probably want to dig around on the web for some tutorials on object-oriented programming, BTW. It’s, uh, a little different from COBOL. :stuck_out_tongue:

God, mentioning assembly language programming really brings back memories. Particularly the Zilog Z80, which was the first I used, as well as the 80x86 (80186/80286/80386) series.

MaPoSquid,
What kind of manual are you looking for, a programming manual or the actual tech reference manual. You should still be able to find the reference manuals to the chips, which also contain the instruction set. However, that won

I think Delphi is a bit under-rated.
What do you guys think of C# and the new VB that is object oriented?

My vote goes to Java or Visual J#. It’s easy to find books and a fairly powerful language and becoming more and more popular. The cross platform part has actually worked fairly well in my experience.

Java is very similar to C/C++, except that it’s easier to program. No messy malloc stuff to deal with. The downside is that you can’t do weird stuff with the memory.

(Tears dribbling down smiley’s cheeks) Yeah, calculating instruction timings for the 6502, so that I could program a sound routine . . . ah, the good old days. :wink:

[quote=“electronisk”]MaPoSquid,
What kind of manual are you looking for, a programming manual or the actual tech reference manual. You should still be able to find the reference manuals to the chips, which also contain the instruction set. [/quote]
None any more; I got that task finished. Twice, actually. It might still be fun to pick up 80x86, but it’s not on my immediate list.

I haven’t the foggiest clue of what you are referring to. BTW, would you like a baggie full of assorted resistors that I put in storage?

[quote=“electronisk”]I

. . . and the upside is that you can’t do weird stuff with the memory. :smiley:

Probably a good benefit for Richardm, actually, since he’ll just be picking up OO, and will have to get used to arrays starting from 0 instead of 1.

[quote=“MaPoSquid”]. . . and the upside is that you can’t do weird stuff with the memory. :smiley:

Probably a good benefit for Richardm, actually, since he’ll just be picking up OO, and will have to get used to arrays starting from 0 instead of 1.[/quote]

Definitely so. In college, learned data structures in Java and then machine structures in C/C++. It would’ve been much more confusing to learn the same data structures in C/C++.

Thanks a lot for your help guys. I will check things out and then make a decision. I’m trying to remember some of the programming lessons I learned in college, like don’t drop your Hollerith cards cause you’ll never get them back in order again.

Ooh, punch cards. I used to get those to draw on when I was a kiddie - except once in a while a batch of 'em would have these annoying holes :slight_smile:

We are the Computer Dinosaurs. I look forward to complaining that I remember when screens were monochromatic, disks were actually floppy and 64K was an awesome amount of memory. Wait, I’m doing it already…