Talk:Singly-linked list/Traversal: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
No edit summary
Line 10: Line 10:


From the point of view of a programmer in another language, this might seem silly -- if you can not efficiently update a singly linked list, how can you scale up and deal with a lot of updates? However, a J programmer might treat a large collection of updates as a collection (all updates which need to be dealt with in this unit of time), and apply them all simultaneously. Here, you would need to architect your program differently than you would for doing lots of updates independently -- and a singly linked list is probably the wrong data structure for that task.
From the point of view of a programmer in another language, this might seem silly -- if you can not efficiently update a singly linked list, how can you scale up and deal with a lot of updates? However, a J programmer might treat a large collection of updates as a collection (all updates which need to be dealt with in this unit of time), and apply them all simultaneously. Here, you would need to architect your program differently than you would for doing lots of updates independently -- and a singly linked list is probably the wrong data structure for that task.

More generally (and this applies to all languages), good programmers push back when they get specifications which require specific technologies instead of useful results. They might wind up using those technologies anyways (and legacy systems may often dictate the technologies used). But technology belongs in the implementation, or related places such as in informal working notes, and does not belong in the specification.


[[User:Rdm|Rdm]] 12:52, 1 September 2009 (UTC)
[[User:Rdm|Rdm]] 12:52, 1 September 2009 (UTC)

Revision as of 12:57, 1 September 2009

J implementation

The J implementation presented here is useless, from a J programmer's point of view, since it does not construct a meaningful result and because J programmers already have faster and more concise tools for dealing with sequences.

In other words:

  • The task set here does not specify a meaningful result.
  • I can imagine several different kinds of meaningful results which would fit this task.
  • The underlying concept (a singly linked list) is really a language-specific optimization of a more general concept (sequences) and this "optimization" is, at best, irrelevant for J.

From the point of view of a programmer in another language, this might seem silly -- if you can not efficiently update a singly linked list, how can you scale up and deal with a lot of updates? However, a J programmer might treat a large collection of updates as a collection (all updates which need to be dealt with in this unit of time), and apply them all simultaneously. Here, you would need to architect your program differently than you would for doing lots of updates independently -- and a singly linked list is probably the wrong data structure for that task.

More generally (and this applies to all languages), good programmers push back when they get specifications which require specific technologies instead of useful results. They might wind up using those technologies anyways (and legacy systems may often dictate the technologies used). But technology belongs in the implementation, or related places such as in informal working notes, and does not belong in the specification.

Rdm 12:52, 1 September 2009 (UTC)