It's basically C if it were repackaged for writing http-aware services.
267 karma · joined February 10, 2019
It's basically C if it were repackaged for writing http-aware services.
Supporting Servo on its own doesn't really move the needle a whole lot if it's missing all of the rest of the bits that make a comprehensive browser.
Firefox is already using Servo (at least in the form of Quantum) under the hood and is still the best option available to prevent more of a complete Blink monoculture than already exists with every other major browser being Blink-based or some reskin/fork of Chromium
The cost of rewrites at that scale certainly has to be far more expensive than the cost of paying a team to maintain HHVM
Valve alone has made it possible to game full-time on Linux as a first class citizen and has greatly improved a lot of the Linux desktop experience which is more than enough for me to be willing to continue to only buy games from them.
Packaging a Go service in Docker and dumping it into k8s is probably the easier/better understood path but also deploying Go services onto an Erlang node just sounds more fun
Go's net/http is also slightly lower level. You have to concern yourself directly with some of the plumbing and complexity of making an http request and how to handle failures that can occur. Whereas in Python you can use the requests lib and fire off a request and a lot of that extra plumbing just happens for free and you don't have to deal with any of the extra complexity if you don't want to.
I find Go to be bad for interviewing in a lot of cases because you get bogged down with minutiae instead of working directly towards solving the exact problem presented in the interview. But that minutiae is also what makes Go nice to work with on real projects because you're often forced into writing safer code
What JVM do I use? Does it matter?
Does it matter what version I install, what if I have to install/manage multiple versions?
If I want to write a web service can I use vanilla Java stdlib or do I have to use Spring or some framework? If I use Spring, do I have to get into the weeds of dependency injection and other complexity to actually get my app off the ground?
With Go, none of those questions exist. I install the latest Go, create a main.go file, I use net/http and I'm off to the races.
- what design patterns/language features make sense to use
- what is the best lib to accomplish X
- how do you keep things up to date
With Go, the language is so simple that it's pretty difficult to over engineer or write terse code. Everything you need is in stdlib. The tooling makes dependency management and upgrades trivial because of strong backwards compatibility.
Obviously that's likely a pretty uncharitable interpretation of something a lot more nuanced, but it's really frustrating to watch companies increasingly benefit from GPL'd software while simultaneously taking their ball and going home when it's convenient.
The fact there isn't really high speed rail connections across large cities in the Midwest is kind of silly considering there isn't much terrain to contend with like there is on the coasts. Even the 1 new route Amtrak introduced from Chicago to Minneapolis has seen pretty high demand.
Why do you need to run Rufus instead of using dd or mkisofs?
> if I baby Debian and focus on particular workflows, I can set up a workflow for what I want-aka a writing environment or my golang environment but it lacks the robustness of jumping between applications seemlessly like Windows has
This sounds like something solvable by switching to a different desktop environment or using a window manager with more configurable options
> Debian however won't allow me to run windows apps, will have driver issues (like my completely incompatible-still audio drivers for a laptop from 2008)
Perhaps this is a Debian-specific issue because of restricting non-free repos by default and other less principally stanced distros wouldn't suffer from that issue? Also many Windows apps that don't even run on Windows anymore will run perfectly fine under Linux with Wine or other compatibility layers.
Do that enough times and eventually people start to get the hint.
This reads as extremely cynical and also uncharitable towards the benefits containers provide around managing different versions of dependencies or run-times for the people who do understand the hardware.
It's really nice to not have to wrangle multiple versions of Python or set up venvs or whatever else on a target server that may be hosting separate apps. The alternative of having a couple of self-contained containers with nginx in front of it is better in many ways.
That's one of the reason I like Go so much. The language is simple and easy to read with common, idiomatic patterns to the point it just gets out of your way and you can actually focus on what you're trying to do instead of spinning your wheels with a million clever ways to write the same code.
A series of loosely guided, non-interactive tutorials that require researching/figuring out on your own with some pointed hints when one gets stuck. Many of the online platforms are too hand-held and gloss over a lot of pretty important details about the how/why of writing, building, running a program. It'd be nice to see something that introduces a lot of correct vocabulary for unknown unknowns that equips someone with the tools needed to find answers on their own by knowing the right words to punch into a search engine.
Even just referring to the opening pages from K&R it says: "you have to be able to create the program text somewhere, compile it successfully, load it, run it, and find out where your output went. With these mechanical details mastered, everything else is comparatively easy." Jumping right into "hello world" that runs in a fully abstracted web IDE glosses over so much of the basics that a complete programming novice wouldn't understand.
My experience with being self-taught was that struggling with really basic things like installing the language/runtime/whatever and actually getting a hello world working to then write more involved apps was just as valuable as actually building a project because it required learning how to find answers and discover the correct vocabulary to articulate the language, system, tools I was using
Unless you're working on something that is heavily Windows-specific (legacy .NET Framework, Win32, Visual C++, etc.) that requires Visual Studio and Windows as a runtime developing on Linux is a much nicer experience.
I haven't used GitLab CI runner too often, but the carrot of being able to use a runner on my local machine is extremely appealing.
2. It depends. There aren't really any shortcuts to becoming a well-versed or competent engineer. Being self-taught still requires putting in as many hours (or probably much, much more) than going through a traditional 4yr CS program and that probably is a much more difficult path in almost every case.
3. I don't know how much weight is put on this in general, but my experience is that not having a degree results in a lot of applications being discarded immediately. I personally don't care about someone's background as long as they know what they are doing or are capable learners.
4. I think this is kind of flipping in the opposite direction in the last handful of years. There was a sweet spot in the 2010s where self-teaching using online resources was very doable and it wasn't terribly hard to find high quality content- but with the rise of CV-boosting blogspam that just rewrites the "Getting Started" page of a popular framework (a large chunk of Medium) and AI-generated content being pumped to the top of web search results it is becoming very difficult to find high-quality, accurate content to base learning off of and I think returning to books or forms of learning provided by traditional ed will become more common as there is some curation and signals for quality.
5. My background is self-taught through being generally interested in computers and just learning anything I could through using Linux/FOSS tools/engaging with various communities adjacent to those interests. College wasn't accessible to me for cost reasons, so I got a job as a tech support rep after high school to get a foot in the door of a software company and climbed through QA to software engineer, to infrastructure, devops and whatever else in-between. I think college is still the best path for most people because self-learning either requires insane amounts of discipline or an unusually deep interest in computers and tech for its own sake (not just as a means to an end of a job). I also think the tech industry has matured a lot and the era of getting hired by being self-taught with some demonstrable skills is over just due to the sheer volume of job seekers in the industry and a degree being the minimum gate used when evaluating new hires.
[0] e.g. https://treehouseanimals.org/programs/community-cats/catsatw...
There's also Windows Terminal which seems like a genuine attempt at making interacting with shells in Windows less painful in general.
This tooling looks really cool and I'd love to play around with it, but am already pretty entrenched into OTel and funneling data through the collector and don't want to introduce too much additional overhead for devs.
[0] https://github.com/open-telemetry/opentelemetry-collector-co...
All of the aforementioned skills are broad and will allow you to pick up new things a lot faster because you understand the foundations vs just being shoehorned into being "$Framework Engineer"
A desktop environment like KDE is a fully modern, integrated desktop even down to being able to use KDE Connect to use your smart phone from your desktop.
You mentioned hating Ubuntu and 3 other distros, but really the fundamental differences between distros is mostly how they package software, and how frequently they downstream new software. Install something like Pop_OS, never touch a terminal and move on.