4 ms·
Well, I did exactly that. Sciter ( http://sciter.com http://sciter.com ) is an embeddable HTML/CSS/script engine that has all components of a browser - html, c
by c-smile 10y ago
Well, I did exactly that.
Sciter ( http://sciter.com http://sciter.com ) is an embeddable HTML/CSS/script engine that has all components of a browser - html, css, svg, script and networking (http,ajax,websockets,etc).
Work started in 2002 when I decided to create WYSIWYG HTML editor for my wife. So http://blocknote.net/ http://blocknote.net/ was born. That was pure HTML (no CSS) rendering and editing engine. 9 months for one developer - myself.
After its publishing joined initial EverNote team to create WYSIWYG editor for EverNote. Three of us (developers), + Stepan Pachikov that generated the idea of the EverNote, created first published version of the EverNote (v 2.0). That was also done in 9 months (I am pretty sure that 9 months is not a coincidence but rather a law for new projects - optimal period when developers are excited of what they are doing).
While working on it, and being a UI-in-all-its-incarnations developer/architect, I've discovered that HTML and CSS are quite convenient format for defining UI layouts and elements. So next step was wrapping it as a reusable component and so HTMLayout engine was born ( http://htmlayout.com http://htmlayout.com ).
Almost immediately discovered that plain C++ is not quite convenient for handling complex UI cases - "on click here hide that and expand those". UI objects ownership graph is quite complex and contains loops. Something with GC is definitely required. So decided to add scripting to it. Considered quite many existing languages including JS for the "language behind UI". At the end decided to roll my own tiscript ( http://www.codeproject.com/Articles/33662/TIScript-Language-A-Gentle-Extension-of-JavaScript http://www.codeproject.com/Articles/33662/TIScript-Language-... ) that essentially is JavaScript++. So 7 years ago I had what we will have in ES6 in next couple of years.
At the mean time I participated in HTML5 spec. development at W3C as an invited expert. And worked as an architect / team lead in several Web Application projects that required deep understanding of the platform - knowing Web UI stack from inside-out helped that a lot.
As Sciter works on all major desktop and mobile platforms I've created core engine wrappers for Windows API, MacOS CoreFoundation, Linux/XWindows/GTK and some others. Sciter core is written in C++ with Objective C fragments in Apple's wrappers. GFX technologies: GDI, GDI+, AGG, Direct2D, CoreGraphics, GTK, OpenGL, DirectX and others.
Script in Sciter is not quite a JS so I've created ports of jQuery (zepto feature set) and AngularJS alike data-binding mechanism based on Object.observe() that Sciter has.
More of Sciter's history: http://sciter.com/10-years-road-to-sciter/ http://sciter.com/10-years-road-to-sciter/
At the moment Sciter code works on around 350 mln PCs and Mac's worldwide as part of various products.
Advice: all this is really possible if you have real motivation to do all this. Estimate that first. Split the task on 6-9 months periods. Start from creating basic DOM and CSS rendering. You can do that without parsers initially. Parser are boring - postpone them for the moment when you will have something breathing. Just a small trick for self-motivation.
Other than that it is doable, yes. For the simple reason: as smaller dev team as higher its productivity. Solo developer has highest productivity possible. Some conditions apply of course.