Zbr's days.
February
Sun Mon Tue Wed Thu Fri Sat
         
5
 
2008
Months
Feb
Nov Dec

About :: TODO :: Blog :: RSS :: Old blog :: Projects :: GIT :: Gallery :: Notes

Tue, 05 Feb 2008

Selecting computer language for the new project.

assert youKnowWhatYouReallyWant == true;
if (iAmWritingForPersonalUseOnly()) {
    if (iWantAReallyNewParadigm()) { // actually you'll get some irreversible brain damage.
        try {
            return "Huskell"; // dude, I really mean the DAMAGE!
        } catch(ECriticalBrainFailure e) {
            if (preferDotNetWorld()){
                return "F#"; // it's the same as Gb, ain't it?
            } else if (processorCount() >= OH_SO_MANY) {
                return "Erlang"; // start thinking in 1000 threads
            } else if (preferPunctuation() == STRONGLY){
                try {
                    return "J"; // APL needed a transliteration -- and got it
                } catch (EBrainOverolad e) {
                    return "K"; // better have a bank hire you soon!
                }
            } else {
                throw new RethinkParadigmException();
                // you should have better selected Haskeel before
            }
        }
    } else {
        if (isDynamicTypingOk()) { // hey, everyone wanna be a cool geek today.
            if (cannotLiveWithoutCurlyBraces()) { // well, who can ?!
                return "Ruby"; // it's Python done better.
            } else if (enjoyIndentation()){
                return "Python"; // it's Ruby done right.
            } else if (shizophrenia->isOK()){
                return "Perl"; // all the expressivenes and imprecision of a human language.
            } else if (sourceCodeConceptIsObsolete()){
                return "Smalltalk"; // ever modified the value of True -- on a live system?
            } else {
                throw new LameException("PHP5"); // stick with this, los^W poor dude
            }

        } else { // static typing obviously
            if (isManagedOk()) { // let PC do some job for me, they are so smart nowdays.
	    			 //Sick of doing everything myself.
                if (preferJavaWorld()) { // die, MS, die!!!
                    return "Scala"; // huge, really huge. Must be inspired by Noah Arc.
                } else if (preferDotNetWorld()) { // stuck on Windows, ha?
                    return "Nemerle"; // kazalos' by... oh, not again...
                } else {
                    throw new IsThereReallyAnythingElseException();
                }
	    
	    // computers will eliminate the humankind if they get enough control.
            } else if (unmanagedOnly()) {
                return "D"; // get a whole new language with every new release. Great fun.
            } else {
                throw new YouWantSomethingStrangeHereException();
            }
        }
    }
} else {
    return "Do Whatever Your Boss Says To And Keep Your Mouth Shut Programming Language";
}
I only know C a bit and some time ago I tried Java and knew what C++ was... I think I'm living out of this new and shiny world of programming, and that's cool.

/devel/other :: Link / Comments (6)

abr wrote at 2008-02-06 00:40:

Half of them are old and tacky ) I loved the snippet about Python and Ruby

Zbr wrote at 2008-02-06 00:47:

Heh, probably its time to learn python bits :)

Simon Holm Thøgersen wrote at 2008-02-06 05:25:

I'd say ECriticalBrainFailure is more likely to be thrown by F# rather than by Haskell, but maybe that is just me.

I'd say try Scala, it is hackable, has reasonable documentation, a community that is alive, and decent access to Java's class libraries (which is Java's after all, but...). Most of all the language is just 'nice' to work with.

(And please do something to that crappy captcha system, it is completely random in accepting an answer to it!)

zbr wrote at 2008-02-06 12:09:

I will think about captcha's problems. Most of the time it works ok.

Lei Neege wrote at 2008-02-07 02:45:

Anything Java will make you regret it in the end. I like the language, but I hate having to constantly add more machines to handle the enormous amount of resources it needs.

D is great. I really really hope the gdc version catches on more and becomes accepted into gnu core. The Tango lib alone makes me love it.

Adam wrote at 2008-03-01 02:57:

If you're thinking about learning Python and are interested in a book check out "Python Programming" by John Zelle. Highly recommended.

Please solve this captcha to be allowed to post (need to reload in a minute): 12 * 78

Comments are closed for this story.