我身边的home school的同事# Parenting - 为人父母
k*x
1 楼
【 以下文字转载自 Automobile 讨论区 】
发信人: icefox (icefox), 信区: Automobile
标 题: 如果编程语言是车的话
发信站: BBS 未名空间站 (Tue Feb 5 15:19:22 2013, 美东)
http://users.cms.caltech.edu/~mvanier/hacking/rants/cars.html
If programming languages were cars...
Ada is a tank. A butt-ugly tank that never breaks down. People laugh
uncontrollably if you tell them you drive Ada, but really, do you want to be
driving a sports car in a war zone? [from Amit Dubey]
Assembly Language is a bare engine; you have to build the car yourself and
manually supply it with gas while it's running, but if you're careful it
can go like a bat out of hell.
[From "Subterfug" off digg.com:]
Assembly Language: you are the car.
Basic is a simple car useful for short drives to the local shops. Once
popular with learner drivers, it has recently been stripped down to a shell
and rebuilt by a major manufacturer, The new version has been refurbished
for longer journeys, leaving only cosmetic similarities to the original
model. [from Przemyslaw Wrzos]
C is a racing car that goes incredibly fast but breaks down every fifty
miles.
Cobol is reputed to be a car, but no self-respecting driver will ever
admit having driven one.
C# is a competing model of family station wagons. Once you use this, you'
re never allowed to use the competitors' products again.
C++ is a souped-up version of the C racing car with dozens of extra
features that only breaks down every 250 miles, but when it does, nobody can
figure out what went wrong.
Eiffel is a car that includes a built-in driving instructor with a French
accent. He will help you quickly identify and learn from your mistakes, but
don't you dare argue with him or he'll insult you and throw you out of the
car. [From Daniel Prager with some embellishments]
Erlang is a fleet of cars that all cooperate to get you where you want to
go. It takes practice to be able to drive with one foot in each of several
cars, but once you learn how you can drive over terrain that would be very
hard to navigate any other way. In addition, because you're using so many
cars, it doesn't matter if a few of them break down.
Forth is a car you build yourself from a kit. Your car doesn't have to
look or behave like anyone else's car. However, a Forth car will only go
backwards.
[By "256byteram", on a comment on Digg.com (I couldn't resist):]
FORTH LOVE IF HONK THEN !
Fortran is a pretty primitive car; it'll go very quickly as long as you
are only going along roads that are perfectly straight. It is believed that
learning to drive a Fortran car makes it impossible to learn to drive any
other model.
Java is a family station wagon. It's easy to drive, it's not too fast, and
you can't hurt yourself.
Haskell is an incredibly elegantly-designed and beautiful car, which is
rumored to be able to drive over extremely strange terrain. The one time you
tried to drive it, it didn't actually drive along the road; instead, it
made copies of itself and the road, with each successive copy of the road
having the car a little further along. It's supposed to be possible to drive
it in a more conventional way, but you don't know enough math to figure out
how.
[Monadic version:]
Haskell is not really a car; it's an abstract machine in which you give a
detailed description of what the process of driving would be like if you
were to do it. You have to put the abstract machine inside another (concrete
) machine in order to actually do any driving. You're not supposed to ask
how the concrete machine works. There is also a way to take multiple
abstract machines and make a single abstract machine, which you can then
give to the concrete machine to make multiple trips one after another.
Lisp looks like a car, but with enough tweaking you can turn it into a
pretty effective airplane or submarine.
[from Paul Tanimoto:]
Lisp: At first it doesn't seem to be a car at all, but now and then you
spot a few people driving it around. After a point you decide to learn more
about it and you realize it's actually a car that can make more cars. You
tell your friends, but they all laugh and say these cars look way too weird.
You still keep one in your garage, hoping one day they will take over the
streets.
Mathematica is a well-designed car that borrowed a lot from the Lisp car
without giving it nearly the credit it deserved. It can solve equations to
determine the most efficient way to get to the destination, but it costs a
fortune
Matlab is a car designed for novice drivers going on short trips over
terrain similar to the terrain the Mathematica car is usually driven over.
It is very comfortable when driving over this terrain, but if you go off the
trail even a little the car becomes so hard to drive that more snobby
drivers refuse to even acknowledge that it's a car.
Ocaml is a very sexy European car. It's not quite as fast as C, but it
never breaks down, so you end up going further in less time. However,
because it's French, none of the controls are in the usual places.
Perl is supposed to be a pretty cool car, but the driver's manual is
incomprehensible. Also, even if you can figure out how to drive a Perl car,
you won't be able to drive anyone else's.
PHP is the Oscar Mayer Wienermobile, it's bizarre and hard to handle but
everybody still wants to drive it. [from "CosmicJustice" off of digg.com]
Prolog is fully automatic: you tell it what your destination looks like,
and it does all the driving for you. [Addendum from Paul Graham:] However,
the effort required to specify most destinations is equivalent to the effort
of driving there.
[I forget who suggested this one:]
Prolog is a car with a unique trial-and-error GPS system. It will go down
the road looking for your destination, and if it gets to the end of the
street without finding it, it will back up and try the next street over and
continue until you get where you need to go.
Python is a great beginner's car; you can drive it without a license.
Unless you want to drive really fast or on really treacherous terrain, you
may never need another car.
Ruby is a car that was formed when the Perl, Python and Smalltalk cars
were involved in a three-way collision. A Japanese mechanic found the pieces
and put together a car which many drivers think is better than the sum of
the parts. Other drivers, however, grumble that a lot of the controls of the
Ruby car have been duplicated or triplicated, with some of the duplicate
controls doing slightly different things in odd circumstances, making the
car harder to drive than it ought to be. A redesign is rumored to be in the
works.
Smalltalk is a small car originally designed for people who were just
learning to drive, but it was designed so well that even experienced drivers
enjoy riding in it. It doesn't drive very fast, but you can take apart any
part of it and change it to make it more like what you wanted it to be. One
oddity is that you don't actually drive it; you send it a message asking it
to go somewhere and it either does or tells you that it didn't understand
what you were asking.
Visual Basic is a car that drives you. [from "yivkX360" on digg.com, no
doubt channeling Yakov Smirnov]
Go back to my home page. Last updated February 1, 2013
Mike Vanier (m*****[email protected])
发信人: icefox (icefox), 信区: Automobile
标 题: 如果编程语言是车的话
发信站: BBS 未名空间站 (Tue Feb 5 15:19:22 2013, 美东)
http://users.cms.caltech.edu/~mvanier/hacking/rants/cars.html
If programming languages were cars...
Ada is a tank. A butt-ugly tank that never breaks down. People laugh
uncontrollably if you tell them you drive Ada, but really, do you want to be
driving a sports car in a war zone? [from Amit Dubey]
Assembly Language is a bare engine; you have to build the car yourself and
manually supply it with gas while it's running, but if you're careful it
can go like a bat out of hell.
[From "Subterfug" off digg.com:]
Assembly Language: you are the car.
Basic is a simple car useful for short drives to the local shops. Once
popular with learner drivers, it has recently been stripped down to a shell
and rebuilt by a major manufacturer, The new version has been refurbished
for longer journeys, leaving only cosmetic similarities to the original
model. [from Przemyslaw Wrzos]
C is a racing car that goes incredibly fast but breaks down every fifty
miles.
Cobol is reputed to be a car, but no self-respecting driver will ever
admit having driven one.
C# is a competing model of family station wagons. Once you use this, you'
re never allowed to use the competitors' products again.
C++ is a souped-up version of the C racing car with dozens of extra
features that only breaks down every 250 miles, but when it does, nobody can
figure out what went wrong.
Eiffel is a car that includes a built-in driving instructor with a French
accent. He will help you quickly identify and learn from your mistakes, but
don't you dare argue with him or he'll insult you and throw you out of the
car. [From Daniel Prager with some embellishments]
Erlang is a fleet of cars that all cooperate to get you where you want to
go. It takes practice to be able to drive with one foot in each of several
cars, but once you learn how you can drive over terrain that would be very
hard to navigate any other way. In addition, because you're using so many
cars, it doesn't matter if a few of them break down.
Forth is a car you build yourself from a kit. Your car doesn't have to
look or behave like anyone else's car. However, a Forth car will only go
backwards.
[By "256byteram", on a comment on Digg.com (I couldn't resist):]
FORTH LOVE IF HONK THEN !
Fortran is a pretty primitive car; it'll go very quickly as long as you
are only going along roads that are perfectly straight. It is believed that
learning to drive a Fortran car makes it impossible to learn to drive any
other model.
Java is a family station wagon. It's easy to drive, it's not too fast, and
you can't hurt yourself.
Haskell is an incredibly elegantly-designed and beautiful car, which is
rumored to be able to drive over extremely strange terrain. The one time you
tried to drive it, it didn't actually drive along the road; instead, it
made copies of itself and the road, with each successive copy of the road
having the car a little further along. It's supposed to be possible to drive
it in a more conventional way, but you don't know enough math to figure out
how.
[Monadic version:]
Haskell is not really a car; it's an abstract machine in which you give a
detailed description of what the process of driving would be like if you
were to do it. You have to put the abstract machine inside another (concrete
) machine in order to actually do any driving. You're not supposed to ask
how the concrete machine works. There is also a way to take multiple
abstract machines and make a single abstract machine, which you can then
give to the concrete machine to make multiple trips one after another.
Lisp looks like a car, but with enough tweaking you can turn it into a
pretty effective airplane or submarine.
[from Paul Tanimoto:]
Lisp: At first it doesn't seem to be a car at all, but now and then you
spot a few people driving it around. After a point you decide to learn more
about it and you realize it's actually a car that can make more cars. You
tell your friends, but they all laugh and say these cars look way too weird.
You still keep one in your garage, hoping one day they will take over the
streets.
Mathematica is a well-designed car that borrowed a lot from the Lisp car
without giving it nearly the credit it deserved. It can solve equations to
determine the most efficient way to get to the destination, but it costs a
fortune
Matlab is a car designed for novice drivers going on short trips over
terrain similar to the terrain the Mathematica car is usually driven over.
It is very comfortable when driving over this terrain, but if you go off the
trail even a little the car becomes so hard to drive that more snobby
drivers refuse to even acknowledge that it's a car.
Ocaml is a very sexy European car. It's not quite as fast as C, but it
never breaks down, so you end up going further in less time. However,
because it's French, none of the controls are in the usual places.
Perl is supposed to be a pretty cool car, but the driver's manual is
incomprehensible. Also, even if you can figure out how to drive a Perl car,
you won't be able to drive anyone else's.
PHP is the Oscar Mayer Wienermobile, it's bizarre and hard to handle but
everybody still wants to drive it. [from "CosmicJustice" off of digg.com]
Prolog is fully automatic: you tell it what your destination looks like,
and it does all the driving for you. [Addendum from Paul Graham:] However,
the effort required to specify most destinations is equivalent to the effort
of driving there.
[I forget who suggested this one:]
Prolog is a car with a unique trial-and-error GPS system. It will go down
the road looking for your destination, and if it gets to the end of the
street without finding it, it will back up and try the next street over and
continue until you get where you need to go.
Python is a great beginner's car; you can drive it without a license.
Unless you want to drive really fast or on really treacherous terrain, you
may never need another car.
Ruby is a car that was formed when the Perl, Python and Smalltalk cars
were involved in a three-way collision. A Japanese mechanic found the pieces
and put together a car which many drivers think is better than the sum of
the parts. Other drivers, however, grumble that a lot of the controls of the
Ruby car have been duplicated or triplicated, with some of the duplicate
controls doing slightly different things in odd circumstances, making the
car harder to drive than it ought to be. A redesign is rumored to be in the
works.
Smalltalk is a small car originally designed for people who were just
learning to drive, but it was designed so well that even experienced drivers
enjoy riding in it. It doesn't drive very fast, but you can take apart any
part of it and change it to make it more like what you wanted it to be. One
oddity is that you don't actually drive it; you send it a message asking it
to go somewhere and it either does or tells you that it didn't understand
what you were asking.
Visual Basic is a car that drives you. [from "yivkX360" on digg.com, no
doubt channeling Yakov Smirnov]
Go back to my home page. Last updated February 1, 2013
Mike Vanier (m*****[email protected])