No discussion about hacking would be complete without mentioning programming, which is what a true hacker does best. There is also a Language Comparison describing my views and takes on many languages, and what is best and worst of today's languages and features.
Here are my favorites:
Table of Contents
LISP is the oldest computer language in existance today except FORTRAN, and is widely used and implemented. It is an extensible language (LISPers call it incremental) - and probably going to be one of my favorites, next to Forth and Smalltalk. There are a lot of resources and implementations out there. And now, with the Common Lisp Object System (CLOS), it even has some object-oriented concepts within it! Recommended!
Oberon is a successor to Pascal by Niklaus Wirth (who seems to come up with a new language every decade or so). It is strongly typed and so on, and seems to have a lot in common with its predecessors, Pascal and Modula. I can't say how good it might be, but it doesn't seem to be around in the commercial and freeware markets in any significant strength - and you may find it's not available for your machine. I even found that one implementation of Oberon requires a Modula compiler to operate!
COBOL, inspite of its reputation, should not be written off. The language is very widely used, has a long history, and continues to be upgraded every so many years, including the latest attempts at an ANSI Standard COBOL and even an ANSI Standard Object COBOL. I would probably never choose to write something in COBOL, but from a practical standpoint you can't go wrong learning COBOL.
Forth was created by Charles Moore, in about 1973, because he wanted to be more productive. Unlike almost any other language today, Forth was not a research project or a committee design; it was created by one man to fulfill his needs. In my opinion, Forth is my favorite language and one of the best around today. It's too bad that it is not recognized and used by more people.
C and C++ are here to stay, and are becoming one of the most widely used computer languages (along with COBOL and FORTRAN), if they aren't already. These languages are nice, but I favor Smalltalk over C++ and Forth over C. However, C is a nice language to use, and aside from its edit-compile-run cycle, does have a lot going for it.
Smalltalk, in my humble opinion, is the best and purest object-oriented language and system ever designed. Everything else tries to modify this pure form into something else - probably the best example of the worst case is C++. Smalltalk is one of my favorites, right up there with LISP and Forth - and like these languages, the actual language system is extensible. This language is a must!
I don't know much about Eiffel, but it sounds like a good candidate for a freeware object-oriented system. I haven't discovered how close it holds to the OO ideology, and haven't tried it. However, I aim to consider it closely; I recommend you do too.
PL/I is a unique language; I would describe it as a systems language that resolved standards problems and user desires by incorporating it all into the language. This language has literally everything and was a chosen language for systems design in many places; however, C is much more concise, much faster, and less cumbersome. To me, PL/I can be classified as an oddity: study it just because it's there, it'll be fun!
SNOBOL and Icon are text processing languages from the same authors; Icon is the modern successor to SNOBOL. I have never tried Icon, but SNOBOL was fun and quite powerful in its text processing capabilities. I'm not sure what improvements Icon brings, but it might be worth examining if you have text processing needs.
Pascal can be a very powerful language (as was evidenced by Borland's Turbo Pascal) but in most cases is limited to educational purposes. This is not really a problem or a mistake; Pascal was designed to teach programming. However, it has gone beyond that in many ways.
APL is mainly an oddity (like PL/I) but unlike PL/I, it has a strong following. It's main purpose (and design) is for mathematics - in fact, APL is merely an implementation of a mathematical symbolic algebra that someone created - the "language" existed on paper before it was ever conceived of as a computer language. It even looks like algebra.
BASIC, like COBOL, suffers from a poor reputation, but it is even less deserving of this reputation than COBOL is. The main complaints against BASIC all revolve around poor implementations of the language; many implementations (such as Waterloo BASIC) proved that a very powerful BASIC could be created and used.