You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@devicemap.apache.org by "eberhard speer jr." <se...@ducis.net> on 2014/07/30 10:26:20 UTC

Taking Stock

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Like Reza I think it is crucial to release *useful* DeviceMapClients
and APIs as soon as possible.
It is obvious that each version should take full advantage of the
facilities, and follow the standards and patterns of, their respective
frameworks.

However I think it is *essential* that all versions can be traced back
to a 'common' core that, if not line-by-line [like the Java and C#],
is functionally 100% identical *and* ideally shares the same DeviceMap
core features :

- - *zero* dependencies,
- - clever simplicity,
- - awesome speed
- - and a 'neutral' minimal code-base [>400 loc !],

so that implementing a custom client or API, or even replicating it in
another language, is as clear, clean and unencumbered as possible.[1]

I think all clients and APIs, aimed at specific frameworks or
use-cases, should start by inheriting their language specific 'core',
guaranteeing 'all of the above', across the board -- one could even
consider making the 'core' DeviceMapClient abstract/MustInherit [2] --
and then add 'wrapping' to make it a useful, 'standard' API.

I realize each may want to or have to implement this
inheritance/dependency in ways that are standard or accepted in their
corner of the world, no problem, the main point is that this 'common
core' remains available 'as is' in all versions.

And that is what made me go : "hold your horses" when I saw the Java
core acquiring factories and new functions.
Let's build our factories and do our strong-signing [.Net mumbo-jumbo]
etc, in useful implementations and keep a common 'neutral' minimal base.

I'm sure we can agree on 'useful implementations' by considering
use-cases, as Reza suggested, and then agreeing on the API functions
those imply, independent from how they will be implemented in each
framework/language.

Thoughts ?

esjr


[1] I think the 1.0 'releases' recently voted on are exactly that and
should stay like that -- at least for now and baring bug fixes :
- - loader takes repository URI
- - URI scheme tells loader how to acquire data stream
- - data stream is parsed and loaded
- - Map : a UserAgent is a string 'Map'-ed to a collection of key-value
pairs based on the loaded resources

[2] In that case, one could argue for a name change.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJT2KwsAAoJEOxywXcFLKYc7uUH/iarnOjVvUovKnOhiUCkTmzo
1USftMDPH7+KxK6/i79P63kZWfR+iMiHWUsE3+oHscTyE2RuXVXOro2mKAxgjbSy
5rDnoAQJF5q9T+T3rTQeRGv9RddaLIJlEig2cPxg+EgQf22RMhcfD5L0bne7h6BB
BTSvBhxUr/9MNq6jfYfvb9WbyB1KHTlii92Eho3c/TcBOeOh7XAivfuxIHOiVkvc
EXGBNOVUXW+/AQQHqG4Z2kEx2n+U80w6Z2rT/uFGamQ07v6uQdlKv5dblnwmhFgw
ImCntaN6mnXdHsz9MhOVb3ff/WFruk4O4qfHsU5c0qhkx3BPGIQRqZeD5hKoKEw=
=J+iG
-----END PGP SIGNATURE-----