Xah Programing Blog Archive 2015-02
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.
Microsoft Windows Keyboard Software Guide (minor update)
MMO Mouses (repost)
spec with invalid HTML
if you search for the string
">><", you find them in these spec docs:
new photos. Logitech G710+ Keyboard
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)
Keyboard RSI: 《Biomechanics of the Upper Limbs: Mechanics, Modeling and Musculoskeletal Injuries》. See bottom: Computer Keyboard Design Flaws
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.