HNHacker News
TopNewBestAskShowJobs

friendly_chap

1,561 karma · joined September 21, 2012

submissionscomments
friendly_chap··on Mathematicians are chronically lost and confused (2014)
I feel the same way when solving tasks in my day job. The thing I tell to young people learning programming/tech that I hope they don't get frustrated easily, because they will spend every day of their life feeling rather stupid and confused, never knowing when will they discover a solution for a particular problem.

This is something that was a great source of stress early in my career.

friendly_chap··on Why You Will Marry the Wrong Person
Of course, you should not marry or have kids - that way you will be better separated, an easier to tame slave. Thanks for not having relationships, thanks for not having people who stand up for you!
friendly_chap··on Search Bangs
So what is the difference between this and google's "site:"? The latter works for any site, there is no need for a custom list of 8000 sites.
friendly_chap··on Building AI
AI/the corporations running AI will be owned by the super rich. How will that take away their jets? If anything, it will give them more power.
friendly_chap··on Atomwise (YC W15) Discovers Drugs for Diseases That Don’t Even Exist Yet
As a techie who is not involved in machine learning, I see these AI articles coming up and I wonder if it's me or AI is indeed on the rise after such a long stagnation?

Is this newfound excitement and interest in AI fuelled by actual, objective advances?

EDIT: Keep up the good work, I sincerely hope that the work you do will make the world a better place. I wish I could help somehow.

friendly_chap··on Is your programming language unreasonable?
There are more factors than 'what can be built' with a language. A more popular language will have more projects written in it, and popularity is not necessarily based on merit (think about the promotion Java received because of commercial reasons).
friendly_chap··on Everyday hassles in Go
Yes, I used to ignore anything non-static, nowadays I am reconsidering this, for me untyped languages are all the same (they provide on compile time type checks), give or take syntactic sugars.
friendly_chap··on Everyday hassles in Go
I write Go exclusively during my day job - these are indeed chores I encounter daily.

I could and probably will blog about problems with the Haskell as well - nothing is perfect.

friendly_chap··on Everyday hassles in Go
This question is not easy. Most languages I consider well designed do not become mainstream - which comes with a host of problems. Nowadays I think if having no type system at all is better than having a broken type system, thus I am considering picking up a mainstream dynamic language (JS being an obvious candidate - but the runtime puts me off).
friendly_chap··on Everyday hassles in Go
Well Rust became production ready well after Go and the low level focus it has doesn't match my problem domain. I have the luxury of not caring about the constraint of a single consumer box - hacking mostly on backend stuff living in the cloud, so all those pointer types for example would only get in my way.
friendly_chap··on Everyday hassles in Go
You are right! Others noted that mistake as well.
friendly_chap··on Everyday hassles in Go
Did you miss it when you were working on larger codebases? The library you mentioned clocks at 500 LOC, and while the LOC metric is pretty inaccurate, it takes a lot more time to really miss language features.
friendly_chap··on Everyday hassles in Go
Author here. I think that is a very valid point. However, a lot of features I mentioned are present in other imperative languages, like Rust. The Go authors however picked other solutions I consider inferior, hence the article.
friendly_chap··on Everyday hassles in Go
The reason Map String Any does not contain any special symbols specific to that certain type is because it is not a built in special type like the Go map[string]interface{}.

It is just a regular type parametrized over two other types. And kinda that is the point - being expressive enough to describe a map type without explicit support.

friendly_chap··on Cosmic rays found in smartphones
1 337 647 square meters = 14 398 312.5 square feet [1]

[1] https://www.google.co.uk/#q=1337647+sqm+to+sqft

friendly_chap··on Rob Pike's Rules of Programming
When I will solve problems which require 10k machines/dev, I will get paid so much that I will be happy to write in brainfuck or lolcode.

Meanwhile I just want to deliver the features for my product owner as quickly as possible! So we can both go home to our families in time and still deliver tons of business value.

friendly_chap··on Rob Pike's Rules of Programming
I loved the part where you explained what is wrong with abstractions!
friendly_chap··on Rob Pike's Rules of Programming
I think we can agree that having that level of control is unnecessary for most programming tasks. In fields where it matters, fine. Otherwise I let the compiler do it's job, probably they will get better/are already better at it than me. I don't trust humans, including myself. My compiler never made a bad decision so far because it woke up with a hangover/in a bad mood.
friendly_chap··on Rob Pike's Rules of Programming
"I'm getting pretty sick of hearing this"

I hope I don't prove to be too detrimental to your health.

