Language syntax's, performance, PHP, Ruby, Java and who's better? Ahhhh!

by Sam Griffith


9 Comments

will
2006-11-11 06:52:36
no mention of APL/J? bah! wimps.
almost
2006-11-11 07:45:24
I almost agree 100%, but "they're interface and delegation happy"? To be fair, interface-itis is a necessary consequence of static typing, and delegation is pretty extensive in Smalltalk too.
Sam Griffith
2006-11-11 08:40:19
Your right that Smalltalk uses delegation as well and so does Lisp, but because they're not strongly typed and they support higher level functionality at their cores, you don't end up with interface-itis. Some argue that's a problem, I haven't seen it on the systems I've worked on and several were quite large.


Additionally unlike COM and Java's use of the interface and delegation patterns, Smalltalk and Lisp use the pattern sparingly, not as their central design strategy. This again is due to higher-level cababilities of the languages themselves.


With Smalltalk, Lisp and other more dynamic languages you tend to find much greater use of other patterns and in some cases your likely not to see certain patterns used at all, because they are built into the language. Peter Norvig did a paper on Common Lisp and the GOF patterns and some just weren't needed or were less powerful than the language itself. Look here Design Patterns in Dynamic Programming for more information.


One interesting language that is a mix of all the things I've mentioned is Objective-C and the new Objective-C 2.0. It has GC, properties, partial Protocols, Categories, etc. It makes use of delegate and interfaces (called Protocols) but it uses interfaces sparingly for situations where they want to control the dynamic behavior more. Interfaces(Protocols) do not explode all over every program. It is quite an effective use and quite a nice mix of choosing when to apply the feature verses just using dynamic behavior (duck quacking, message-not-understood, etc.)


Thanks for the comments

nachoo
2006-11-12 00:44:11
True words. That is a great and MATURE answer to all this "language X is better than language Y" stuff that you see everywhere nowadays.


Java opened a lot of eyes and had partwise a hard time doing so. Now we Java developers should be careful not to do what Java fought against in its beginning.

Chris Maki
2006-11-13 06:43:15
Hi Sam


As I was reading your post I couldn't help but think of NeXT back in the early 90's. EOF did what the JPA/Hibernate/etc. is doing today, but that was in 1994. As much as I love Java there are so many great technologies that Java should have borrowed from that it didn't. I think exposure to wide variety of languages and environments is critical for any software engineer. Great post.

trama
2007-04-11 06:49:43
Ich erklare meinen Freunden uber diese Seite. Interessieren!
trama
2007-04-11 09:34:17
Ich erklare meinen Freunden uber diese Seite. Interessieren!
imparare
2007-04-15 00:08:02
Interesting comments.. :D
imparare
2007-04-15 01:39:00
Interesting comments.. :D