Ada Ada is a programming language developed by the U.S. Department of Defense in the mid-1970s. The purpose of Ada was to create a standardized language that would be robust, dependable, and could be used efficiently by programmers to develop reliable programs that were easy to read and maintain. At the time, I was a computer science graduate student and I remember that four different proposals were circulated in the computer science community. Eventually one of these proposals was adopted and became Ada. In the last two decades, Ada has been updated into a modern programming language and is still used widely. Web:
Usenet:
C++ and C The C language is old, dating back to the early development of Unix. C++ is an object-oriented language based on C, but with significant differences. Both C and C++ are difficult to learn, and to program well in them takes a great deal of talent and experience. However, they are powerful tools, widely used throughout the world. Web:
Usenet:
IRC:
Cathedral and the Bazaar, The "The Cathedral and the Bazaar" is the most widely cited essay that discusses the philosophical underpinnings of the Open Source Movement ("the evolution of software in the presence of a large and active community of users and co-developers"). The original version of this paper was written in 1997 by Eric Raymond, an accomplished programmer, who has modified the essay somewhat over the years. According to the essay, Raymond used to believe that the most complex, important programs, such as operating systems and very large tools, "needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta [test version] to be released before its time." What changed his mind? Linux. The original version of Linux (an operating system) was initiated and managed by Linus Torvalds, a hacker who wanted to build his own version of Unix. Torvalds learned how to harness the power of programmers around the world, developing a style of "release early and often, delegate everything you can, be open to the point of promiscuity". To Raymond, Torvalds and his followers eschewed the venerable cathedral for "a great babbling bazaar". Raymond elaborates on this type of software development by discussing the evolution of a project he himself guided using the same principles. The project was the creation of fetchmail, an open-source email program. Within the essay, Raymond summarizes what he learned in the form of 19 short insights. (My favorite is #4: "If you have the right attitude, interesting problems will find you.") If you are a programmer, you will find this essay stimulating, but there are problems. Raymond has excellent ideas but, like many great programmers, he's not a great writer. The text wanders like a blind man in a bazaar (if you can forgive the metaphor), and the writing could do with a thorough editing job, sentence by sentence. (I wonder what would have happened if Raymond had allowed other people to change his prose in the same way he let them change his programming.) Moreover, the examples are difficult to appreciate because, like most programmers or engineers, Raymond has difficulty putting himself in the place of an ignorant reader. Technical details age quickly, and what might have been a great example in 1997 has long outlived its power to illuminate. Still, the paper is a classic and -- because it is a classic -- it will be studied and cited for many years to come. As recursive as that might sound, the essay is worth reading at least once. Web:
Demoscene A "demo" is a complex combination of programming, graphics and music, put together to create a multimedia presentation. The demoscene refers to activities of the people, all over the world, who work to create demos. Every now and then, members of the scene gather at a demoparty (such as The Party) in order to show their work and compete. If you are a programmer with imagination, and you like to work with other programmers, you owe it to yourself to find out about demos. If you are not a programmer, download some of the demos and take a look, just for fun. I promise you will be impressed. Web:
Usenet:
IRC:
DOS Programming Talk and General Discussion DOS may be well along the way to a well-deserved final resting place, but it is still alive and well on Usenet. Here are the groups devoted to general discussion of DOS programming. If you are a DOS person, these are good places to look for tips, questions and answers. If you are not a DOS person, do not pass "Go" and, definitely, do not collect $200. Usenet:
Free Compilers and Interpreters You can pay a lot of money for a language translator, or you can check this site and find many, many free compilers and interpreters. If you ever find yourself with some free time and nothing to do, why not download a free compiler and teach yourself a new language? (Actually, I tried to teach myself French that way, but I kept getting parsing mistakes.) Web:
Usenet:
Free Programming Tools To say that these resources are extensive is like saying that the Queen of England insists on getting her own way: it doesn't even begin to describe the reality of the situation. What we have here is page after page after page of serious tools for serious programmers doing serious things (seriously). If you have even the least bit of interest in being a programming nerd, these sites are a must-have for your personal list of favorites. Web:
Hello, World It is said that when you learn a new computer language the first thing you do is write a program to display the words "Hello, world". Well, I have been programming for years, in a variety of languages, and I have never, ever written a program that says "Hello, world". (But then, I have never seen a Rocky movie, watched an episode of Ally McBeal, or had tiramisu for dessert.) However, if you happen to be a programmer who is at home in popular culture and likes exploring strange new languages, here is a site that will amuse and entertain you endlessly. But wait, there's more! I have also included another site, where you can see how to program the song "99 Bottles of Beer on the Wall" in many different programming languages. (This is actually a better programming example because you can see some control flow.) Web:
IEEE Computer Society The IEEE Computer Society is a world-renowned source of information relating to all aspects of computer science, electronics and engineering, including the publication of periodicals and newsletters, sponsoring conferences, workshops and symposia, and the development of standards. Computer Society Online now offers an electronic source of this information, in many cases before the information is published in hard copy. Web: Macintosh Programming Are you a Macintosh programmer? Well, you belong to a select club, a club with members all over the world. Here are Web sites that will help you find all kinds of valuable programming resources. And when you're not busy programming, there are many Usenet discussion groups for you. As a Mac programmer, you may be lonely, but you never have to be alone. Web:
Usenet:
Obfuscated C Code Here are the entries and winners for the International Obfuscated C Code Contest, in which programmers compete to create the most artistic, beautiful and obscure C program. The program must be small (less than a specified number of bytes), and it must work. Web: Object-Oriented Programming Object-oriented programming is just like regular programming except that you look at everything differently, write your programs differently, maintain them differently, and think with a different part of your temporal lobe. Join the discussion and talk about object-oriented tools, techniques and problems. The .misc group is for general discussion of Macintosh object-oriented programming. The .macapp3 group is devoted to Version 3 of the MacApp system. The .tcl group is for discussion of the Think Class Libraries. Usenet:
Operating Systems Talk and General Discussion An operating system is the master control program that runs a computer: for example, Windows 95/98, Windows NT, DOS, MacOS and Unix are all operating systems. If you are interested in issues relating to the design and implementation of operating systems, here is a Usenet group in which you can talk with people working in this area. This group is for general operating system discussion. For issues relating to specific systems, there are more specific Usenet groups. Usenet:
OS/2 Programming Talk and General Discussion Here are a few good places where you can ask questions, get answers or talk all night about anything relating to programming under OS/2. In addition, there are groups devoted to tools, porting and object-oriented programming. Usenet:
Perl It would be difficult to exaggerate the importance of Perl. It is the scripting language of choice in many situations, and is used widely on the Internet. Perl was created in 1986 by Larry Wall, a Unix and Internet programmer of renown. The name Perl stands for "Practical Extraction and Report Language" (although, as with most such acronyms, the meaning was made up after the name was chosen). Here are enough Perl resources to keep you satisfied forever (or until you die, whichever comes first). Web:
Usenet:
Programming Humor Some types of jokes -- called canonical jokes -- are repeated, with small variations, over and over again. Here are lists of programming jokes. If you are a programmer, my prescription is to pause every time you find a bug and read two jokes. Web:
Programming Languages I remember, when I first started programming, the language PL/I was still new. It was supposed to be the language to replace all other languages. I started with Fortran, and, during my early life as a programmer, worked with a variety of different languages, such as C, APL, Basic, Lisp, 360 Assembler (for which I wrote a book), PC Assembler (for which I wrote a couple of books), Pascal, and on and on. There are literally hundreds of programming languages, and no one knows them all. (In fact, no one even knows the names of them all.) Here are some Web sites that are starting places for investigating any of a large list of different languages. For discussion, well, there are enough Usenet programming groups to keep you occupied from now to St. Swithin's Day. Web:
Usenet:
Programming Talk and General Discussion while (not sleeping) if (question=="not answered") post (Usenet (query)) else read (Usenet (other-people's-articles)); Usenet:
Tao of Programming Here is a humorous guide to programming and otherwise living with computers in the modern age. "Something mysterious is formed, born in the silent void. Waiting alone and unmoving, it is at once still and yet in constant motion. It is the source of all programs. I do not know its name, so I will call it the Tao of Programming." Web:
Visual Basic Visual Basic, a product of Microsoft, is the most modern incarnation of the Basic programming language. However, Visual Basic is a powerful tool that bears little resemblance to the original Basic. For many people, Visual Basic is the programming tool of choice, offering a total environment devoted to rapid program development, especially for client-server systems (including Internet programs) and database applications. Web:
Usenet:
IRC:
Windows Programming Talk and General Discussion These Usenet groups are for questions and answers relating to general programming in the Microsoft Windows environment as well as more specific topics such as controls, dialogs, graphics and printing, memory management, multimedia and network programming, and so on. Usenet:
X Window Here is information about the X Consortium (the X Window people) as well as links to many X-related sites. Find out what you need to work with X today, and what you need to understand to work with the newest version known as Broadway (X11R6.3): a system for creating and accessing interactive applications over the Web. Web:
|
|
© All contents Copyright 2005, Harley Hahn
Full trademark and copyright information