Free and "non-free" languages

I've never heard of a non-free computer language, at least in the same sense a computer software can be. Both are very different things. You can use any language as long as there are free programs which understand it. Free web browsers such as Abrowser and IceCat will run JavaScript, HTML and CSS, and that's what you should mainly care about.

Some may consider a language such as C# non-free because of patent issues, but that's a really different thing and not really comparable to non-free software

JavaScript and ECMAScript

ECMAScript is just a different name for JavaScript. When the language was first developed it was named JavaScript. It was name by marketing people because of the popularity of the Java language. When people wanted to make a standard for the language, so it can consistently used between browser, they named it ECMAScript. They used a different name because JavaScript is a trademark.

As I understand, JScript is just the Microsoft name for JavaScript, again because of the trademark issue. The ActionScript language is a completely different thing. It's solely or mainly used bу Adobe Flash programs.

All widely used browsers (free or non-free) use JavaScript/ECMAScript.

HTML, HTML5 and CSS

Labeling things as HTML5 doesn't make sense anymore. It's nothing but a marketing word nowadays (a buzzword) and it only brings confusion and misunderstanding. There's no HTML5 in practice, only historically.

You have various specs (specifications) describing different features which browsers should implement. When a browser implements something you can make websites using those features. There are many specs and new ones are written regularly. For example, some of the major specs are:


  HTML Living Standard: https://whatwg.org/html

It describes the basics of HTML, along with other more advanced things, such various web APIs used by JavaScript. The spec is changed regularly (almost daily) as new features are added and removed - that's why it's called a "living standard".


  CSS2: http://dev.w3.org/csswg/css2/

      It describes the basics of CSS.
      All other CSS specs build upon this one.




Along with those two, there are many separate specifications describing additional web features. Here are for example some of the additional CSS specs:


  http://dev.w3.org/csswg/selectors/
  http://dev.w3.org/csswg/css-images/
  http://dev.w3.org/csswg/css-color/
  http://dev.w3.org/csswg/css-flexbox/
  http://dev.w3.org/csswg/css-align/


The DOM and web APIs

JavaScript is scripting/programming language like any other. It's not specific to the web in any way. But when you use JavaScript in a browser you also have additional to web specific features, like being able to interactively change things on the page.

The thing which enables you to change things on the page is called the DOM. It's an API used by JavaScript in web browsers.

There are many different APIs which enable you to do different things. Some of them are bundled in one spec, some have a separate specs. The APIs do things like reading data from files, saving offline data (similar to cookies), loading fonts from websites, drawing 3D graphics and so on.

Here are some web API specs as an example:


  https://dom.spec.whatwg.org/
  https://whatwg.org/html#webstorage
  http://www.w3.org/TR/IndexedDB/
  http://dev.w3.org/2006/webapi/FileAPI/
  http://dev.w3.org/html5/webvtt/


Some seem to label all web APIs as "the DOM", but I don't think that's technically correct. The DOM certainly is one of the major web APIs in any case.

PHP, Ruby and Python

If you are contemplating on which language to learn from these three, I would suggest Python. Unlike the other two, Python it's also widely used to write other types of programs too, not just for web sites. A lot of GNU programs are written in Python.

Where to Start

I don't really know where to start from.

I've never read any books on web developments, so I can't recommend any. I've started by reading various HTML, CSS and JavaScript tutorials on the web.

Nowadays I notice that most tutorials are actually wrong in many aspects. They teach bad practices and deprecated features. You should be aware of that.

The most accurate info I find is on https://developer.mozilla.org/ and definitely in the specs. That's what I usually read this days. Although both are kind of hard to understand, if you are a beginner.

Reply via email to