Hi all,
I intend to (ab)use my authority as a teacher to enlighten unsuspecting
students
about Clojure.
On the plus side, I may give them insights that they did not even know
they needed. On the minus side, I cannot expect (all of) them to be
curious about Clojure.
Hence, I want to make a "demand driven" introduction.
My goal is to :
1. identify what novelties Clojure brings to the table to Java developers
- homoiconicity : macros
- syntaxing sugar (e.g ->, cond)
- programming paradigms as libraries
- core.logic
- core.async
- dynamic typing
- simple concurrency handling :
- immutable data structures
- ref
- atoms
- STM
- open-ended dynamic dispatching (protocols, namespaced vs. monkey
patching)
- multiple dispatching (multimethods)
- maps instead of classes (no privacy & accessors needed thx to
dynamic typing and immutable data) and composable libraries instead
of frameworks.
2. For as many of those features as possible, I'd like to find a minimal
use case that will be :
- genuinely interesting (so that they find it beliveable that they
might actually want to solve a similar problem)
- complex (if possible hard!) / tedious to solve in Java (I will provide
the Java code)
- simple (if possible easy) to solve in Clojure.
The idea being that they would conclude from :
1. that the want to solve these problems
2. that Java won't help them much but Clojure would help them a lot
(+ 1. 2.) →
3. They want to learn Clojure ! ☺
I'd be most grateful for any help, either to complete/amend my list in 1.,
or to provide ideas for 2.
Best Regards,
B.
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.