Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jesstaa
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
61.
▲
by
jesstaa
12y ago
Without unsafe or a race condition. http://research.swtch.com/gorace
62.
▲
by
jesstaa
12y ago
You could also spend that developer time trying to untangle code reuse between various components, or the more subtle breakages caused by changes that don't account for the expectations of all callers. Code reuse is still a tradeoff.
63.
▲
by
jesstaa
12y ago
That is Russ' blog post, not Rob's.
64.
▲
by
jesstaa
12y ago
Plan9 was already largely rewritten in a precursor to Go called Limbo. It's garbage collected and runs on a virtual machine. http://en.wikipedia.org/wiki/Inferno_(operating_system)
65.
▲
by
jesstaa
12y ago
The sad thing about our industry is that the boring systems with the greatest support are also often the most complicated and hardest to deal with. So the choice ends up being, * Go with the system you can get some kind of possibly useless
66.
▲
by
jesstaa
13y ago
'JSX' is also what made me avoid React at first. But once I started using it, it made perfect sense. The 'JSX' is just compiled to Javascript anyway, it's just more convenient for deep nesting of html elements withi
67.
▲
by
jesstaa
13y ago
It's as if lisp was originally designed to be an intermediate language for computer generated parse trees....and not a language for people to read.
68.
▲
by
jesstaa
13y ago
There is a large communication overhead to this. You have to start a new project, which could take months to develop. In the meantime you still need to maintain the current compilers, fix bugs and make improvements but all that effort becom
69.
▲
by
jesstaa
13y ago
Compile time is a big deal when you have millions of lines of code that constantly change and very expensive devs that are spending large amounts of time waiting. The infrastructure Google uses to distribute and track builds across datacent
70.
▲
by
jesstaa
13y ago
The C# and the Go cultures are very different. Culture is a big part of what makes programming languages different. Python and Ruby are basically the same language, but the culture of the users is very different and so the libraries and too
71.
▲
by
jesstaa
13y ago
A large chunk of the job of developing software is getting the stakeholders to understand the problem they want the software to solve. The rest of it is just typing which is the trivial part.
72.
▲
by
jesstaa
13y ago
Yep, It's called 'static analysis'. http://en.wikipedia.org/wiki/Static_program_analysis
73.
▲
by
jesstaa
13y ago
Goroutines aren't really the selling point. It's simple enough to implement similar concepts in any language. It's the combination of a set of complimentary features, the maturity and the stability that really sells Go.
74.
▲
by
jesstaa
13y ago
You already know everything you need to know about pointers. In Ruby almost everything is a pointer. What you need to learn about is 'values'.
75.
▲
by
jesstaa
13y ago
Yep, and threads are what are helping with the parallelism. Goroutines don't make parallelism any faster or easier than threads do. But they make concurrency much simpler.
76.
▲
by
jesstaa
13y ago
goroutines don't help with parallelization, they only help with concurrency.
77.
▲
by
jesstaa
14y ago
Chinese is often even indecipherable to the Chinese and because of this there have been many attempts to simplify it. There is a subset that people actually use and the rest is avoided. This is a similar case with languages like C++, Ruby a
78.
▲
by
jesstaa
14y ago
Unladen swallow fizzled out because it was tackling a problem that was theoretically difficult and they weren't having much luck with it.
79.
▲
by
jesstaa
14y ago
hg tip is very stable. If you want to start your project on Go 1.1 then just checkout the tip and use it. You can upgrade to Go1.1 when it's released with very minor changes when it's released.
80.
▲
by
jesstaa
14y ago
Reasonable people make progress but we always need fanatics. Fanatics keep the reasonable people in check and on track. RMS is great at reminding the reasonable people of the importance of freedom in their software. Go to linuxconf and noti
81.
▲
by
jesstaa
14y ago
There are all kinds of additional complexity you could add to the type system to get additional safety. Unique pointers and linear typing are a few options, this is the route that Rust is going. But with complex type systems comes a lot of
82.
▲
by
jesstaa
14y ago
const/immutability at the variable declaration introduces a whole lot of annoyances, see const in c/c++. If you want immutability do it at the type. For a language that uses multiple return values to indicate error nilable pointers are a re
83.
▲
by
jesstaa
14y ago
If you write good code then callbacks aren't a problem. Gotos also aren't a problem if you write good code.
84.
▲
by
jesstaa
14y ago
Arrays are a fixed size. eg. t:=[5]int{1,2,3,4,5} Go can also do the counting for you. eg. t:=[...]int{1,2,3,4,5}
85.
▲
by
jesstaa
14y ago
1. Reversing type and variable/parameter name is just aesthetics I guess but it still really bothers me. Perhaps there's a reason. The reason is that it is much easier to read for more complex types. eg. function pointer in C: int (*pt2Func
86.
▲
by
jesstaa
14y ago
It's not really a fuck up, it's a "we didn't have time to do that yet because instead we were focusing on make an awesome language and standard library". Lots of issues with the runtime had to wait because they can wait because it doesn't m
87.
▲
by
jesstaa
14y ago
I use Acme for my hobby coding. But for work I tend to deal with horrible java and php code, with lots of code across lots of files so even small changes require modifying many files in many different places. I've found Acme gets difficult
88.
▲
by
jesstaa
14y ago
hmmm..this is quite old, a lot of things have changed in Go since. Most of that code won't compile but should with a few tweaks and "goinstall" is now "go get".
89.
▲
by
jesstaa
14y ago
It's possible to never have nil pointer dereferences. But the tradeoff is constructors and some complicated scoping. Block scoping is confusing for many people coming from the dynamic languages where scoping is usually function level.
90.
▲
by
jesstaa
14y ago
The Go runtime creates new threads to run goroutines when a thread is blocked making a syscall. The net package avoids having too many threads blocking on syscalls by using epoll/kqueue etc. for socket I/O.
More ›