Earlier quoted context omitted.
Yes, there are many more features to come, but they don't look like they will be as important as lambdas (and default methods) for everyday coding. Thanks for the links.
I think you underestimate you important some of those are. Specially for people doing big data analysis in JVM languages or jumping out of Java to languages like C and C++ for the last performance increase.
Official Go support
111–117 of 117 posts
Re: Official Go support
#112Earlier quoted context omitted.
I think you underestimate you important some of those are. Specially for people doing big data analysis in JVM languages or jumping out of Java to languages like C and C++ for the last performance increase.
The Java community is so large that these are important communities in themselves. But they're still subsets. Someone writing a portable Java library isn't going to want to call into native code or rely on specific hardware. Changing the language itself affects everyone.
Re: Official Go support
#113Earlier quoted context omitted.
The Java community is so large that these are important communities in themselves. But they're still subsets. Someone writing a portable Java library isn't going to want to call into native code or rely on specific hardware. Changing the language itself affects everyone.
If you bothered to follow the links, they imply language changes.
https://github.com/google/auto/tree/master/value
I'm honestly not seeing as big as lambdas (or generics in Java 5). If you think they really are that big, perhaps you could explain why?
Re: Official Go support
#114Earlier quoted context omitted.
Out of curiosity: Where would this be used? The only places I ever hear the word "lua" being used are with "embedded in a game as a scripting language". Is this the case here? Does lua have a lot of use elsewhere?
Lua is compiled into OpenResty (NGINX). There is also a nice webframework called Lapis thats built on top of openresty and lua.
Re: Official Go support
#115Earlier quoted context omitted.
The graph has no numbers.
Developers & managers at Stripe decided that Go was being used often enough to spend precious dev time writing an official library which will have to be supported from here on. They wouldn't do that if the numbers didn't justify it.
Re: Official Go support
#116Earlier quoted context omitted.
Go's syntax and semantics seem ad-hoc, hard to remember, and inconsistent, but that's because Go was designed from uses cases and experience by prominent thought leaders such as Rob Pike and Ken Thompson, and Google. For example, sometimes you'll get Unicode code points, but sometimes you'll get bytes of UTF-8. The language was designed to give you the right one in the right case. UTF-8 is coupled with the language b…
How are the Go and Java memory models similar?
Re: Official Go support
#117Earlier quoted context omitted.
Go's syntax and semantics seem ad-hoc, hard to remember, and inconsistent, but that's because Go was designed from uses cases and experience by prominent thought leaders such as Rob Pike and Ken Thompson, and Google. For example, sometimes you'll get Unicode code points, but sometimes you'll get bytes of UTF-8. The language was designed to give you the right one in the right case. UTF-8 is coupled with the language b…
> If any thread runs in an infinite loop that doesn't call built in functions, the entire runtime will freeze. That's not entirely true. Go 1.3 introduced pre-emptive scheduling, so now only the most trivial (useless) of infinite loops will hog the scheduler. But if you're doing real CPU-bound work you won't block other goroutines from executing.
package main
import "fmt"
func main() {
go func() {
for ;; {}
}()
for ;; {
fmt.Println("still here")
}
}
Even bigger pointless programs also freeze: package main
import "fmt"
func f(v int) int {
return v+1
}
func g(x int) int {
if (x > 100) {
return 1
}
return 0
}
func main() {
go func() {
for ;; {
if g(f(111)) == 0 {
break
}
}
}()
for ;; {
fmt.Println("still here")
}
}
This is of course by design, because Go was designed only to support useful programs. The programmer trying to figure out how the concurrency model works may whine that it's inconsistent and he can't figure it out, but that's only granted because threading is hard. Go makes it easier by only supporting useful cases.