Slashdot Mirror


WebODF: JavaScript Open Document Format Editor Deemed Stable

oever (233119) writes with news that WebODF (an Open Document Format editor written entirely using Javascript and natively rendering the XML document using CSS) 0.5.0 has been released, and the developers are declaring this release stable enough for every day use. TheMukt chides Google for not supporting the OpenDocument Format well and claims that the newly released WebODF 0.5.0 in combination with ownCloud is the answer to this deficiency. A WebODF developer blog highlights all the goodies in the first WebODF release where the text editor is considered stable and made available as an easy to use component. These include extensive benchmarking, unit testing, and advanced HTML5 techniques to give the editor a native feel. There's also touch screen support, and better support for real-time collaborative editing. A demo shows off a few of the features.

62 of 91 comments (clear)

  1. Wow! by davids-world.com · · Score: 2

    This is fast and responsive. Does it avoid long-standing Word problems, such as figures that jump away from captions, paragraphs that adopt the adjacent style just because you're moving them around, and the like? For professional writing, I'll stick to LaTeX for now. For collaborative writing, something like this could be nice (and improve on half-baked solutions like the editor in OneDrive (very slow) or Google Doc (not word-compatible). So, I think this would have to be able to export / import Word docs seamlessly, due to business pressure everywhere...

    1. Re:Wow! by davids-world.com · · Score: 1

      No "track changes", as it seems. :-(

    2. Re:Wow! by Anonymous Coward · · Score: 1, Interesting

      WebODF uses OpenDocument Format (ODF) as the runtime document model. That means that there is 0 (zero) data conversion when loading and saving a document. It does not support OOXML, but it could load an OOXML document if it was converted to ODF. It is not clear that the same approach (style unchanged XML with CSS) could work with OOXML. Have a look with your browsers 'Inspect Element' function in the demo. The DOM is ODF XML, not HTML.

      A lot of work was done on responsiveness. A mischievous edit bot is used to do heavy editing testing and a detailed benchmark is available for every build.

    3. Re:Wow! by Anonymous Coward · · Score: 4, Interesting

      In collaborative mode as used in ownCloud, each document edit is stored as an operation such as AddImage, AddText, MoveCursor etc. (WebODF implements Operation Transformation for editing) With this stack of operations and the original document, any intermediate state of the document can be recreated. There is currently in WebODF no method for displaying changes in a single document, but it's straightforward to show different versions of a document side-by-side in your website or application.

    4. Re:Wow! by K.+S.+Kyosuke · · Score: 1

      Why, tell me, do you use a typesetting system for writing? (ducks!)

      Ducks? Why not guillemots? ;-)

      --
      Ezekiel 23:20
  2. does it support by Anonymous Coward · · Score: 1

    Does it support markdown?

    1. Re:does it support by Anonymous Coward · · Score: 1

      No. But conversion from markdown to odf and back shouldn't be too hard to write. WebODF is a library so you can use it in an app where you add markdown support.

  3. Fonts? by RevWaldo · · Score: 1

    Very nice. I just wonder does it use fonts off the web server, fonts on the client, or both? (And are any of the font license issuers freaked out about the former?)

    .

    1. Re:Fonts? by Anonymous Coward · · Score: 3, Informative

      It can use fonts embedded in the file and fonts provided via css. Fonts provided via css can be stored on the server or, when WebODF is used in a desktop or mobile application, on the local machine. There is not really anything for font license issuers to freak out about. PDF can embed fonts too as can OOXML. Providing fonts via css is common on the web these days and of course one should check the license when doing so.

  4. Shouldn't it be 1.0.0 by runicpaladin · · Score: 2

    My guess is that while you can use it and get work done it isn't quite up to the feature set they had in mind for a version 1

  5. As long as you don't use page breaks by watermark · · Score: 2, Interesting

    It's stable and ready for every day use, as long as you don't need page breaks. I have a 3 page odt containing page breaks and WebODF just throws all of the text and images at the bottom of the first page.

    How is this ready for every day use without supporting something as basic as page breaks? Page breaks go back to Word 1.beforeiwasborn

    1. Re:As long as you don't use page breaks by Anonymous Coward · · Score: 1, Informative

      Adding page breaks is on the to do list. Here is technical preview of pagination. Displaying properly is part of that work. Help, code or finances, are welcome to make this work land sooner.

    2. Re:As long as you don't use page breaks by ahabswhale · · Score: 1

      Page breaks in word processors existed long before Word.

      --
      Are agnostics skeptical of unicorns too?
    3. Re:As long as you don't use page breaks by K.+S.+Kyosuke · · Score: 2

      So, page breaks broke your pages? Sounds about right!

      --
      Ezekiel 23:20
    4. Re:As long as you don't use page breaks by VVelox · · Score: 2, Informative

      I actually would not consider this ready for every day use. It does not even play nicely with what I have at home as the following are broken.

      1: It can't handle multiple columns.
      2: No real support for index work.
      3: Can't create tables or modify number of columns/rows.
      4: No header/footer support.
      5: No footnote support.
      6: Embedded images tend to overlap text.
      7: The equation stuff is not supported.

      That said this is still bad ass and I look forward to seeing how it progresses.

    5. Re:As long as you don't use page breaks by Anonymous Coward · · Score: 1

      Then it is not ready for everyday use. This is spam and now you even tell people to give you money...

  6. Let's put all Knowledge into the Cloud by Anonymous Coward · · Score: 1

    ...so that our NSA overlords have it on a silver plate. And for god's sake, don't encrypt. Only terrozists do that !!!!!!!

  7. Re:javascriptards by Shados · · Score: 5, Insightful

    Because modern browsers are the closest thing we've ever gotten to an actual cross-platform ecosystem with an efficient distribution system baked in. While not 100% by any mean, we're pretty close to a point where you write an app for Chrome, and it will just work in other browsers, including IE back a few versions. You have to make sure not to use certain features, but you don't need annoying abstraction libraries like you would in native code to support *nix vs Windows, nevermind mobile operating systems.

    And because of that, the ecosystem around the language is blooming, and the code written can then be used in other environments, like server/client (node.js) and data (mongo). The language sucks, but what was made around it is blissful.

  8. Re:javascriptards by QuietLagoon · · Score: 1

    Why is there this trendy craze to rewrite everything in a badly designed browser scripting language? ...

    imo, it's being pushed by the malware people. They want to have a mess of bad code 'out there' running in everyone's browser. It makes the attack surface so much larger.....

  9. Re:javascriptards by Albanach · · Score: 2

    Are you serious? The applications exist for when you have access only to a computer and a browser. it doesn't matter what operating system it runs, it doesn't (or shouldn't) matter what browser it running. It doesn't matter that you have no admin rights. If you need to edit a document, it should just work.

  10. Re:javascriptards by iggymanz · · Score: 1, Troll

    And if I only have a computer, and python/libraries installed I could run a python program (substitute any other language platform for where you said 'browser).

    you have no point.

    browsers still aren't equivalent, are very insecure and are targeted by privacy invaders, malware producers, etc.

  11. Re:javascriptards by Anonymous Coward · · Score: 1

    One day you will get a real job and that app you just spent a month making the CEO will like and want to run from his IPad at the airport.

    You can either learn to program IOS, or just do it in javascript and it will still work when he decides next week to look at it from his Android phone. While things like Citrix can work for this, that crappy javascript works without plugins and can work better.

  12. Re:javascriptards by narcc · · Score: 2

    Maybe. Which version of python does your program run under? They have a lot of trouble maintaining compatibility between minor version numbers.

    Further, everyone has a browser. Not everyone has python. Fewer still have the random version of python you need to run your program.

  13. Re:javascriptards by iggymanz · · Score: 1

    or really? Microsoft forces upgrade and whole place stops working. or Oracle's recent java fixes break the API. or, everyone needs flash upgrade and some other plugin from mars. IE required for this, firefox for that....I deal with that nonsense daily.

    Thin clients (the hardware boxes) have the same issues, funny some of the ones from even three years ago can't be upgraded to handle current "standards"

  14. Yippie... by ericloewe · · Score: 3, Funny

    Because the general complaint about OpenOffice/LibreOffice was that Java made it too fast. /s

    Next up! A web browser written in Javascript.

    1. Re:Yippie... by Anonymous Coward · · Score: 1

      webkit.js: http://trevorlinton.github.io/

      On a serious note: WebODF started as a C++ extension to Webkit. It turned out that the logic for the document editor was not the performance bottleneck and might as well be written in javascript. This sped up development a lot. Naturally, C++ has better type checking than javascript but by using closure compiler this can be partially alleviated. WebODF is 100% annotated with type information.

    2. Re:Yippie... by just_another_sean · · Score: 1

      Next up! A web browser written in Javascript.

      No need to wait, it's already here.

      --
      Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
    3. Re:Yippie... by Ndymium · · Score: 1

      Neither OpenOffice or LibreOffice are written in Java though, they are mostly C++. Java is only used for the HSQLDB and some wizards and parts in Base.

    4. Re:Yippie... by Anonymous Coward · · Score: 1

      In Safari the JavaScript anything running for a few seconds on a webpage is compiled with the same LLVM compiler that I use to make executable code for C, producing executable native code (google for "safari ftl"). If anything the resulting executable is faster than all but the most hand optimized C code because the higher-level non-pointer based language offers guarantees that a pointer based language doesn't offer, meaning the compiler is able to make better optimizations because it's more aware of how the JavaScript code can be called than C code where suddenly the user can just do some pointer arithmetic and break encapsulation.

      This is somewhat different to Java's JIT compilation, in that JIT is "just in time". Safari actually has four levels of "compilation" from "interpreted" right the way through to the LLVM stuff which it switches to on the fly the longer you're using the code and the longer time it's had to do the compilation.

    5. Re:Yippie... by Anonymous Coward · · Score: 1

      The official Webkit blog has a post about it.

    6. Re:Yippie... by ericloewe · · Score: 1

      Imagine how much slower it'd be written fully in Java...

    7. Re:Yippie... by K.+S.+Kyosuke · · Score: 1

      It gets better: Chrome is going to have portions of it (the DOM, notably) rewritten in JS to improve performance further. ;-)

      --
      Ezekiel 23:20
    8. Re:Yippie... by serviscope_minor · · Score: 1

      If anything the resulting executable is faster than all but the most hand optimized C code because the higher-level non-pointer based language offers guarantees that a pointer based language doesn't offer, meaning the compiler is able to make better optimizations because it's more aware of how the JavaScript code can be called than C code where suddenly the user can just do some pointer arithmetic and break encapsulation.

      That's the same claim that everyone's been making for ages. It's unlikely to be true for the same reasons.

      Your comment about aliasing are I think misplaced: javascript has references which are equivalent to immutable pointers. Simply having pointers at all in any form (including references) causes trouble.

      C and C++ do a lot of stuff with value semantics, rather than reference semtnatics. That avoids the aliasing problem in a lot of cases. C and C++ also do a lot of stack allocation which not only is almost free (cheaper than any other allocation scheme) it's also easier to reason about alaising.

      Finally JS is a GC languages and GCs have a fairly substantial memory overhead compared to determinstic systems, which means more cache trashing. You can avoid this by reusing objects, but that's delving right into hand optimizing.

      I've seen the "it should be faster than C" claim many times over the years for things such as Java, Javascript, Haskell, OCaml and so on (curiously FORTAN proponents, which often is in fact faster or at least as fast never bother with this claim). Ocasionally, in some comparison one of the microbenchmarks is almost as fast in a trivial inner loop (e.g. naive matrix multiplication).

      Somehow it never seems to pan out overall. Though I gather that the Javascript Quake II in a browser on a modern PC has now got to the stage where it can beat my long dead P133 with its Riva 128 graphics card! I don't think it would have beaten my frag buddie's rather spiffier P233 with a Voodoo2 card.

      --
      SJW n. One who posts facts.
  15. Re:javascriptards by Bing+Tsher+E · · Score: 1, Insightful

    Seriously? It doesn't matter if you have admin rights? And thus no means of local storage? So we should all push our documents out 'on the cloud'? So Google or Microsoft has control of everything we do? We should push them out onto 'the cloud' running binaries on machines we don't have admin rights to, giving out passwords each time we do?

    I like local storage. It goes beyond liking, actually. I expect local storage. Crap like this just makes it easier for software publishers and 'services' to eliminate the need for, and thus the access to, local storage.

    Plus, dinks who write web pages aren't programmers. No matter how many 'script' tools they heft around.

  16. This is a killer by Sla$hPot · · Score: 1

    Looking forward to see this build into web mail solutions.

    1. Re:This is a killer by oever · · Score: 1

      Zarafa and Kolab already use WebODF for displaying ODF attachments, but not yet for editing. There's also an android app that handles displaying ODF documents by registering to handle the ODF mimetypes.

      --
      DNA is the ultimate spaghetti code.
  17. Re:javascriptards by OakDragon · · Score: 1

    Thank you for a non-smartass answer.

  18. Re:javascriptards by narcc · · Score: 5, Insightful

    You're drowning. Sorry, but reality doesn't agree with your uninformed opinions. JS has been impressively stable, and cross-browser issues have been negligible for a long time now -- none of which, I'll remind you, have been language implementation compatibility issues.

    Listening to you, one would think that the web barely functioned, with users needing multiple browsers, and various versions of each, to use a handful of sites. That's clearly not the case.

    Here in reality, the web is developing nicely in to a convenient application platform. JS is an impressive language, far more sophisticated and capable than the alternatives you've suggested. (New and constructor functions were the big mistakes, leading to all sorts of confusion, and later hate, for those who didn't take the time to learn the language before using it. Luckily, they're unnecessary. Try actually learning the language. I'll bet your opinion will quickly change.)

    also, bet your shit doesn't run on the browser on my son's non-smart net10 phone

    I'll bet your python program doesn't run either. What was your point again? That you don't like JS or that the web is incapable of being used exactly how it's being used?

  19. Re:javascriptards by Shados · · Score: 1

    HTML5 local storage. Not useful for large documents, but more than enough for most purposes.

  20. I tried it by Anonymous Coward · · Score: 1

    I couldn't figure out a way to add a table of contents. Otherwise it seemed pretty decent.

  21. Re:javascriptards by Anonymous Coward · · Score: 1

    Did you read the summary or look at the app? This has nothing to do with the cloud, nothing to do with Google and nothing to do with Microsoft.

    It's Javascript. It runs locally. Just because it's inside your browser doesn't mean either the app or the document has to be 'in the cloud'.

  22. Re:javascriptards by fnj · · Score: 2

    I would say your original question was answered, and relatively civilly. Saying that the respondent has no point seems a bit petty. The point was made, and quite ably. Your counterpoint is also clear enough, and readers can decide how much merit and validity it has.

    I am not convinced, either, that JavaScript is an elegant language, but I am less convinced that it is crap than I was was back when it referred to nothing more than an array of incompatible pidgn dialects. The fact remains that its greatest strength is its ubiquity as a lingua franca.

    It is difficult not to be favorably impressed that a resource has been written in JavaScript which shows so much promise.

  23. Re:javascriptards by Sique · · Score: 1

    Nevertheless, it works[tm]. The good has two arch-enemies, and both are winning almost each battle: the better, and the good enough.

    --
    .sig: Sique *sigh*
  24. Frustrating by jimbrooking · · Score: 1

    Potentially of interest if there was a shred of setup/implementation information, after an hour of looking, following false trails and futzing I gave up.

  25. Cntrl+Click to follow link? by drfred79 · · Score: 1

    Do I open up my Galaxy Note 3's pen context to perform a Microsoft Windows function or do I just use terminal to cntrl+ click?

    1. Re:Cntrl+Click to follow link? by oever · · Score: 1

      Are you talking about writing text in the webodf editor demo? If you cannot input text on your Galaxy Note 3 there, we might be able to help if you file an issue.

      --
      DNA is the ultimate spaghetti code.
    2. Re:Cntrl+Click to follow link? by drfred79 · · Score: 1

      Following the link to their demo provides an explanation of their product. At the bottom of their explanation it has a link to their website. To follow the link to their website they use a windows editor context to press the cntrl key to follow the link. My joke was about an OS specific context to perform a simple function.

  26. Re:javascriptards - OwnCloud? by oever · · Score: 1

    ownCloud is one of the projects that uses WebODF. It is software to install a personal cloud on your own hardware. There are also native Windows applications using WebODF. There's also a Firefox OS app to view ODF documents on your phone.

    --
    DNA is the ultimate spaghetti code.
  27. Re:javascriptards by K.+S.+Kyosuke · · Score: 1

    Doesn't it have as much local storage as you give to it?

    --
    Ezekiel 23:20
  28. zotero by spasm · · Score: 2

    Link zotero to this and you'll have a solution academic collaborators have been looking for since the beginning of word processing.. Seriously, we need a collaborative writing platform which allows multiple authors to add citations.

    1. Re:zotero by K.+S.+Kyosuke · · Score: 1

      To be honest, I don't think ODF is optimal for this. To me it still feels like "moderate progress within the bounds of the law". You could easily - well, more easily than many other things - make a collaborative, real-time editable "Authornet", but it wouldn't probably have much in common with local-file-based editors. It would be more like some kind of a distributed object database. (I think the VPRI people are actually heading roughly in this direction.)

      --
      Ezekiel 23:20
    2. Re:zotero by serviscope_minor · · Score: 1

      Link zotero to this and you'll have a solution academic collaborators have been looking for since the beginning of word processing.. Seriously, we need a collaborative writing platform which allows multiple authors to add citations.

      Well, IME a good VCS and latex work remarkably well for that task. Actually, having used Zotero, I am honestly astonished how much time people are prepared to burn in order to not learn latex. You'd get parity if not payback in effort just on the first paper. After that, it's a net win.

      --
      SJW n. One who posts facts.
    3. Re:zotero by davids-world.com · · Score: 1

      Generally, something like Dropbox and LaTeX work fine - unless you have two people editing the same file at the same time. Then, any VCS or something like Dropbox fail miserably. I have tried https://www.writelatex.com/, but of course I'd like to keep using my local Aquamacs instead of a web-based solution. Maybe I'll write a synchronization tool for Emacs. The issue is then that we need to integrate people who don't use Emacs...

    4. Re:zotero by serviscope_minor · · Score: 1

      Generally, something like Dropbox and LaTeX work fine - unless you have two people editing the same file at the same time. Then, any VCS or something like Dropbox fail miserably.

      Not that miserably: for a VCS the diff tools can sort out a lot of conflicts. The main problem is editing the same lines within the file. At that point it at least tells you there's a conflict (as opposed to the last person wins model of dropbox). But yeah at that point someone needs to fix the mess.

      IME though this is a rare case. Ususally with papers the first author owns it and does most of the writing. Sometimes you can delegate out a section or two to other people if you're lucky. I've written a few things collaboratively and the number of direct conflicts I've had have been very small.

      The other nice thing about a VCS is it does proper change tracking that you can't switch off. Unlike word processor change tracking which fails in the face of adversarial (or just perverse or confused) users.

      Actually, I've even been on a project where for some reason the project lead decided to do the big reports in word. This is despite the project being a bunch of computer scientists and engineers who usually wrote in LaTeX. The results were, in hindsight, hilariously bad.

      --
      SJW n. One who posts facts.
  29. Re:Shouldn't it be 1.0.0 by CauseBy · · Score: 1

    Maybe but my guess is that the people who run that project disagree with the idea that "0.0" should be the version assigned to the first line of code and "1.0" should be the first version deemed stable and ready for general use.

    I agree with that kind of numbering so I agree with the GP in this case. I think software statuses are easier to understand when people conform to the 0.0/1.0 convention.

    Everyone gets to number their software any way they want, and everyone else gets to gripe about it if they don't like it.

  30. stable? by farble1670 · · Score: 1

    the developers are declaring this release stable enough for every day use

    anyone see anything wrong with that statement?

  31. Re:Shouldn't it be 1.0.0 by VVelox · · Score: 1

    This is actually a very bad assumption. Lots of software start off with the major version being zero as zero indexing stuff is extremely common when it comes to programming and it only gets bumped when there is a non-backwards compatible change.

  32. Re: javascriptards by corychristison · · Score: 1

    This is no longer the trend.

    This is why Mozilla and friends have been pushing for web standards the last 12 years or so.

    Today we can develop scalable, web-based applications and only require a modern browser. IE9 made great strides and IE10 is even better from what I hear.

    Today I can develop something in Firefox, test it across the board (Opera, Safari, Chrome/Chromium, IE, mobile browsers) and they usually just work. No plugins, no bullshit.

    Also, any business with more than 25 computers should be using Windows Server on a Domain to enforce upgrade policies. As in, test the updates on a dev box, and push updates if there are no issues.

    TL:DR, your point is moot in todays modern web.

  33. Impressive start! by dwheeler · · Score: 1

    This is a really impressive start. It's not done, but they don't claim it is. It's responsive and does quite a bit.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  34. Re:Can you say, HUGE SECURITY HOLE by oever · · Score: 1

    The WebODF developers take security very seriously. WebODF runs in a browser and web browsers are the most battle hardened sandboxes available.

    WebODF has no more access to your hard drive than any unprivileged website. If you press the icon to open a file, WebODF asks the browser to let the user pick one file. That file, and only that file that the user chose, is then passed to WebODF so it can open it. This is no different from an HTML form for uploading files. The difference is that WebODF does not need to even pass the file to a server. It is a client-side library that can parse a file purely in the browser without any network access.

    If you use WebODF with a CMS, you can let the CMS decide which files WebODF has access to. When WebODF loads a document, it checks for any JavaScript present and prevents it from being executed.

    WebODF is set up such that you only need a few files to run it and all those files can be hosted on your own server or placed in your own application. There is no need for any reliance on any 3rd party.

    --
    DNA is the ultimate spaghetti code.
  35. WebODF seems to use Dojo? by Paul+Fernhout · · Score: 1

    https://github.com/kogmbh/WebO...

    I like Dojo in part because it attempts to make all the core widgets accessible. From:
    http://dojotoolkit.org/referen...
    "Dojo has made a serious commitment to creating a toolkit that allows the development of accessible Web applications for all users, regardless of physical abilities. The core widget set of Dojo, dijit, is fully accessible since the 1.0 release, making Dojo the only fully accessible open source toolkit for Web 2.0 development. This means that users who require keyboard only navigation, need accommodations for low vision or who use an assistive technology, can interact with the dijit widgets."

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  36. Re: javascriptards by corychristison · · Score: 1

    I own a company that builds custom web-based applications for businesses. Certainly not fortunte 100 companies, but businesses with a dozen or more users doing their job with the system 9-5, Mon-Fri.

    Personally I don't use Windows at all. Not sure what the snarky comment about Windows Server was all about. I'm not the IT person for these companies, I am simply familiar with the features offered by it and have seen it in place at most of the businesses we deal with.

    For the past two years, targeting IE9 has worked well for us. I've convinced some businesses to use Firefox or Chrome instead, as they were still on WinXP.

    We don't use any Plugins, and stick to standards as best we can. We also avoid flashy, animated crap. Its business, not TV.

    We also build general public stuff. We dropped support for IE7 over a year ago, its made things a lot easier. We're still discussing when to drop support for IE8 in these projects.