Professional PHP

PHP Programming, Web Development, PHP Advocacy and PHP Best Practices.
« Improved Error Messages in PHP 5
Working with PHP 5 in Mac OS X 10.5 (Leopard) »

Keywords and Language Simplicity

October 11th, 2007

Well, I like programming language comparisons, so how could I resist this chart (via) promoting the simplicity of the io language by pointing out how few keywords it has. The interesting thing about this is that Java and PHP are tied on this measure of simplicity with 53 keywords. Perhaps that reflects Java’s heritage as a simplification of C++ (63 keywords) and PHP’s heritage as an amplification of C (37 keywords) toward a specific purpose? As usual, Perl is the poster child for language complexity. Ruby does well with 40 keywords. But, before the Ruby fans get too uppity about the simplicity of their language, they should contemplate the cat walked across the keyboard while I was holding down the shift key predefined variables that they inherited from Perl.

categories PHP
tags language-comparison, perl, PHP, programming-language, ruby

Related Posts

  • Extreme Simplicity
  • The Paradox of Choice
  • Zend PHP Framework not a rumor
  • Sometimes Plain Text is Best
  • James Gosling on PHP
You can leave a response, or trackback from your own site.

11 Responses to “Keywords and Language Simplicity”

  1. #1 Stefan responds...
    October 11th, 2007 at 3:10 pm

    The number of keywords is by no means a good metric for the simplicity of programming languages. PHP just has 53 keywords, fine, but what about the more than 5.000 built-in functions with their inconsistent names? Perl’s sort statement does the same as all the sort, ksort, rsort, asort, ursort functions in PHP. And where is the deeper distinction between a keyword and a built-in function? There is none. So this metric makes no sense.

  2. #2 Stas Malyshev responds...
    October 11th, 2007 at 3:26 pm

    I guess the Whitespace language, having just 3 keywords - space, tab and newline - is one of the most simple ones in existance. Brainfuck, having 8 keywords, comes close and both are so much simpler than PHP ;)

  3. PHPDeveloper.org trackbacked on October 12th, 2007 at 7:23 am
  4. developercast.com » Jeff Moore’s Blog: Keywords and Language Simplicity pingbacked on October 12th, 2007 at 10:24 am
  5. #5 Jagan Nath responds...
    October 26th, 2007 at 10:29 am

    I ma very much agree with Stas Malyshev as per my knowledge in this subject

  6. #6 PHP Encoder responds...
    February 28th, 2008 at 10:54 am

    What about assembler? Does it seems to be a simple language? :)

  7. #7 minikperi responds...
    March 28th, 2008 at 5:21 am

    i agree with Stefan . Java libriry have tousands of ready to use functions and classes. if you look for simlicity check prolog (logical prog. lang.) and haskell (functional prog. lang.).

  8. #8 Handy responds...
    April 10th, 2008 at 3:44 am

    Maybe it is the other way round. If you have many predefined and built-in functions it is easier to work with the language.

  9. #9 Programmer responds...
    August 26th, 2008 at 1:29 am

    @Stefan

    If by “built in function” you mean “a primitive” then yes there is most certainly a difference. A keyword is something defined in the language they may work under different rules then the language normally does.

    A primitive is just an ordinary function that happens to be implemented in another language as an optimization (e.g. we had a function for doing PGP encryption but it ran too slow so we coded it in C and provide a primitive for it).

  10. #10 sergio responds...
    November 17th, 2008 at 9:00 am

    Here is (one in a million) an example of a PHP builtin function: apache_request_headers(). And what we see there - a function, that is available only, if we are running PHP as an apache module. In another case - we need to parse _SERVER variable. Its a really weird way to work with HTTP in a language, that is made to work in a WEB environment. Even having a special function - PHP doesn’t make it simple ;)

  11. #11 per Rechnung bestellen responds...
    November 24th, 2008 at 12:32 pm

    Another example is the “SimpleXML” class…really simple functionality but not simple to use…:-(

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

code: use [code=php][/code].

Comment Preview

  • Search

  • Subscribe

    Subscribe All Posts
    Subscribe All Comments
    Subscribe All Bookmarks
    Subscribe with Bloglines Subscribe with My Yahoo Add to netvibes Subscribe in NewsGator Online Add to Google
  • Share This

  • Categories (Home)

    • Agile Methods (14)
    • Mac (14)
    • Misc (17)
    • Open Source (14)
    • PHP (97)
    • Software Design (29)
    • Usability (14)
    • WACT (7)
    • Web Design (20)
  • Recent Comments

    • goto in PHP  45
      wawa, Riccardo Tacconi, Steve [...]
    • Building a culture of objects in PHP  6
      MagicCleanerU, hafizan, [...]
    • Working with PHP 5 in Mac OS X 10.5 (Leopard)  125
      ad, aankun, Hutch [...]
    • Comparing PHP with other languages  22
      ?????, ?y??, Olivier Lalonde [...]
    • WordPress BBCode Plugin  23
      AgeRLeloglalK, smolenskiy, wow [...]
    • Looking Towards the Cloud  15
      Robin, Mohammad, tsst [...]
    • Code Coverage, Feedback and Open Source  3
      rwer, sdfsdf, mayur
    • Firefox Extensions for Web Developers  16
      Salman, Markus, Mitch [...]
    • php | tek Wrapup  6
      Livetek Software, PHP Guru, Scott [...]
    • OOP is Mature, not Dead  15
      Fernando, Chabrell Igan, deltawing [...]
    • nofollow and comment spam  4
      Mozzgggos, sss, Nataly Marshak [...]
  • Pages

    • Tags
  • Recent Posts

    • Looking Towards the Cloud
    • Holiday Tech Support
    • Closures are coming to PHP
    • php | tek Wrapup
    • php | tek 2008
    • Sarah Snow Stever
    • Benchmarking PHP’s Magic Methods
    • The Endpoints of the Scale of Stupidity on Video
    • Working with PHP 5 in Mac OS X 10.5 (Leopard)
    • Keywords and Language Simplicity
  • Archives

    • 2009: Mar Apr May
    • 2008: May
    • 2007: Jan Feb Mar Apr May Sep Oct Nov
    • 2006: Jan Feb Mar Apr May Jun Jul Oct Nov Dec
    • 2005: Jan Feb Mar Apr May Sep Oct Nov Dec
    • 2004: Apr May Jun Jul Aug Sep Oct Nov
  • Menu

    • Register
    • Log in