Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Smalltalk definitely belongs on the list, it's the only one that takes "object-oriented" to its logical conclusion (dispatch can replace control structures). I'd suggest omitting Elisp and ObjC—they're both lackluster imitations of better languages that will do far more for the way you think, unless you happen to be developing for their captive platform (Emacs and iOS, respectively).


> Smalltalk definitely belongs on the list, it's the only one that takes "object-oriented" to its logical conclusion (dispatch can replace control structures).

i believe io does this as well.


Unless I misunderstand what you mean, don't a host of languages do this? io, ruby, javascript?


Ruby & Javascript have syntax defined in their parsers for control structures. for eg:

  # Ruby
  if someThing() 
    doThis()
  else
    doThisInstead()
  end

  # Javascript/Perl/etc
  if (someThing()) { doThis() }
  else { doThisInstead() }
Whereas Io & Smalltalk requires no new syntax and uses objects & messages:

  # Io
  if(someThing, doThis, doThisInstead)

  # Io like Ruby,etc
  if(something) then(doThis) else(doThisInstead)

  # Io like Smalltalk
  someThing ifTrue(doThis) ifFalse(doThisInstead) 
  
  # Smaltalk
  someThing ifTrue: [doThis] ifFalse: [doThisInstead].


As an aside, Haskell wouldn't need syntax for something like `if', but has it as a convenience. There's no syntax for looping, you can do that with higher-order functions.


I'm pretty sure it use to have Smalltalk on there when I last looked. Its been updated a bit so must of got removed :(




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

Search: