Hacker News new | past | comments | ask | show | jobs | submit | archena's comments login

But there's a key difference between language and writing: while writing is taught formally, language is learnt by imitation. If that's how we've evolved to use language, I don't see how standardisation could even make sense.

Regarding language being about communication, I think a subtlety is often missed: what are we communicating? our choice of linguistic conventions communicates a lot about the community we identify with, our status, age, etc.


It would need the ability to coin plausible replacement words too, like 'firststuffs'.


Not to nit-pick, but Chinese has as much grammar as any other language. The idea that Chinese "lacks grammar" needs to die. It seems to stem from the very eurocentric view that grammar consists of rules for inflecting words according to case, number, gender, etc. While Chinese lacks these, it does have rules and patterns which dictate how sentences are formed (e.g. the use of'le', topic marking, measure words) - it just doesn't use patterns familiar to speakers of indo-european languages.


I'm not saying it doesn't have any grammar at all. But you try to speak Dutch for a month and come back and tell me how you feel about Chinese grammar.


What do "implict" and "explicit" languages even mean? Chinese uses a different grammar, so in that sense it puts ideas into words differently, but the idea that Chinese is somehow less literal than English is nonsense.



Much of this article focuses on the writing system, but it's possible to learn to converse in a language without being literate in it. It's a fallacy to say that Chinese is "hard" because it is written with characters (and besides, there's always romanisation via Pinyin).

I'm glad it made sure to state that difficulty is relative in language - the Chinese learn their languages just fine afterall.

I don't think tone is as big of a problem as it's made out to be. As a foreiger who studies Mandarin I've found that with enough listening I began to pick out the tones well (although I still can't reproduce them as acurately!).

Unfortunately there is a lot of misinformation surrounding Chinese. A good book mentioned in the bibliography is The Chinese Language: Fact and Fantasy by John DeFrancis.


Foreign language learning in general has a strange emphasis on literacy over speaking.

I don't understand why we don't make people learn foreign languages the same way that children learn native languages. Children spend years learning to speak before they start to learn to read and write. It seems to work well. Perhaps older people need to learn differently, but I'm not convinced.

I have to imagine that learning Chinese would be a lot easier if you learned to speak it reasonably well first, and then started learning the writing system only after attaining some mastery of the spoken language. Instead, you're trying to learn new phonetics and tones and grammar and trying to learn stroke order and radicals and a bunch of other stuff all at the same time.


It's all about environment when you try to speak around. I believe your Chinese teachers encourage you practice speaking in class, but trying to speak Chinese to others after class? If you have Chinese friends, then you are lucky! :)


The teachers do encourage speaking, but they also spend an inordinate amount of time on reading and writing, even in absolute beginner classes.


That and tail-call optimisation :)


I'd include combinatorics under 'useful' too - although the basics are usually covered in statistics courses. Odd that the list mentions differential equations but not basic calculus, which I'd think is more fundamental.

It's also interesting to consider the chapter headings in Concrete Mathematics (Graham, Knuth, Patashnik), a text designed with students of CS and programming in mind:

    Recurrent Problems
    Summation
    Integer Functions
    Number Theory
    Binomial Coefficients
    Special Numbers
    Generating Functions
    Discrete Probability
    Asymptotics


I got Concrete Mathematics a few days ago, after someone recommended it. My background is physics, and I find the "mathematicians' style" to be very awkward to learn from. This book is excellent for me - concrete examples - it is always trying to solve specific problems, so if I don't follow the theory, I can always refer to a concrete example and try to understand that specific case. This the way I learn best/fastest.


Why do you think SQL doesn't qualify? it's certainly not the only example of declarative programming, and maybe not the most interesting, but it is one which most developers have come across.


In theory, SQL is a declarative programming language, in practice, past the simplest of examples, there are dozens, if not hundreds of ways to ask the same question, and each one of them performs differently. The moment one starts to do things like add anonymous views, the declarative facade tends to disappear.

Let's also remember that many companies stuck with big RDBMs systems have entire teams of people whose job includes turning declarative statements into extremely procedural ones.

So in practice, writing a SQL statement has little to do with making a query readable, but with abusing knowledge of internals to make it work fast. So declarative, not so much.


SQL-the-language is declarative - it defines meaning and does not define execution strategy. Particular implementations have significant differences in implementation strategy depending on the way the SQL was structured, leading to crazy results when people try and control operational semantics. But that doesn't mean "SQL is not declarative" - it's just a weakness of declarative languages when we care about operational semantics.

Has anyone made an RDBM that let you write SQL and separately control how it is evaluated?


Sure, but there is continuum here. It's not a binary decision.

For example, I consider the sublanguage in printf to be more declarative than the rest of C as well.

SQL as it stands, especially in contrast to what the existing models were at the time it was introduced, such as CODASYL.

SQL is the one language we use that somewhat operates at the level of thought.


I've encountered a lot of c++ programmers who seem to dislike a lot of c++; even refusing to use the STL. Perhaps it's because c++ and Python have different cultural backgrounds: a lot of early c++ programmers came over grudgingly from c and continued to program in a c-style.


I like these. Another generator version:

  def fbgen(text, divisor):
      while True:
          for i in range(1, divisor):
              yield ""
          yield text

  def derrangedBuzz(max):
      fizzer = fbgen("Fizz", 3)
      buzzer = fbgen("Buzz", 5)

      for i in range(1, max + 1):
          s = fizzer.next() + buzzer.next()
          
          if s == "":
              print i
          else:
              print s


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

Search: