Older blog entries for shlomif (starting at number 637)

Google Plus

Here is a message to everyone who is concerned:

  1. Please don't ask me if I want any Google Plus invites.
  2. Please don't ask me if I can give any Google Plus invites.
  3. It would be a good idea to refrain from doing both of these to other people as well.

This Google Plus invites thing starts the whole Google Wave thing all over again, and is incredibly anti-social (which is ironic for a social network). So you have been warned. If any of you violate either of these, they will be referred to this post.

Syndicated 2011-07-03 10:15:40 from shlomif

Tech Tip: KDE 4: Changing the Names of the Virtual Desktops from the Command Line

I've written a small command-line utility to change the names of the KDE 4 virtual desktops (also known as "virtual workspaces").

To use it, do something like this:

#!/bin/bash
./set_kde4_virtual_desktop_names \
    "Main" "Devel" "Chat" "Donkey" \
    "Music" "Config" "Workspace 7" "Games"

I've originally thought I could do it by setting the value of _NET_DESKTOP_NAMES in xprop, but that turned out to be futile. Then I decided that imitation was the sincerest form of flattery and ripped the relevant code out of kdebase-workspace, and after some modifications, it worked. I'd like to thank pinotree from #kde-devel for some assistance.

Here is the code, but the repository also contains a CMakeLists.txt file:

/*
 * A program to set the names of KDE 4' virtual desktops (a.k.a virtual
 * workspaces).
 *
 * Adapted from kdebase-workspace-4.6.4 's 
 * kwin/kcmkwin/kwindesktop/main.cpp , which is:
********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.

Copyright (C) 2009 Martin Gräßlin <kde@martin-graesslin.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*********************************************************************
 *
 * Skeleton of KApplication taken from:
 * http://techbase.kde.org/Development/Tutorials/First_program
 *
 * Written by Shlomi Fish ( http://www.shlomifish.org/ ) while disclaiming
 * all rights on the modifications.
 *
 */
#include <QX11Info>
#include <NETRootInfo>
#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <KMessageBox>
#include <KLocale>

int main(int argc, char * argv[])
{
    KAboutData aboutData(
                         // The program name used internally.
                         "tutorial1",
                         // The message catalog name
                         // If null, program name is used instead.
                         0,
                         // A displayable program name string.
                         ki18n("Tutorial 1"),
                         // The program version string.
                         "1.0",
                         // Short description of what the app does.
                         ki18n("Displays a KMessageBox popup"),
                         // The license this code is released under
                         KAboutData::License_GPL,
                         // Copyright Statement
                         ki18n("(c) 2007"),
                         // Optional text shown in the About box.
                         // Can contain any information desired.
                         ki18n("Some text..."),
                         // The program homepage string.
                         "http://example.com/",
                         // The bug report email address
                         "submit@bugs.kde.org");
 
    KCmdLineArgs::init( argc, argv, &aboutData );
    KCmdLineOptions options;
    options.add("!+command");

    KCmdLineArgs::addCmdLineOptions( options );

    KApplication app;

    KCmdLineArgs * parsedArgs = KCmdLineArgs::parsedArgs();

    QStringList desktopNames;

    for (int i = 0; i < parsedArgs->count() ; i++)
    {
        desktopNames << parsedArgs->arg(i);
    }

    int numDesktops = desktopNames.count();

#ifdef Q_WS_X11
    NETRootInfo info( QX11Info::display(),
        NET::NumberOfDesktops | NET::DesktopNames );
    // set desktop names
    for( int i = 1; i <= numDesktops; i++ )
    {
        QString desktopName = desktopNames[ i -1 ];
        info.setDesktopName( i, desktopName.toUtf8());
        info.activate();
    }
    // set number of desktops
    info.setNumberOfDesktops( numDesktops );
    info.activate();

    XSync(QX11Info::display(), false);
#endif

    return 0;
}

Hope you like it. The reason I've written it is because the names of the virtual desktops got reset for me in KDE 4 and I didn't want to set them times and again.

