Hacker News new | past | comments | ask | show | jobs | submit login

Here's a contrived example to demonstrate the value of sigils:

    /* in version x of SFL (Sigil-Free Language) */

    school = get_school("Saint Fred's School For Girls");
    class = get_class(school, "Agricultural Studies", 12);
    yield = get_agricultural_yield(class, "Turnips", 2011);
    printf("The Year 12 Ag Studies class produced %d turnips in 2011", yield);
Now we try upgrading to version x+1 of SFL, which adds object-orientation and concurrency (it was a BIG upgrade!). Now three of the lines in that four-line program contain errors, because "class" and "yield" are no longer valid variable names, having been turned into keywords.

In a language with sigils, that's no problem. It also makes it easier (therefore faster) for syntax highlighting to spot where variables are used, without needing a full dictionary and an exact version number - that makes a difference for me as an Emacs user especially.




While true, it's a very minor deal because the scenario you've described:

- Happens very rarely - Is trivially solved, even in a large codebase


You could just look at that as an argument against keywords, rather than for sigils, ala Smalltalk and Lisp.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: