[1] http://www.reddit.com/r/tokipona [2] http://www.reddit.com/r/lojban
1,389 karma · joined September 11, 2008
[1] http://www.reddit.com/r/tokipona [2] http://www.reddit.com/r/lojban
Opera is not a reskinned Firefox. It uses Chromium as the base, not Gecko.
Linear types. Much like unique pointers in Rust, the type system tells you when you fail to consume a linear type. A 'free' call would do this. Same with closing files, etc - you use linear types to track that the resource is consumed.
ATS2 has no GC as the default mode of working too. The only reason it is more verbose is because you need the call to free. ATS strives to be explicit in what it does so it's easier to read the code and know what is happening.
Languages with destructors or implicit function calls seem to lean towards the C++ downside of "What does this code really do" when looking at it. I dislike hidden code where there is no easily identifiable call to tell you something is happening.
It's not all roses and unicorns with ATS either of course. What I really want is the next generation of dependently typed system languages which has learnt from the current ones.
If I paraphrase what you said about Haskell it's true for ATS too:
"but one of the lovely things about ATS is that despite its reputation as a difficult language, once certain key concepts are tackled, it's relatively easy to program rapidly and create real world products (with a considerably higher assurance of correctness than most languages provide)."
The key, like any language, is learning the concepts. I think people assume ATS is more difficult than it is is because much of the documentation and examples for it use a verbose style and heavy proofs. A post I wrote a while back attempts to gently introduce ATS dependent types and you can see that the non-dependently typed examples are very similar to any other ML language:http://bluishcoder.co.nz/2010/09/01/dependent-types-in-ats.h...
Unfortunately MSE support is not complete in Firefox so the MSE using HTML5 YouTube player doesn't work. This will be why Google would be serving Flash. I don't know if they continue to serve the non-MSE HTML 5 player.
MSE support in Firefox is in progress. Nightly builds can enable it by changing the 'media.mediasource.enabled' about:config setting.
Don't do this though because it will definitely degrade your YouTube playing. Due to an incomplete feature it waits for the entire video to download before playing. There's a patch for this that gets playback working but there are still issues with the adaptive streaming itself (because the implementation is incomplete).
Follow bug 881512 [2] if you want to track support in Firefox for the "Get YouTube working with MSE" issue.
I wrote a bit about this [3] a while back and will do an updated post, if someone else doesn't first, once YouTube support is stable.
[1] http://www.w3.org/TR/media-source [2] https://bugzilla.mozilla.org/show_bug.cgi?id=881512 [3] http://bluishcoder.co.nz/2013/08/20/progress-towards-media-s...
http://bluishcoder.co.nz/2012/08/30/safer-handling-of-c-memo...
I think something similar for Rust would make for a great article subject too.
Once I was more familiar I started learning the GUI environment. It took me a while to work out how the object transporter worked to export code back to text files but once I got that Self became a lot more friendly to use.
http://www.reddit.com/r/selflanguage
This is my attempt at a JSON parser using Self's Mango parser package:
http://bluishcoder.co.nz/2013/09/16/multiple-users-in-a-self...
http://bluishcoder.co.nz/2009/07/27/displaying-images-with-s...
It goes through details with benchmarks. The PEP code is available with the Self distribution. They were able to get faster than the Java implementation at the time. Back then Java was interpreted though.
[1] http://www.afterdawn.com/news/article.cfm/2013/06/27/netflix...
Some way of pinning or signing JavaScript verified by a third party or browser would be useful here. If it could also note what percentage of users was using a particular JS version you'd be more likely to notice if a targeted malicious JS was being sent.
ATS [2] is my go-to language for static guarantees with C's efficiency. Not sure if it counts as small but the implementation is not big.
[1] https://github.com/adamgundry/inch [2] http://www.ats-lang.org