Syndicated 2011-06-16 07:56:15 from shlomif

שבוע הספר האלטרנטיבי באוניברסיטת תל-אביב

באוניברסיטת תל אביב הולך להתקיים ביום שלישי, ה-31 במאי (השבוע) שבוע הספר האלטרנטיבי (ראו את הדף של האירוע בפייסבוק ) באוניברסיטת תל אביב, ממול לבניין גילמן, הפקולטה למדעי הרוח, בין השעות 09:30 בבוקר ל-16:30 אחה"צ.

אם לקרוא מהתיאור:

ביום שלישי ה31/5 אנחנו עורכים יום אלטרנטיבי לקראת שבוע הספר בשיתוף האגודה והחוג לספרות באוניברסיטה מ10:00 בוקר ועד אחר הצהריים יוצבו דוכני ספרים של יוצרים עצמאים ויוצרים חדשים, "ספר תמורת ספר" הביאו ספר שעשה את שלו והחליפו אותו באחר או לחלופין לתרומה על הדשא מול גילמן תעמוד במה פתוחה לקריאת שירה ופרוזה קצרה שתפעל בהפסקות הלימודים בואו לקרוא ולהקריא, לשמוע ולהשמיע, לדפדף וליהנות מחווית ספרות שלא תמצאו בדוכני שבוע ספר רגילים ותהיה בירה בזול

רשימה חלקית של משתתפות ומשתתפים: כתב העת מעין, מתי שמואלוף, בסטרבות, כתב העת אלת המסטיק, סמטאות ספרים, המשורר עידו הראל, כתב העת אלמנך, מגזין איי-5, אביגיל פקלמן, גולדמונד ספרים.

מבטיחים הפתעות נוספות!

גם אני מתכוון לבוא לשם כדי להקריא מהסיפורים שלי (ובכללם נובילות, תסריטים, אמרות שפר, ומובאות), שחלקם התחלתי לתרגם לעברית לקראת האירוע. אני מקווה לראות גם אתכם שם.

קריאה נעימה!

Syndicated 2011-05-28 21:03:30 from shlomif

Translations of Stories to Hebrew (For the Alternative Book Week)

Here are the recent updates for Shlomi Fish's Homepage. Most of these are ongoing translations of various English stories to Hebrew. These were done in preparation for the “Alternative Book Week” in Tel Aviv University (see its Facebook page). It is going to take place on Tuesday, 31 May 2011 between 09:30 and 16:30 in Tel Aviv University, next to the Gilman building, the department of Humanities. Several independent writers are going to read from their prose there, including me. You are welcome to attend, listen to the participating writers, and provide us with welcome support and input. Hope to see you there!

There's a new joke in the aphorisms and quotes page:

In Soviet Russia, cats own you. No, wait! Cats own you everywhere.

I posted the first part of my Selena Mandrake - The Slayer screenplay to its place in FanFiction.net where one can rate it and post comments. There is some new text in the ideas for the future document.

I started preparing a Hebrew translation of my Humanity - The Movie screenplay.

There are two new fortunes in fortune collection.

We now mirror the web parody “Uncomfortable Questions: Was the Death Star Attack an Inside Job?” (via Websurdity and Debunking 911).

The various screenplays in English in the stories section now have better capitalisation, punctuation and grammar, and their visual style was also improved. There are also many grammatical corrections to the story The Human Hacking Field Guide and a lot of progress was made in its Hebrew translation.

The XML-Grammar-Fiction page now contains coverage of Screenplay-Text and Screenplay-XML, as well as examples for the grammars and their outputs.

Enjoy!

Syndicated 2011-05-27 15:29:44 from shlomif

Tech Tip: Displaying Hebrew/Arabic/etc. Right-aligned in Kate

By default, the Kate editor of the KDE project displays Hebrew/Arabic text etc. left aligned in the window instead of aligned to the right edge of the window even after the "Enhanced support for languages written right-to-left" is checked in the qtconfig applet. To remedy this you need to enable in the settings “Appearance → General → Dynamic Word Wrap” and after doing that the mostly Hebrew lines will be properly aligned.

