Hi timofonic, Thanks for your interest in JMAP. A lot of the discussion is now happening on the IETF working group. I find it hard to make a specific reply to your suggestions below because it is, as you noted, very verbose! It's pretty much a list of email clients and technologies in no particular order. I think a good first approach is to work closely with a couple of high quality implementations of both clients and servers and make sure we have a solid set of tests that ensure protocol compliance. I expect JMAP to be a lot closer to its final shape after IETF100 in November. We should have a very complete implementation in Cyrus IMAPd by about then, as well a production-grade service running pure JMAP at FastMail. It's hard to encourage others to use JMAP "for real" while the protocol itself is in flux - it's still very much at the experimental stage as a standard. Regards,
Bron. On Mon, 28 Aug 2017, at 20:17, timofonic timofonic wrote: > Hello. > > I'm a frustrated user of email, currently using GMail's webmail but > want to use a local email client. The issue is that most email clients > can't work reliably and in usable ways with my 900K+ email accounts.> > Excuse me for being too verbose, unordered mess and probably being > wrong in many aspects, including descriptions or suggestions. I just > want to open a debate and see the possitilities of the ecosystem > behind JMAP, nothing else.> > What's the current status about JMAP? > > Are there efforts to make clients support it? From my biased POV, I > would like to see: Thunderbird ( > https://bugzilla.mozilla.org/show_bug.cgi?id=1322991 ), Evolution, > KMail, Claws Mail, Zimbra Desktop (webapp), NeoMutt (WIP fork > available https://github.com/robn/neomutt/tree/jmap ), Alpine ( > http://repo.or.cz/alpine.git ), Geary, Apple Mail, Opera Mail, Balsa, > Citadel/UX, Elm ME+ ( http://www.elmme-mailer.org ), GNUMail, Gnus > (emacs), IBM Notes, IMP, Inky, Mailpile, Pegasus Mail, SquirrelMail, > Sylpheed, K-9 Mail ( see > https://github.com/k9mail/k-9/wiki/Google-Summer-of-Code-2017 ), The > Bat!, Trojitá, YAM ( https://github.com/jens-maus/yam ), Unibox ( > https://www.uniboxapp.com ), Mail Pilot, Airmail ( > http://airmailapp.com ), MailMate ( https://freron.com ), Postbox ( > https://freron.com ), Polymail, Nylas Mail, Spark, Canary Mail, > Mulberry, Mailsmith, Foxmail.> > > My (possibly wrong) point of view about how to make JMAP more popular > and supported:> > - Provide not only updated specs (as Vulkan does, for example), but > also reference implementations (extremely robust, extremely > reusable, extremely portable, extremely up-to-date, extremely > resource efficient) for a wide variety of programming languages > (such as CommonMark, Rosettacode.org code, Protobuf, > https://raft.github.io/#implementations , smaller projects like > https://github.com/bengsfort/8-puzzle-solutions > https://github.com/biotool-paper/biotool > https://github.com/kad-ecoli/pdb2fasta > https://github.com/apauley/HollingBerries > https://github.com/troeger/corba-example): Maybe you could > automatize the task by using something like Quark ( > https://github.com/datawire/quark ) but supporting more programming > languages (Web Services Description Language? Web Application > Description Language? OpenAPI Specification? Open Data Protocol? > GData? Resource Description Framework? JSON-LD? JSON-WSP? CWM > (Notation3? N-Quads?)? Open Service Interface Definitions? Messaging > Open Service Interface Definition? Protocol Buffers? Apache Thrift? > RESTful Service Description Language? Web IDL?> ** What about *Advanced > Message Queuing Protocol? Blocks Extensible > Exchange Protocol? Distributed Data Management Architecture? > Distributed Relational Database Architecture? ***IPFS? Message Queue > Telemetry Transport? Constrained Application Protocol? Web Application > Messaging Protocol? MessagePack? BSON CBOR? JSONB? Smile? UBJSON? > Protocol Buffers? ZeroMQ? Nanomsg? Enduro/X? Gearman?**> **** > * Ada: A structured, statically typed, imperative, wide-spectrum, and > object-oriented high-level computer programming language, extended > from Pascal and other languages. It has built-in language support > for design-by-contract, extremely strong typing, explicit > concurrency, offering tasks, synchronous message passing, protected > objects, and non-determinism. Ada improves code safety and > maintainability by using the compiler to find errors in favor of > runtime errors. Ada is an international standard; the current > version (known as Ada 2012) is defined by ISO/IEC 8652:2012. It's > the "military language" because it was designed by contract by the > DoD, but it's used in many other safety-critical systems (avionics > and air traffic control, commercial rockets such as the Ariane 4 and > 5, satellites and other space systems, railway transport and > banking). SPARK is based on Ada too.> * Brainf$ck and Malbolge: I'm joking > here! But esoteric programming > languages would provide fun by many twisted programmers and maybe > testing the protocol in weird ways.> * C: A general-purpose, imperative > computer programming language, > supporting structured programming, lexical variable scope and > recursion, static type system. Used in embedded devices, operating > systems, supercomputers and more.> * C++: A general-purpose programming > language. It has imperative, object- > oriented and generic programming features, with facilities for low- > level memory mani. The quite known evolution of C to become an > object oriented language. Widely used too, from embedded to > supercomputers.> * C♯: Microsoft's competitor to Java. It's a strong > typing, multi- > paradigm (imperative, declarative, functional, generic, object- > oriented (class-based), and component-oriented) programming > language. It's widely used in Microsoft software, web, enterprise > and others.> * Go: Google's free and open source programming language. It's > compiled (and got GCC support), statically typed language with > garbage collection, limited structural typing, memory safety > features and CSP-style concurrent programming. It's becoming quite > popular too (13th at TIOBE).> * Haskell: A standardized, general-purpose > purely functional > programming language, with non-strict semantics and strong static > typing. It's widely used in academia and also used in industry > (Facebook uses it). **> * Java: A concurrent, class-based, object-oriented > programming > language. A popular language in enterprise and mobile due to > Android. There also embedded versions of it.> ** What about RabbitMQ? > Google's Guava? Spring AMQ? > > * JavaScript: An high-level, dynamic, weakly typed, object-based, multi- > paradigm ( event-driven, functional, and imperative (including object- > oriented and prototype-based)), and interpreted programming > language. The language of web, but now used as a RAD one too.> * Julia: A > dynamic, high level programming language. It's effective > for general-purpose programming, web use and specification language. > It has a type system with parametric polymorphism and types in a > fully dynamic programming language and multiple dispatch as its core > programming paradigm. It allows concurrent, parallel and distributed > computing, and direct calling of C and Fortran libraries without > glue code. It's designed with supercomputing in mind.> * Lua: A > lightweight, dynamically typed, multi-paradigm programming > language designed primarily for embedded systems and clients. It's > widely used by game programmers as a scripting language.> * Objective-C: > Apple's general-purpose, object-oriented programming > language. It adds Smalltalk-style messaging to the C programming > language.> * OCaml: It's multi-paradigm: imperative, functional, > object-oriented. > It's an evolution of Caml. It features static type system, type > inference, parametric polymorphism, tail recursion, pattern > matching, first class lexical closures, functors (parametric > modules), exception handling, and incremental generational automatic > garbage collection.It has a large standard library. Despite it's > strong usage in academia, it's also used by many important projects > ( Flow, Infer, and Pfff by Facebook. Haxe compiler. Xen Cloud > Platform, Citrix Systems' XenServer, Unison).> * Perl: An high-level, > general-purpose, interpreted, dynamic > programming language. Aren't there one now? :)> * PHP: Used in lots of web > apps, many of them being web email clients.> * Python: A widely used (top 5 > at TIOBE) high-level, general-purpose, > multiparadigm (object-oriented, imperative, functional programming, > procedural, structured, aspect-oriented, reflection) programming > language. With a very wide variety of libraries and multiplatform. > It's used in a broad rane of use cases including embedded and web > (Reddit is entirely written in Python, Dropbox uses it, etc).> * Ruby: A > dynamic, reflective, object-oriented, general-purpose, > multiple programming paradigms (including functional, object- > oriented, and imperative) programming language. There's a web > framework for it, called Ruby on Rails.> * Rust: A systems programming > language sponsored by Mozilla Research. > It's designed to be a safe, concurrent, practical language that > supports functional and imperative-procedural paradigms. It's > syntactically similar to C++, but designed for better memory safety > while maintaining performance. It's used by the Servo project (parts > of it are progressively merged to Firefox) and these days it's > gaining a lot of market and community acceptance.> * Lisp and dialects: > Scheme, Common Lisp. > * Swift: Apple's general-purpose, multi-paradigm, compiled programming > language. It aims to be the sucessor of Objective-C. It's got quite > popular (top 10 in TIOBE index).> > > Also, don't forget: > - Protocol Implementation Conformance Statement. > - Conformance test suite: Strict testing tools to check the > implementation conforms the "standard"/expected behavior (I hope it > gets accepted by IETF, then ISO).> * There are stuff for this such as > ETSI/ITU-T TTCN-3 ( > http://www.ttcn-3.org ): Used by SIP, WiMAX, DSRC, Open Mobile > Alliance, AUTOSAR, 3GPP...) by test cases, interoperability testing > and more.> > Are there email service providers interested in JMAP in both the > evolution and implementation of it in their services other than > Fastmail itself? What about Google, Yahoo and others?> > What about the Mailbox format? Maildir is (not so) okay, but don't > offers indexing. Other formats put all the messages in one large file, > that seems hacky as hell. What about MIX ( > http://repo.or.cz/alpine.git/blob/HEAD:/imap/docs/mixfmt.txt > http://repo.or.cz/alpine.git/blob/HEAD:/imap/src/osdep/unix/mix.c > http://repo.or.cz/alpine.git/blob/HEAD:/imap/src/osdep/amiga/mix.c > http://www.washington.edu/imap/documentation/*mixfmt*.txt.html > https://www.mail-archive.com/[email protected]/msg01802.html )? > MIX is indexed and offers many features? It seems Dovecot's multi-dbox > seem to offer somewhat similar, but I'm not sure. I firmly believe > there's need for a new standarized Mailbox format designed to be > highly scalable, from small devices to big datacenters.> > Interesting conversation about GMail API and IMAP, despite it's many > years old: https://news.ycombinator.com/item?id=7945798> Another one: > Thunderbird's Future Home > https://news.ycombinator.com/item?id=14299022> > > Proposal to start a new implementation of Thunderbird based on web > technologies: > https://groups.google.com/forum/#!topic/tb-planning/SPs8gzO5Wy0%5B1-25%5D > Interesting part -> "Email is rife with buggy implementations and > _*has no general conformance testsuite*_, so you're not going to find > problems until you get actual users with their weird edge cases"> Proposal to > start a new implementation of Thunderbird based on web > technologies: https://news.ycombinator.com/item?id=14156251> More about > Thunderbird here, with many interesting discussions: > https://groups.google.com/forum/#!forum/tb-planning> > > Kind regards. > > -- > You received this message because you are subscribed to the Google > Groups "JMAP" group.> To unsubscribe from this group and stop receiving > emails from it, > send an email to [email protected].> To post to > this group, send email to [email protected]. > To view this discussion on the web visit > > https://groups.google.com/d/msgid/jmap-discuss/c4d09145-aa5b-471c-8cc6-094203ecf249%40googlegroups.com[1].> > For more options, visit https://groups.google.com/d/optout. -- Bron Gondwana [email protected] Links: 1. https://groups.google.com/d/msgid/jmap-discuss/c4d09145-aa5b-471c-8cc6-094203ecf249%40googlegroups.com?utm_medium=email&utm_source=footer -- You received this message because you are subscribed to the Google Groups "JMAP" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jmap-discuss/1503920809.3995395.1087211784.7ED1DD78%40webmail.messagingengine.com. For more options, visit https://groups.google.com/d/optout.
