View Single Post
Old 12-09-2017, 11:02 AM   #18
Katsunami
Grand Sorcerer
Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.Katsunami ought to be getting tired of karma fortunes by now.
 
Katsunami's Avatar
 
Posts: 6,111
Karma: 34000001
Join Date: Mar 2008
Device: KPW1, KA1
Eh. Found out about something new. WebAssembly.

The IT-industry is running in **** circles, chasing it's own tail.

- In the beginning, programming languages didn't have enough structure, so Pascal was created, with very strict data typing.
- Pascal didn't have enough power, so C was created for low level access and data casting from one type to another (Pascal later gained these things as well).
- Then software got too large, with too many variables and functions splintered into too many files, so C++ was created to keep everything together in objects.
- But people didn't want to do memory management, so you get languages like Java and C#.
- Then there are browsers, and because people get lazier and lazier, the types are cast aside (heh... see what I did there?) and you have typeless, garbage collected languages that are interpreted... making everything very slow, and bug ridden because each typo creates a new variable or even just makes the interpreter ignore lines here or there, which makes your application fall apart. (I've been hating Javascript and PHP's typeless paradigm since I first saw them, but you can't live without them on the web. The only way of actually using them productively in a large environment is with a linter/code checker.)
- Darn. We can't have that, so you get things like Typescript, a language with types, built on top of Javascript, but because it transpiles to Javascript, it isn't faster.... same with Hack, which is basically Facebook's typed PHP. It just requires an extra step, and compiles from an unrunnable language to a slow one (and worse, Typescript uses Pascal-like type syntax in a C-type language...)
- So we create WebAssembly, an intermediary execution environment that compiles a language to machine code before running it, and it uses.... C and C++ as input!

After 40 years, we're right back at the beginning, with the only difference that now, the browser is the platform of execution instead of the operating system.

Do you think anyone has learned something in those 40 years? No. Because there's already talk of making WebAssembly a target for garbage collected languages such as Java and C#.... and for typeless languages such as Javascript.

$#%@$%W$#% So you get yourself into a mess by making programming 'easier' (but slower and more prone to weird bugs), then you solve that problem by basically returning to the beginning of modern computing (~1973 or so), and after you've done so, you're going to reintroduce the concepts that failed in the last 20 years years all over again, on top of that solution?!

Some people, somewhere, need to be hanged.

(I know there are and have been many more languages and paradigms, but I'm using the best known ones to illustrate the point.)

Last edited by Katsunami; 12-10-2017 at 11:18 AM.
Katsunami is offline   Reply With Quote