"Developer time is often more expensive, but it's always a one-off cost. Machine costs are ongoing. Machines can also impose hard limits on scalability."

A one off cost? I have never seen a codebase which gained consciousness, became self operating, fixed the bugs in itself and implemented new features, I hope I will, that's gonna be a truly glorious moment for humanity.

"Ever play a computer game?"

I did, but Go is rarely used for creating games. Typical use case: backend server services.

"In the meantime if you're working on an MVP, by all means optimise for developer time. In that context it's almost always the right decision."

Yes! On this site most people are working on some startup which will fail in 2 years. Performance is barely an issue.

friendly_chap··on Rob Pike's Rules of Programming
I don't get this:

"data types and types are not the same thing. types can help with the implementation of ADTs"

Can you please show me how can you implement a language (type system) feature without touching the compiler source?

friendly_chap··on Rob Pike's Rules of Programming
And who else is in a similar field? 3% of all programmers? In that case, fine. But most people I see raving about Go can afford the performance hit any time (if there is any).

PS: Coding go is my day job.

friendly_chap··on Rob Pike's Rules of Programming
"You can argue that advanced language constructs will make it easier to write correct code to implement data structures, but it's not a magic bullet."

There is nothing advanced about ADTs.

"The Go authors argue that a simple programming language with loops, pointers and arrays is all you need to implement any data structure you need."

It's all about increasing the level of abstraction. There is a reason we don't code in assembly anymore. Of course machine code is all you need to implement any data structure, but how convenient is it?

"I find this a good example of a data structure for which I see little or no benefit in being modeled as an ADTs:"

So you found a single counterexample which (according to you) would not benefit from ADTs.

" On the other hand I don't know about good examples of ADTs used outside of the context of functional programming, do you have some pointers?"

I dislike pointers (a necessary evil if you have mutation I guess...), but here is one example:

data Gender = Male | Female vs type Gender int; const ( Male Gender = iota; Female )

Combine the first with pattern matching and you find yourself in awesomenessland (ie. code becomes readable, type safe).

friendly_chap··on Rob Pike's Rules of Programming
Machines are cheap. Developers are not. I would rather optimise for the latter.

Edit: since when having ADTs are so taxing for the machines? I did a quick search and I found no source saying they are expensive to implement.

friendly_chap··on Rob Pike's Rules of Programming
"Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming."

Quite ironic coming from the creator of Go. Algebraic data types, anyone?

friendly_chap··on 3d scene representation in Haskell
It takes practice to be as fluent in FP as in imperative programming. When I've got the basics I still couldn't perform as quickly in Haskell as in other languages. Took me at least a year to become quick and apart from the weak library support (most things are a bit over the top for the beginners), I find Haskell amazingly productive. It's not _that_ different after you get used to it. Not having to write an other for loop ever again in a language which does't support generics alone worths it.

The language itself if you don't venture too far into the depths of the latest research is quite comfortable and clean. The fact that I can express my thoughts effortlessly in a few keystrokes and that the types (ADT, generics, typeclasses) are so descriptive makes it my favourite language for day to day tasks.

At least for the time being... until a dependently typed language becomes usable.

friendly_chap··on The day I left my son in the car
I find this pretty crazy. Going with a really contrived example, using the same logic, we could make it illegal to step next to your children because you could potentially break their skull with your elbow. Way too many ifs.

However, the goal itself, namely protecting children is noble. I guess hitting the sweet spot between being neglective and overly protective is hard. Such is the nature of most social issues.

friendly_chap··on Go, robots and refactoring
wyager is right, empty interfaces in Go are exactly that - a type (set) which every value is a member of, search for Go/interface{}: http://en.wikipedia.org/wiki/Top_type

Edit: the downvoter cares to explain?

friendly_chap··on Hyperemployment, or the Exhausting Work of the Technology User
You, sir, are incredibly talented at writing. Please consider writing (anything), and drop me an email to buy/read it.
friendly_chap··on Protests in Ukraine
(Not addressing the fact we have incredible amounts of cheating at elections)

People can get really dumb when 98% of their time is spent trying to survive on 200-300 USD a month.

Add these facts to that 200-300 USD:

- Food is generally more expensive than in the UK

- A litre of gasoline costs 2 USD

- Electricity and gas prices are more expensive then in the UK

- The VAT is 27%

etc...

friendly_chap··on Protests in Ukraine
That is a fair point and this question is deep enough to be out of scope for HN comments. However, I think there may be a legitimate reason for an existence of a ruling class, or more like "leading class": if that class is accepting people based on their merits, like human decency or intellectual capability.
← PreviousPage 9 of 14Next →