Hacker Newsnew | past | comments | ask | show | jobs | submit | laylomo2's commentslogin

As a person who has learned a few dozen keyboard layouts, the timelines described here check out with my experience. 21 days is kind of the baseline to get to a barely acceptable typing speed, and then there’s a slow long slog as you get more and more comfortable day by day. Depending on how much you practice, it could take between 2-8 months to _really_ get comfortable with a layout.


The more I used ocaml the more I found beauty in the syntax. It’s very ergonomic in many ways:

1. It’s whitespace insensitive, which means I can code something up really messy and the code formatted will automatically fix it up for me.

2. In general there aren’t a ton of punctuation characters that are very common, which is great for typing ergonomics. Don’t get me wrong, there are still a lot of symbols, but I feel compared to some languages such as Rust, they’re used a lot less.

Beyond the syntax, there are a couple of things I really like about the language itself:

1. Due to the way the language is scoped, whenever you encounter a variable you don’t recognize, you simply have to search in the up direction to find its definition, unless it’s explicitly marked as “rec”. This is helpful if you’re browsing code without any IDE tooling, there’s less guessing involved in finding where things are defined. Downside: if the “open” keyword is used to put all of a module’s values in scope, you’re usually gonna have a bad time.

2. The core language is very simple; in general there are three kinds of things that matter: values, types, and modules. All values have a type, and all values and types are defined in modules.

3. It’s very easy to nest let bindings in order to help localize the scope of intermediate values.

4. It has a very fast compiler with separate compilation. The dev cycle is usually very tight (oftentimes practically instantaneous).

5. Most of the language encourages good practice through sane defaults, but accessing escape hatches to do “dirty” things is very easy to do.

6. The compiler has some restrictions which may seem arcane, such as the value restriction and weak type variables, but they are valuable in preventing you from shooting yourself in the foot, and they enable some other useful features of the language such as local mutation.


2. In general there aren’t a ton of punctuation characters that are very common, which is great for typing ergonomics. Don’t get me wrong, there are still a lot of symbols, but I feel compared to some languages such as Rust, they’re used a lot less.

I never really seen someone put that into words. I always feel a certain kind of weird when I look at a language with tons of punctuation (Typescript is good example).


I think typing ergonomics are overlooked as well. CSS has the most verbose syntax for variables I've had to use regularly e.g. `var(--primary-color)` which I find unpleasant to type when experimenting. And I actually like the lack of brackets and commas in OCaml for function e.g. you write `add_numbers 1 2` instead of `add_numbers(1, 2)`. Brackets and commas in particular require you to navigate left/right a lot to add them in the right place while iterating and give confusing errors when you get them wrong.

Would be curious if there's work into a programming language that was optimized for minimal typing while iterating.


Tangentially there is room for optimizing for non-american keyboards.

The accent grave (backtick) you're using in a Markdown-inspired way is utterly annoying to type on keyboards where accents are implemented as dead keys, to be combined with vowels, common on european keyboard layouts. For your example I had to type `, but then look ahead to the a of add_numbers and remember to put in an extra space, so that the ` and the "a" don't combine to an "à".

Also I find it somewhat illogical: The usage of an accent as a character in itself in programming languages is one of my pet peeves. Just being an ASCII character is not reason good enough to keep using it.

Curly or square brackets, backslashes and other stuff also put you into uncomfortable AltGr or Cmd-Shift territory on some keyboards. American language designers are often blind for these simple ergonomics.


> The accent grave (backtick) you're using in a Markdown-inspired way is utterly annoying to type on keyboards where accents are implemented as dead keys, to be combined with vowels, common on european keyboard layouts. … Also I find it somewhat illogical: The usage of an accent as a character in itself in programming languages is one of my pet peeves. Just being an ASCII character is not reason good enough to keep using it.

I understand that keyboards behave as they behave, and saying that "well they shouldn't" isn't a real answer. But I also think that it's not true that the backtick character is an accent grave, even if it is treated like one, any more than any other pair of Unicode homoglyphs are the same.


> Brackets and commas in particular require you to navigate left/right a lot to add them in the right place while iterating and give confusing errors when you get them wrong.

