
WebAssembly - Lightforce
Regarding the topic here: https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=10487713<p>Web Assembly (WASM)....<p>Lets first remember that this is &quot;bytecode&quot; which is not the native code of any given computer instruction set architecture. In a way, it is still really a source code because there is still a translation step.<p>In the OLD days, we had assembly language which itself is just an ASCII based mneumonic representation of the underlying instruction set architecture. There is even closer to &#x27;bare metal&#x27; approach in machine language programming via the Machine Language Monitor (ML Monitor). This hexadecimal based representation. In fact, even the hexadecimal representation is an abstraction to a small step above the pure binary. When you enter hexadecimal digits, it is entered as keyboard keycode scan values. This then is translated into nybbles (4-bit units). So in essence this hexcode blob can be saved out into ASCII text files or it can be taken into the binary values.<p>If we were really coding in absolute bare metal, there would be three buttons. 0, 1, which will load a small buffer of binary digits of the keyboard and the enter button to submit the binary string into the larger memory. 
[pause]
======
Lightforce
This would be very painful for any programmer.

A programmer who really has the level of ability to understand the
architecture of a computer hardware as intimately and as in depth as machine
language programmers would have, the same kind of person can potentially write
the code of WASM directly. This requires a special discipline and perhaps
tenacity to bear it. After all, there is a reason not everyone is in
programming in machine language or assembly language.

WebAssembly is kind of like a virtual assembly language of a sort that can be
represented in a semi-human readible textual format, similar to a disassembly
listing of native machine code to the 'mneumonic' format of opcodes vs. the
hexadecimal representation.

For a number of us who has literally worked in machine language level (mostly
on older processors such as 6502/6510 & other 65xx based processors found in
Apple II, Commodore 64, NES, Super Nintendo (65c816 cpu), Motorola 68K series
processors found in Commodore Amiga and early pre-PowerPC Apple Macintosh line
of computers, 8088/8086/80186/80286/80386... series of Intel processors found
in IBM PC and Compatibles running MS-DOS and previous versions of Windows
(1.x, 2.x, 3.x, 95, 98, NT,....)), well..... most of them are familiar with
working this way so the idea isn't so alien. If you understand the language...
even in the byte code format which it is technically a language, you'll
understand how it works and how the code works regardless of how it is
presented to it. Even in native machine code if you understand the underlying
ISA (instruction set architecture) and the machine language and architecture.

[pause]

------
Lightforce
This is why I am not a fan of some of the extremist views on Free Open Source
movements. There is a world where you need to work in both proprietary and
open source. Just as we work real jobs and may also volunteer on our time off.
Open source isn't intended for people to make their living and income from.
It's meant to be a sort of volunteer work or otherwise for gratis. In other
words, done for the greater good of society. You still have to have a working
job in a commercial business whether as an employee or as business owners.

I've heard sentiments demonizing commercial business and business activity
where they're trying to earn an income from the work. Duh. Businesses have to
legally pay for the hours employees worked. It's not optional. There is no
such thing as volunteering for a for-profit entity. It is not legal. If an
employee worked on a project of your business, you have to pay for it. If you
object to the employee spending too much time, then you may have to consider
laying off that employee, terminating that employee's employment, or shifting
them down to part-time status or otherwise make decisions to control or limit
hours spent. Sometimes, employees are salaried to a level where overtime rates
no longer apply and they are paid a fixed salary whether they work 40 hours a
week or they work 100 hours a week.

When I look at WebAssembly, this is a system that can facilitate various
interests of proprietary works but also if you want to open source something,
you can release it in a similar manner as other open-source software where you
have a binary release and also the source. Provide a link for people to
download the source code if they so want it.

[pause]

------
Lightforce
However, lets remember that for the most part, most websites are in fact
proprietary and it is not really intended to be "open source" because the work
is copyright. When you have software that runs through the browser, is it not
really the intent of that kind of software such as video games to be
proprietary by companies with employees that needs to be paid so they can have
food on the table and pay the bills as well as the business owners. There are
some individuals with the "FREE as in free beer" when taken to the logical
extreme doesn't work in the real world where not everything is free.

There is a lot of plagiarism on the web where people take each other's code.
If you are in business where you make money from your site such as Software As
A Service model business or online video game service business, if someone
copy and pasted your web site and removed all elements of payment for given
services, that ripoff will undermine your sales because if given a choice,
people will not pay for something they can get for free.

If you're working full-time as a business and/or as an employee of such
business, you're livelihood is dependent on successful return on the
investment of time. You don't have time to work another job to support your
family and there is not a welfare system sufficient to support the world's
population. There isn't even enough financial resources to support those in
need so undercutting by shortcutting, plagiarizing, stealing and doing nothing
unique and innovative or otherwise develop an original work only serves to
erode the ability for people to make sufficient meaningful living with
sufficient financial resources to raise a family. It isn't coming from the
government.

[pause]

------
Lightforce
Maybe I don't want to release source inadvertently without appropriate
license. Maybe I don't want people to do with my code however they want
without some stipulations or restrictions. There are reasons for anything.

Sometimes people are a little cavalier and think it is just public domain and
they can legally do whatever they want.

In my opinion, I don't want some artificial force forcing my work to be
effectively public domain without my approval. If I use some part that is GPL
then it is an approval that any part subjected to GPL must follow the GPL but
I wouldn't necessarily want everything to be auto-assumed.

Websites under law in many countries are automatically copyrighted by virtue
of the Berne Convention and international treaties and inter-nation policies
and agreements regarding copyright. Therefore, even if the source is visible,
copying parts of if not significant portions of a website maybe a copyright
violation. A web-based video game (site and video game service) for example as
well as the overall business websites and other portions of a website is
usually copyrighted yet people often steal or plagiarize or otherwise
disregard the copyright because they don't care. If it is easy for them to re-
implement, they will do so. Mix, advance client-side and advance server side
elements will help impede full copying over because they don't get all of the
pieces to successfully duplicate your work.

[pause]