(I don't know why the “Dynamic Word Wrap” should affect that, and it took a long time to realise this was the problem due to the web searches and the KDE developers on IRC being ignorant, but that seems to be the solution to this.)

Syndicated 2011-05-18 02:42:18 from shlomif

“Selena Mandrake” and Improvements to Other Stories

Here is what's new on Shlomi Fish's Homepage since the last update. It's been a month and there are many major changes.

A new work-in-progress screenplay titled Selena Mandrake - The Slayer can be found in the stories section. This is a supernatural dramedie, that is a parody/tribute/spin-off of Buffy the Vampire Slayer and some other works of fiction and non-fiction. I have a pretty good roadmap for what I'd like to write there so I hope to get the first draft soon.

Selena: This reminds me. I really should update my Mandriva system at home. I have not in several days, now. And to think I originally had my friend Aaron install Mandrake Linux for me, because I thought it was cool that it was called the same as my last name.

Jessica: Heh, maybe you should become Selena Mandriva now.

Jonathan: Or Selena Mageia.

[ Selena bursts out laughing. ]

Selena: That sounds like a name of a vampire slayer… or a vampire.

Jonathan: Or both.

Selena: Yeah. I told you about how I was nicknamed "Puffy" and then "Buffy" during one summer camp, right?

Jessica: Yes, many times.

Selena: Yeah, I found it amusing at the time. For a while afterwards, I insisted that my friends call me "Buffy" until I realised it was silly, and reverted back to "Selena".

I've also began translating the second version of my novella The Human Hacking Field Guide to Hebrew. One can find the ongoing Hebrew translation and its Fiction-Text source, under CC-by-sa - same licence as the English original. In addition, I can say that the story is being translated to Modern Standard Arabic in the OpenDocument format by an Egyptian enthusiast of open-source software, and more translations will be welcome.

In addition to all that, version 7 of my novella The Enemy and How I Helped to Fight It, in Hebrew and English, with many improvements is now available online. I especially would like to thank Miriam Erez Translations for providing some copy-editing work.

Moreover, I explicitly marked many of the the works of fiction on the site, the essays, and the software resources with a Creative Commons licence. Share and enjoy!

There are some style tweaks, I've documented the use of the EvilPHish emblem, and there are some new fortune cookies:

  • rindolf: Mithaldu: I think most contemporary T.V. kinda sucks.
  • rindolf: Mithaldu: it seems very phony.
  • Mithaldu: rindolf: same, i haven't actually switched on my tv in five years
  • rindolf: I prefer a YouTube video of a kitten riding on a turtle.
  • rindolf: Mithaldu: :-)
  • Mithaldu: :D
  • rindolf: Mithaldu: yes.
  • rindolf: Mithaldu: there is one, BTW.
  • Mithaldu: oh i do not doubt that
  • rindolf: Don't know if it's authentic.
  • rindolf: I saw a friendly cat today, and he purred after I scratched his head.
  • rindolf: I like Friendly cats.
  • rindolf: I think lolcats are very subversive.
  • rindolf: Or were.
  • rindolf: "Ceiling cat is watching you"
  • Mithaldu: cats are the definition of subversive
  • Mithaldu: they adopt you
  • rindolf: Mithaldu: heh.
  • rindolf: In Soviet Russia, cats own you!
  • rindolf: In Soviet Russia, cats are your master!
  • rindolf: Well, in Soviet Russia and everywhere.
  • kent\n: rindolf: you got it backwards.
  • kent\n: In soviet russia, cats are actually your pets.
  • Mithaldu: hahaha
  • rindolf: kent\n: heh.
  • rindolf: kent\n++
  • rindolf: I feel better now.
  • rindolf: Empowered but calm.
  • rindolf: Thanks to the cats jokes.
  • Mithaldu: world healing by cat jokes
  • rindolf: Hopefully, I'll sleep well tonight.
  • kent\n: Next on the agenda. DICK JOKES!
  • rindolf: Mithaldu: cats are good for healing I think.
  • rindolf: kent\n: NO!!!!!
  • kent\n: ( don't worry, this won't take long )
  • Mithaldu: yes, as long as you do not own cables
  • Mithaldu: kent\n: you mean it won't BE very long
  • Mithaldu: hurr hurr
  • rindolf: kent\n: I've got 99 problems but kent\n ain't one.
  • kent\n: ;)

