One of the most entertaining things I've ever read about computer languages -- and so, so much of it exactly on the mark! Thanks.
I've solicited a few opinions and think I can summarize F#:
F#: OCaml's hot younger sister. She's got that girl-next-door look, so her charms aren't always apparent at first glance. Born of a French mother, her rich American stepfather financed her upbringing in England. While from the same gene pool as OCaml, she tends to be bright, but demure. Honest and true, she doesn't mind if you think of other languages while you are with her. In fact, she prefers it when you invite C# and VB.NET and anyone else packing IL for the night. She's built for action and will talk idioms and pervasives and demonstrate her flexibility until you wonder "How did she do that?", all while acting the lady. She handles "data" of any size with ease. Once you've spent the night in the sack with her, you'll want more. Unlike her friend Haskell, she won't change as you spend more time with her. And best of all, she won't ask for a commitment because she wants to stay available.
I like it!
Topic tags
- f# × 3705
- websharper × 1897
- compiler × 286
- functional × 201
- ui next × 139
- c# × 121
- classes × 97
- web × 97
- .net × 84
- book × 84
- async × 76
- ui.next × 67
- bug × 54
- core × 49
- website × 49
- server × 45
- parallel × 43
- ui × 43
- enhancement × 41
- parsing × 41
- testing × 41
- trywebsharper × 41
- typescript × 37
- html × 35
- javascript × 35
- owin × 35
- asynchronous × 30
- monad × 28
- ocaml × 28
- tutorial × 27
- warp × 27
- haskell × 26
- sitelet × 25
- linq × 22
- workflows × 22
- wpf × 20
- fpish × 19
- introduction × 19
- silverlight × 19
- sitelets × 19
- monodevelop × 17
- rpc × 17
- suave × 17
- piglets × 16
- collections × 15
- feature request × 15
- jquery × 15
- templates × 15
- getting started × 14
- pipeline × 14
- kendoui × 13
- reactive × 12
- 4.1.0.171 × 11
- monads × 11
- opinion × 10
- 4.0.190.100-rc × 9
- deployment × 9
- fixed × 9
- formlets × 9
- in × 9
- json × 9
- plugin × 9
- proposal × 9
- scheme × 9
- solid × 9
- basics × 8
- concurrent × 8
- highcharts × 8
- how-to × 8
- python × 8
- 4.1.1.175 × 7
- complexity × 7
- documentation × 7
- visual studio × 7
- 4.1.2.178 × 6
- lisp × 6
- real-world × 6
- released in 4.0.192.103-rc × 6
- remoting × 6
- resources × 6
- scala × 6
- websharper ui.next × 6
- workshop × 6
- xaml × 6
- 4.0.193.110 × 5
- 4.2.3.236 × 5
- aspnetmvc × 5
- authentication × 5
- azure × 5
- bootstrap × 5
- conference × 5
- dsl × 5
- formlet × 5
- java × 5
- list × 5
- metaprogramming × 5
- ml × 5
- released in Zafir.4.0.188.91-beta10 × 5
- sql × 5
- visualstudio × 5
- websharper.forms × 5
- zafir × 5
- 4.0.192.106 × 4
- 4.0.195.127 × 4
- 4.1.0.38 × 4
- 4.2.1.86 × 4
- 4.2.6.118 × 4
- css × 4
- example × 4
- extensions × 4
- fsi × 4
- fsx × 4
- html5 × 4
- jqueryui × 4
- lift × 4
- reflection × 4
- remote × 4
- rest × 4
- spa × 4
- teaching × 4
- template × 4
- websocket × 4
- wontfix × 4
- 4.0.196.147 × 3
- 4.1.0.34 × 3
- 4.1.6.207 × 3
- 4.2.1.223-beta × 3
- 4.2.11.258 × 3
- 4.2.4.114 × 3
- 4.2.4.247 × 3
- 4.2.5.115 × 3
- 4.2.6.253 × 3
- 4.2.9.256 × 3
- ajax × 3
- alt.net × 3
- aml × 3
- asp.net mvc × 3
- canvas × 3
- cloudsharper × 3
- compilation × 3
- database × 3
- erlang × 3
- events × 3
- extension × 3
- file upload × 3
- forums × 3
- inline × 3
- issue × 3
- kendo × 3
- macro × 3
- mono × 3
- msbuild × 3
- mvc × 3
- pattern × 3
- piglet × 3
- released in Zafir.4.0.187.90-beta10 × 3
- svg × 3
- type provider × 3
- view × 3
- 4.1.1.64 × 2
- 4.1.5.203 × 2
- 4.1.7.232 × 2
- 4.2.10.257 × 2
- 4.2.3.111 × 2
- 4.2.5.249 × 2
- android × 2
- asp.net × 2
- beginner × 2
- blog × 2
- chart × 2
- client × 2
- client server app × 2
- clojure × 2
- computation expressions × 2
- constructor × 2
- corporate × 2
- courses × 2
- cufp × 2
- d3 × 2
- debugging × 2
- direct × 2
- discriminated union × 2
- docs × 2
- elm × 2
- endpoint × 2
- endpoints × 2
- enterprise × 2
- entity framework × 2
- event × 2
- f# interactive × 2
- fable × 2
- flowlet × 2
- formdata × 2
- forms × 2
- fsc × 2
- google maps × 2
- hosting × 2
- http × 2
- https × 2
- iis 8.0 × 2
- install × 2
- interactive × 2
- interface × 2
- iphone × 2
- iteratee × 2
- jobs × 2
- jquery mobile × 2
- keynote × 2
- lens × 2
- lenses × 2
- linux × 2
- listmodel × 2
- mac × 2
- numeric × 2
- oauth × 2
- obfuscation × 2
- offline × 2
- oop × 2
- osx × 2
- packaging × 2
- pattern matching × 2
- performance × 2
- pipelines × 2
- q&a × 2
- quotation × 2
- reference × 2
- released in Zafir.4.0.185.88-beta10 × 2
- rx × 2
- script × 2
- security × 2
- self host × 2
- seq × 2
- sockets × 2
- stm × 2
- tcp × 2
- trie × 2
- tutorials × 2
- type × 2
- url × 2
- var × 2
- websharper.charting × 2
- websharper4 × 2
- websockets × 2
- wig × 2
- xna × 2
- zh × 2
- .net interop × 1
- 2012 × 1
- 4.0.194.126 × 1
- 4.1.3.184 × 1
- 4.1.4.189 × 1
- 4.2.0.214-beta × 1
- 4.2.12.259 × 1
- 4.2.2.231-beta × 1
- 4.2.8.255 × 1
- Canvas Sample Example × 1
- DynamicStyle Animated Style × 1
- Fixed in 4.0.190.100-rc × 1
- Released in Zafir.UI.Next.4.0.169.79-beta10 × 1
- SvgDynamicAttribute × 1
- WebComponent × 1
- abstract class × 1
- accumulator × 1
- active pattern × 1
- actor × 1
- addin × 1
- agents × 1
- aggregation × 1
- agile × 1
- alter session × 1
- animation × 1
- anonymous object × 1
- apache × 1
- api × 1
- appcelerator × 1
- architecture × 1
- array × 1
- arrays × 1
- asp.net 4.5 × 1
- asp.net core × 1
- asp.net integration × 1
- asp.net mvc 4 × 1
- asp.net web api × 1
- aspnet × 1
- ast × 1
- attributes × 1
- authorization × 1
- b-tree × 1
- back button × 1
- badimageformatexception × 1
- bash script × 1
- batching × 1
- binding-vars × 1
- bistro × 1
- body × 1
- bundle × 1
- camtasia studio × 1
- cas protocol × 1
- charts × 1
- clarity × 1
- class × 1
- cli × 1
- clipboard × 1
- clojurescript × 1
- closures × 1
- cloud × 1
- cms × 1
- coding diacritics × 1
- color highlighting × 1
- color zones × 1
- combinator × 1
- combinators × 1
- compile × 1
- compile code on server × 1
- config × 1
- confirm × 1
- content × 1
- context × 1
- context.usersession × 1
- continuation-passing style × 1
- coords × 1
- cordova × 1
- cors × 1
- coursera × 1
- cross-domain × 1
- csla × 1
- current_schema × 1
- custom content × 1
- data × 1
- data grid × 1
- datetime × 1
- debug × 1
- declarative × 1
- delete × 1
- devexpress × 1
- dhtmlx × 1
- dictionary × 1
- directattribute × 1
- disqus × 1
- distance × 1
- do binding × 1
- doc elt ui.next upgrade × 1
- docker × 1
- dojo × 1
- dol × 1
- dom × 1
- domain × 1
- du × 1
- duf-101 × 1
- dynamic × 1
- eastern language × 1
- eclipse × 1
- edsl × 1
- em algorithm × 1
- emacs × 1
- emotion × 1
- enums × 1
- error × 1
- etw × 1
- euclidean × 1
- eventhandlerlist × 1
- examples × 1
- ext js × 1
- extension methods × 1
- extra × 1
- facet pattern × 1
- failed to translate × 1
- fake × 1
- fantomas × 1
- fear × 1
- float × 1
- form × 1
- form-data × 1
- forum × 1
- fp × 1
- frank × 1
- fsdoc × 1
- fsharp × 1
- fsharp.core × 1
- fsharp.powerpack × 1
- fsharpx × 1
- fsunit × 1
- function × 1
- functional style × 1
- game × 1
- games × 1
- gc × 1
- generic × 1
- geometry × 1
- getlastwin32error × 1
- getting-started × 1
- google × 1
- google.maps × 1
- grid × 1
- group × 1
- guide × 1
- hash × 1
- headers × 1
- hello world example × 1
- heroku × 1
- highchart × 1
- history × 1
- how to × 1
- html-templating × 1
- http405 × 1
- httpcontext × 1
- hubfs × 1
- i18n × 1
- ie 8 × 1
- if-doc × 1
- iis × 1
- image × 1
- images × 1
- inheritance × 1
- initialize × 1
- input × 1
- install "visual studio" × 1
- installer × 1
- int64 × 1
- interfaces × 1
- internet explorer × 1
- interop × 1
- interpreter × 1
- io × 1
- iobservable × 1
- ios × 1
- iot × 1
- ipad × 1
- isomorphic × 1
- javascript optimization × 1
- javascript semanticui resources × 1
- jquery-plugin × 1
- jquery-ui × 1
- jquery-ui-datepicker × 1
- js × 1
- kendo datasource × 1
- kendochart × 1
- kendoui compiler × 1
- knockout × 1
- l10n × 1
- learning × 1
- library × 1
- libs × 1
- license × 1
- licensing × 1
- lineserieszonescfg × 1
- local setting × 1
- localization × 1
- logging × 1
- loop × 1
- macros × 1
- mailboxprocessor × 1
- mapping × 1
- maps × 1
- markerclusterer × 1
- markup × 1
- marshal × 1
- math × 1
- mathjax × 1
- message × 1
- message passing × 1
- message-passing × 1
- meta × 1
- metro style × 1
- micro orm × 1
- minimum-requirements × 1
- mix × 1
- mobile installation × 1
- mod_mono × 1
- modal × 1
- module × 1
- mouseevent × 1
- mouseposition × 1
- multidimensional × 1
- multiline × 1
- multithreading × 1
- mysql × 1
- mysqlclient × 1
- nancy × 1
- native × 1
- nested × 1
- nested loops × 1
- node × 1
- nunit × 1
- object relation mapper × 1
- object-oriented × 1
- om × 1
- onboarding × 1
- onclick × 1
- optimization × 1
- option × 1
- orm × 1
- os x × 1
- output-path × 1
- override × 1
- paper × 1
- parameter × 1
- persistence × 1
- persistent data structure × 1
- phonegap × 1
- pola × 1
- post × 1
- powerpack × 1
- prefix tree × 1
- principle of least authority × 1
- privacy × 1
- private × 1
- profile × 1
- programming × 1
- project × 1
- project euler × 1
- projekt_feladat × 1
- protected × 1
- provider × 1
- proxy × 1
- ptvs × 1
- public × 1
- pure f# × 1
- purescript × 1
- qna × 1
- quant × 1
- query sitelet × 1
- question × 1
- quotations × 1
- range × 1
- raphael × 1
- razor × 1
- rc × 1
- reactjs × 1
- real-time × 1
- ref × 1
- region × 1
- released in 4.0.190.100-rc × 1
- reporting × 1
- responsive design × 1
- rest api × 1
- rest sitelet × 1
- restful × 1
- round table × 1
- router × 1
- routing × 1
- rpc reverseproxy × 1
- runtime × 1
- sales × 1
- sample × 1
- sampleapp × 1
- scriptcs × 1
- scripting × 1
- search × 1
- self hosted × 1
- semanticui × 1
- sequence × 1
- serialisation × 1
- service × 1
- session-state × 1
- sharepoint × 1
- signals × 1
- sitelet website × 1
- sitelet.protect × 1
- sitlets × 1
- slickgrid × 1
- source code × 1
- sqlentityconnection × 1
- ssl × 1
- standards × 1
- static content × 1
- stickynotes × 1
- streamreader × 1
- stress × 1
- strong name × 1
- structures × 1
- submitbutton × 1
- subscribe × 1
- svg example html5 websharper.ui.next × 1
- sweetalert × 1
- system.datetime × 1
- system.reflection.targetinvocationexception × 1
- table storage × 1
- targets × 1
- tdd × 1
- templates ui.next × 1
- templating × 1
- text parsing × 1
- three.js × 1
- time travel × 1
- tls × 1
- tooltip × 1
- tracing × 1
- tsunamiide × 1
- turkish × 1
- twitter-bootstrap × 1
- type erasure × 1
- type inference × 1
- type providers × 1
- type-providers × 1
- typeprovider × 1
- ui next forms × 1
- ui-next × 1
- ui.next jqueryui × 1
- ui.next charting × 1
- ui.next formlets × 1
- ui.next forms × 1
- ui.next suave visualstudio × 1
- ui.next templating × 1
- unicode × 1
- unittest client × 1
- upload × 1
- usersession × 1
- validation × 1
- vb × 1
- vb.net × 1
- vector × 1
- view.map × 1
- visal studio × 1
- visual f# × 1
- visual studio 11 × 1
- visual studio 2012 × 1
- visual studio shell × 1
- vs2017 compiler zafir × 1
- vsix × 1
- web api × 1
- web-scraping × 1
- webapi × 1
- webcomponents × 1
- webforms × 1
- webgl × 1
- webrtc × 1
- webshaper × 1
- websharper async × 1
- websharper codemirror × 1
- websharper f# google × 1
- websharper forms × 1
- websharper reactive × 1
- websharper rpc × 1
- websharper sitelets routing × 1
- websharper warp × 1
- websharper-interface-generator × 1
- websharper.chartsjs × 1
- websharper.com × 1
- websharper.exe × 1
- websharper.owin × 1
- websharper.ui.next × 1
- websharper.ui.next jquery × 1
- websockets iis × 1
- why-websharper × 1
- windows 7 × 1
- windows 8 × 1
- windows-phone × 1
- winrt × 1
- www.grabbitmedia.com × 1
- xamarin × 1
- xml × 1
- yeoman × 1
- yield × 1
- zafir beta × 1
- zafir websharper4 × 1
- zarovizsga × 1
![]() |
Copyright (c) 2011-2012 IntelliFactory. All rights reserved. Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy |
Built with WebSharper |
Cross posted from my regular blog:
Found it here:
[link:maradydd.livejournal.com]
from a link on Kaisa's blog:
[link:www.unix-girl.com]
I compiled all the good ones from the comments as well:
C:
I don't think C gets enough credit. Sure, C doesn't love you. C isn't
about love--C is about thrills. C hangs around in the bad part of town.
C knows all the gang signs. C has a motorcycle, and wears the leathers
everywhere, and never wears a helmet, because that would mess up C's
punked-out hair. C likes to give cops the finger and grin and speed
away. Mention that you'd like something, and C will pretend to ignore
you; the next day, C will bring you one, no questions asked, and toss
it to you with a you-know-you-want-me smirk that makes your heart race.
Where did C get it? "It fell off a truck," C says, putting away the
boltcutters. You start to feel like C doesn't know the meaning of
"private" or "protected": what C wants, C takes. This excites you. C
knows how to get you anything but safety. C will give you anything but
commitment
In the end, you'll leave C, not because you want
something better, but because you can't handle the intensity. C says
"I'm gonna live fast, die young, and leave a good-looking corpse," but
you know that C can never die, not so long as C is still the fastest
thing on the road.
Python: Python cares deeply about you and
does its best to make your life easier. Python is willing to try new
things to make you happy -- "Sure, I can do generators, if that's what
you want" -- and really doesn't mind if you're seeing other languages
on the side. It insists upon arranging the cupboard into strict rows,
but you stop noticing after a while, and eventually you come to prefer
your shelves organized this way. Your friends think this is weird until
they start dating Python too.
Ruby: Your older sister is the
most popular cheerleader in school, but she's kind of a slut. You think
that maybe if you add more features, the boys will like you just as
much.
PHP: You've seen what works for Ruby and you think it will
work for you too, but you haven't figured out that lipstick doesn't go
on your cheeks and you shouldn't brush your hair with a mascara wand.
C++:
C++ has seen people in love, and thinks it has everything figured out.
C++ thinks it loves you, but it errs on the side of being controlling
when it thinks it's being concerned and caring.
Ada: You are far
more flexible than C++, and know how to be strict and forgiving at the
same time. However, your tendency to wear the bondage and discipline
gear all the time, as opposed to when your lover asks you to bring it
out, frightens people off. You need to learn to stop calling people
"worm" and "slave" in front of their mothers.
Java: You try to
be loving, but you were raised by a commune of 60 nervous women who
have told you that everything you do is loving, even when it isn't.
Your unhelpful behaviors have never been corrected and everything you
do is subtly wrong and destructive.
JSP: You are Java's younger sister, working in a strip club to pay for your women's studies degree.
Perl:
You're incredibly enthusiastic and you have five different ways of
doing anything that anyone could possibly want to do. As a result, you
tend to overwhelm people and you leave a bad impression on people who
could otherwise benefit from knowing you. You promise people answers to
all their questions, but you're not ready for a real relationship. You
like to guess what people want, but tend to jump to conclusions. When
other people would say "what, really?", you've already gotten out a
ball-peen hammer and a tub of beeswax. Because of this, people find
themselves speaking to you using a range of expressions and vocabulary
even more limited than what they'd use for someone who didn't speak the
language at all.
Smalltalk: Smalltalk won't meet you outside
Smalltalk's apartment. Smalltalk says that if you really loved it, you
wouldn't leave.
OCaml: You know yourself to be fast, smart, and
extremely reliable. However, you look kind of funny and nobody really
wants to talk to you. You spend most of your time sitting in a public
library glaring at people, occasionally yelling "NOBODY HERE
APPRECIATES MY GENIUS!" and getting kicked out.
Prolog: You are
a deaf and blind synthaesthete, who experiences the world entirely
through smells, each of which triggers expansive flurries of poetry and
music in your mind. Certain problems are trivial for you, but nobody
will ever understand the answers you give them, because your numbering
system involves colors that cannot be perceived by humans. Prolog can
sometimes have a good time with people, but it's hard for a person to
stay with someone who only wants them for their ochre vibrato.
Lisp:
Lisp cares about you, but really loves itself more than it will ever
love you. Lisp thinks that it's the world's greatest lover, and it is a
lot of fun, but it's completely blind to its own inadequacies. Watch
out: it flies into a rage if it finds you've been seeing C on the side.
Lisp swears up and down that it can be anything and anyone you want,
and in a lot of ways it's right, but in the end, it's still Lisp.
Logo:
Lisp's adorable 7-year-old niece who likes to play with her toy turtle.
On casual conversation, she proves to be disturbingly worldly and
well-informed. You resolve not to let your kids play around Lisp's
house. Thinking about using Logo in any serious way makes you feel a
bit dirty.
Visual Basic: You're a fifteen-year-old girl with her
very own computer in her room, pinging random strangers on AIM and
claiming to be a 23-year-old girl who wants to cyber with them.
However, your efforts fail at convincing people, mostly because you
aren't very imaginative and most of the things you're promising them
are ideas you ripped off from other sources and changed slightly,
leaving them less believable.
ASP.NET: As above, except you're a fifteen-year-old boy.
Objective
C: You grew up in a cold and loveless home. Everything you know about
love, you learned by listening to Smalltalk and Lisp's sex parties in
the apartment next door. Now you have met a sweet young thing named
Darwin, and you are eager to please.
Dylan: Sombody sat Lisp down and told it it was too clingy. Now it's bipolar.
Twisted:
Twisted Python not only loves you, it loves everyone, in 10ms
intervals, on demand. But once you learn to take turns, you don't
notice the difference.
E: E is very clear about its hard limits,
and there are a lot of them. It tells you up front what you're not
allowed to do, and sometimes you end up forgetting what you can do
without pissing it off.
lex/yacc: lex and yacc are those twins
you have a one-night stand with every couple of years. In the
intervening period, you forget all about the neat tricks they can do,
and every time you meet up you end up learning them all over again. But
they're really rather one-sided, and schizophrenic in the same way C
is, so in the end it's good that they're not after you for a long-term
relationship.
Haskell: Haskell is pretty, but always uses an
elaborate range of prophylactic techniques. By the time you're all in
place, the person you're with no longer resembles Haskell. If you've
had other lovers, Haskell doesn't like many of the things that you may
have come to enjoy doing with them. Haskell will pretend never to have
heard of these things, and call you a pervert.
SML/NJ: You
cannot take anything away from a relationship with SML/NJ that you did
not bring with you. If you leave anything at SML/NJ's apartment when
you break up, SML/NJ will leave it on your doorstep without ringing the
bell.
Assembler: Assembler has no limits -- none whatsoever --
but you have to make it do what you want. It will not make a move to
help you; assembler just lies there.
FORTRAN: FORTRAN isn't a
real relationship. Telling people you're happy with FORTRAN is like
telling people you'll be happy taking care of your cats for the rest of
your life and don't really need another person.
RATFOR: Like
Fortran, except you write (and post) fanfics where one of your cats
turns into a dashingly uninhibited catboy/catgirl and sweeps you off
your feet.
Clu: Learned everything it knows about relationships
from a manual published in 1972 by a hippie commune, and refuses to
learn any more. Friendly, but inflexible.
COBOL: COBOL is a sad
office accountant that nobody loves. Nobody ever sees COBOL outside of
the office. From time to time, somebody wonders whether they could
break COBOL out of its shell. When they try to flirt with COBOL, COBOL
just stares blankly ahead, as if waiting for the punchline.
Scheme:
Your parents asked their friend Lisp to dress up as a schoolteacher and
introduce you gently to the arts of love. At first, everything is
smooth, if a bit idiosyncratic. Before long, though, scheme has asks
whether you want to try something really fun, and then out come call/cc
and the hygenic macros.
Matlab: Matlab stands on a street
corner, and does one thing. Matlab does this one thing very well, and
very quickly. Some people try to have relationships with Matlab. They
think that Matlab has a beautiful soul, and they like that thing that
Matlab does. This always ends badly: Matlab has no love for anybody.
Matlab is dead inside.
XML: After six months, you discover that
XML is actually a realdoll and not really a person at all, but you've
already bought her so many accessories and attachments that you're
determined to make your relationship work.
XSLT: Look! When you pose XML like this, it looks like she's breathing!
XML-CSS3: Look! XML has her own livejournal!
XML-Schema: Look! XML is answering online quizzes about what she likes and dislikes!
XML-Namespace: Look! Your friends have brought their XMLs over! It's like they're having a party!
ASN.1:
Like XML, excecpt that you're way more serious about it. You can hear
ASN.1's voice whispering to you when you're not around, telling you to
do things to make it happy. Eventually, you marry it. Your friends try
to help you: you push them away one by one. They don't understand.
Nobody understands ASN.1 but you.
Erlang: your boyfriend
always seems to have the right answer for every situation, but you
can't shake the feeling that he's just reading them from a big script
somewhere. His left hand and his right hand don't seem to know what the
other is doing. When you fight, and he can't figure out what to do, he
tends to disconnect and revert back to a previous known-good state,
like a kind of willful amnesia. He is excellent on the phone.
INTERCAL:
You are a cuddly teddy bear made out of barbed wire and asbestos,
raised in a cage as a lab animal. You were taught to love by a bitter
psychology grad student with a grudge against the world. In your
experience, jabbing people with knives is a show of affection, and
berating them with insults represents empathy. Girls ask you out on a
dates because their friends dared them to do so. You will die alone.
Also, the only words you know are in Estonian.
Malbolge: You are
the third cousin once removed of Satan. Too evil to live, too cute to
care. Your sharp teeth and claws make foreplay a painful experience,
which is just the way you like it. People think they like you because
you're bad, but if they were to stop and think about it, they'd realize
that no, they don't really like you at all.
C#: Your wealthy
parents always told you that the other kids were just jealous of how
smart you are. They were lying. Everybody hates you because you are an
arrogant and fickle jerk. You think everyone will keep up with your
whims and sudden changes of direction, but in fact the only reason they
play with you is because their parents make them. Your girlfriend broke
up with Java to go out with you, and will break up with you the moment
your stock portfolio begins to wane. Clowns make rude gestures to you
behind your back.
Lua: you've heard of love, but it isn't
important enough to have around all the time, so you keep it in a
separate module and just bring it out on special occasions. As a
result, you tend to forget what the syntax is and how everything is
supposed to fit together.
The Boost library is a suitcase that C++ carries around... "to be prepared", C++ says.
It's
full of everything from a small hotplate so you can make C++ breakfast
in bed, to an italian phrasebook so you can whisper sweet nothings in
C++'s ear, to an engagement ring in case C++ decides you're the right
one.
"Look, honey!", C++ says. "The breakfast kit has fresh eggs
and imported swiss cheese and caviar and melba toast and a little
coffeemaker! You'll make us the tastiest breakfast ever!"
The
variety and forethought are impressive, and some of the stuff actually
does wind up making your life with C++ easier and more pleasant, but
you can't shake the feeling that the whole think is more about C++'s
needs than yours.
Visual Basic for Applications is much like VB.
She also claims to be 23 and try to cyber strangers at random, but the
acts she proposes are so anatomically ludicrous that it's soon clear
that she hasn't hit puberty yet, and has never actually seen another
person naked.
Forth is a beautiful but emotionally unstable
foreign exchange student from Poland (reverse Poland, in fact). The sex
is quick, hard, and vaguely confusing. You'll never really relate to
each other: Forth communicates mainly through gestures, significant
glances, and inappropriate touch. When you want something from Forth,
you point to a Forth, point to a body part, and shout an imperative
verb. Oddly, Forth sees nothing wrong with this arrangement.
Eventually,
Forth will decide for unrelated reasons to go back home and forget ever
having left Poland. This will include forgetting you.
Z, B, and
UML share a flat together. Only UML actually has a job; the others are
too artistically sensitive. They'll flirt with you; they'll weave
elaborate fantasies (in painstakingly clinical detail) about what they
want to do to you; and they'll write you long love letters about
running away together. At no point will there be actual physical
contact: they say their love is too pure.
Pascal has an almost
charmingly naive notion of how matters should proceed: first one is
introduced, next one flirts, and so on. The charm wears thin when you
realize how inflexible Pascal is: once you're dating, Pascal won't
flirt. Once you're going steady, Pascal won't date. If you move in
together, Pascal will drive you crazy by alternating between displays
of obsessive behavior ("This drawer is marked '24-piece flatware set',
but there are 25 pieces!!!"), and rank slobbishness ("I didn't throw
that trash away; I thought you might need it.").
Modula 3 and
Delphi are Pascal's more well-adjusted cousins, but after Pascal,
you're a little gun-shy. Besides, they don't have any friends anyway,
and Delphi wants a small donation before your first date.
J: You
come from an African tribe that communicate only in popping noises. You
make no effort to learn english, and you don't care that nobody
understands you - they're obviously not smart enough to go out with you
anyway.
GW-BASIC: An "advanced" love robot from decades ago
built out of stainless steel bricks and servo motors. Has a modest
collection of simple actions that let you pretend you're dating it,
which you do... right up until the day you realize it has the bizzare
inability to point at anything, which freaks you out.
You
overcorrect by dumping it for C which will, years later, leave you
bloodied and chained upside-down to the underbelly of a giant
experimental turbine engine falling from 30,000 feet, saying, "Hey bub,
that's exactly what you told me you wanted."
FORTH - You are
assembler's slutty younger cousin. You have some glimmers of deeper
languages, but they are dulled by your trailer. You are more attractive
and active than assembler. You like to play with hardware and you can
do it in anyway possible. You can even lay there like assembler if they
want. You like to talk, but ultimately, conversations with you are
terse and limited. Nevertheless, those that have had you think of you
often.