<div dir="ltr"><div class="gmail_default" style="font-size:small">You cannot 're-write Thunderbird' from scratch. You can write a completely new email messaging app and call it Thunderbird but you can't rewrite Thunderbird.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">There is an argument for a complete rewrite from scratch which is what Microsoft has done with Internet Explorer and Edge and the Windows mail client. But as a result, the Windows mail client in Win10 lacks critical features like support for S/MIME.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The resources required for a rewrite are considerable but so are the resources required for maintaining the existing code base. And it is much easier to get people to write new code than to maintain old. Particularly when the old code base goes back to some particularly unfortunate design decisions in Netscape navigator that depend of features of C++ that are now considered archaic.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I do not see a good argument for writing a new mail app. But there could be an argument for writing a new app with a radically different base feature set. For example:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* A combined messaging app that integrated mail, chat, RSS modes of interaction.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* Was entirely coded using a modern language using 'managed code' and is thus protected against buffer overrun exploits.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* Had modern strong cryptography encoded into the core of the application.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* All of the above.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Until recently, there was a big problem with using managed code. The Java system is not open in any meaningful sense as the Microsoft and Google lawsuits demonstrate. And until recently Microsoft's .NET was not very open. That has just changed. Microsoft has released the pretty much the entire core of .NET under an MIT license and is currently working to release much of what remains. It is now supported on Windows 10, OSX and most popular Linux flavors.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">If you have not looked at the .NET framework, you should. It is the only platform I know that allows you to mix a C-like language (C#), a functional language (F#) and scripting languages like Python in one program and run on multiple platforms.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Two years ago, I adopted C# as the implementation language for the reference code for the Mathematical Mesh, an infrastructure designed to make computers easier to use though security. My original strategy was to use C# to enable rapid development and then convert the code to C for deployment. This is exactly what we did with the Web, TimBL built the prototype in Objective C and then Henryk, Nicola and myself worked on the CernLibwww version in C.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The change in the Microsoft license makes much of the conversion work unnecessary because you can now have a completely open source implementation on a Linux box.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Many of the tools and code systems that I have developed for that project could save you a great deal of time if you were going to recode from scratch.</div><div class="gmail_default" style="font-size:small">I have code generators that automate writing code to serialize and deserialize pretty much all the common data formats, these include ASN.1, JSON, RFC822 header, RFC821 command, TLS schema and DNS records. Most of these target C# but all you would need to do to target C or C++ is write your own back end.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Using these tools, it is pretty easy to implement a protocol like SMTP or HTTP in a few days. In fact, I already have most of the IETF protocols. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I also have a GUI compiler that is in a state of flux at the moment but does work. You write an abstract description of the interface and the compiler generates all the GTK+ or Windows Forms code to implement. The reason it is in flux is that it was originally written for Windows forms and converted to GTK for portability and is now going back after Microsoft made a layer available that makes Forms more portable.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The code is all open source under MIT License. Comodo owns the Mesh code and I own the code synthesizers.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">More at <a href="http://prismproof.org/">http://prismproof.org/</a></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div>