Machines with 36-bit architectures have 9-bit bytes. According to Wikipedia, machines with 36-bit architectures include:
Digital Equipment Corporation PDP-6/10
IBM 701/704/709/7090/7094
UNIVAC 1103/1103A/1105/1100/2200,
@quartata standard committee for each one, X times development effort in browsers, no new browser ideas seeing the daylight just because not enough manpower to support all languages and eventually you are left with just Google Chrome.
@QPaysTaxes "[object Object]" because yes, it casts it to a string, even in strict mode. I concede that is bad.. but how often do you find yourself adding an object to an array? Do you have any real-life examples of that happening?
Unless you change the definition for the + operator, you can't throw errors on type comparisons or concatenation. Even then, it'll still go to primitive
@QPaysTaxes @quartata Well, I am a JavaScript developer and honestly I've never once had to deal with a type coercion issue. Obviously, anecdotes are anecdotes, but that's my 2c
@QPaysTaxes Babel is not huge. And you're using Babel primarily for backwards compatibiltiy (not all browesrs support es6 yet) - you just get flowtype thrown in for free.
@QPaysTaxes I have found it very difficult to use rigid type systems when you want to use union or intersection types, which are surprisingly quite common in js
for example, mixins are not so easy to do in a strong type system unless they are explicitly planned for (scala)
I mean, there's a lot of hate on JS but I find it quite a nice language to work with once you step around the potholes (loose mode, double equals, don't pass value types to .call or .apply). Outside of that I find the flexibility quite useful. And it lends itself well to structural - rather than nominal - typing :-)
JavaScript is a language built on bandaids and backwards compat. ES6 is actual the tipping point where standards agencies have gone "Nah, we're tired of this crap now. Let's actually make ourselves viable". Though they still aren't getting rid of double equals. @_@
@QPaysTaxes Double equals is loose equality.. sort of
The identity (===) operator behaves identically to the equality (==) operator except no type conversion is done, and the types must be the same to be considered equal.
Reference: Javascript Tutorial: Comparison Operators
The == operator will compare for equality after doing any necessary type c...
@QPaysTaxes well, when you think about it sort-of kind-of makes sense.. back when it was made, every attribute on a DOM el was a string. It just meant if you had an attribute that was numeric you wouldn't need to parseInt it.
Until there are about.. 0.01% of the user base using ES5, then we will still have to compile down to ES5.
You can't convince users to upgrade their browsers. It doesn't matter for C++ where you can statically link all the libraries and just deploy that on it's own with no 3rd party dependencies
@DanPantry i think the blocking point is not that users dont upgrade browsers, but that site developers don't want to upgrade their broken sites in the upgraded browsers
In my most recent project we were forced to support IE9 because the business wanted it until IE9's perf issues forced them to upgrade to a more modern browser - we wanted to code it in modern standards with flexbox and such but couldn't until that tipping point
@Optimizer Maybe I'm misunderstanding. From my POV, the code I write now in ES6 is not going to impact geocities for example. But it's not going to work in someone's browser who is more than a year old.
@DanPantry so if all these only supported ES5+ then hell lot of sites will break. and that is a more important concern than people still being stuck to IE9
So with IE it's a lot easier to stop users going to a certain site. With Chrome, we had to redirect all users to a proxy that only allows specific whitelisted IPs through.
@Optimizer Well, IE10 and IE11 both also were choking on AngularJS. Turns out IE10/11 have some kind of setting turned on by default that causes it to choke.
Also it was AngularJS 1.3 which is really bad for performance, but that's not my choice of tech
@QPaysTaxes Well, yes and no. Basically, the whitelist was only to be applied to outbound network connections from a virtual machine farm. So I am pretty sure they could have done it, but it was a matter of time and resource - they only had 2 days to set this up because we deployed the app in production to IE11 to 200 users, replacing their old desktop app (which was broken due to schema changes in the new app).
They're definitely staying in because angular and also TypeScript has already adopted them, but apparently the spec changes more often than Hilary Clinton's political views
@Optimizer They're cool, but I'm not really seeing a huge use for them. Additionally, the current shims for them are very bulky, which makes me not want to use Angular 2 (as Angular 2 requires them).
@quartata Hm. That sounds interesting, but if the matrix is square it gives "inconsistent" behaviour so to speak? I mean, if you want det(A^T * A) and A happens to be square...
@QPaysTaxes You don't need to be like that. You said what your problem is and apparently you have solved parts of it yourself, and assumed I would know what parts you have solved yourself.