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

Different field, but it drives me crazy that people talk about Chinese philosophy and insist on using Mandarin pinyin for it. Mandarin is language that evolved from Classical Chinese thousands of years later! There are other, equally valid contemporary derived pronunciations like Cantonese or even Japanese and Korean. The reason to use Mandarin is because it is the most widely spoken language derived from Classical Chinese, but it's 100% not how Confucius or any of them spoke!

It's just the standard. So it self ratifies. It is quite possibly one of the worst options though given how many important language features are lost in it.

Cantonese used to be the preferred, and probably is to some, but even that is far from ideal and was chosen because while it preserves more important distinctions, it also happens to be/have been a very prominent Chinese language, with a moderate level of standardisation. It wasn't chosen purely on its linguistuc merits over others.

I can't remember who it was but there's someone out there who uses a fusion of Cantonese and Hokkien, where they pronounce the initial from one and then the coda from the other or something, though I can't remember which way around they did it.

Really depends on your priorities I guess.


What terminology should we be using? Old Chinese reconstructions on Wiktionary always look so wildly divergent to me.

Old Chinese reconstructions drive me crazy, or the fact that some scholars insist these are 99% correct instead of 'best guesses'

They are pretty well founded. You can read old rhyme dictionaries and see how the words evolved eg when borrowed by Japan at one time and then when borrowed again a couple of hundred years later. We can’t ever know 100% but it’s not idle speculation either.

Rhyme dictionaries describe Middle Chinese, not Old Chinese. Old Chinese involves much more guesswork.

What else would they use?

Of course they could pronounce the words in any modern Chinese language, but why not pick the largest and most standardized one?


For starters, a Chinese language which preserves final stops (-p, -t, -k) would be a better choice (e.g. Cantonese). These disappear completely in Mandarin, leaving rhymes (the vowel + final consonant) underspecified or ambiguous in many cases.

That's like complaining at names like Jesus, Paul, Moses, or Peter (with their English pronunciation) because that's not how those biblical figures pronounced their own names.

After the present Pope had given his inaugural speech in several languages except for English, apparently someone (on Fox News?) complained, "what? no English? It was good enough for Jesus why doesn't he speak English!?"

The horrible part of this story is that it's so believable.


Wasn't it the POTUS who said this?

I've seen this movie. It's long and boring and ends with the blue fairy resurrecting Haley Joel Osment.


The main problem with frames is that you need to use JS to get it to be responsively sized. If they would fix that, frames would be perfect. They actually do what people just think Web Components do. I.E. they are actually isolated from the styles of the host page and have an actual security boundary preventing malicious execution.


Impersonating a woman/man was a crime. See the intro to this video: https://www.youtube.com/watch?v=X__VKNw0XiI&t=234s


My Kindle was bricked by an Amazon OTA update. Checkmate, atheists.


You can do it using gofmt, by writing

gofmt -w -r '"github.com/abc/def" -> "github.com/abc/def/v2"' .

That won't do subpackages though.


Python has None, which frequently caused me problems in production, so that's not different, except Go can at least tell between a string and nullable string pointer.

Reversing a string is not a basic operation. A) why would you ever need to do it in the real world? B) reversing Unicode is non-trivial due to composing characters. There are packages available for Go that implement grapheme segmentation. If you need it, you can import one.


Integer formatting requires string reversing if you don't precompute the digits or work backward in a second buffer. It becomes necessary when standard formatting routines are too heavyweight for resource constrained systems.


Nearly every time I’ve had to reverse a string, it’s been for a coding interview.


Yeah, that's a really bad example... many environments now don't have a "string reversal" anymore, and many of the ones that do are the old & busted "string reverse" that doesn't work with Unicode, so they aren't really "string reverse" but just a legacy function that can't be removed anymore that is now technically grotesquely mislabeled. A modern-day string reverse is barely even defineable; technically, you have to pin it to a specific version of the Unicode standard to be well-defined because the next standard is likely to add characters that your string reverse would need to know about to work properly, but can't since they don't exist yet.

In some sense the best answer to "write me a string reversal function" in an interview is to say that no such function even exists anymore; I can write you a byte reversal function if you like, or we can sit down and hammer out a definition of some function I can write for you but it won't necessarily be a "string reverse". Best you can do nowadays is iterate on "graphemes as defined in this specific Unicode standard" and reverse those, but IIRC even that has some pathological edge cases, some of which are not really resolvable. Human languages as a whole are quite quirky.


The Dole who took over Hawaii (Sanford Dole) was cousin to the pineapple company guy (James Dole). So, not the same guy, but also not unrelated either.


Thank you. Wish I could correct what I said.


It's really important to be clear about the lessons to be learned from Python 3.

1. Forward compatibility is more important than backward compatibility. 2. Automated refactoring tools don't help with 1.

The problem wasn't that they broke a lot in Python 3. It was that you couldn't write your Python 2 in such a way as to be compatible with it until well into the transition process as the six package got popular and the devs fixed needlessly broken things in Python 2.


I would suggest languages facing the same problem learn from Perl 5's success, rather than the various failures of Python 3.

Every† minor point release of Perl 5 creates backward-incompatible changes. These can be opted into individually, or on a per-file basis by simply specifying the version of Perl used. It all works. Differently-versioned Perl code can call each other as much as it likes.

There was never any reason why Python 3 needed to be anything other than Python 2 with this at the top of the file:

  use Python 3.n
For various values of `n`. Perhaps when enough time passes, that's just Python now, and you have to copy-paste this into all the legacy code:

  use Python 2
That's it. Any language can do this, they just have to decide not to make life hard for everyone.

[†] Perhaps not literally every, but it may as well be.


There are many options with pros and cons. Python was aware of them. They made what looked like a reasonable decision to take a different paths. On hindsight we know of the problems but you could not predict them with confidence in advance. (some may have predicted it but they would admit to guessing if they are honest)


Sure, not interested in changing the past, for many reasons not least of which is that it appears to be impossible. The Python team surely did not go in to Python 3 blindly, but they botched it anyway.

What I mean to say is that Python as a negative example only goes so far, because an example of failure isn't a template for success. So "don't do what Python did" carries limited value for a language looking to make breaking changes. For a language looking to make a major point release, that's the future, and the future can be changed; this is what I'm interested in here.

"Do what Perl 5 did" (and do not do what Perl 6 did, up to the point it got renamed) is a great place to start, however, because it worked, works, is working. Languages are different enough that it isn't a completely transferable experience, but there's a lot to learn there.


I wrote "// Due to Hyrum's law, this text cannot be changed." AMA.


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

Search: