EDIT: Just to be very sincere and transparent. The content of this post has been removed to avoid further discussion. I do not think my kind of views are welcome in this community.
I am a huge proponent of libre software, but this is a very naïve view. It's impossible for the average Joe to find a place to work at that will use even 50% FOSS. It's impossible to buy a flagship phone on which you can install a FOSS OS without a ton of technical workarounds. Hell, even today, lots of basic customisation on mainstream GNU/Linux distros require editing files or using the CLI.
I do professional electronics design and some mechanical design. I use 100% FLOSS tools. KiCAD nightly is currently slightly less buggy than the closed crap, and about as capable. The major difference is that bugs I report get fixed within days, which I've never experienced with any of the commercial offerings. I use stable KiCAD for most projects, and nightly for things that need advanced functionality. It's absolutely excellent. The mechanical design story is not as great, but FreeCAD is improving at a decent pace and now that Fusion is crippleware a lot of people are looking into FreeCAD, and complaining about how it works, and some are contributing and improving it. KiCAD went through this cycle due to a large influx of Eagle users when Eagle got eaten by the beast, and came out dramatically, shockingly improved. If the same thing happens to FreeCAD in the next few years I doubt we'll have any excuse to go back. So I don't feel "hard pressed to get by" - I feel more productive than before I switched to FLOSS tools.
Yeah it's amazing, and I recently did a project on KiCAD nightly (because it has better support for complex buses and high speed stuff, and I needed to put 14 HDMI links on a board) and that's even more amazing (though currently quite buggy as a lot of new stuff was added and it's now in pre-release feature freeze to get the bugs out).
There's also two other excellent floss electronics CAD tools - LibrePCB and Horizon, which are also worth trying. They are built by people who felt they could do a different workflow to KiCAD, and have succeeded at that. I personally still feel more comfortable with KiCAD, but it's always nice to see alternatives.
One thing I've been seeing with the FLOSS tools that just doesn't exist at all in the commercial world is cross-pollination of both code and features. KiCAD now has footprint DRC built in, which is something that originated in LibrePCB. And Horizon uses the KiCAD routing engine internally, while having a completely different everything else. Developers of all three hang out with each other and exchange ideas. This is something where the commercial closed stuff simply cannot compete.
For plenty of people if it doesn't support {QuickBooks, Excel, Photoshop, ...} it's not fit for purpose. Even people who are willing to use alternatives can't when all the people they collaborate with don't.
It's not quite forced, but you can't explicitly ignore. In practice I'm one accidental click away from an unwanted update now. (Each time need to remember to go one menu level deeper before updating)
I still can feel very lost when refactoring a complex clojure system as opposed to something like Rust, because you have very little information about all the places in your codebase where a certain assumption was made.
You can go crazy and spec everything, in fact that can help, but:
- In practise, nobody does it
- Specs come with no guarantees. They could even be wrong.
- The official implementation stubbornly insists on not checking return types, so half of your annotation may just be glorified documentation (although you can use third party libs like orchestra)
Just imagine: Add a new required field to a spec, and get a convenient list of source code locations that you need to review. That's the promise of a statically checked system. It's not a silver bullet, but not having this leads to what I like calling "refactor anxiety" (i.e.: did I handle all cases?)
I still love clojure no matter what. I think in practise you can express so much, so elegantly, and with far less code, that your project size is always sorta manageable.
> He doesn't force anybody to use the Epic Store. Unless you want to play Fortinite (which is made and published by Epic Games) or games that have an exclusivity contract with the Epic Store.
So you're not forced, except when you are... I think the GP meant people is forced to use their store to play certain games. Games not developed by Epic, which were meant to be released in other stores and operating systems. You can choose not to play those games. Many people do in fact just that. But that was not the point.
Of course Tim Sweeney does not force random people at gunpoint to use their store. That's never going to be the case because there's laws forbidding him!
There's clearly a difference between a company having exclusive control over how people access a particular game on a particular platform (eg Fortnite on Windows) and a company having control over how people access all software on a platform (eg everything on iOS and Apple).
I don’t think there’s that much of a difference, unless you want to legally classify a platform differently. Today no such legal classification exists.
Specter is always on my clojure toolbox. Not only it makes transforming arbitrarily nested data painless, it also is usually more efficient than the average hand-rolled code!
A great example of why macros in Lisp are powerful, and how they empower you as a user even if you never write one.
While impressive technology, I still get that eerie feeling of my computer's ownership being slowly taken away from me. The problem is not Github codespaces offering us an alternative to traditional dev environments, the problem may be 10 years from now, when someone says: "All the coding is done on the web nowadays, why should we allow users to install compilers and dev tools on their machine? They may use those for hacking and compromising the security of our systems. They may hurt themselves in the process and sue us! Better not take risks". I'm afraid to go into a future where this is normal...
> All the coding is done on the web nowadays, why should we allow users to install compilers and dev tools on their machine?
Currently, web-based development is unsuitable for video streaming or native GUIs which operate on local filesystem files. I don't think video streaming over networks is easy. If development shifts such that people stop wanting local filesystems and native GUIs, I'll be sad...
It’s the same rationale as having Citrix for developers in big banks, so they don’t have anything on their local machine. And this way you don’t have to keep a big machine with a bunch of GPUs around.
That sounds like 'The future will be no code development, will all the developers lose their job?'. I can see it happening in some business centric shops (outsourcing?), but going to happen at widespread scale at all.
Fair enough. But that was not my rationale, it was just a made-up corporate rationale that is not too far from what I can observe in reality. Take, for example, lobbyists in right-to-repair hearings. They use arguments like this: "If we let users repair their smartphones, they might hurt themselves, so it must not be allowed and instead always performed by a skilled technician". The implication always being, that if users hurt themselves, they will sue.
> Anyway I guess people can also buy their own computers if they want to play outside the sandbox.
My point was, precisely, that we might get to some point where this is no longer possible. Imagine they stopped selling what we today call "PC", and instead everything is closer to smartphones or tablets. There would be no way to setup a development environment on the machine. There's no sudo access, no compiler toolchain...
I find the name of the NPS_0487a3ac_throttle cookie suspicious enough, but the article does not comment on it. Is this a common practice? Throttling the website for users who uninstalled your application?
Genuinely curious. You insist a VCS is not how the industry operates. But then how do those AAA devs manage synchronizing changes across a team of several hundreds of people? I imagine there must be some equivalent to VCS that better fits the gamedev indurstry. Or are people just throwing flash drives around the office?
Perforce. You have an always online server, and binary files can only be checked out by one person at a time (enforced by the server). Its big, it's clunky, the UI (p4v) sucks more than you could possibly imagine, but it scales.