Hacker News new | past | comments | ask | show | jobs | submit | padobson's comments login

Now when I come across ‘competitive nerds’ I’m extra cautious to not appear to be too threatening to their assent to alpha nerd status

I agree with this approach.

Being highly competent and also un-ambitious has allowed me to build a very comfortable career. The ambitious people know they can use me without fear of me backstabbing them, and they more or less insulate me from the politics.

My kids eat and my job is low stress, perhaps at a cost of reaching my personal professional potential. I'm pretty happy with this arrangement.


25-30 years ago, there was a game studio called 2am Games that made a series of strategy-type Java games that allowed online multiplayer. All the games were monetized with ad clicks. Click on an add, get 15 more minutes of play time.

Their most popular game was an RTS called Chain of Command. You had a squad of four soldiers that you could position on an isometric board designed to look like a farm. 5-10 players would each run their four-man squads into a firefight and play some scenario - seek and destroy, capture the flag, etc.

The other two games I enjoyed were a business strategy game called The Invisible Hand and another RTS where each player took a European country and conquered cities using robot-like walking tanks.

All of the content from 2am Games is lost to history. Chain of Command has some clones out there, but I've never been able to find anything - roms, source code, clones, for the other games. It's a part of my childhood I'll never be able to re-experience.

Edit: I got curious again and did some investigating. Here's their archived home page from 1997: https://web.archive.org/web/19970707215116/http://www.2am.co...


The core usefulness of OOP is usability.

This is the reason I find it useful. To me, OOP is as much about your organization as it is about the best way to load, transform, present, edit, and store data. I think the culture of some companies lends itself to various kinds of programming, but it's the cultureless companies where OOP is most useful. The places where nobody is trying to change the world, where people work to pay their mortgages, where an executive may only work for two years and a programmer may only work for six months.

It's in an environment like that where a self-documenting, self-configuring code base with custom classes and exceptions that guide the next developer is essential.

Every developer should have two users in mind. The person using the software, and the next developer who maintains the software after you're gone. OOP is a great way to empower the second user when the only thing that will reliably outlive the developer is the code base.


I think that OOP is the best way to accomplish the goals you list only if you stick to languages with mainstream appeal - but think it's sad that's the state of the world. Objects (as they are used in e.g. Java) default to stateful and complect data with the methods on that data. I find that most of the time what I want is closer to OCaml's Modules[0] which give me many of the tools of code organization without the complexity with state. (note that OCaml allows objects, so you get a real sense for how often you want an object over a module, 95% of the time I wanted a module).

Maybe one day modules will hit the mainstream.

[0] https://ocaml.org/docs/modules


This is one thing I like about Scala. While its classes can be used in the exact same manner as Java, that's not how its creators pitch them. I've seen them advocate using classes/objects akin to ML's modules, but there's enough flexibility to pivot if for some reason that does not make sense.


you can accomplish that with just modules and functions


I'd say that all that (modern style) OOP does for organizing code comes from its copying earlier module systems. There is really nothing else there.


I want to second the idea that the primary benefit of OOP is logical organization.

For smaller projects I don't care one way or another about OOP practices, but once you start getting into hundreds of thousands of lines of code IMO it becomes an absolute necessity.


But we don't need classes, vector tables, or other runtime features to achieve organisation. We just need our compiler to recognise namespaces. "module Foo where"


Objects open up some advantages in how you snap together code that namespaces alone do not.

Code is much easier to deal with when you define abstractions around small sets of functionality and then allow the caller to pass in various objects that provide those functions to the code that needs it.

You can have an application that accepts a 'data_backend', and then provide a data_backend that just stores information into a dict for testing and getting the app initially written, one that tracks all of the changes made or exposes them for tests to check, or another that stores it to sqlite for running a local instance, and another that stores it to some real database for a larger one.

The calling code doesn't need to know what the data_backend does or how it works, it just tells it "store this", "read that" and the data_backend does whatever it does and data goes in and out of it.

You build up all your code that way and you'll be able to easily stub chunks and replace them with functional implementations, and then swap those out when needs change or by options given at runtime.

It's a lot easier to read and write than code that's littered with a million if statements trying to keep track of too much complexity in too many ways all at once.

OOP is just syntax sugar and compiler constraint enforcement for the same kinds of things you see the linux VFS do. There are many filesystems for linux, but each just provides a handful of functions in a structure that should be called against the structures representing the various types of filesystems. In Linux's C you have to slap it all through a (void *), but in languages with objects, you can use those as the medium of abstraction instead of doing it manually.

Some make you do a bunch of inheritance garbage with stapling objects together, others will let you build to interface definitions, or just check the structure of the object to see if it matches the needs of the caller, or be a dynamic language that just checks for the members at runtime.


Encapsulation helps the signal to noise ratio.

If I create a REST API no one complains they don't have access to the inner-workings, local variables, etc. But if I give a similar experience and call it a "class" suddenly it's ugly and mean.


I find that's often because classes come with a lot of stuff that is less desirable - mainly inheritance and its assorted complexities.

The other side is that classes aren't the only way to get this sort of encapsulation. The classic example is closures - data inside the closure acts as the encapsulated data, and the returned type of the closure is its public API. ML languages typically use modules in place of classes - the module signature defines the public API, and rather than calling methods, you instead call functions with arguments (not `list.length()` but `length(list)`). But again, that's just syntax - we're keeping the same encapsulation because the module-defined functions are the only ones capable of fiddling with the value's internals. You also see this in Rust, which does use method syntax, but has traits and types that act more like modules than typical classes.

