FROM : Charlton Wilbur
DATE : Thu Apr 07 15:11:54 2005
On Apr 7, 2005, at 5:59 AM, Marcel Weiher wrote:
> Sure does!
>
> result = [employee valueForKey:@"name"];
> vs.
> result = [employee name];
>
> The second is:
>
> 1. Expressed directly in the target language (Occam's Razor,
> anyone?)
> 2. More compact
> 3. Easier to read
> 4. About an order of magnitude faster ( about 8 times, to be a bit
> more precise )
>
> An order of magnitude here, an order of magnitude there, and soon
> enough you're talking about real performance pigs...
If you wrote everything in C instead of Objective-C, you'd lose all the
overhead of method dispatch. How much longer does it take to dispatch
a method call instead of just calling a function? If you wrote the
whole thing in one long continuous stream of PowerPC assembly, it would
be still faster, because you could hand-optimize the assembly and get
it to run REALLY quickly! Of course, this is not a sign that either is
better -- programmers get significant benefits from using C instead of
assembly, and from using Objective-C instead of C, and from using
bindings instead of straight method calls.
In the case of bindings (as well as in the two examples I gave),
bindings are not a pure *replacement* for method calls, they're an
*alternative* to it that makes some things a lot easier at the cost of
performance. They're not meant to be a replacement for routine
accessor functions (though you can certainly use them for that!) but as
a way of doing a particular sort of introspection that happens to be
very useful for writing generic UI classes. The cases you'd use
bindings in are *not* the cases where a simple accessor would be
appropriate; they're the cases where using bindings instead of simple
accessors allows one to eliminate 10 lines of code here, 10 lines of
code there.
All you've really managed to demonstrate is that bindings do not make a
good replacement for simple accessor calls. We knew that already.
Charlton
--
Charlton Wilbur
<email_removed>
<email_removed>
<email_removed>
DATE : Thu Apr 07 15:11:54 2005
On Apr 7, 2005, at 5:59 AM, Marcel Weiher wrote:
> Sure does!
>
> result = [employee valueForKey:@"name"];
> vs.
> result = [employee name];
>
> The second is:
>
> 1. Expressed directly in the target language (Occam's Razor,
> anyone?)
> 2. More compact
> 3. Easier to read
> 4. About an order of magnitude faster ( about 8 times, to be a bit
> more precise )
>
> An order of magnitude here, an order of magnitude there, and soon
> enough you're talking about real performance pigs...
If you wrote everything in C instead of Objective-C, you'd lose all the
overhead of method dispatch. How much longer does it take to dispatch
a method call instead of just calling a function? If you wrote the
whole thing in one long continuous stream of PowerPC assembly, it would
be still faster, because you could hand-optimize the assembly and get
it to run REALLY quickly! Of course, this is not a sign that either is
better -- programmers get significant benefits from using C instead of
assembly, and from using Objective-C instead of C, and from using
bindings instead of straight method calls.
In the case of bindings (as well as in the two examples I gave),
bindings are not a pure *replacement* for method calls, they're an
*alternative* to it that makes some things a lot easier at the cost of
performance. They're not meant to be a replacement for routine
accessor functions (though you can certainly use them for that!) but as
a way of doing a particular sort of introspection that happens to be
very useful for writing generic UI classes. The cases you'd use
bindings in are *not* the cases where a simple accessor would be
appropriate; they're the cases where using bindings instead of simple
accessors allows one to eliminate 10 lines of code here, 10 lines of
code there.
All you've really managed to demonstrate is that bindings do not make a
good replacement for simple accessor calls. We knew that already.
Charlton
--
Charlton Wilbur
<email_removed>
<email_removed>
<email_removed>
| Related mails | Author | Date |
|---|---|---|
| mmalcolm crawford | Apr 5, 17:33 | |
| Philip Mötteli | Apr 5, 23:49 | |
| Guy English | Apr 6, 00:29 | |
| Scott Stevenson | Apr 6, 01:14 | |
| Dustin Voss | Apr 6, 02:18 | |
| James Duncan David… | Apr 6, 02:27 | |
| Jake Macmullin | Apr 6, 02:31 | |
| John C. Randolph | Apr 6, 02:55 | |
| James Duncan David… | Apr 6, 03:01 | |
| Ondra Cada | Apr 6, 04:04 | |
| Will Mason | Apr 6, 04:48 | |
| Rogelio M.Serrano… | Apr 6, 06:05 | |
| Rogelio M.Serrano… | Apr 6, 06:06 | |
| mmalcolm crawford | Apr 6, 07:46 | |
| Paul Szego | Apr 6, 08:22 | |
| mmalcolm crawford | Apr 6, 09:52 | |
| ?????Andre? | Apr 6, 09:55 | |
| Ondra Cada | Apr 6, 12:21 | |
| oplus | Apr 6, 12:32 | |
| Mont Rothstein | Apr 6, 12:36 | |
| Philip Mötteli | Apr 6, 14:47 | |
| Scott Stevenson | Apr 6, 18:00 | |
| mmalcolm crawford | Apr 6, 18:39 | |
| Nat! | Apr 6, 22:35 | |
| mmalcolm crawford | Apr 6, 23:47 | |
| Timothy Reaves | Apr 7, 00:25 | |
| mmalcolm crawford | Apr 7, 00:50 | |
| Shawn Erickson | Apr 7, 01:05 | |
| James Duncan David… | Apr 7, 01:28 | |
| Todd Blanchard | Apr 7, 06:37 | |
| Todd Blanchard | Apr 7, 06:41 | |
| Scott Stevenson | Apr 7, 06:59 | |
| Philip Mötteli | Apr 7, 08:32 | |
| Marcel Weiher | Apr 7, 11:59 | |
| Charlton Wilbur | Apr 7, 15:11 | |
| Mike Ferris | Apr 7, 16:53 | |
| Marcel Weiher | Apr 7, 16:55 | |
| Marco Scheurer | Apr 7, 17:55 | |
| Marcel Weiher | Apr 7, 19:13 | |
| Scott Stevenson | Apr 7, 19:55 | |
| Marcel Weiher | Apr 7, 21:03 | |
| Mike R. Manzano | Apr 7, 21:21 | |
| Timothy Reaves | Apr 7, 22:03 | |
| Evan DiBiase | Apr 7, 22:28 | |
| Marcel Weiher | Apr 7, 22:35 | |
| mmalcolm crawford | Apr 7, 23:05 | |
| ttempel | Apr 8, 01:50 | |
| Paul Szego | Apr 8, 11:50 | |
| Johnny Deadman | Apr 8, 14:10 | |
| Philippe Mougin | Apr 8, 16:52 | |
| Shawn Erickson | Apr 8, 17:07 | |
| Shawn Erickson | Apr 8, 17:17 | |
| Ralph Scheuer | Apr 8, 17:28 | |
| Ralph Scheuer | Apr 8, 17:32 | |
| John Brownlow | Apr 8, 17:47 | |
| Charlton Wilbur | Apr 8, 18:34 | |
| Scott Stevenson | Apr 8, 18:43 | |
| Ralph Scheuer | Apr 8, 19:03 | |
| Philippe Mougin | Apr 8, 20:37 | |
| Scott Ellsworth | Apr 8, 21:46 | |
| Scott Ellsworth | Apr 8, 21:48 | |
| Evan DiBiase | Apr 8, 22:16 | |
| mmalcolm crawford | Apr 8, 22:30 | |
| mmalcolm crawford | Apr 8, 23:13 | |
| Marcel Weiher | Apr 9, 02:20 | |
| Marcel Weiher | Apr 9, 02:46 | |
| Scott Ellsworth | Apr 9, 09:39 | |
| Marcel Weiher | Apr 9, 09:44 | |
| Byron Ellis | Apr 9, 10:37 | |
| Marcel Weiher | Apr 9, 14:03 | |
| Charlton Wilbur | Apr 9, 16:01 | |
| ?????Andre? | Apr 9, 18:08 | |
| Scott Stevenson | Apr 9, 18:24 | |
| Scott Stevenson | Apr 9, 18:27 | |
| Marcel Weiher | Apr 10, 00:06 | |
| Marcel Weiher | Apr 10, 00:16 | |
| Marcel Weiher | Apr 10, 00:38 | |
| ?????Andre? | Apr 10, 01:03 | |
| Charlton Wilbur | Apr 10, 01:13 | |
| mmalcolm crawford | Apr 10, 01:53 | |
| Scott Stevenson | Apr 10, 01:58 | |
| Todd Blanchard | Apr 10, 08:32 | |
| mmalcolm crawford | Apr 10, 08:52 | |
| mmalcolm crawford | Apr 10, 09:25 | |
| PA | Apr 10, 12:08 | |
| mmalcolm crawford | Apr 30, 10:18 |






Cocoa mail archive

