HNHacker News
TopNewBestAskShowJobs

cy_hauser

196 karma · joined October 30, 2017

submissionscomments
cy_hauser··on Ask HN: Go programming language is over ten years old. What do you think of it?
> I think people complain about Go because it's not the hammer for their nail.

Or it's _almost_ the correct hammer! If they'd just fix those damn

cy_hauser··on Ask HN: Go programming language is over ten years old. What do you think of it?
Lack of real enums is one of my biggest annoyances with Go. So so many times I've put the wrong enum value in because it's just an int and it matches another set of enums. I've taken to putting each set of enums into a separate file and separate folder just to help the compiler catch this. The project I'm working on now has about 25 separate enum files+folders. Gagh!
cy_hauser··on Fighting Rust's Expressive Type System
I've used Go for both "web routing" and business logic apps and found it fairly nice. In what context and in what way do you find it a bad?
cy_hauser··on SciTer, HTML/CSS Engine, May Go Open Source via Kickstarter
Have you used it? Compared it to another GUI framework? Which cross platform desktop GUI frameworks do you consider better?
cy_hauser··on Show HN: My notes on Working with Go
My first click was the link for "Accessing a value of an unexported identifier". Figured I'd see some reflection trick or similar. In looking at that code I still have no idea what it's doing in relation to accessing an unexported identifier.

So I went to the next link down, "Unexported fields from an exported struct". Figured this would be the clever way to access the "message" field. But again I don't get it. It seems it's the same code as the last example.

This either says something about my ability to understand Go code or that maybe a bit more exposition would be useful for at least some of the examples.

cy_hauser··on "Much" of the Rust/Wasmtime team hit by layoffs at Mozilla
>> I wonder if there are any modern dialects?

No there are not. It's extremely frustrating that Free Pascal and Delphi's Pascal are stuck with all the annoying baggage that more modern languages have been able to skip.

cy_hauser··on Why Go's Error Handling Is Awesome
While I'm no great fan of Go's error handling, I've not found this to be an issue. The compiler yells at you if you forget. You'd have to explicitly ignore the error by underscoring it to "forget" it.
cy_hauser··on Why Go's Error Handling Is Awesome
> communicates errors, and you can do something those errors

By this definition is there a language that doesn't have "error handling?"

cy_hauser··on Go is boring, and that’s fantastic
> generic collections (coming soon!)

You and I must experience time differently. I read a couple days ago that the end of 2022 would be the earliest they might appear but probably further out than that.

cy_hauser··on Hyperapp – A tiny framework for building web interfaces
What do you consider some of the good ones?
cy_hauser··on Verizon suspends advertising on Facebook, joins growing boycott
A large percent of the world has little to no money. They have no real choice except to accept free with all the consequences. Not using a service like facebook may not be realistic when the percentage of a group using it gets above a useful/necessary threshold.
cy_hauser··on How to sell open source software: Guacamole case study
Yup, if setup and configuration were easy I doubt there would be a business. So the takeaway is to add chaos at that point.
cy_hauser··on How to sell open source software: Guacamole case study
Probably easier for msft or amzn to just buy them out and get the customer base too.
cy_hauser··on A concise guide to the latest Go generics draft design
> about losing the property that "all Go code tends to be written in the same general way"

I understand what you're saying but I think (hope?) you're going to be found wrong here. I think that:

(1) very quickly "generic" code will come to be written in a fairly standard way that's accessible to any who cares to spend just a bit of time to know it.

(2) there will be a lot less generic code than concerned Gophers think. I think the generic code will end up in libraries but not so much in application code. Except, of course, in code that uses generic libraries. But using generic code is much more understandable than writing it.

Should be interesting to see how it all shakes out if this latest proposal passes muster. But I think Go will still be much more like "Go" rather than turning into what you dislike about other languages.

cy_hauser··on Go generics draft design: building a hashtable
I'm not understanding this. Are you saying an Option[V] would reduce the number of lines of code (the explosion) that Go code uses for "err := ...; if err == nil"?
cy_hauser··on GitHub isn't fun anymore
Kudos. You've found a perfect solution that works for you and doesn't try to move society in a particular direction. Even better, you're not trying to stop others from moving society in their favored direction. Win-win, right?
cy_hauser··on Young U.S. men having a lot less sex in the 21st century, study shows
I'd suggest they're synonymous in this scenario.
cy_hauser··on Ask HN: Why do you use Rust, when D is available?
> one-off tricks like compiling itself in 5 seconds.