All in all, I don't think anyone's complaining about encapsulation, but rather it's a question of whether typical OOP (with all that that typically includes) is the best form of it.


Encapsulation is a module concept that is not only older than OOP, but is much more widespread too.


I'm definitely curating as I scan my library. The first thing I look for is the potential for insight due to a host-guest paring that I may not have seen before - or that I have and it was pretty good last time.

If it's a news-driven podcast, I'll look for topical content I've been interested in lately.

After that, it's just what every topic I'm interested in at the moment.

I would also recommend very liberal use of the pause button. If the conversation is bubbling specific thoughts up in your head and those thoughts seem more interesting than the conversation - PAUSE IT. Nothing will be more relevant than your own insight on the topic. Once you've synthesized the thought, unpause and see how your thoughts compare to the podcasters. This is probably my favorite thing about the medium.


I bought a copy of Hamlet with copious footnotes a year ago, and I really enjoyed reading it - but I found the language too taxing for leisure reading. I'd return to my work and find my mental energy had been drained!

I can certainly see the value of reading Shakespeare, but I'd almost need a long vacation to devote to picking up the language.

It makes me wonder how much of my school years I wasted, because I probably could have mastered Shakespeare at the time and still have that tool in my toolbelt today.


I took 3 years off once and kept to myself and loved it.

Were you stoned the whole time?

I only ask because if you're loving what you're doing, then there's usually some modus operandi or Summum bonum driving you.

A really good high is pretty straightforward.

Most others I know about tend to require something that contributes to a community, but certainly study or meditation can be lonely yet meaningful pursuits.


Nope! Took molly once during those 3 years, but other than that I've abstained from drugs, alcohol, and soda pop my entire life (I'm 100% non-religious though).

I read books, went to the gym, went on walks, rode my bike, hung out with friends, went on dates, went to the movies, went on the internet, and that was it. Absolute best time of my life.


Didn't think I'd see camels going through needle eyes on HN today, but here we are!


Big assumption that people are going to get that reference


It's among the most famous of Christian metaphors, I'd actually be surprised if it went over the head of a well-read individual.


An individual or a Christian individual? I guess it’s far fetched weird assumption either way.


While religion is on the decline in the US, Christianity is still the dominants religion, and it's a famous parable. And this is an American, English-language website; it's not crazy to think that much of the population has heard the saying.

HN is also a cyber-entrepreneur website, and if there is anyone willing to disregard that saying extra hard they're here too...


Did you know "needles eye" does not refer to sewing needle? I'm told it actually referred to something like a cattle gate. So the message is actually "hard but not impossible..."


According to Wikipedia, there's no actual evidence for such a gate, so this seems like apocrypha meant to soften the message.

But given that we're talking about the man who preached "give up everything you have and follow me" and "let the dead bury their own dead" I'd favor the more radical interpretation being the most likely.

edit: Oh yeah, parable of the talents, too.


Let the dead bury their own dead, soooo zombies ?


It was Jesus' answer to a follower who wanted to attend a family funeral. Jesus was saying that to follow him means separating yourself from the world to the point of considering even your own family to be dead to you.


Ah, I don't know why, but that just feels so heartless.


i google it and it worked out


Crazy huh? Almost like a peculiar arrangement of words might be referenced elsewhere.


I'm with you here. I have a personal rule that the first information into my head each day comes from the Bible, which for all the criticism it gets is ultimately a story of hope in the face of many disasters. It's been a huge boon to my mental health.


I read Gleick's The Information[0] a few years ago and was riveted. Do you have any suggestions for further reading if I wanted to take a hobbyist interest?

[0]https://en.wikipedia.org/wiki/The_Information:_A_History,_a_...


I would read "Lifespan" by David Sinclair, who used Shannon's information theory to model epigenetic changes that cause us to age. Fascinating read and goes to show how far reaching impacts a foundational mathematical theory can have.


There was a surplus from 1998-2001[0], so in living memory of most people reading this.

It's worth mentioning this happened under a Democratic president and Republican congress, not far from what we have now.

[0]https://fred.stlouisfed.org/series/FYFSD

Edit: added citation


What's different now in 2023 than 1998-2001 stopping us from achieving this?

How much would spending need to be cut by, what programs will actually accept these cuts, how much can taxes realistically be raised by, why won't there be lobbying/special interest/loopholes to prevent this?


Certainly those late 90s budgets all kept government expenditures below 20% of GDP.

You could also try to raise taxes without stifling growth (and thus reducing revenues), but that's an even harder technical problem to pair with a similar political problem. Personally I'd be in support of a constitutional amendment that caps Federal revenues at 20% of GDP, so I wouldn't be on board for this, but to each his own.

Take a look at page 39 in the latest budget summary[0] and see if you can find the right places to raise revenues and cut spending to eliminate the $1.148 trillion deficit for 2023.

[0]https://www.govinfo.gov/content/pkg/BUDGET-2022-BUD/pdf/BUDG...


Back in 1998-2001, members of Congress were somewhat sane and reasonable people.

In 2023, half the members of Congress believe in Qanon and Jewish space lasers. And the same is true of the voters.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: