If Programming languages were cars…


Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

With such a large selection of programming languages it can be difficult to choose one for a particular project. Reading the manuals to evaluate the languages is a time consuming process. On the other hand, most people already have a fairly good idea of how various automobiles compare. So in order to assist those trying to choose a language, we have prepared a chart that matches programming languages with comparable automobiles.

Assembler – A Formula I race car. Very fast, but difficult to drive and expensive to maintain.

FORTRAN II – A Model T Ford. Once it was king of the road.

FORTRAN IV – A Model A Ford.

FORTRAN 77 – A six-cylinder Ford Fairlane with standard transmission and no seat belts.

COBOL – A delivery van. It’s bulky and ugly, but it does the work.

BASIC – A second-hand Rambler with a rebuilt engine and patched upholstry. Your dad bought it for you to learn to drive. You’ll ditch the car as soon as you can afford a new one.

PL/I – A Cadillac convertible with automatic transmission, a two- tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield

C – A black Firebird, the all-macho car. Comes with optional seat belts (lint) and optional fuzz buster (escape to assembler).

ALGOL 60 – An Austin Mini. Boy, that’s a small car.

Pascal – A Volkswagon Beetle. It’s small but sturdy. Was once popular with intellectuals.

Modula II – A Volkswagon Rabbit with a trailer hitch.

ALGOL 68 – An Austin Martin. An impressive car, but not just anyone can drive it.

LISP – An electric car. It’s simple but slow. Seat belts are not available.

PROLOG/LUCID – Prototype concept-cars.

Maple/MACSYMA – All-terrain vehicles.

FORTH – A go-cart.

LOGO – A kiddie’s replica of a Rolls Royce. Comes with a real engine and a working horn.

APL – A double-decker bus. Its takes rows and columns of passengers to the same place all at the same time. But, it drives only in reverse gear, and is instrumented in Greek.

Ada – An army-green Mercedes-Benz staff car. Power steering, power brakes and automatic transmission are all standard. No other colors or options are available. If it’s good enough for the generals, it’s good enough for you. Manufacturing delays due to difficulties reading the design specification are starting to clear up.

By Daniel Solomon & David Rosenblueth, Department of Computer Science, University of Waterloo

Seven levels of Perl Mastery


Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Warning: constant() [function.constant]: Couldn't find constant TT_RIMS_LEN in /home/stupidsi/public_html/new/wp-content/plugins/tweet-this/tweet-this.php on line 1243

Novice

  • Thinks CGI and Perl are interchangeable terms.
  • Still thinks Perl looks like bad C code viewed over a noisy modem.
  • Is insecure about the concept of dollar signs.
  • Thinks Perl should be more like sh or tcl.
  • Has heard of the `Unix mindset’, but hopes it’s a treatable condition.
  • Can’t figure out how to read input from the keyboard.
  • Thinks regular expressions are somebody cursing.
  • Wonders why no one can give him a straight answer about whether Perl is compiled or interpreted.

Initiate

  • Has begun to learn about $_ – and doesn’t like it a bit.
  • Thinks -w flag is a waste of time.
  • Thinks Perl should be more like C++ or Java.
  • Is still trying to figure why Perl has two different kinds of arrays.
  • Knows how to use perlbug, but sends in bogus bug reports.
  • Has been bitten by implicit context conversions, but hasn’t caught on yet.
  • Can’t keep == separate from eq, and thinks that + should concatenate strings.

User

  • Thinks Perl is just for text processing.
  • Uses the Perl debugger.
  • Has used other people’s modules.
  • Wonders what an object is.
  • Knows their way around CPAN.
  • Knows the difference between local and my.
  • Uses <DATA>.
  • Is still trying to figure what references are for.
  • Thinks Perl should be more like scheme or eiffel.
  • Submits real bug reports with perlbug.

Expert

  • Write JAPHs to impress their friends and annoy their coworkers.
  • Begins all programs with use strict.
  • Thinks Perl should just be Perl.
  • Has taken enough advantage of cryptocontext to annoy others.
  • Knows how to create records and objects with hash refs.
  • Uses syscall to get at undocumented operating system calls.
  • Curses the flexibility of the Perl object system.
  • Uses /e in substitutes.
  • Has begun to wonder what typeglobs are for.
  • Has written their own modules in Perl.
  • Begins to look at all data in terms of regular expressions.
  • Understands why regexes can’t match nested data.
  • Rewrites minor utilities in Perl.

Hacker

  • Writes games in Perl.
  • Has written extension modules in C.
  • Uses AUTOLOAD and closures in curious ways.
  • Appreciates the aethetics of the Schwartzian Transform.
  • Delights in the flexibility of the Perl object system.
  • Has written their own pod2XXX translator.
  • Understands the output from Perl -Dflags.
  • Accesses the Perl symbol table directly.
  • Submits bug reports with working patches.
  • Edits files using a special Perl-embedded version of vi or emacs.
  • Has contributed modules, manpages, and tools to the standard Perl distribution.

Guru

  • Can answer any Perl question instantly.
  • Can write anything in Perl – and does.
  • Takes advantage of undocumented language features.
  • Writes code that gives even Larry pause.
  • Implements opaque objects and compiled regexes using closures.
  • Can read and understand the output of the perl-to-C compiler.
  • Embeds Perl interpreters in larger applications.
  • Has written their own -d:debugger module.
  • Used object-oriented programming before it existed.
  • Is debating taking their turn (again?) with the patch pumpkin.

Wizard

  • Is on a first-name basis with Larry’s wife.
  • Has written or rewritten major areas in the Perl compiler or interpreter.
  • Is thinking about rewriting the regex engine, the memory allocator, or the garbage collector.
  • Doesn’t write games in Perl, because they realize that Perl itself is the game.