Why bend over backwards for 15% of the population? You can justify Malay at a push.
"We decided to opt for English as a common language and it was the only decision which could have held Singapore together. If we had Chinese as a common language, national language, we would have split this country wide apart, and we would be foolish to have Malay or Tamil." Lee Kuan Yew
I actually agree with the above. But Lee should have sought to replace minority languages with English.
Heh, if you started out with this justification, we could've had a productive conversation =)
This is certainly a valid perspective, hackerboos. But did you know why it didn't happen?
1) External factors A: Singapore gained independence at a time when its neighbours were all hostile. Malaysia wasn't exactly friendly (though not overtly aggressive), but Indonesia was overtly aggressive. LKY described Singapore as a 'Chinese ship in Malay waters'.
2) Internal factors: It is important to remember that at the point of independence, after announcing the separation from Malaysia, LKY was brought by special branch under guard to the Istana. He was forbidden from returning to his residences for fear of Malay retaliation. It's easy to forget that, at the time, Malay Nationalism was strong amongst the Malays. The risk of race riots were real.
Combining 1) and 2) together, you can see that cancelling Malay would have jeopardised Singapore's security - both from within and with its surrounding neighbours. Also, the status of the Malay language is still a contentious issue in Malaysia today. (This is complex, and has something to do with the concept of 'Ketuanan Melayu' in the Malay archipelago)
3) External factors B: Singapore thought it would be an advantage to have its citizens be multi-lingual, in line with its status as an entrepot. Therefore it would be in the best possible position for trade: with China, with which it has maintained good ties, with India, with which it celebrates its 50th year of diplomatic relations this year, and with its neighbours (Malaysia is still the largest trading partner, as of 2014).
Personally, I am able to communicate in English, Chinese and Malay, which gives me an advantage when doing business in SEA. Most startups operating across multiple markets in SEA would agree.
My best guess (and this is but a guess, I don't have sources for this) is that when the government sold the idea of the 'Mother Tongue' policy, they decided to include Tamil (the native language of many of the immigrants) to make it fair.
This isn't that surprising. Lee Hsien Loong studied at Trinity College, Cambridge, where he was Senior Wrangler, and graduated with a first class honours in mathematics and a Diploma in Computer Science (with distinction).
I edited the wikipedia entry to include that even a prime minister was Senior Wrangler not only leading mathematicians and physicists. Good career prospects.
I can only think of recently killed Russian opposition politician Boris Nemtsov with similar mathematical achievements.
Angela Merkel (Kasner) also won a mathematics price during her physics doctorate studies, before she elected to work in agitprop and most likely as master stasi spy under the codenames ANITA and Black Widow.
Which brings me to the theory that being a spy will help you more getting to a prime minister job (Putin, Merkel), than being an excellent mathematician.
I tried to post this review on gitbooks.io, but couldn't. So I guess I'll put this up here:
This is a great introduction to building web apps in Go. (I started roughly two months ago, but had this book been around, I'd have been brought up to speed a lot faster).
Here's why: the predominant approach to building web apps in Go is to build on top of standard interfaces (e.g. net/http), and to keep things as simple as possible. Heavy, prescriptive frameworks are frowned upon. This is a great approach, but probably strange to people (like me) who come from prescriptive frameworks like Rails or Django.
Jeremy's guide sticks to Go conventions, while respectfully suggesting lightweight libraries that complement this approach. The guide is never "YOU MUST USE THIS", instead it always introduces the bare-bones approach first, and then tells you "hey, there's a 3rd party library that gives you some useful shortcuts on top of those." And indeed, each of the recommended libraries are idiomatic and easy to understand.
My review is probably biased, though, because I now have some idea now of how to write web apps in Go. But I certainly wished this book had existed when I first started.
I disagree that frameworks are frowned upon in Go, it's just that there aren't a ton that are worthy. People will usually be ok with Martini or Revel or Gorilla if they want something really barebones. None of those are really frowned up.
Where you may see people discouraging a framework is when you ask how to do something very basic and attempt to use a framework to solve it. In those cases, you lose the chance to learn exactly how the underlying processes work natively in Go, and since you're already writing in Go, you might as well do it from scratch. Plus all of your code is very reusable going forward.
But if you know how it works and want something quick and fuss-free for a full application nobody will steer you away from the better frameworks.
Many of the Go core contributors and well known to hold that frameworks present an unhealthy inversion of control compared to libraries. The standard library reflects this, for example as "net/http" is very much a library and works very different from applications using IIS or Apache. Many of the earliest gophers hold this position as well. I have been writing Go professionally since before Go 1.0 and I think saying "frameworks are NOT frowned upon in Go" is very much out of touch with the longest standing members of the Go community. I personally think there are cases for frameworks, but that they are few and far between.
In the case of net/http, I think it really turned out that simply integrating with http.Handler has so many more benefits than wrapping net/http with your own interfaces. Even Jeremy Saenz realized that and released Negroni after developing Martini.
I don't know that the parent meant all frameworks are frowned on, but more the "Heavy, prescriptive frameworks ... like Rails or Django."
I say if that's actually the case in the Go community, but I can understand getting that feeling starting out. I'm just starting with Go myself, and I had the same thought after some casual research digging through various blogs, tutorials and library suggestions.
As a newcomer to the language, it seems that there's a drive toward things being very explicit, using very little "magic", and composing smaller libraries, rather than using monolithic frameworks; all of that appeals to me.
If I'm way off base on that, I'd be happy to hear where my understanding is underdeveloped. Like I said, this is just what I get at first blush.
All in all, I'm really interested in checking out the book, and learning more about Go.
> it's just that there aren't a ton that are worthy.
It's just that writing a good web framework is actually way more complex than just a router.Martini,Revel or Gorilla are not webframeworks.
I believe Go is too rigid to allow something like Rails or Django. Go is for people who want C like performances with memory safety and easy concurrency. Go is not a "typesafe" python, at least it doesnt work like one until now. But I wouldnt be surprised someone comes up with a language built on top of Go that looks like a "typesafe" python or a Go++. That's what happens when people dont get their "nice things".
It's not like you need to ask a language community's permission to build your own thing in that language. Before Rails the Ruby community was very OO focused. Rails isn't very OO to be honest. It tends to used lots of composition and duck typing. You can see the major shift in the libraries before and after rails.
The question is, could somebody build a strong framework for web applications on Go? Maybe, i'm still learning the language myself so i don't know. Just because the language designers don't like it, doesn't mean that somebody won't come along and do it.
This seems to be the approach most new languages use. People in the Clojure community also emphasize using libraries over frameworks. I think the reason is is that earlier adopters tend to prefer this approach and there is a lot of agreement and development work required to make a full fledged framework like django.
I feel you on this, also coming from Django background, there is no equivalent yet for golang, though I've been skimming with revel for some time, it's still incomplete from what I want. This is just perfect opportunity to learn something that is more disconnected, but syncs with harmony. :)
But to get back to The Elements of Style, it would almost be easier to look at what S&W recommend and see how writers write today, as you're most likely to find the answer right there in front of you.
Elements of Style was written in 1918. There have been all sorts of stylistic suggestions since then, depending on your field. The reason why we used more than one style guide at school was because neither can be said to be definitive, exhaustive or the 'best'. Some provided better explanations as to why certain styles were preferred.
Egor, if you're ever in Singapore, please hit me up. I'll organize a meetup via NUS Hackers at the National University of Singapore. Would be interesting to let other university-level students hear about your experience.
(My email address's on my personal site (which, in turn, may be found on my profile)).
If you take another look at my original post, my point was that I still can't articulate why this is such a huge pain. If it helps to put it in perspective, I abandoned a Nanoengineering phd doing promising work in medical diagnostics because our rating system solves an incredibly painful problem for me and I'm convinced it's a more important contribution to the world.
To make a (hopefully apt) comparison, what pain point did twitter initially solve? Sharing what you had for lunch?
I think part of your problem might be that you are solving a problem that a small group of people have, and only a small group will ever have. Most people just aren't that into movies; they decide to see a movie (or not) based on the trailer; they view movies as a way to kill two hours or a pretty safe date activity. The number of people who really have a significant "pain point" in deciding what movies to see is pretty small and likely always will be.
Feel free to discount my opinion though, I haven't seen a movie in a theater in probably 5 years and basically think movies are a complete waste of time and money.
So movies are a pretty big business. Not as big as people usually think, compared to energy, food, defense. But pretty big. Culturally, people go to the movies as a form of escapism, because story-telling seems to be a deeply ingrained human need (I don't think there is a single culture we know about that doesn't tell stories). Some of these stories are quite inspirational: they inspire thought, debate, criticism, self-reflection, etc. And some of us, the ones that are inclined to, write reviews. I've written one or two myself. Occasionally conversations get started around movies with friends - arguments about the meaning of Being John Malkovich or why they only made one Highlander movie....
Listening to stories (or watching them, as the case may be) is a usually enjoyable experience - which is why we choose to listen and even pay for the opportunity to listen to a really good story from a really good storyteller. All of the "pain points" around this process have been thoroughly addressed: it's easy to discover movies, buy tickets, download to your computer, get reviews, write reviews. Even the watching experience itself has been improved with 3D (although this is open to debate) and better sound, even things like IMAX and more experimental experiences e.g. Star Tours at Disneyland. There are some places in the world where they even serve food and drink during the movie (or at least during an intermission).
The biggest pain people feel about movies is dealing with the proliferation of choice. It doesn't seem to me that there is an underserved market of people who would see more movies if only they knew about the good ones.
Imagine, if you will, your own personal Heaven. Presumably storytelling and movies are still happening. What is the heavenly, perfect movie-going experience? Does the movie take over your visual cortex? Are movies recommended by God - or indeed, created by Him to perfectly stimulate your mind in the way He knows you like? Does your reaction telepathically propagate to everyone else in Heaven? (Is telepathic propagation connectionless? I suppose that's another thread).
He wrote two influential Lisp books, invented Bayesian spam filtering, did Arc, wrote essays (where the doing == the telling) and he had the Yahoo exit.
Then he started YC.
This doesn't disprove your primary point (that fame can precede the 'doing'), but I'd say that pg shouldn't be on the above list. You make a good point about 37signals, though. And I'll add Steve Yegge to that list too (Amazon -> Google)
Fair enough, though it depends a bit how you define achievement. Writing is in my opinion excluded almost by definition in this debate, otherwise the question of "what have Curtis / Gruber achieved?" is a bit moot. ARC is great, I'm sure, but not changing the world (yet). Bayesian filtering is a biggie, granted.
By the way, I don't mean to imply any criticism of people doing things in that order. On the contrary, a mismatch between fame through writing and "doing" seems like a good sign that you should buy a stake in that person, if that were possible.
I originally wrote 'popularized Bayesian spam filtering', but thought it wasn't strong enough. (What do you call 'made Bayesian spam filtering good enough, and then published an influential essay that caused the adoption and further improvement of the technique'?)
Thanks for the link - didn't find that in my cursory Google search.