Live data from Hacker News

Compiling a Go program into a native binary for Nintendo Switch

ebiten.org

31–40 of 46 posts

Re: Compiling a Go program into a native binary for Nintendo Switch

#31
post #30

Earlier quoted context omitted.

I've yet to meet an ideological bias against Go that took into account & understood the practical tradeoffs Go is making. The ones I've seen thus far are dismissive and incurious. But if you've got that, I would love to hear it.

You seem to ask for "ideological bias" and then discount all the brought up examples as "impractical" at the same time. For example, I may dislike a language simply because it has no significant white-space: I just like a programming language to display nicely, for my definition of "nicely". I do understand practical tradeoffs of significant whitespace, yet I still like it: those are not in opposition with each other…

Your definition of nicely and it’s origin can be examined. We can also question what it means for a programming language to be good or bad.

Re: Compiling a Go program into a native binary for Nintendo Switch

#32
post #30

Earlier quoted context omitted.

You seem to ask for "ideological bias" and then discount all the brought up examples as "impractical" at the same time. For example, I may dislike a language simply because it has no significant white-space: I just like a programming language to display nicely, for my definition of "nicely". I do understand practical tradeoffs of significant whitespace, yet I still like it: those are not in opposition with each other…

Your definition of nicely and it’s origin can be examined. We can also question what it means for a programming language to be good or bad.

This thread started off with

> ...my ideological biases against Go

which you turned into a question of whether Go is a good or bad language. That was never brought up.

An idealogical bias against Go could be that it was conceived by Google, and that you reject to support increasing Google's influence on the world.

This has nothing to do with Go being technically good or bad.

Re: Compiling a Go program into a native binary for Nintendo Switch

#33
post #32

Earlier quoted context omitted.

Your definition of nicely and it’s origin can be examined. We can also question what it means for a programming language to be good or bad.

This thread started off with > ...my ideological biases against Go which you turned into a question of whether Go is a good or bad language. That was never brought up. An idealogical bias against Go could be that it was conceived by Google, and that you reject to support increasing Google's influence on the world. This has nothing to do with Go being technically good or bad.

Ok, sure, my terminology could have been more accurate, but I’ve been having perfectly functional conversations with everyone else, so I’m not sure what you’re getting at.

Re: Compiling a Go program into a native binary for Nintendo Switch

#34
post #25

Earlier quoted context omitted.

I write golang, and am a big fan, however it lacked/lacks some features that i would expect in a modern language. - Lack of generics(coming very soon) was a huge problem for a long time and resulted in masses of duplicated code, and shonky reimplememtations rather than battle tested reusable implementations. - Lack of sum types, which is particularly frustrating with go's error handling model (which I happen to be a…

>Just because the language had made decisions because of tradeoffs doesn't make it immune from criticism. If it's OK to criticise c++ for not breaking backwards compatibility (vector comes to mind), it's OK to criticise go for its shortcomings. I never said it was immune to criticism. I think most of the criticism is misguided. >- go's error handling has a major issue; it forces my model to be able to represent inval…

> I also think there is a question of what the cost, in terms of developer cognitive load, would be of adding more advanced modeling features to go.

That's the thing about Sum Types. They're not really an advanced feature at all: they map to an extremely intuitive human concept: "or". They reduce cognitive load. That's the advantage of having them. In fact, I suspect that a lot of the reason that dynamic languages are considered simpler is because every variable is essentially one big sum type. Trying to represent "or data types" without sum types requires you to use interfaces which are a much more advanced language feature, and are very awkward for the use case of a finite number of known cases.

You could have a perfectly functional language with only logical AND (&&) and logical negation (!) and no logical OR (||). It wouldn't cause any practical issues. But you wouldn't: it would be incredibly awkward. Likewise there should be a datatype for OR (sum types) as well as AND (structs/classes).

Re: Compiling a Go program into a native binary for Nintendo Switch

#35

I absolutely love ebiten, it's gotten me back into game development which was why I initially got into software dev. I've been working through the Game Programming Patterns book and it's been an awesome platform to learn some of the common patterns in game dev. Also the maintainer is incredibly active and constantly pushing the development forward. I'm currently working on a side-scroller and am really excited to see…

Anything else you can recommend for starting out with game dev and appropriate algorithms? Is C++ a must?

So, right now Unity, Cryengine and Godot all use C# as a language (though it's fairly new to Godot, but is fully supported). Godot is a free game engine to get started on and publish on to start with side projects/build up a portfolio on - though (and double check the documentation) you can use Unity for free and then they take a cut if your game makes more than X amount I THINK.

Re: Compiling a Go program into a native binary for Nintendo Switch

#36
post #32

Earlier quoted context omitted.

This thread started off with > ...my ideological biases against Go which you turned into a question of whether Go is a good or bad language. That was never brought up. An idealogical bias against Go could be that it was conceived by Google, and that you reject to support increasing Google's influence on the world. This has nothing to do with Go being technically good or bad.

Ok, sure, my terminology could have been more accurate, but I’ve been having perfectly functional conversations with everyone else, so I’m not sure what you’re getting at.

None of it seems to have been "functional conversations with everyone else", but instead you asking questions after "ideological biases" were brought up and then dismissing all the answers as irrelevant because they are not clearing any of your "practical" bars.

That was at least my impression, and I fully admit that I may have gotten it wrong (I have no skin in this game, I am just portraying what your "conversations" looked like from the sidelines).

Re: Compiling a Go program into a native binary for Nintendo Switch

#37
post #22

Earlier quoted context omitted.

This seems rather clueless. The party line was they have not found a way to implement it in a way that satisfy their requirement. Now they have found a way to do so. So I see no contradiction. Also what breaking changes you are talking about I am not aware of any. Also there is no golang 2.0 yet.

> The party line was they have not found a way to implement it in a way that satisfy their requirement. Now they have found a way to do so. So far as I'm aware, every mainstream language, including golang, that's addressed this question has chosen to solve it by monomorphising generic functions. This implementation was well understood when golang was first released, and it isn't remotely plausible that the authors we…

It was a design goal that monomorphization should always be possible, but Go will not be monomorphizing generic functions to save on compile time / binary bloat (it will instead use GCShape stenciling, see below). I suspect future releases will be smarter and monomorphize some functions for performance, but that's really up to the Go team.

Initial implementation strategies considered for generics: https://github.com/golang/proposal/blob/master/design/generi... https://github.com/golang/proposal/blob/master/design/generi... https://github.com/golang/proposal/blob/master/design/generi...

Re: Compiling a Go program into a native binary for Nintendo Switch

#38

Earlier quoted context omitted.

>Just because the language had made decisions because of tradeoffs doesn't make it immune from criticism. If it's OK to criticise c++ for not breaking backwards compatibility (vector comes to mind), it's OK to criticise go for its shortcomings. I never said it was immune to criticism. I think most of the criticism is misguided. >- go's error handling has a major issue; it forces my model to be able to represent inval…

> I also think there is a question of what the cost, in terms of developer cognitive load, would be of adding more advanced modeling features to go. That's the thing about Sum Types. They're not really an advanced feature at all: they map to an extremely intuitive human concept: "or". They reduce cognitive load. That's the advantage of having them. In fact, I suspect that a lot of the reason that dynamic languages ar…

This comment pretty much sums up the idea of Go — it's a perfect language for those who haven't looked into anything else that's been available for the past fifty years. If you think that sum types is an "advanced feature" that puts additional "cognitive overhead", it may be perfect for you. I think iota puts much more overhead and adds a need to have oversight where there should be none. If your idea of less cognitive overhead if doing compiler's work for it, well, good for you. There are some exceptions among talented and well-educated developers who seem like it, I know, but those seem to be exceptions.

Re: Compiling a Go program into a native binary for Nintendo Switch

#39

Earlier quoted context omitted.

>Just because the language had made decisions because of tradeoffs doesn't make it immune from criticism. If it's OK to criticise c++ for not breaking backwards compatibility (vector comes to mind), it's OK to criticise go for its shortcomings. I never said it was immune to criticism. I think most of the criticism is misguided. >- go's error handling has a major issue; it forces my model to be able to represent inval…

> I also think there is a question of what the cost, in terms of developer cognitive load, would be of adding more advanced modeling features to go. That's the thing about Sum Types. They're not really an advanced feature at all: they map to an extremely intuitive human concept: "or". They reduce cognitive load. That's the advantage of having them. In fact, I suspect that a lot of the reason that dynamic languages ar…

Curious, could you elaborate how a dynamic languages variables are essentially sum types? Im not very familiar with types as a whole, though I've been doing some exploration in TS and Rust over the post few weeks

Re: Compiling a Go program into a native binary for Nintendo Switch

#40

I absolutely love ebiten, it's gotten me back into game development which was why I initially got into software dev. I've been working through the Game Programming Patterns book and it's been an awesome platform to learn some of the common patterns in game dev. Also the maintainer is incredibly active and constantly pushing the development forward. I'm currently working on a side-scroller and am really excited to see…

Anything else you can recommend for starting out with game dev and appropriate algorithms? Is C++ a must?

C and C++ are the lingua franca for the games industry, followed by C# for tooling, scripting and lightweight game engines. Some Assembly also helps for those last mile optimization tricks.

Naturally if you aren't looking into getting into the industry, rather having fun at coding games, anything that can do graphics and sound will do.

Post reply on HN