In other languages, modern IDEs take care of that. For an invocation like `addNumbers(1, 2)`, you would perform code completion after typing “aN”, and the IDE would already fill in matching function arguments from the current scope. The selection (cursor) would be highlighting the first argument, so you can readily replace it. Pressing Tab would move to the next argument. Pressing Enter (or similar) would accept the call expression in the current state and move the cursor behind it. So you only type the actual arguments (if necessary) and otherwise just hit combinations of Tab and Enter, or Ctrl+Space for code completion. You generally don’t type the parentheses or commas yourself.

That being said, I’m in favor of languages with not too much punctuation. But there’s a balance, and too little punctuation can also hurt readability.


I also feel an ick when I have to type or read punctuation like this:

    (x) => { ... }
The => and { are directly pointing at each other and it kinda irritates me. Feels non-aesthetic.


var(-- sounds like the person who writes the parser was either too lazy or sucks at his job so they asked the spec writer to give them a break.


I'd be interested in a link about this (can't find one from a quick look), but guessing it's to do with avoiding clashes with names in existing tools/code and backwards compatibility in browsers. In Sass, you would just write $primary-color, but if they copied that syntax exactly, it's likely going to get confusing for Sass tools if it's a Sass variable or a CSS variable.


I feel the opposite—the typing ergonomics are better with a lower-punctuation language, but the reading ergonomics are substantially worse.

Punctuation is used in written human languages to provide assistance to our brain-parsers—like road signs that help navigate a sentence. Too much punctuation and it becomes a huge problem because it ceases to be meaningful, but have you ever tried reading a Roman inscription written with no spaces or sentence boundaries?

I think programming language punctuation serves the same role—it visually marks out how the parser is going to navigate the code, allowing the reader to use less mental effort repursing code that they initially misparsed. ML-style languages have a simpler syntax than the C family, which means there is some justification for having less assistive punctuation, but I've definitely struggled to navigate OCaml as a result of too little punctuation.


The lambda syntax and default lambda parameters alone make typescript very hard to parse


Betcha everyone is using qwerty too :)


Can't wait to add all the thought leader hot takes bots to my ban lists.


I'm not a linguist, but I always love finding (possible) examples of hard C in Latin in other languages. For instance "Caesar" is borrowed into German as "Kaiser", and the borrowing of Latin "piscis" into Albanian as "peshk" appears to me as another example of that vestigial hard C.


Another example is Sardinian. From the wikipedia page about the Sardinian phonology:

"Preservation of the plosive sounds /k/ and /ɡ/ before front vowels /e/ and /i/; for example, centum ..."

https://en.wikipedia.org/wiki/Sardinian_phonology


The Caesarea area in Israel is pronounced with the hard C in Hebrew. I wonder if that Latin influence or an artefact of Hebrew itself.


Modern hebrew gets the name from the Mishnaic hebrew name for the city. It's also spelled with a unvoiced glottal in arabic. Note that Israel was in the hellenistic part of the empire, and caesarea was very much a greek speaking city, where there wasn't palatalization of latin c (which was rendered as a kappa). Note russian Czar.


Turkish also retains the hard C in some forms, the city of Kayseri in Asia Minor is also from Caesarea. However some of that has been eradicated by the more recent influence of French. An example of that is Julius Caesar, which is Jül Sezar.


It's not just the name of the city קיסריה [Keisariya], but also the title of the imperor - "Caesar" - קֵיסָר [keisar].


My understanding is that both would have been derived from Phoenician which was itself from a Proto-Indo-European origin.


No... first hebrew is basically just a dialect of Phoenician, and phoenecian isn't an indo european language! It's semitic, like arabic and Akkadian. Also the name Casesarea is of course from Caesar (the city was founded in honor of Augustus by Herod)


Why some Romance languages had the hard C sound lost before e and i?


Because of palatalization [0], a very common sound change.

0: https://en.wikipedia.org/wiki/Palatalization_(sound_change)


A similar process is currently ongoing in some English dialects with initial t/d. "Tuesday" and "choose day" are homophones for some British speakers. It may well morph into "shoes jay" within another century or two. Or not. Sound changes tend to follow patterns but they are not really predictable.


Thank you, very interesting. Is this across the whole language, or rather localized to some areas (geographic or other).