I took that as saying D could compile itself in 5 seconds too. I was impressed. Bubble bursted.

cy_hauser··on University of the People: Tuition-Free, Accredited Online Degree Programs
I would speculate no. It's not a well recognized degree and has little history or experience to back it up.
cy_hauser··on University of the People: Tuition-Free, Accredited Online Degree Programs
In looking at the CS curricilum this looks more like an extended bootcamp. Most regular university courses are not there, the credits/classes won't transfer to full universities, and you're left with a "degree" that pales in comparison to a "regular" degree. Plus you've spent about $5,000 to get their paper. I guess "accredited degree" just doesn't mean the same thing to as what I was thinking.
cy_hauser··on Show HN: I made a platform for free-to-play games
> You can actually play free games, have fun and never pay.

But it will never be as fun as it could be if there were no in-app purchases and no ads. That always sits in the back of my mind and prevents me from even trying a game with in-app purchases.

cy_hauser··on Show HN: I made a platform for free-to-play games
Good site. Thanks for the link.
cy_hauser··on Show HN: I made a platform for free-to-play games
> I’m too poor to afford free games.

I'm stealing that line. (And thus contributing to your continuing to be poor. Sorry.)

cy_hauser··on Please Pay for Your News
Interesting but the wrong model for me. I'm looking for a Spotify/Netflix type solution. All the news in one place with annual payment for all I care to consume. Otherwise I have to think about each article and act to keep the costs in line.
cy_hauser··on Why C# coders should shut up about Delphi (2016)
> If you rely on having a stable Qt, why not pay the company that develops the software?

Because it's too expensive for me to afford. More than an order of magnitude too high for me. As side projects I write closed source software so they do pull in a a bit of money. But this is typically only a few hundred to a few thousand per year per app. I think they target corporations rather than individuals or small shops.

cy_hauser··on Why C# coders should shut up about Delphi (2016)
> "slap a grid on top of that SELECT * FROM Orders"

FWIW, before there was Delphi there was an entire language (and consulting industry) built around this: PowerBuilder. Its primary component was a "DataWindow" which was a fancy presentation object around basic CRUD SQL. Good times were had by many.

cy_hauser··on Pretending OOP Never Happened
Go's embedding _is_ composition (has-a) in any other OO language but with a little sugar. Embedding allows the compiler to optimize the memory layout for a composed object and allows you to reference the composed object's fields without a qualifier. For example, if a Student class has-a Address {city, state, zip} then you could refer to the city field by coding aStudent.city rather than aStudent.address.city. It's handy but doesn't otherwise change "normal" composition.

I'm not advocating against inheritance. If it works then go for it. I do when I'm coding in languages that have it. This stemmed from a thread discussing whether the lack of inheritance in Go was sufficient to exclude it from being an object-oriented language.

cy_hauser··on Pretending OOP Never Happened
This is tough to answer without a language in mind. Depending on what access you have you can use interfaces to get run time method binding or composition to get compile time binding. For either of these you'll have to "wire" the needed types together. This is what Go has you doing.

Going back to the "old days" you'd reach for a pattern. Adapter pattern was the most common. Bridge or Facade maybe? But patterns fell out of favor a while back (imo) because they were tough on the coder's mind. A lot of languages added useful bits to create these pattern behaviors more naturally and without reaching for a book. I'd need to see code to be more specific.

cy_hauser··on Pretending OOP Never Happened
Got it. Makes sense.
cy_hauser··on Pretending OOP Never Happened
> "Inheritance and OO design are the distinguishing features of OOP in my mind;"

I don't consider inheritance an important feature for a language to be an "Object Oriented Language." Inheritance: none, single, and multiple have been bandied about in the OO world for quite some time now so I understand where you're coming from.

I break out design from the language. While I wouldn't design very deep without knowing the language I was targeting I do consider Go as having a natural bias towards driving me to OO design over, say, functional or procedural. For me Go lends itself naturally to OO design. Sans inheritance, of course.

> "if you don't have these, then OOP is indistinguishable from FP or DOP. If Go is OOP, then which languages aren't, and why?"

Haskel, some Lisps, some Forths, etc. would be more non-OO languages in my mind. C is also a non-OO language to me even though you can certainly code it in an OO style.

I guess I agree with the blog author, OO is simply part of the language landscape these days and isn't going to be supplanted by functional any more than procedural was supplanted by OO. And with my mind-set then I'll say most all of Algol's recent children can be considered OO languages. So for me Go is definitely an object oriented language. But I now understand why you don't.

← PreviousPage 4 of 6Next →