Posted
by
timothy
on Friday May 03, 2013 @09:01PM
from the assembling-data-please-wait dept.

An anonymous reader writes "Frédéric Wang, an engineer at the MathJax project, reports that the latest nightly build of Firefox now passes the MathML Acid2 test. Screenshots in his post show a comparison with the latest nightly Chrome Canary, and it's not pretty. He writes 'Google developers forked Webkit and decided to remove from Blink all the code (including MathML) on which they don't plan to work in the short term.'"

But how many of your average users are gonna be going to pages where MathML would be useful? if it was 3% I'd be amazed. If Google isn't gonna be spending time working on it right now its probably better to remove it entirely as that makes one less vector for a browser exploit.

Are you looking at the same MathML Acid tests that I am? These are not the same tests as the original Acid and Acid 2 tests.

Chrome Stable, at least on OS X, fails MathML Acid 1 miserably, as does Chrome Canary. All the fractions are shown as the left part followed by a space followed by the right part instead of as a fraction. Safari on OS X is basically correct for MathML Acid 1 (albeit with the ugliest parentheses I've ever seen), but if you reload the page, the curly braces disappear, as do the comma inside the curly braces and the plus sign.

And the MathML Acid 2 test looks like a freaking Picasso on all three browsers.

Yeah i think old billy got his ACID tests mixed up, which is why i think its stupid to call this ACID instead of something like ML-Test or Math Tester. But I ran the test on both Comodo Dragon (Based on Chromium stable) and Pale Moon and it was a total mess and considering how long it took IE to get ACID support I'm seriously doubting he got IE 8 to pass, nor do i believe that FF ESR passed as that is a couple of years old.

But again I really don't see a point in the MathML tests, the vast majority won't e

Yeah i think old billy got his ACID tests mixed up, which is why i think its stupid to call this ACID instead of something like ML-Test or Math Tester. But I ran the test on both Comodo Dragon (Based on Chromium stable) and Pale Moon and it was a total mess and considering how long it took IE to get ACID support I'm seriously doubting he got IE 8 to pass, nor do i believe that FF ESR passed as that is a couple of years old.

But again I really don't see a point in the MathML tests, the vast majority won't ever be going to a site that depends on MathML so saying its not supporting MathML means squat, like saying a CPU should be judged strictly by how well it runs Folding At Home. Hell Folding is a hell of a lot bigger niche than MathML, can anybody even name a popular site in the top 20 page ranking that uses it? Top 50? So far web designers can't even get HTML V5 up and running without it sucking cycles like a drunk sucking down free drinks so MathML should rightly be at the bottom of the "to do" list.

Yeah I had 3 rum and cokes when I typed that.

The reason HTML 5 is not getting off is because of... you guessed it... IE support. Make that old IE support. IE 6 you can safely ignore outside of China thankfully, but IE 8 is HUGE and with grannies and the corps not leaving XP anytime soon it will stick a long long time. Remember not every business has its own I.T. department or with with small shops like your own who tell them to leave. Most are small to medium sized business that have some old app that uses

That is rather impressive considering IE doesn't support MathML, and requires a plug in to get it working on IE 7 and 8. The plug-in has some trouble in IE 9 and 10 though, although they might have a beta working now. MS has no plans of adding MathML support and recommend using a MS program to export the equation as an image or using another program to export it as an SVG.

I don't have IE10 and therefore cannot tell whether it does or does not support MathML, however I just want to make sure you've seen that this page by default does not render MathML, but builds the formulas with HTML+CSS. You have to explicitly select "MathML" with the dropdown selector to see what it looks like rendered using MathML.

I heard IE 11 might have it. I am really surprised why as MS has been trying to champaign web enabled excel spreedsheets and powerpoint presentation?!

Powerpoint 2013 is having web based ones as a selling point to share so people do not have to fly with a laptop and it can be viewed on a browser. Many finance and accounting folks in the enterprise use mathmatical formulas and do more than simple pie charts. MathML is not hard to support. I would image it is easy compared to trying to port WebGL with opengl e

MathJax uses javascript to render equations using normal HTML and CSS tricks on browsers that do not support MathML but do support javascript. For some people this is enough, with the caveats that the script has to be installed on the webpage a priori. There are ways probably to make it load by default for every page you open by messing with browser settings, but without instructions that is not easily available to the common user. And along that lines, you might as well claim browsers natively support o

Personally I browse pages that use MathML every single day (literally), opengl.org ref pages, have MathML scattered throughout - I've never bothered installing chrome on a workstation once due to lack of MathML support, and don't ever plan on doing so until it can (among many other missing features).

And how many NORMAL users are gonna be going to OpenGL ref pages? This is no different than the guy a few weeks back that said AMD chips weren't useful at any price because they bog down on acoustical wave simulations...how many users actually do acoustical wave simulations?

Of course I see this as a symptom of "In ur butt" syndrome. Just like the old Eddie Murphy song the devs are trying to jam everything up the butt of your browser, the problem is not only is jamming all that stuff up the browser gonna m

The reason to improve MathML support isn't browsers. It's eBook readers that share the underlying rendering engines. Lots of textbook publishers want to use MathML, but without robust, reliable, visually appealing support, everybody has to do awful hacks with inline images or (hopefully) SVG instead.

The reason to improve MathML support isn't browsers. It's eBook readers that share the underlying rendering engines. Lots of textbook publishers want to use MathML, but without robust, reliable, visually appealing support, everybody has to do awful hacks with inline images or (hopefully) SVG instead.

Spot on. EPub 3.x with MathML 3.0 is vital to work in digital publishing for iOS, Android, etc.

MathML is a static content description language like (pure) HTML, not a programming language like JavaScript. Moreover, it should use the same parser used for all other XML based content (like XHTML), which is most likely even the same parser which is used to parse HTML. So I cannot see how MathML could be used for an exploit which is not possible for HTML (unless you did a really crappy implementation).

But how many of your average users are gonna be going to pages where MathML would be useful? if it was 3% I'd be amazed.

Again with the "if it's not useful to the 51% it's not useful to anyone" meme. For one thing, the Web was invented for use by academia. For another, pretty much everyone who goes to college or even high school ends up seeing an equation at some time.

The needs of the many outweigh the needs of the few...there is NO point in adding yet more bloat and complexity to a browser, not to mention giving malware writers one more attack vector in said browser, all to support a teeny tiny niche that would probably just as well if not better supported by using a browser plug in to a real language like Java.

At the end of the day making everybody put up with a more bloated browser just to keep a couple of percent from getting their panties in a wad just isn't worth

Not in all cases, as shown in historical examples of tyranny of the majority [wikipedia.org]. It lets those with wealth get away with assaults on freedom because the majority don't feel like keeping themselves informed. Case in point: In the United States in the mid-twentieth century, the majority of European descent wanted to force "colored" people, mostly of African descent, to use a different drinking fountain. Was that an acceptable compromise to support "the needs of the many"?

there is NO point in adding yet more bloat and complexity to a browser, not to mention giving malware writers one more attack vector in said browser, all to support a teeny tiny niche that would probably just as well if not better supported by using a browser plug in to a real language like Java.

It died on the vine, but would have been MUCH better than the cruel joke that is MathML.

Only for those writing HTML documents by hand. Most people use automated tools to generate the required code - makes no difference to them how it is finally presented to the web browser. And those people who do write by hand are the same people who can write a script to extract, convert, then replace their TeX code with MathML.

And in regards to the web browser, formatting the code in a format that can be parsed by the existing HTML engine greatly reduces the effort required to implement the tags. This is

MathML attempts to separate the content and presentation. This is fine if you have a tool that properly supports both (I've never used one, maybe Mathematica or similar does?), but it sucks for most editors. The idea is that you can have a single format that describes both how to lay out equations and their semantics. In practice, pretty much everyone who generates MathML does it from the TeX equivalent and so only ever gets the presentation form. The other advantage of MathML is that each individual element is exposed via the DOM, so it's easy to manipulate equations from JavaScript, although I don't think I've ever seen that done either.

Part of the problem with a format that is basically impossible for humans to write is that it also ends up being difficult to produce tools that can write and display it, which is why it's taken 10 years or so for MathML to get even a token amount of support in mainstream browsers...

The other advantage of MathML is that each individual element is exposed via the DOM, so it's easy to manipulate equations from JavaScript, although I don't think I've ever seen that done either.

I believe that MathJax does this. Anyway, you can either generate MathML inside a browser with DOM if you're targeting it, or you can write a script that converts it to something else (SVG, a canvas program) if you're implementing it. If you're especially kinky, you can do both.:-)

Most people use automated tools to generate the required code - makes no difference to them how it is finally presented to the web browser. And those people who do write by hand are the same people who can write a script to extract, convert, then replace their TeX code with MathML.

Eh. A math tag would have allowed me to type math in my response to you right here, in postings to facebook, email, or anywhere HTML is used. Requiring a site to source scripts guarantees it'll never be more than peripheral and utterly irrelevant.

Real-time processing speed is still a concern. Even with *way* more computing power than available decades ago, it still takes a noticeably nonzero amount of time to render a several page LaTeX document. For live document editing, or even re-flowing a webpage when your window size changes, you need a much faster (and consequently cruder-looking) layout algorithm. Now, most document preparation would be much better served by a model like LyX [lyx.org]: fast approximate on-screen rendering for editing, with a slow "fin

<BLINK> tags don't annoy people, people do. Don't give them a blinking tag, they'll just create a.GIF or worse a jittering noisy Flash animation. I used a blinking tag in a non-annoying way: to emulate a DOS like cursor for my temporary landing page.

I agree that it's surprising that Chrome seems to fail even on simplistic things. However, Chrome doesn't really feel like the kind of browser that goes for that sort of thing either. Given a choice between MathML and rounded corners (just as an example), I can well imagine that the latter would be far more popular, find wide-spread adoption, and be able to differentiate Chrome from other browsers.

The fairly limited set of publishers/users that would find MathML something that they'd have an absolute need

It is not all positive. It is buggy and has proprietary extensions similiar to something that sounded familiar in the past [pcmag.com]? Its javascript sometimes does not load on sites and its version of HTML 5 is differnent from others. HTML5test.com tests things that W3C implements a little differently or not at all.

Remember IE 6 was lean mean and standards compliant compared to the god awefull netscape 10 years ago too. Hard to believe in a place like slashdot to admit but if you go read slashdot history on the most discussed stories of all time "What keeps you on Windows from 2002" IE 6 is mentioned!

The switch to a new rendering engine is going to cause issues soon and many corporate oriented SVs and site makers will not be pleased.

IE5 was lean and mean, and about as ideal as you could get for those days (security notwithstanding). The bloat began with IE6, and by then, Netscape was the better browser, feature- and resource-wise.

I don't think Google has given up on MathML though, they just are not supporting it until it reaches as usable and stable level in WebKit. Then they will port over that entire chunk of code.

This is a common thing for people doing forks because you don't really want to spend time folding in partially working code from the other guys that brings little benefit. Just wait until it works and do it all in one hit.

Netscape 6 was based on an early beta version of Mozilla Suite, somewhere between the last milestone release (M18) and the first real beta (0.7). In fact, IIRC the Mozilla team retconned v0.6 to match what AOL pulled for Netscape 6.0.

The first production-ready version of Mozilla-based Netscape was 7, I think, which was based on Mozilla 1.x.

There are critics of C++ that say the language is just pieces and parts hacked together. Even if that is true, mathematics takes the undisputed crown of bizarre hacked together symbols.

The symbols used in mathematics are unintelligible, inconsistent, don't even use a standard language character set and cannot be represented in a programming language.

These mathematical symbols either need to be modernized to come to a standardization or die.

What the hell? I can believe how incredibly ignorant is this comment. Do you even work with mathematics? The symbols used in mathematics are jargon to be sure, but every (non-trivial) field of endeavours has its jargon. And that jargon makes mathematics significantly easier to work with day-to-day for its practitioners.

You make it sound like mathematics deliberately chose symbols and syntax that was difficult to implement in a programming language, as if that's the pinnacle of the written form. Of course, m

What the hell? I can believe how incredibly ignorant is this comment. Do you even work with mathematics? The symbols used in mathematics are jargon to be sure, but every (non-trivial) field of endeavours has its jargon. And that jargon makes mathematics significantly easier to work with day-to-day for its practitioners.

You make it sound like mathematics deliberately chose symbols and syntax that was difficult to implement in a programming language, as if that's the pinnacle of the written form. Of course, mathematics predates programming languages by centuries if not millenia.

The problem is that these symbols are no longer suitable for the modern world. They were fine at the time when they were conceived, but technology has moved on and requires something better.

And the symbol it uses are part of a standard language character set, just not those that has yet been popular in the (relative) young computer world. You're comparing mathematics to a single programming language. You should instead compare mathematics to every programming language combined.

The criticism was not that the symbols are undisplayable, it is that their use is not consistent and not possible as part of a computer program, aside from very special languages which specifically cater for Math. A few attempts have been made to reconcile these (for example RPN and stack-based languages like Forth) but

The problem is that these symbols are no longer suitable for the modern world. They were fine at the time when they were conceived, but technology has moved on and requires something better.

These symbols were difficult when computers were new and slow. Nowadays, there are things like Unicode, LaTeX and MathML which partially solves those problems. You make it sound like we should adapt to computers, that's understandable when computers were expensive, but they're now cheap and we should optimise for humans in my opinion.

The criticism was not that the symbols are undisplayable, it is that their use is not consistent and not possible as part of a computer program, aside from very special languages which specifically cater for Math. A few attempts have been made to reconcile these (for example RPN and stack-based languages like Forth) but have not seen widespread adoption so far.

With regards to the GP, I think that the inconsistency is especially bad. For example, whether N is meant to include 0 or not often depends on whether the author thinks that the natural numbers include 0 or not (which are two totally different things). Then many authors use trigonometric functions like operators to avoid writing parentheses, but without formally specifying the binding/precedence level. So when one reads "sin^2 x*y" does that mean "(sin(x)^2)y" or "sin(x*y)^2" or "sin(sin(x))*y" or "sin(sin(x*y))"? The list goes on.

That's because of the limitation in conveying Mathematics in ASCII as well as either people writing the mathematics being insufficiently clear (which can happen in English or p

Just a note—sin^2(x) cannot be sin(sin(x)) because that is a datatype error. The input is an angle, the output is a ratio. They don't have the same domain, and hence the function cannot be iterated. Because of its utility in trig proofs, sin^2(x) was introduced as a form of syntactic sugar, much like Python's slice operators or C's array subscripts. (Although to be fair the formal notion of functions wasn't well-standardized at the time, and it actually was a unary operator when introduced.) It helps

Just a note—sin^2(x) cannot be sin(sin(x)) because that is a datatype error.

You just showed that you don't know enough mathematics.

The input to the sine function is not an angle, it is a real or complex number. If real, this number often (but not always!) describes some angle. If complex, it obviously won't describe an angle.

The sine function is defined as

sin x = (exp(i x) - exp(-i x)) / (2i)

where i is the imaginary number, and exp(x) is defined by the series

exp x = 1 + x + x^2/2 +... + x^n/n! +...

Note that, since the convergence radius of the exponential series is infinite, and the sine is just a linear combination of exponentials, the sine is defined on all complex numbers. Since it is complex-valued, sin sin x is indeed well defined for all complex numbers x.

Moreover, if you restrict the sine to real numbers (that is, only accept real numbers), you still have a well defined sin sin x, because the real sine function is also real-valued (more exactly, its values are restricted to the interval [-1,1]).

Also, the output is in general not a rational number (the only thing you could have meant with "ratio" that makes sense in this context).

You've argued effectively that the domains of the input and output of trigonometric functions are unbounded, but not against the interpretation of their meanings. Complex angles occur in total internal reflection, for example.

Even if sin sin x is well-defined, it doesn't have any natural utility. I'd be really surprised (but interested!) if you could show me an example of it being used in a proof.

There are in fact whole books [wiley.com] on the topic. Although that book intro claims not much has been written about it, there is information around about it because of the use of the sine map in dynamical systems and chaos studies (with some "real" world applications as modeling of some weakly driving rotors and phase locked loop systems). Going deeper into the rabbit whole will find things like functional square roots, equivalent to half an iteration, giving things like the rin function where rin(rin(x)) = sin(x

So "sin^2 x*y" means "(sin(x*y))^2", it's a pretty strong convention. If you meant "(sin(x)^2)y" (as "(sin(x^2))*y"), you'd write as "y sin x^2". If you meant "sin(sin(x))*y", you'd write as "y sin(sin(x))". If you meant "sin(sin(x*y))", you'd write as that or "sin(sin x*y)". Sure, it's a bit odd for people unfamiliar with mathematics, but those people are never going to do mathematics anyway.

But could you code this convention into a compiler, e.g. by formally specifying precedence for trigonometric operators? It would have to account for the most common interpretations:

Now continue this for log, lim, summation notation, and all the other clever ways mathematicians have devised in order to avoid writing parentheses. It will quickly become clear that this is an arduous, error prone task and the time better b

So when one reads "sin^2 x*y" does that mean "(sin(x)^2)y" or "sin(x*y)^2" or "sin(sin(x))*y" or "sin(sin(x*y))"? The list goes on.

Why would it be anything other than the "sin(x*y)^2"?

Because in other contexts, (f^2)(x) means f(f(x)). And there is sin^(-1) which is a popular way to denote the arcsine. So the superscript after a function can mean totally different things which the compiler will have to figure out from the context. Concerning x*y see my other reply further below.

The author always defines what N actually means. Guessing from the context you are using it in N is the count.

The problem is not that it isn't properly defined, the problem is that it is not consistent.

Such "corner cases" include for example iteration or recursion which I'd say is a pretty common thing to do for computers nowadays. Generally you can write

f^0 = id
f^(n+1) = f(f^n)

which is consistent with sin^(-1) notation, and is especially common in areas of mathematics that are close to computer science.

The problem is not that it isn't properly defined, the problem is that it is not consistent.

Amazing how Math people seem to be able to handle such inconsistencies then./sarcasm

The readability or usability by humans was never questioned. The only argument is about whether the notation can be used for writing computer programs. To keep compilers simple, they need to build a synt

Now, if you think that everything should be expressible under ASCII and easily readable by humans, pray tell, how you could express:

No, the question was not about readability by humans, but instead suitability to be part of a computer program. I give to you that the class builder { : } or the \mapsto operator would possibly become unwieldy.

1. Integration and limits or related symbols (e.g., area integration)

These are just functions with (commonly) three arguments. Not much different from if conditionals or for loops in a computer program.

2. Absolute vs. vector length

What is wrong with abs()? Also |x| notation creates an extra difficulty for compilers because opening and closing delimiter are the same.

You make it sound like mathematics deliberately chose symbols and syntax that was difficult to implement in a programming language, as if that's the pinnacle of the written form.

Not deliberately, but a significant part of the mathematical notation actually doesn't make sense from the POV of formal languages - probably because the notion of formal languages didn't exist at the time.:-)

When Mozilla proves they've solidified a piece of web tech that many people already rely on, "who cares?"

Define "many". Before today, as a geek and a software developer, I've never heard of MathML before. Now that I have heard about it, and know what it's for, I find it completely useless to me, and I suspect the vast majority of people. I think that a tiny fraction of a percent of people will find MathML useful.

FWIW, Chrome's result is identical to my default, pre-Chrome, Android 2.6.3 browser. This would make sense if Google had removed the code from Chrome rather than a half-assed version; this must be the default infinit incompetence look.

I take that back. Infinite incompetence would crash. Possibly also infecting the Internet.