Also as a French walking in the street and saying Tuesday and choose day loud in the street, I got a few curious stares :)


Thanks for the insight!


Only when written, of course.

In Italian the written letters ce and ci are pronounced with a soft c.

There are plenty of words with a hard c (a k) followed by an e or an i. Italian alphabet doesn't have a k character so those sounds are written as che and chi. That is, in Italian ch is the k sound. Most (all?) of the other languages of the area use ch for a soft c.


That reminds me of "pescatarian" in English, and "pescado" in Spanish: both use a hard C sound.


The C is always hard before an A, O an U, in Spanish and Italian, the soft one is before E and I.

To have the hard C in Italian an H needs to be added, CHE or CHI (while in Spanish that leads to something more like tch).


And of course Tsar & czar, also from Caesar.


Those are using a tz sound, similar to the zz in pizza. It's probably closer to the "s" in English pronunciation of "Caesar" than it is to the K used in Caesar's time.


Just another logical step in Google’s brand erosion. After a sufficient erosion has taken place a new CEO will be appointed to “bring back” the old Google. But by then it will be too late.


Will it be too late? Balmer's stench is almost completely off Microsoft.


Too late for some. I will never go back to Windows, won't ever use Bing. Still don't trust any MS product even though I do use VSCode (mostly due to Remote not being available in VSCodium). So objectively speaking I agree that the stench is mostly off, but subjectively I have 0 trust in MS (and I did have some trust before).


Marissa mayer?


The logical step would be Marissa.ai. Google is so deep in AI and Google-Scale optimization, automating their management with an AI including the CEO, should just be a matter of time.


Great idea! Marissa.ai would have 2 tasks:

- redesigning Google logo

- buying a failing social network

Pretty easy to build I would think.


Maybe the new CEO can personally redesign the logo with help from an intern. That should fix things, right?


I hadn’t heard the back story for this and tried searching it. DuckDuckGo returned generic logo design advice, Google and Bing returned a bunch of results about a similar but different story, Kagi got it in the first result. This was with a very lazy query, just copy-pasting part of the comment, but still telling, I think.


I use a Japanese keyboard because it comes with additional thumb keys. I use software to remap the thumb keys to additional layers. For example, if I hold thumb+a, the alpha keys under my right hand turn into a numpad. If I tap the thumb key by itself, it turns the keyboard into a mouse.


How interesting! Any more details on the brand, or model? Any photos?


I’m heading in this direction too. It’s ridiculous. I don’t tip for any kind of pickup order. And only tip service people such as waiters, bar staff, and delivery people.


Congrats! Super excited to start playing around with the effects system.


I was performing as the principal bassoonist in a symphonic band concert. We played a piece or two, the audience clapped, and when I sat down, I looked down and one of the pads had fallen off one of the highest keys. The pad is what seals the hole allowing the instrument to play different notes. Since I effectively had a leak at the very top of my instrument, I literally was incapable of playing anything at all. The bassoon turned into a squeaky toy.

Anyways, as we began the 3rd piece, I looked at the 2nd bassoonist and told her she would have to play all the solos (which she hadn’t prepared for).

At intermission, I had a crazy idea, so I found my sister in the audience and asked her if she had a stick of gum. To my delight she did, so I chewed it up, stuck it to the back of the pad, and put the pad back on the instrument. To my surprise the hack worked, and I was able to complete the rest of the concert.

tl;dr: My snot nosed 20 year old self violated a school-owned $20,000 instrument with 10 cents worth of chewing gum at intermission, but managed to play all my solos, and then afterwards learned how to properly reseat pads with a lighter.


My son plays the clarinet. Last year he lost a pad. (He has a nice instrument that he plays often). I went to a reputable shop and they said one should always replace all the pads at once, some were loose, and a complete revision was in order. The cost was €350.

I told them I would think about it, went home, ordered a set of pads online for €7 and replaced the missing pad myself with the help of a couple of youtube videos.

The clarinet has been working perfectly since. Two months after my repair my son had an exam at the conservatory. I was a little worried because it was a formal affair with a jury of five professionals and should the instrument have an audible whistle of some kind I was sure they would noticed it.

He passed with flying colors. I was proud of him, but also of my repair.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: