Live data from Hacker News

GopherCon 2014 Videos

confreaks.com

51–60 of 75 posts

Re: GopherCon 2014 Videos

#51
post #38
post #28

Earlier quoted context omitted.

Nowadays I consider Go as a better C, except for those scenarios where C is being used as a portable assembler. Other than that, I spend my time with other languages. Rob said something interesting at the end, it appears they are leaving the language to the community and stepping out.

What else does one use C for? Applications that are too latency-sensitive for garbage collection maybe, but Go doesn't help there.

Lots of apps are better with C, not just with regards to latency sensitivity (e.g games).

E.g an app that would process a multimedia file offline (so latency is of no concern) still runs circles around most other languages if its done i C or C++.

And of course 90% or something of desktop apps are written in C/C++.

People act as all those apps, which is what we use everyday, don't exist: browsers, editors, media players, terminals, OSes, mailers, etc etc. Even web apps use those as their substrate.

Re: GopherCon 2014 Videos

#52

OK, who wants to put on a GopherCon 2015 next year, dedicated to actual Gopher[1][2][3][4]? I mean, there is a precedent for this sort of thing. http://iubio.bio.indiana.edu/soft/util/gopher/gophercon1.txt [1]: https://en.wikipedia.org/wiki/Gopher_%28protocol%29 [2]: gopher://gopher.floodgap.com/ [3]: https://addons.mozilla.org/en-US/firefox/addon/overbiteff/ [4]: gopher://sdf.lonestar.org/

There can be overlap here with Gopher servers written in golang like https://code.google.com/p/gogopherd/.

Re: GopherCon 2014 Videos

#53
post #51
post #38

Earlier quoted context omitted.

What else does one use C for? Applications that are too latency-sensitive for garbage collection maybe, but Go doesn't help there.

Lots of apps are better with C, not just with regards to latency sensitivity (e.g games). E.g an app that would process a multimedia file offline (so latency is of no concern) still runs circles around most other languages if its done i C or C++. And of course 90% or something of desktop apps are written in C/C++. People act as all those apps, which is what we use everyday, don't exist: browsers, editors, media playe…

Object Pascal, Ada, Modula-2,...

Re: GopherCon 2014 Videos

#54

I really enjoyed the keynote. The joke about the profound error of using whitespace just shows how partisan these discussions are. In go, with the semi-colon insertion rules and with gofmt, there is an implicit whitespace rule all over again. Personally, I like whitespace because its how my mind reads code. Its nice in Python, mostly because of how concise Python is to read. Its a bit of a bind in Java, where you don…

> The joke about the profound error of using whitespace just shows how partisan these discussions are. In go, with the semi-colon insertion rules and with gofmt, there is an implicit whitespace rule all over again. Other than lisps, most languages have significant whitespace -- treating, for instance, newlines as having an important distinctions from other whitespace.

> In go, with the semi-colon insertion rules and with gofmt, there is an implicit whitespace rule all over again.

So this is technically correct (and I had never though about that before, so thank you for pointing that out!). However, I think '\n' and '\r' are not directly comparable to '\t' and ' ' characters.

All whitespace is only visible by its boundaries (kinda like certain 70s minimalist sculpture, actually). Newlines affect vertical structure, whereas tabs and spaces affect horizontal structure. So far it's the same.

However, we don't read text vertically, we read it horizontally (I know there are exceptions, but not in any significant programming languages that I know of). As a result we don't group characters by vertical whitespace the same way as we group characters by horizontal whitespace: in most natural languages, the difference is paragraph separation vs word/sentence separation. Programming languages also follow this coarse/refined level. Think about how we construct indented text in programming languages: relative to the vertical position.

So I would say that while both cases have the problem that we can only observe whitespace by the characters that surround them, in the vertical whitespace that happens at a coarser, less ambiguous level than horizontal whitespace. And I think that's why using significant newlines should be less failure prone than significant tabs/spaces.

Re: GopherCon 2014 Videos

#55
post #48

Earlier quoted context omitted.

That's fine. Some do it badly, and some do it well.

So why is Google moving away from Ant to Gradle in Android, while having Pub Packages for Dart? Does not seem very supportive of vendoring.

I don't know anything about Android or Dart development, so I can't speak for them. All I can say is that internal Google development has been happily using vendoring of third-party code for many years (and not just C/C++ code), so I'm confident in saying that vendoring Go code can work just fine for "boring closed source enterprise commercial library tooling".

Re: GopherCon 2014 Videos

#56
post #51
post #38

Earlier quoted context omitted.

What else does one use C for? Applications that are too latency-sensitive for garbage collection maybe, but Go doesn't help there.

Lots of apps are better with C, not just with regards to latency sensitivity (e.g games). E.g an app that would process a multimedia file offline (so latency is of no concern) still runs circles around most other languages if its done i C or C++. And of course 90% or something of desktop apps are written in C/C++. People act as all those apps, which is what we use everyday, don't exist: browsers, editors, media playe…

AIUI the main reason for using C for multimedia processing is to have inline assembler to make the best use of SIMD; aside from that it's certainly possible to write a video transcoder in Haskell (I've seen it done, for ARM where there didn't used to be such powerful SIMD options available).

Re: GopherCon 2014 Videos

#57
post #11
post #9

I've wondered what the story was on Go's dependency management, so I'm glad someone brought it up at the end of the keynote. Pike said that it was up to the community to develop tools to deal with that. This is what happened in the Clojure community when Leiningen became the de facto standard, but its dependency management builds on a pre-existing system (Maven). I am curious if this is on anyone's radar, or if it is…

Ruby's dependency management (rubygems) also came from the community and is now part of the standard library. That seems like a good model to follow. Dependency management for Go is definitely on people's radar. https://github.com/tools/godep has been getting some traction.

Same with Python/pip with 3.4

Re: GopherCon 2014 Videos

#58
post #56
post #51

Earlier quoted context omitted.

Lots of apps are better with C, not just with regards to latency sensitivity (e.g games). E.g an app that would process a multimedia file offline (so latency is of no concern) still runs circles around most other languages if its done i C or C++. And of course 90% or something of desktop apps are written in C/C++. People act as all those apps, which is what we use everyday, don't exist: browsers, editors, media playe…

AIUI the main reason for using C for multimedia processing is to have inline assembler to make the best use of SIMD; aside from that it's certainly possible to write a video transcoder in Haskell (I've seen it done, for ARM where there didn't used to be such powerful SIMD options available).

Which is not even part of the C language standard.

Any compiler for any language can have SIMD support, it is just a matter of the compiler writers bothering to provide such support.

And if the language does not support it, I don't see why developers are so afraid of touching a Macro Assembler.

Re: GopherCon 2014 Videos

#59
post #36

Earlier quoted context omitted.

Vendoring is a practice stuck in C and C++ archaic tooling support ideas. I am on the side for proper dependency management. > It's one of Go's greatest strengths, actually. Which will keep it outside the boring closed source enterprise commercial library tooling.

> I am on the side for proper dependency management. Vendoring is one of several proper dependency management options. It's also the option most suited to the Go ecosystem at this time.

Responses to dependency management and generics from Go supporters always sound like la-la-la hands-in-the-ears denial to me.

"X? We don't need no stinkin' X".

Re: GopherCon 2014 Videos

#60

So, in the keynote, Rob underlines again that there'll be no generics. Ever. Path to getting generics thus becomes: 1. A preprocessor that eats ggo (generic go) files and emits go. This is is like the original C++ which translated to C for compilation. 2. Someone integrates ggo into go to speed it all up.

In one of the talks (I believe Q/A), he said "Go does have generics, they are called interfaces".
Post reply on HN