FROM : Marco Scheurer
DATE : Thu Apr 07 17:55:22 2005
On Apr 7, 2005, at 4:55 PM, Marcel Weiher wrote:
>
> On 7 Apr 2005, at 14:11, Charlton Wilbur wrote:
>
>> 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 )
>>>
>>> [...]
>> 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!
>
> Hmm...you did notice that performance was only 1 of the 4 points I
> mentioned? My main point is about expressing intent clearly.
And you forgot (or considered it part of 1.):
5. The compiler is likely to warn you if employee does not respond to
name.
>> 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.
>
> While I agree that KVC and bindings can provide benefits, I am not
> convinced that embedding a string-based mini-language is the best way
> to obtain those benefits. It certainly has significant drawbacks.
I like bindings. Being able to hookup as easily a control or preference
panel, not having to write all these synchronization methods between
your model and your view is really neat. And in some case the result is
likely to be more optimized than what you would care to do by hand (for
instance redrawing a single cell in a table view when one attribute of
one object in a collection changes vs using reloadData).
But I've never been a fan of KVC per se. In fact I consider using
[employee valueForKey:@"name"] in one's code an ugly fault of style.
Marco Scheurer
Sen:te, Lausanne, Switzerland http://www.sente.ch
DATE : Thu Apr 07 17:55:22 2005
On Apr 7, 2005, at 4:55 PM, Marcel Weiher wrote:
>
> On 7 Apr 2005, at 14:11, Charlton Wilbur wrote:
>
>> 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 )
>>>
>>> [...]
>> 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!
>
> Hmm...you did notice that performance was only 1 of the 4 points I
> mentioned? My main point is about expressing intent clearly.
And you forgot (or considered it part of 1.):
5. The compiler is likely to warn you if employee does not respond to
name.
>> 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.
>
> While I agree that KVC and bindings can provide benefits, I am not
> convinced that embedding a string-based mini-language is the best way
> to obtain those benefits. It certainly has significant drawbacks.
I like bindings. Being able to hookup as easily a control or preference
panel, not having to write all these synchronization methods between
your model and your view is really neat. And in some case the result is
likely to be more optimized than what you would care to do by hand (for
instance redrawing a single cell in a table view when one attribute of
one object in a collection changes vs using reloadData).
But I've never been a fan of KVC per se. In fact I consider using
[employee valueForKey:@"name"] in one's code an ugly fault of style.
Marco Scheurer
Sen:te, Lausanne, Switzerland http://www.sente.ch
| 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

