overview 'what is'  about Dylan what is Dylan? A imperative, functional and OOP language Short definition of imperative, functional and OOP languages with Dylan examples  Functional view The usefulness of functional programming should Dylan show up in this list of functional languages? learning the Functional Programming paradigma first? Please define lambda expression OOP view Dylan's Generic Function system what is Dylan's different world view? What is out standing about Dylan? what is Dylan? A language list description. What is Dylan? Carefully designed What is Dylan future? Hopes Worries 'what is not' about Dylan Dylan is not Lisp Dylan is not designed for "Hello world" apps How to help newcomers to the language get the right "mental models? What is the core feature of Dylan? Object-oriented function calls, not objects paradigma shift side notes Dylan language design principles provide abstraction facilities as well as performance readability before writability flexibility versus deliverability syntax Designed for large blocks of code with really-long-variable-names Designed with infix syntax to  reach the mainstream Break basic things up into libraries IDE Is Dylan complex? What metal leaps are required from variables-in-c to variables-in-dylan; from pointer reference to object reference Am I a backwards thinker, with my brain stuck in C mode? How to do the mental gear shift single-dispatch OOP to  multi method dispatch? What are the key aspects during the design of Dylan? What is your background? For Scheme Programmers For LISP Programmer things I like most about Dylan the balance no reason for programmers to know how any particular implementation ability to pass methods, functions, and classes around as first class objects OS Versions  libraries are packaged as DLL's Programm Control multi-value binds How are local multi-value-bind's done in Common Lisp and Dylan? How are multi-value-bind's done? How are multi-values return by a method? how to capture an unknown  number of multiple return values into a sequence? concept binding to do Binding and Scoping Is not allowed to use one name for different bindings scoping constructs In Dylan you can't create bindings at runtime module binding what's the inverse of 'define variable ' and 'define method' ? local binding every time you see the word 'let' a NEW lexical context created why is 'let' allowed to float around? Dylan's interpretation of let assignment cannot assign a new value to an existing binding (variable) with let reassigning a new value to the variable doesn't affect the old value in any way. let creates and initializes new local bindings within the scope of the smallest enclosing implicit body. variables Think of variables as labels syntax Talking about let using "=" while assignment uses ":=" The syntax for global and local definitions libraries and modules design Why always contains the first line in the library definition file "Module: dylan-user"? Why aren't the "define module" declarations nested within the "define library" ones? So you can easily have two libraries which include the same module. Would a type signature of methods at the module level be an improvement? why modules don't nest. goals abstraction How is the separation of interface and implementation done? Via a set of "define generic" and "define abstract class" forms and . Separating abstraction level via rename at the module level namespace mangement What are the scopes of namespaces How does a coder prevent scoping clashes? How does a client handle scoping clashes? What are the impacts of the module system? Puts the namespace naming into the consumer's hand No access to the namespace required usage http://groups.google.de/groups?hl=de&lr=&th=6fca2ecc1ec0344d&seekm=B588B090.6E12%ptw@callitrope.com#link10 What are the roles of modules and the definition clauses that modules use? export Why should I put \ in front of macro and operator exports? Modules are the unit of interface, libraries are the unit of *compilation* Contracting generic function represent "contracts" or "interfaces" types and classes types some types are not classes in Dylan general Does Dylan have a type protocoll? http://www.google.de/groups?hl=de&lr=&th=440946a44ad110e3&rnum=40 instantiable types What types are instantiable? Who can create new instantiable types? limited types What supports the limited operation for creating new types? Collection subtyping issue due to limited types strongly typed, but not statically typed in Dylan the types are all first-order: you can't declare higher-order types classes and slots Exploring the difference between the Dylan model and other OO models. Classes are not namespaces Objects no longer encapsulate the message How are instance variables accessed Features of Classes abstract or concrete Why using open abstract and sealed concrete in one class hierarchy? Abstract and instantiable Class are separate concepts in Dylan primary or free How to use the primary declaration effectively? sealed or open What's a sealed class Why would a type be sealed but not primary? instantiable or uninstantiable Creating Classes Can you mutate an object from one class to another? creating classes at runtime What is the language mechanism for specifying the default concrete class for an abstract class? Initialize Classes Introspecting Classes about slots general Can one add slots to a class a runtime? How to generate object methods with the same name? or Remember that slots in Dylan are really just generic functions dot syntax How works a slot reference? what you should know Slot allocation How to implement the each-subclass slot allocation? http://www.google.de/groups?hl=de&lr=&th=395c387db9889660&seekm=bruce-5F3AFF.13135628062000@news.akl.ihug.co.nz#link10 How to control slot-accessor collisions? By adequately specific names and by use of the module system.  Is there a way to access "class allocated" slots without having an instance Slot initialization How defaulting #"default" to a value? Slot init value Slot inheritance http://www.google.de/groups?hl=de&lr=&th=88feb915508ad187&seekm=30F586EC.16ED@ccm.jf.intel.com#link10 Specializing Slots virtual slots What the practical use for a virtual slot singleton How is singleton dispatch implemented efficiently? http://groups.google.de/groups?q=author:naha@harlequin.co.uk&hl=de&lr=&selm=comp.lang.dylan.3.0.5.32.19990405103655.00825a40@mailhost.harlequin.com&rnum=2 Functions general Generic Functions What does generic mean ? What's a generic function? Where can I read up more of generic function implementation? what generic function gets defined by default as I define methods A generic function can act on different (required) objects, but still using different number of optional parameters pragmatic return type constraints of sub-domains of generic functions Methods Closure Discussing the DRM closure example other examples making two function: fetcher and incrementer using closures and map value of closures Closures form the backbone the exception-handling system and the macro expansion system. In languages without closures ... MultiDispatch Which papers inform about it? Intro The Basic: single-receiver languages and multi-method languages. The dispatching mechanism for C++ people Why multimethods and how they would work in C++ Multimethods as a C++ extension for Java people http://www.objectfaq.com/oofaq2/DynamicDispatch.htm http://www.objectfaq.com/oofaq2/DynInh.htm multimethods removes much of the need for parameterized types The mechanism Dylan's dispatching system is type based. Dylan's dispatch system is inheritance based: next-method The method precedence rules are non-lexicographic Pragmatic -- -how to use The rules of thumb for multimethods and modules Have you to define (+ <int> <real>) and (+ <real> <int>) separately? Parameter Lists Specializing Required Parameters Convient syntax for singleton specializers Keyword Parameters What are keyword parameters? Specialised keyword parameters naming convention ! operations immutable syntax vs. ! convention Thinking artificial examples that help to break the idea that methods are tied to classes built-in-function coercion function "as" higher-order functions apply Why it is defined the way it is curry reduce map Collection general Discussing the remove contract http://www.google.de/groups?hl=de&lr=&th=6fe7fe48dbe883f&rnum=50 pragmatic Prefer collection iteration to indexing How to use ! operations. Example: reverse! Annotations to collection specification required http://groups.google.de/group/comp.lang.dylan/browse_frm/thread/204e7572b6954184/d37ac0a5a86c8471? iteration http://www.google.de/groups?hl=de&lr=&th=d1765a0058fb2ce8&rnum=18 limited collection types modify an existing API to use limited collections instead of "regular" collections, you'll break clients. built-in collection classes table general How to write your own <table> implementation changing comparator for <table>? table protocol Changed the table-protocol? What are hash states? Any examples of custom hash functions sequence list What does the term "dotted list" mean? How to find a specific item in a collection array vector limited <stretchy-vector> How to subclass vector Using "#[]" versus "vector()" http://groups.google.de/groups?hl=de&lr=&threadm=ChnGOIKWgScqpTAuBG104OHQ22Xa@4ax.com&rnum=47&prev=/groups?q=author:jason%40harlequin.co.uk&start=40&hl=de&lr=&selm=ChnGOIKWgScqpTAuBG104OHQ22Xa%404ax.com&rnum=47 Why are sets excluded from Dylan Built-In Classes? dynamic http://groups.google.de/groups?hl=de&lr=&th=6fe96e30762a654a&seekm=200103272323.SAA13573@life.ai.mit.edu#link10 dynamic loading How to use the ability to dynamically load code from a DLL at run time http://www.google.de/groups?hl=de&lr=&th=fc2b2600c6498f28&seekm=comp.lang.dylan.199811220326.DAA22553@holly.cam.harlequin.co.uk#link11 dynamic code generating dynamic persistency dynamic typing dynamic languages dynamic language exceptions intro view on the mechanism The practical side of things step-by-step explanation general http://www.gwydiondylan.org/books/dpg/db_316.html#heading316-0 http://www.smalltalkchronicles.com/Archives/Technical/technical.html handling multiple exceptions Comparing Dylan's Condition Handling to the one of LISP restart Restarts in Dylan the neat part: you can retrofit <restart>s onto an existing API types violating the contract of a function violating the type constraint on a slot or variable accessing an uninitialized slot sealed domains overview What's the  goal? What's the rationale for method sealing via the "seal? Why can a sealed class can have open subclasses? The specific proposal gives an answer. The nice things about sealing declarations Define Seal Domain Implied Restrictions on Method Definitions sealed domain pragmatic Can you import classes/generic functions from another library and then seal them? Is "sealed" a local property of a given class rather or a global property of the entire class hierarchy? macros Why macros What you can expect form the macro system syntactic burden of lambdas The ultimate abstraction mechanism Dylan macros are hygenic What are hygenic macros How to do a non-hygenic reference Why couldn't a parser expand a macro as soon as it saw the ending token? http://groups.google.de/groups?q=Gabor+Greif+group:comp.lang.dylan&hl=de&lr=&as_drrb=b&as_mind=12&as_minm=5&as_miny=1996&as_maxd=1&as_maxm=3&as_maxy=2005&selm=1010106175939.c5a7b0e.3e80160a.ASIP6.3.1.130019@62.128.22.10&rnum=9 pattern variable coercion Dylan macros maintain referential transparency pragmatic Every implementor has to break a lot of new ground every time designing macros What a competent macro designer must know How to design macros Guidelines for writing good macros rule format The function format: function macro example increment! swaping the content of two places Returning the least of its arguments. The statement format: statement macro example with-open-file with-stack-list to indicate that a list has dynamic extent with-stack-vector to indicate that a vector has dynamic extent fluid-binding that isn't thread-safe destructuring-let simulates CL's 'destructuring-bind' The definition format: defining macro example functional-variable named-color Hairy one that defines a class with slots and some methods usage Resource management via with-xxx macros http://www.google.de/groups?hl=de&lr=&threadm=jh0rktcobb40r58t0ru6lvm8fu7jh6l8cs@4ax.com&rnum=4&prev=/groups?q=group:comp.lang.dylan+author:Trenouth&hl=de&lr=&as_drrb=b&as_mind=12&as_minm=7&as_miny=1981&as_maxd=29&as_maxm=7&as_maxy=2001&selm=jh0rktcobb40r58t0ru6lvm8fu7jh6l8cs%404ax.com&rnum=4D Who is an expert todo Semantic of "?=" tutorial facilities of the macro syste, http://people.csail.mit.edu/gregs/info-dylan-archive-html-2000/threads.html#00623 http://www.gwydiondylan.org/books/dpg/db_329.html#heading329-0 metaobject protocoll (MOP) Multi Inheritance (MI) What MI is in C++ and What MI is in Dylan (CLOS or whatever) benefit example code for an user interface toolkit Performance What feature support optimization? Is there any Dylan implementation with a GC good enough for *soft* real-time use for benchmarking use concrete types  What kind of effect does generic dispatch have on performance? introspection What when i want to know what methods my class supports? iteration via for macro syntax opinions Why the Dylan syntax is different to C/C++ and Algol syntax opinions: an impression What is often misunderstood about the use of 'begin' examples if http://groups.google.de/groups?hl=de&lr=&th=4b02fa995ce1846a&rnum=11 Changing the syntax is possible style of object model unit and mixin mixin layers Traits: mixin inheritance Mixins using multiple inheritance parallel