lucy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Lucy Wiki] Update of "MeetUp" by MarvinHumphrey
Date Sat, 04 Apr 2015 00:13:57 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lucy Wiki" for change notification.

The "MeetUp" page has been changed by MarvinHumphrey:

Various improvements.

  Time: 10:00 AM Pacific / 5:00 PM GMT
- Agenda:
+ Location: Lucy's dedicated Google Hangout: [[]].
+ To participate, log into Google Plus, then [[|join the videochat]].
+ === Agenda ===
   1.  Introductions (10 minutes)
   2.  Interfaces    (30 minutes)
   3.  Open discussion / more about interfaces (20 minutes)
+ === Format ===
+ This MeetUp will take the form of a Lucy Book Club discussion: participants will answer
questions prepared by other participants on the theme.  Feel free to bring your own questions!
  General discussion questions for interfaces:
@@ -25, +33 @@

   1.  Should Lucy's Query class be an interface instead of an abstract class?  How about
Analyzer, Searcher, Matcher, Collector, Compiler, IndexReader, DataReader, DataWriter, Lexicon,
Posting, Folder, FileHandle, Lock, and SortExternal -- all of which are abstract classes?
   1.  There are a handful of Lucy classes which are designed to be subclassed by users but
are not abstract: QueryParser, IndexManager, Schema, FieldType, and Highlighter.  Why is it
challenging to change these to interfaces?
   1.  How can we change the Clownfish callback mechanism to be based on interfaces instead
of classes?
-  1.  If we use runtime "duck typing" to establish interface compliance, 
   1.  Should Obj#Hash_Sum be moved to a "Hasher" interface?  Should Obj#Clone be moved to
a "Cloner" interface?  Should Obj have any methods at all?
  Bonus questions:
-  1.  What are co-variant return types?
+  1.  What are covariant return types?
   1.  Why is duck typing easier using hashtable-based method dispatch than vtable-based method
+ Optional reading materials:
+  * [[|Mixins]]
+  * [[|Default methods]]

View raw message