• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

[Semi-OT] What programming language should I learn?

One of the sad things about the computer busniess in the last decade is removing a simple programming language that used to be provided, like qbasic or its predecessors. :(

On languages in general, I think the strangest one I have encountered was - are you ready - Visual APL :confused:
 
I agree with Aramis. Python is probably the single most generally useful language to learn right now.
 
I say learn 'em all. That's what I've done. Start with a survey of existing software packages, choose the ones that are closest to your vision, and start re-coding!

That way you can focus on learning by reverse-engineering, rather than having to read an entire programming manual before you can use effective conditionals, variables, concatenation, etc.

I recommend C, unix shell scripting, perl, awk, sed, regular expressions, php and cgi. With them, you can take over a small multiverse and still have cycles left over for Tetris.

But hey, that's my Computer-4 and Jack-of-all-Trades-8 talking.
 
My son just bought DarkBasic for $20. I have only briefly looked at it.

Nice points: has what seems to be fairly complete commands for 2D and 3D graphics, plus sound and AVI.

No licensing restrictions on compiled executables.

Bad points: has only the traditional Basic data structures - integers, floats and strings.

Data storage is old-fashioned text files - no linkage for any sort of databasing.

There is a "professional" version, which is not what my son bought, so maybe those are included there.

Will post more when I get a chance to look it over in detail.
 
I don't belive this! Nobody has yet to mention Lisp! It may not be the most talked about language, but it will teach you programming like no other and give you a very good ground for proper thinking in programming.

...and it looks wonderful! :D
 
Originally posted by Cymew:
I don't belive this! Nobody has yet to mention Lisp! It may not be the most talked about language, but it will teach you programming like no other and give you a very good ground for proper thinking in programming.

...and it looks wonderful! :D
Ugh!

LISP is cool. No doubt about it.

I'm sticking with my Python recommendation. It will allow functional programming similar to LISP without the pain of nested parentheses. At the same time, code will more generally resemble structured languages, implying an easier learning curve. And you'll be learning OO without knowing it.

I call that three wins, no losses.

And it's free. And it has a wide fan-based support base. So five wins, no losses.
 
Pyhton is no bad choice, not at all. I think it just looks odd, but that's me.


BTW, Lisp don't have to be about functional programming. Scheme *almost* has to, but Lisp is much more generic than that. You can do functional, procedural, OO and others. It's not like Scheme where the standard forces you to implement tail-recursive optimizations.

Lisp had some of the first, and still most complete OO models by the way. Flavors and CLOS are still capable of a lot of magic never implemented elsewhere, as far as I know. I don't understand half of it...

Anyway. Lisp is cool, and it makes you think in a way no other language does.

Of course, mickazoid is correct. Learn them all! It's just syntax, anyway. :D
 
Originally posted by Berg:
</font><blockquote>quote:</font><hr />Originally posted by mickazoid:
But hey, that's my Computer-4 and Jack-of-all-Trades-8 talking.
He's on my ship ;) </font>[/QUOTE]Hehe - just bear in mind that (1) I'm a lousy shot with a rifle or pistol and (2) I'm female.

And no, that's NOT a redundant sentence.
 
The devil is more fun (one has to train the Succubi after all) so if you want to go C++, you might just as well learn JAVA.

JAVA - How to keep your PC from lazzily waiting for you :=)
 
JAVA is definitely becoming more common in use... as is Python.

The overall move seems to be towards multi-platform releases by the amateur/free community, and JAVA and Python both make this as easy as possible.
 
Ok a bit late to add to this conversation, but I'm a professional software developer and have a lot of experience with various languages, and I often get asked this stuff by folks on my online game, so where is the advice I have to offer.

Java is free, well supported, and cross platform. Making graphical application swith Java is extremely easy. I highly recommend it for general purpose computing. All your users need is a Java runtime installation, which is fairly ubiquitous, and an easy free download if they lack one.

If you want to make something that is very performance sensitive, such as a high end 3D game or processing-intensive application, C or C++ is the route to go (C++ is a superset of C; any well written C program is a valid C++ program, just not utilizing C++-specific features). However, to do anything beyond basic text I/O user interactivity, you're going to have to adopt platform specific APIs to some extent. You'll be tied to your platform if you don't have access to the other OSes you want it to run on, unlike Java, where you can be reasonably sure it will run. Building binaries for multiple platforms is not easy, either.

Python, Perl, and Ruby all tend to be problem-domain specific and are excellent if you need a solution for something they are built for, but they are not good as general-purpose languages like Java, and are not nearly as well supported as Java. It requires much more work on the end-users part to use.

Any other languages are not worth learning except for academic or task-specific purposes.
 
Hey, where's the FORTRAN love? ;)

Though seriously, FORTRAN may be crusty but it still works and it's not all that incomprehensible at all. It's nice and straightforward, there's none of this faffing around with memory allocation and objects and all that malarkey, you just get on with writing the program and don't worry about the housekeeping. Sure, it's old as the hills but it gets the job done if all you want to do is to numbercrunch (I'm currently writing a star/worldgen program in it and so far I've not hit any major programming barriers. Once you figure out how to generate random numbers it all comes together quite well)
.

If you're after a more modern alternative though, Java is apparently nice. I can't get my head around the OOP stuff though, I seem to have some kind of mental block that prevents me from thinking about programs that way.

At the end of the day, take a look around and go with what you're most comfortable with though.
 
I've worked with Fortran; I can't recommend it. (Of course, that was 25 years ago... punch cards and mainframes!)

OOP is the way of the future; I was doing it in basic before it was labeled as such. It's just the use of subroutines with passed variables in creative ways. Sorting one's code out in to reusable chunks.

Most modern basics support both through-coding and OOP coding. Pascal, Python, JAVA, C/C++/ObjC, JavaScript/ECMAScript all can be used for both through-coded and OOP coded.
 
Originally posted by Aramis:
[QB] I've worked with Fortran; I can't recommend it. (Of course, that was 25 years ago... punch cards and mainframes!)
It's moved on a tad since then
, not a punch card in sight now. F90 is actually quite nifty, considerably better than F77.

I just have inertia when it comes to Fortran, it's much easier for me to write a program in that now than to wait around for months to do it while I learn a new language. It's quite probably entirely irrational ;) .
 
Back
Top