mind defending that? I suspect that opinion would only come from one who took philosophy 101 and stopped there. If all you took was philosophy 101, this sounds a lot more reasonable and runs right into the point made by the pos you just responded to
How would you expect me to defend it? It's my opinion. I could give you a long list of things in philosophy that I consider BS, but what good would that do? Do you really doubt that I could provide such a list? The most likely outcome of that exercise would be for you to invoke the no-true-scotsman fallacy and say, "Oh, of course those things are bullshit, but that's not real philosophy." And the fact that I can make that prediction with confidence is my defense.
If you really want my list, since this is HN, I'll start with Ayn Rand and the Austrian school. You can read this if you like:
I think it's ironically telling about your opinion on philosophy that your argument is illogical and boils down to:
1. people who aren't philosophers said some bullshit
2. don't you dare point out people who don't do philosophy shouldn't have their ramblings labeled philosophy
Ayn Rand, a 20th century writer without a university education; Paul Graham, a computer scientist; and the Austrian School, an economics movement, are categorically not entities that have produced or ever will produce philosophy.
That's no a No True Scotsman fallacy. It is a strict application of the definition of philosophy, a deep analysis of certain specific topics. Neither Rand nor Graham is educationally equipped to plumb that depth. And, again, the other name you dropped is not even a philosophical school.
> Neither Rand nor Graham is educationally equipped to plumb that depth
In his defence, Graham does hold a BA (Philosophy) from Cornell University in 1986.
Is your distaste here due to BA degrees rather than PhDs, a dislike of Cornell, or that Graham didn't chase academic philosophy and join a philosophy department?
> people who aren't philosophers said some bullshit
Wow, I didn't expect to be vindicated quite so definitively when I predicted: "The most likely outcome of that exercise would be for you to invoke the no-true-scotsman fallacy."
> That's no a No True Scotsman fallacy.
It absolutely is:
> the definition of philosophy, a deep analysis of certain specific topics.
I see nothing in that definition about writing in a particular time period or having a university degree, which are the two features you cited that allegedly disqualify Ayn Rand. I also see an awful lot of wiggle-room in the "specific topics" and how one measures whether one's analysis is sufficiently "deep". You exclude economics and computer science from your list of "certain topics" but you don't say what topics are allowed or on what basis this assessment of admissibility is to be made. Your argument is a paragon of muddled thinking, and does more to support my position than refute it.
> You exclude economics and computer science from your list of "certain topics" but you don't say what topics are allowed or on what basis this assessment of admissibility is to be made
Oh, so you're not at all engaging in good faith. Thanks for wasting my time. It breaks credulity when you try to argue that economics is a field of philosophy in some attempt to demonstrate I'm engaging in a NTS fallacy.
> How would you expect me to defend it? It's my opinion
One of the first useful things that philosophy teaches you is how to construct a well-rounded argument in support of any position. Following up "philosophy is useless" with "I don't know how to argue my own opinion" demonstrates quite a lack of awareness.
Apparently they don't teach you about straw-man arguments. I didn't say philosophy was useless, I said a lot of philosophy is bullshit. That is not the same thing. A lot of physics nowadays is bullshit (like string theory) but that is not to say that physics is useless.
"Alice O'Connor (born Alisa Zinovyevna Rosenbaum;[c] February 2 [O.S. January 20], 1905 – March 6, 1982), better known by her pen name Ayn Rand (/aɪn/ ⓘ), was a Russian and American writer and philosopher.[3] She is known for her fiction and for developing a philosophical system which she named Objectivism."
Why must every language have every feature, mass applicability, and be intended to be the language-to-end-all-languages? Growth or marketshare is not the only valuable aim.
If you want mutable data structures, I wouldn't point you to Haskell.
> I've dealt with many shitty code bases and the only way that worked for removing bugs was automation. It didn't matter how many bodies you threw at the problem.
Can't say my experience matches yours. Types do seem to structurally reduce some varieties of bugs, but ultimately the only reliable way I've seen to close the gap is hire disciplined people who care about, and thoughtfully consider, what they build.
E.g., the shittiest codebases I've ever seen were TypeScript. It in no way prevents you writing bugs or slop
> but ultimately the only reliable way I've seen to close the gap is hire disciplined people who care about, and thoughtfully consider, what they build.
You were able to turn around a codebase that was growing its bug count exponentially by changing an entire company's hiring practices?
I really don't believe in the "just don't be stupid" or "don't hire stupid people" approach to things. If it works, it only works at a small scale and once things become urgent enough, things fall apart.
This is the best answer in my opinion. Ternary is just sugar for an expressive if. LuaJIT seems to be focusing on adding new syntax though, maintainer might not be amenable to updating existing semantics.
I don't think if-expressions have to affect existing semantics. Basically, in the parser you would have two different kinds of AST nodes, one for when the `if` keyword is encountered in statement position and another for when it's encountered in expression position.
Right now, `if` in expression position is just a syntax error ("unexpected symbol")
Well, I believe there could be some complications with parsing related to the fact that Lua grammar doesn't really requires semicolons between the statements.
But other than that, yeah, detecting "if" in the expression position is pretty unambiguous. No idea why most languages went with "cond-expr ? then-expr : else-expr" bracketed syntax instead.
Surely the most likely explanation is familiary from C?
But e.g. ml-family languages (like OCaml, F#, Haskell) and Rust just have the *if* expression that has a non-void value. If your language accepts expressions as statements (most do?), then I think that should just be compatible out of the box.
Yes, but why C had that syntax? Oh, right, because it didn't use if-then[-else]-end for the conditional statement, and reusing if(cond)[-else] with prohibited braces would be awkward.
Oh, and Lua most famously does not accept expressions as statements. Which, now that I think of it, would actually evade most of the parsing complications.
I imagine that if/if-else as expressions and then necessarily their bodies as expressions would entail a much more fundamental change to the language. You then have to think of a way for the bodies to indicate a result. That, or you have to make a special case for if/else sequences where the bodies are bare expressions, in which case you've just invented the ternary operator.
Zig and Rust have addressed the problem of how the result of a block expression should be presented, but neither solution seems particularly satisfying to me.
In Rust, blocks may end with an expression, giving them a non-void result. But a block may also end in a statement, the only difference being that the statement ends in a semicolon, in which case the expression still has the void result, and I think that semicolon being the only difference makes it hard to scan at a glance where values come from.
In Zig, blocks may give non-void results by `break`ing out of them with an expression. But break normally ignores blocks and break out of loops only, so to break out of blocks you have to provide a label for it and give that when you break so as to break out of the named block and not the outer loop, e.g. `const x = label: { break :label 35; }`. That creates a problem of one of the most difficult classes in software engineering: naming things. Ideally I think `break` from a block should have its own keyword, e.g. `const x = { give 35; }`
This is overestimating the amount of effort involved to game on Linux, imo. It is true that there are a couple games using kernel-level anticheat which preclude their working on linux, but for the most part the effort required to play games on Linux now is zero if it's a Steam game and almost zero elsewhere.
Delta Force used to work but also doesn't anymore (still marked Bronze), people are tinkering with config files but nothing seems to work https://www.protondb.com/app/2507950
GTA V public lobbies don't work, requires you to tweak launch options, disable battleeye anticheat, seems to just not work for some people. https://www.protondb.com/app/271590
It goes on and on these were just from the first few games sorted by player count. Much of the tweaking seems to be different person to person, sometimes it just works sometimes it's Nvidia's fault, sometimes it's something totally different. There's a "recommended for tinkerers" option for reviews. To be clear, every single one of these works right out of the box first time on Windows.
PROTON_DISABLE_D3D12: Disables DirectX12
There are also D3D11, D3D10, D3D9 options too
PROTON_HIDE_NVIDIA_GPU=1: Tells the game you have an AMD GPU instead of Nvidia
The default setting is that Proton hides the GPU, so this option here is superfluous.
-force-d3d11: forces usage of DirectX11
This is already going to happen because you disabled DirectX12
People are copy pasting settings and sharing but not actually looking at any docs. Disabling DirectX12 is going to give you a pretty good success rate of making a game work if it doesn't work out of the box.
Also, let's be clear about what those rankings mean on ProtonDB
Native: Just works
i.e. Devs are cool
Platinum: Just works (but is using Proton)
i.e. Valve has got this shit handled
Gold: Works but you either need to use proton experimental or change an option that someone has already figured out.
i.e. Community has figured it out, Valve is tweaking.
Note that many people are on Proton Experimental by default so possibly that's why it "just works" for them.
Silver: Very likely to work with a setting someone has listed.
i.e. Community and Valve working on it
Bronze: People are figuring it out, leave it to your friends that know Linux
i.e. Sorry, you're probably out of luck. Leave it to the tinkerers
Borked: Publisher is actively working against the community.
i.e. EA hates you
I'm not trying to say everything works on Linux. It doesn't. But let's also not pretend that it is worse than it is. That's the same error in the other direction. Linux is not the right choice for everyone, but it is a good choice for many people.
You're implying that 'clicking the cog icon > properties > and then copy pasting some text into a text box' is overly burdensome. To be frank, if you believe that then not only is Linux not for you, but neither are computers, and I really really am curious why you're on a website called "Hacker News".
My biggest gripe is losing the entire layer of semantics that HTTP gives you. POST is the only verb and different error states are conveyed via error objects in the returned JSON.
Location: Ohio, USA
Remote: Yes
Willing to relocate: Yes, even preferred
Languages: Clojure, C#, F#, TypeScript, Ruby, SQL
Technologies: k8s, Kafka, Postgres, AWS, Azure, GCP, Docker, etc
Résumé/CV: https://bit.ly/45Vze0X
Email: ryan [at] rtroberts [dot] com
Hi, I’m Ryan. I’m a senior software engineer with about a decade of industry experience over a diverse array of languages and technologies. My areas of interest include machine learning, optimization, and complex systems architecture. I particularly enjoy working with functional languages and am always interested in opportunities to solve difficult problems and really push my boundaries.
I’m also passionate about building healthy, functional teams who can focus on building the right things quickly.
I’m self-taught and my degree is in philosophy, which I like to think honed my ability to distill complex requirements into simple concepts and to communicate well with technical and non-technical folk alike.
I like to unwind by indulging in my hobbies of hand-tool woodworking or music production. It’s another way I enjoy solving problems, albeit in a very different context. Always looking to learn and grow, so I relish the idea of being the least experienced person in the room - it means I’m in the right place :)