Hope you enjoy the new stuff on the site and stay tuned for more.

Syndicated 2011-05-13 18:19:16 from shlomif

Film Review of Just Go with It

I'm taking a break from the usual political and philosophical posts in this blog and posting a review of a film I recently saw and enjoyed.

Just Go with It Poster.jpg

Just Go With It is a Hollywood film starring Adam Sandler and Jennifer Aniston. I give this film a rating of 9/10, and can highly recommend it.

General Impression from the Movie

The movie is very funny, insightful, entertaining, and in general - highly recommended. The acting is great, there are many beautiful scenes in the movie (of Hawaii, etc.), there are many sexy elements to the film, and it is a very fun and thought-provoking movie. I'll discuss the various messages of the movie, and the mental and emotional experience it has given me, only after I discuss its bad aspects. This is done in order to get them out of the way.

The Bad Aspects of the Movie

The first bad aspect of the movie is that the plot is very shopworn and expected. I could figure out most of what will happen throughout the movie till its end after reading the beginning of the wikipedia summary of the plot. Despite all that, there are still many unexpected elements and plot devices and many funny moments.

Another bad aspect is that the film gets unrealistic very quickly as the characters build more and more absurd lies, and the character of Palmer (played by Brooklyn Decker), continues to believe them, while it is obvious that any woman of her intelligence and general ability to sense when someone is lying (or much below that), would have become extremely suspicious, if not completely emotional about it, a short time into the movie. In addition, I think that the screenplay writer went to too great lengths to make us believe that Palmer was indeed more stupid and immature than she actually first appeared to be (like the fact that Seventeen was her favourite magazine, or that she was permanently scarred from the fact that 'N Sync broke up). I believe that the film could have given a more well-rounded message if it still presented her as an intelligent and well-rounded woman.

We are also required to suspend disbelief for Adam Sandler's character of a Don Juan, who uses a wedding ring to lie to women and get them into bed. A real life character of such would have become impotent a long time ago, but I suppose it is a necessary plot device and is one of the film's "known bugs".

Moreover, the film consciously sports many common myths, fashions and hyperboles in 90s or sometimes even more modern American culture, up to the extent of nausea. These stereotypes add to the spice of the movie, and are done with good humour, but they may be a little too much.

As a result, I've been feeling that this film may be too polished and a prime example of the Hollywood successful film assembly line, which has become a bit too overdone lately. I really think the film's script writers and director, could have used less of such stereotypes, while still experiencing the emotional and intellectual process that the film-makers wanted us to go through.

Insights from the Movie

Decker's character is initially portrayed as intelligent and sexy, both physically and verbally, and a worthy competition to Jennifer Aniston. As the movie progresses we think of her more as naïve, good-hearted and childish, which causes the audience to more pity her than be attracted to her, so the movie makers were successful.

On the other hand, Jennifer Aniston convincingly portrays the single-parent mother, who is surprised to discover she can still be very chic, intelligent, inventive, and most importantly - sexy, until the audience is genuinely more attracted to her instead of her younger and extremely physically attractive competition.

Adam Sandler is very convincing as a modern day pygmalion who gradually turns his unattractive underling (Aniston), whom he believes is not his type, into a woman whom he finds extremely attractive up to falling in love with.

I think one of the main hidden messages of the movie, despite a common belief to the contrary, was that sexy women (and men, naturally) are not incompetent, and "sleazy", but quite the opposite - that their sexiness is indicative of a great competency and confidence and maybe even being a noble and honest person.

Naturally, the movie calls upon women in their 30s and 40s (or even older), including those that have children from prior marriages, to acknowledge the fact that they still have sex appeal, and that they can compete for the attention of attractive men.

One thing I'm ambivalent about the film is its implication that it is hard to bridge the gap between the members of Generation X and younger people. While being born in 1977 (and have turned 34 in 2011), which may be the edge-of-generation-X, and that I feel a lot of cultural dissonance between people of younger age (who mostly have not watched The Princess Bride, care little about such popular 90's T.V. shows as Friends, Star Trek: The Next Generation (and "Deep Space Nine"), Buffy the Vampire Slayer, and are not excited about many hits of the late 80s and 90s), I still feel that we can find a common ground. I also don't rule out that mature men who are romantically involved with much younger women (or vice versa), expect them to behave in an immature way, and it becomes a self-fulfilling prophecy. Meaning, older women are not necessarily more mature, but when in a relationship with them, they are expected to behave more maturely, due to the Halo effect.

