IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Programming Time
More powerful languages win hugely as programming time is much more than typing. The conceptual load is much lower in the more powerful (and simpler) language. Example:

Assume list of integral, we want a subset of list with only non-negative values. In Java:


Iterator it = list.iterator();
List newList = new ArrayList();
while(it.hasNext())
{
Integer i = (Integer) it.next();
if(i.intValue() >= 0)
{
newList.add(i);
}
}


The Smalltalk equivalent is:


| newList |

newList := list collect: [:x | x >= 0].


The conceptual load in the Java version is an order of magnitude higher as I have to deal with setting up a loop, determining a good end condition, the duality of objects and primitives, the allocation of the new list container including the selection of an appropriate implementation, setting up the test that determines inclusion, doing the cast from Object down to Integer. There are a *lot* of things to get wrong in the Java version. In fact, the Java version will go terribly wrong if there is some other kind of number representation in the list, like a Long. Maybe I need to go back and check for that case.

The average hunter gatherer works 20 hours a week.
The average farmer works 40 hours a week.
The average programmer works 60 hours a week.
What the hell are we thinking?
New "Any sufficiently complex program reinvents the DB"

How about

select * from myList where x > 0

Or XBase:

use myList
set filter to x > 0

Smalltalk fans seem to delight in reinventing the database. However, the drawback of ST databases is that it is hard to share the data with other languages in real-time and you have to roll-your-own services like backups, contention management, etc.
________________
oop.ismad.com
New Proper abstraction
Makes the same action work on both a database or in memory data store. So you use the same actions on both. So on one hand I sort of agree with you - set operations are lacking from most collections libraries and this is sad since they are so useful in databases - OTOH, I view the db itself as implementation detail - maybe the data is persistent in a database or maybe its some stuff I happen to have in memory and I don't need to save. I don't care. So long as I have powerful set operations that work on the tuples in the collections.
The average hunter gatherer works 20 hours a week.
The average farmer works 40 hours a week.
The average programmer works 60 hours a week.
What the hell are we thinking?
New Persistence is not the main issue
(* OTOH, I view the db itself as implementation detail - maybe the data is persistent in a database or maybe its some stuff I happen to have in memory and I don't need to save. I don't care. So long as I have powerful set operations that work on the tuples in the collections. *)

Databases are about managing collections, period. Whether you save them or not is another matter. (Vendor support for virtual or temp tables varies. That is not my fault.)

Anyhow, as long as you don't distinguish between "types" of collections, then we are pretty much saying the same thing. Whether we store the collection or keep it in a temporary buffer only (such as RAM) is also an "implementation detail". One should not have to alter their collection interface if they decide to "save" a collection for whatever reason, and visa versa (beyond setting an attribute or two).

     Fascinating article about the power of LISP - (bluke) - (16)
         Nice article. - (static)
         Paul Graham writes a lot of good Lisp advocacy - (ben_tilly)
         A nice "read". My favorite quote: - (a6l6e6x) - (1)
             But as always, suite tool to the job - (tonytib)
         Interesting article - (JayMehaffey) - (9)
             That reminds me. - (static)
             Re: code size and programming power is stunningly spurious - (a6l6e6x) - (7)
                 You, uh, missed the point - (JayMehaffey) - (6)
                     And *you* missed the point - (ben_tilly)
                     Programming Time - (tuberculosis) - (3)
                         "Any sufficiently complex program reinvents the DB" - (tablizer) - (2)
                             Proper abstraction - (tuberculosis) - (1)
                                 Persistence is not the main issue - (tablizer)
                     Organic software engineering? - (tablizer)
         non-justified example - (tablizer) - (1)
             Clarification - (tablizer)

Do you know where your towel is?
96 ms