Xah Programing Blog Archive 2015-02

E-3lue Cobra EMS109BK mouse
“E-3lue Cobra EMS109BK mouse” Buy at amazon

see Cheap Gaming Mouse

Programable Keypads (updated)

AutoHotkey Syntax Problems (minor update)

there once was high-level graphics API Fahrenheit, QuickDraw 3D, but was killed by C,C++,unix hacker idiots.

little debian girl
“でびあんでしょう” (i'm Debian)

Microsoft Windows Keyboard Software Guide (minor update)

MMO Mouses (repost)

Ruby: Quote Long String, Heredoc

spec with invalid HTML

if you search for the string ">><", you find them in these spec docs:

The Pain of Ampersand in HTML

new photos. Logitech G710+ Keyboard

the Nature of Associative Property of Algebra (updated)

Java Tutorial: “this” Keyword (updated)

Java: “static” Keyword (updated)

Java constructor complexity. Java Constructor's Return Type (updated)

Java Tutorial: Constructor (updated)

Java Tutorial: Arrays (updated)

Updated utf-8 usage on the web, from 2010 to 2015. See: Unicode Basics: What's Character Set, Character Encoding, UTF-8?

Java Array Syntax Soup (new)

Logitech G710+ Keyboard (minor update)

Go Board Game as Cellular Automata

Keyboard RSI: 《Biomechanics of the Upper Limbs: Mechanics, Modeling and Musculoskeletal Injuries》. See bottom: Computer Keyboard Design Flaws

The Nature of Idioms in Programing Languages

History of Emacs and vi Keys (minor update)

you probably heard of emacs org mode. It's a markup, similar to markdown, but much more. Also supported by github. See: Emacs: Org Mode Markup Cheatsheet

Markdown Tutorial (minor update)

jbm has written a review comparing ergodox, truly ergonomic keyboard, and the new esrille. See bottom: Esrille New Keyboard (M-Type and TRON) from Japan

2015-02-05 tweeter spam on lang design

start coding, next 4 hours. but before i do so, let me talk about 2 aspects of judging a lang's design

when you judge whether you like a lang, there are 2 aspects. 1. consider the mistakes of the lang. 2. the lang design, by the creator.

every lang has mistakes. To see this, consider python2 to 3, perl4, and before, and perl6 is extension. js, and now es6 with strict, etc.

so, every lang has mistakes. But, if we ignore it for a moment, lang still remain its design characteristic. eg python3, perl6, ruby2, java8

now, the mistake part, can be big or small. We can say, eg look at python2, what % is considered a mistake. Do same for lang X.

so, diff langs, we can consider some percentage that are mistakes. But important thing is, even if all mistake fixed, still is a design X.

if a lang has huge amount of mistakes, then, that heavily influence whether we like it. Typically, large % of mistakes means no like.

but, typically, mistakes of langs, are comparable among langs. e.g. they all just a small percentage, not huge gap between langs.

so, to consider whether you really like lang x in comparison to other langs, you should not consider a lang's mistakes.

this way, you are judging whether you like lang x, not fooled in judgement just because it has some mistakes that are popularly known.

in other words, you want to consider whether you like lang x's design and philosophy.

now, js has lots mistakes/warts. e.g. number, array, and many detail of its prototype system. Many hacker idiots, focus on these.

php, has lots mistakes. its inconsistent sloppy naming of functions. again, hacker idiots focus on it.

python has mistakes. in particular, strings are bytes, not unicode chars, but fixed in python3.

but after you ignore the mistakes, you can then really judge, the lang's design, and see whether u like it, the design, its “philosophy”.

the above, concludes a section. That is, in judging a lang's design, it's more meaningful to not include the lang's mistakes.

now, when judging a lang, there's design aspect, but also practicality aspect, implementation, speed, field, lib size, popularity, etc.

most of these points are trivial questions. popularity, field, size of lib, speed, all can easily verified and agreed upon.

so, the tricky question, is again, the design/philosophy of the lang. What does it mean to say lang x is better than y?

but also, whether somebody like/disklike lang x is of no value. Because, each person has own habits, view, IQ, need.

whether you or someone like/dislike a lang has no value to the judgement of design of a lang.

finally, then, what is a better design of a lang? That would be another topic another day. On the meaning, on how to measure, on perception.

What Made Lambda Calculus So Powerful?

Functional Programing: is Real World Stateful?

old article. A Lambda Logo Tour (and why LISP languages using λ as logo should not be looked upon kindly)

Esrille keyboard can be ordered now outside Japan. See its home page: http://www.esrille.com/keyboard/. My review at: Esrille New Keyboard (M-Type and TRON) from Japan