Jennifer Aniston

I was out of touch with gossip about Jennifer Aniston for a while (though I have naturally heard about Brad Pitt breaking up with her), so I was pleasantly surprised to read on her wikipedia page that after her breakout role in the Television show Friends, she ended up becoming a very successful Film and Television actress, breaking the "Friends" curse. However, while in the film in question, she portrays a middle-aged woman, who has two children whom she cares about a lot and ends up at a dead end career, in real life, Aniston had a successful career, and a string of bad relationships (although she is the godmother of her associate and friend's Courtney Cox-Arquette daughter). It's hard to know whether Aniston wanted to have children within a steady relationship, or that she put her career first, but it's still highly probable that making Just Go With It was painful for her.

After talking about that with my mother, we agreed that there are many factors that inhibit a successful Hollywood actress from raising a family (among them needing to travel a lot on demand, the prying eyes of the media, including a lot of jealousy and envy, and an otherwise very busy schedule), so naturally a decision not to have children is a valid approach.

Adam Sandler

I don't recall seeing any previous films with Sandler in them, but he appears to be a fine comedian and a drama actor, and I'd like to catch up with some of his previous motion pictures, when I have some spare time.

Brooklyn Decker

This is Decker's first appearance in a film, and she was obviously chosen for it, because of her good looks and her youth. Nevertheless, she appears to play very well, within the purposely unrealistic behavioural constraints that her character exhibits in the plot. As a model, with some natural aspirations for becoming an actress, Decker could have done much worse than this film, and I'm looking forward to see her in future films.

The Children

The Child actors who were picked up for playing the two children in the film give a convincing and funny performance.

Verdict

I enjoyed watching Just Go With It, and it apparently has many deeper meanings, both positive and negative. You should probably watch it.

Syndicated 2011-05-09 17:22:02 from shlomif

We are the Qs of the Q continuum!

We are Qs! Q is us! We have formed the Q continuum. And soon everyone will be happy, shining, benevolent, unstoppable, Qs. And the New Age will finally begin, succeeding Modernism and post-Modernism.

So who are Qs? Read my screenplay Star Trek: "We, the Living Dead", to find out. But here's a short summary:

Animals

Animals live their life without choice. They are self-controlling and alive, but have no choice. Humans are not like that. Human are conscious, they are sentient, they have choice.

Mortals

Mortals are everyday humans. They can be very bad or very good or somewhere between that. But they are still mortals and their psyche may die, living them as dead human beings. As people with psyche death, they become resentful and less and less capable, and more envious and eventually bad, mystical people, who are parasites and try to suck life out of the living. Sometimes they succeed, but often they don't because mortals and especially vampires (see below) know better.

Vampires

Vampires are mortals who have determined to stay young forever (at least in their heart), to keep a live and healthy psyche and to enjoy life, more and more no matter what happens to them.

Rings

Rings are supreme vampires. Not only are they vampires, but they are very influential and turn all those around them into vampires, and can see through irrationality and illogicality . Even if they are not violent, they cannot lose and cannot be stopped.

There were nine (9) most notable rings in human history:

  1. Moses - The Jew
  2. Cyrus - The Liberator
  3. Aristotle - The Objective
  4. Muhammad - The Messenger
  5. Saladin - The Just
  6. Gutenberg - The Printer
  7. Galileo - The Scientist
  8. George Washington - The Liberal
  9. Ayn Rand - The Objectivist

Ayn Rand's legacy was that many people who have read her words (or better, learned from her deeds) became rings themselves. So there was no use in keeping track of more. But what's missing?

Q - The Invisible

Q is the one ring of the lord of darkness (= the Q continuum). He is “The Invisible”, the most legendary vampire profile of all who was believed that they would never be found signifying the invisible hand that guides history. Even if he's fictional and imaginary, he is alive - he lives in our hearts and minds. Q's legacy was that he jumpstarted what is now one of the universe's most advanced civilisations, while still not being omnipotent (which is a logical and mathematical impossibility), and still starting off as a mortal. What made Q extraordinary, is that he was a ring who expected anyone else to be rings. Not only that, but he expected everyone else to become Qs and thus multiply exponentially.

Q is not someone else. We don't have to go afar to seek the holy grail. Q is us. We are Q. We will ascend from mortals to vampires to rings to Qs. We will be invincible, and no one will be able to stop us.

Who are the Qs of today?

Peter Ustinov (a great ring of the past) once said that “If Botticelli were alive today he'd be working for Vogue”. Back when he said that, Vogue was more subversive and avant-garde and was considered a culture of low taste. Nowadays, Vogue is more established, and many intelligent women and men will boast writing for it in their bio or resume. The same goes for Playboy, BTW.

So if an artist as avantgarde and as controversial as Ayn Rand lived today who will she be? No, she will not be on Flickr, which is great as it is, is not too subversive. She will likely be someone like Christina Grimmie. Ms. Grimmie may only be a vampirella, but if she is determined, she too can become a ring and a Q. And so can you.

What will the Qs be like?

The male and female Qs will be young-at-heart-if-not-in-body. They will be attractive and sexy. They will be very diverse. They will share their knowledge, and give away all their "secrets". They will be admired and lusted. They will be able to have any true parasite (many men, but especially many women) admit this is the case for them by using simple Socratic irony. While not being supermen and superwomen, they will be resourceful and the anti-thesis of needy, and will try to never blame external factors in their own problems.

The enemies of the Qs will be no match for their power, for they possess power far greater than firearms. They will possess the power of The Slayer, Milady de Winter, a formidable vampirella, who was sexy, competent and independent and only portrayed as an non-realistic criminal mastermind, who could "slay" all the truly evil people she encountered ("slay" - not kill). Moreover, they will possess the power of The Dispeller, the fictional Selena Mandrake, an Anglo-American female girl in her senior year in high school today, who was the first one who was able to slay The Slayer, because she did not slay individual people, but actually focused on dispelling their prejudices and superstitions. The Dispeller is one step ahead of The Slayer like The Liberator was one step ahead of The Free, and the Liberal was one step ahead of Liberator. (And who knows what the future will bring.).

Despite being Qs, they will never look down on other vampires or even other mortals, because they know that they don't know, and that dismissing a less experienced, or less talented, person, as someone who cannot teach them anything is something only "fools" do, and an ad-hominem. Some very inexperienced people can beat highly experienced ones at their own game, because that's how nature is.

Finally, the Qs will not aim to be "original", they will aim to be good. They will restore the age-long tradition of fan art (which is prevalent in such ancient books as the Hebrew Bible and the Greek writings), and it will be considered a first-class citizen, in comparison to having 100% original artworks.

The Qs of today will be the winners, and together they will start the New Age, an exciting age where people are sexy, hard-working-and-have-a-lot-of-fun-in-the-process; are masters of their own future and destiny; know that the worst way to waste your time is to never waste it; and that regardless of how complicated and comprehensive your rules are, you must always use logic and reason, that justice is defined as practised by Saladin and Gandhi, not the simplistic "eye for an eye, tooth for the tooth" of the Jewish Torah; and they will never blindly follow orders, because that is what ultimately caused all the great human-made calamities in the past, including World War II.

It will be a great age.

Sincerely yours, -- Shlomi Fish, The Eternal Jew, The Neo-Tech Invisible, and a Q.

Syndicated 2011-04-30 13:26:04 from shlomif

Tech Tip: Caching the XHTML DTDs

Some days ago I needed to speed up validating an XHTML document (the module XHTML 1.1) based on the DTDs provided by the W3C, so I sought a way to cache them on the disk. Problem is I could not effectively download them from the W3C because their download speed was throttled.

Eventually, the Gentoo Wiki's “W3C Validator HOWTO” document provided some insights. Just download http://validator.w3.org/sgml-lib.tar.gz, unpack it, cd to its directory and do export XML_CATALOG_FILES="$(pwd)/catalog.xml" to set the XML catalogue appropriately. It's too bad I could not find a Mandriva Linux package for that.

Anyway, after I did that, the validation and other XML processing worked nicely.

Syndicated 2011-04-16 20:09:58 from shlomif

Your Programming Language Must Suck

All languages of the world suck. If you require people to declare variables (like in Pascal, C, Scheme or Perl 5 with strict), then people will tell you they like variables to spring up upon first use. Without variable declarations, then you get various weird side-effects of the implicit scoping. If you use curly braces for scoping, then you'll have to type more and there's more clutter. With indentation-based scoping (like in Python), you'll find it hard to introduce multiple-expression lambdas.

Rob Pike and Paul Graham hated object oriented programming (OOP) and so they didn't introduce it in their "Go" and "Arc" languages, well after OOP has become mainstream. And guess what? Many people, including me, think that OOP is still a good thing (and no, in my opinion, C++ did not do OOP very well) and so gave up on Arc quickly and did not look closely at Go.

Dynamically typed languages (like Perl 5, Python, Ruby, or Lisp) possibly suffer from many subtle errors ; Statically typed languages (like Haskell) are less expressive and it seems that about one third of the language design papers published on Lambda the Ultimate are about various funky extensions to the Haskell type system to allow for better expressiveness.

Purely functional languages have no assignment and most people find them harder, in part because the world around us has a lot of state, and they also need to do funky compiler tricks to make you feel like you don't need assignment. Non-functional languages have side-effects and so are prone to many errors.

If you have goto or goto-like statements (such as exceptions or Perl 5's "last LABEL;" (more like "break" in C) or "next LABEL;"), then you encourage code to not be factored correctly. If you don't have such stuff, then programmers will hate you for having to go through many hoops to write quick-and-dirty code.

Perl 5 has a dedicated regular expression syntax which is treated magically by the parser. PHP and Java use strings for them, and require weird escaping and backslashing rules to interpolate the sub-regexes inside them. And if you incorporate a first-order syntax for regular expressions, then people will want similar first-order syntaxes for XPath, for XML (like some recent versions of Visual Basic .NET have), and for all other grammars you may need to embed.

Finally, many people absolutely hate all the clutter created by the leading sigils of Perl 5 (the "$", "@", etc.), and similar languages, but they allow for much better backward compatibility, facilitate the so-called "interpolation" (= embedding inside strings), and also give some important visual cues when skimming code (even without syntax highlighting).

You are damned either way, whatever you do.

I could have gone on, but I think I got my message across. Thing is, when designing a programming language, you need to make a lot of design decisions - what to include, what to exclude, etc. However, many of these design decisions are not 100% advantages or 100% disadvantages, but in fact trade-offs, and many people will question them and be unhappy. You can never please all the people. So make a design decision, and stick with it, and realise that your programming language must suck, but that it may suck less for some tasks, or for some people.

Joel on Software refers to the book Small Things Considered: Why There Is No Perfect Design, which I have not read, but I've concluded it holds for programming language design. Moreover, even when writing code, we run into many trade-offs. For example, if our methods or functions are very short, then they are easier to over-ride and re-use, but in that case the code would be harder to follow and will perform worse than code with longer methods.

Syndicated 2011-04-13 09:53:56 from shlomif

628 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!