• 1 Post
  • 14 Comments
Joined 2 years ago
cake
Cake day: June 8th, 2023

help-circle
rss

  • The database in a state where it’s violating some assumptions I’m making and I need to manually intervene without taking down my application for example. I need to have an audit trail on the changes being made to the database and who made them. I need to create replicas to implement failover. I need to replicate my application on multiple machines and all the replicas need to have the same view of the data. I need to mitigate the possibility of data leaks if I have multiple tenants sharing a database.

    I’m not saying that you’re wrong for using it. I’m just saying that it doesn’t work for everything.


  • Regardless, I don’t see it as something that is the silver bullet that people make it out to be. Being able to introspect the production database, query it, and generally have a set of tools to properly manage your data as opposed to having everything in a file fully managed by your application is something useful for me that you lose with SQLite.



  • I don’t know, SQLite it’s something that makes sense in theory, but I think its easier for ops people to just use a proper database. If you need to move the database to a separate machine, limit permissions, etc. its just easier to do.

    SQLite is great for local apps that need a structured way to store their data, but I’m not really comfortable using it for more than that.


  • Its not docker’s fault, its the fault of the stack of crap that is needed to run it(WSL and co). My point is that it isn’t worth the trouble. I could figure it out myself, but dev containers don’t bring enough value to my team to justify the investment, and I really dont want to spend a bunch of time troubleshooting issues related to it not just for myself, but for everyone on my team. I played that role before, and it is exhausting to have to do that on top of the other things I need to do.

    Docker is really great for CI, for deployments, etc. I really like it, and i have spent a significant chunk of my career developing expertise in it. Its not something I would recommend locally unless you have no other choice, or you’re running Linux and are able to use it natively.


  • I write Java mainly, not python, but I understand why python specifically might be easier with docker even though virtual env exists and works fine on Windows. To be clear, docker is a fantastic tool, and it has its use cases, but a local dev environment outside of Linux is a recipe for pain.

    Every time I try to install it, I have to spend a bunch of time figuring out how to make it work, not to mention VPNs breaking it, and the tooling to run it changing every six months. The VM that it runs in on Docker desktop is largely undocumented, so you dont know how you can even log into it and troubleshoot, much less fix the issues that arise. This isn’t a robust tool, this is a hodgepodge of technologies that are duct taped together into something that can work, but is extremely difficult to fix if it breaks.

    I don’t know why your experience is different, but don’t assume that people don’t know what they’re doing when they say stuff like this. Just because it works on your machine doesn’t mean it works on others. You can find lots of developers with similar experiences, it’s not just me.

    If you don’t want to insult me, then believe what I’m saying rather than speculating about my abilities.



  • The fact that you have to operate a VM on your machine in order to use it is a no go for me. Either use Linux as your OS in that case, or spend the time to make a dev environment that actually works. Even just mounting a directory is a painful exercise, and something that comes with performance limitations. I’ve had to deal with networking problems, drive problems, all sorts of issues that you really don’t want to waste your time fixing when you have a deadline coming up.

    Multiple levels of virtualization, meaning you have the containerization part which is virtualizing the userspace of the VM, and the virtualization of the VM itself. Your development environment consists of multiple layers of complex, not to mention fragile technologies which is an incredibly bad idea for something you rely on heavily for your day to day work.

    The people I know who have to use it run a fully fledged Linux VM and do all their work on that. That is how bad the developer experience is on Windows.

    Also I’m a bit insulted that you immediately assumed that I’m speaking from a lack of experience, as opposed to years of experience supporting docker dev environments on windows and failing to find a solution that doesn’t come with severe drawbacks.



  • Honestly all the claimed use cases of generative AI for coding are much more easily fulfilled with normal tools. You can’t perform mass refactorings with them because you need to manually check their output or prove that the code they’re generating is correct, they can’t generate code that well unless your domain is well documented online, which isnt the case for most companies.

    There are places that generative AI will replace workers, especially in art, which makes it all the more important to ensure that whoever has their work used in training data is fairly compensated for their work is generating for the AI company. For programming however, I personally don’t see a ton of value in what exists today at least.


  • When you’re at that point, it’s usually a sign that you need to start applying what you learned. There are two parts of programming:

    1. The concepts, the theory which is honestly the fun part.
    2. Dealing with the little annoyances, setting up a development environment, learning APIs, wiring things together, running into problems there is no clean solution for and implementing something that works.

    The second part feels unimportant, something you can always learn later, but it takes time to learn and get good at, and what you need to learn to start to effectively apply more advanced concepts. Otherwise you’re learning things you won’t be able to use.


  • It’s really a question you should be asking someone in your company. There is no general answer to this question, and every company has it’s own reasons for doing something like this. It could be that the CTO is a moron and wasting engineering time chasing a fad, it could be that staying on Java presents some sort of risk to the company, it could be that Java simply isn’t a good fit for the problems the company is solving, there are a million reasons for doing something like this. It doesn’t necessarily mean that Java is bad, just that Java isn’t really fit for the company’s purpose.