Spyke

Replies

Comment on

Other dev won't follow best practices, is this common?

Yes, it's common. No, it shouldn't be tolerated. Your boss/tech lead/whatever should be involved. Here is what should be done ideally:

  • not following best practices: you MUST implement merge requests (GitLab, GitHub, etc.) and his code shouldn't be approved which means that his code won't ever be merged in a shitty state. Force 1 or 2 approvals for each MR, and it should not be possible to merge an MR if it has open comments. The boss should ask every day "why is your code not merged yet?" and he'll have to explain why people don't approve his shitty code.
  • shitty unit-tests: same thing, the boss should show him how to do this, and the MR shouldn't be approved.
  • breaking unit-tests: it's the job of the CI to literally block MRs that break unit-tests (whether it's code coverage or unit-tests).
  • leaves me to fix it during PR approval: NO, it's HIS merge request, not yours.

To sum it up: devs must not approve his MRs, the CI must block MRs that break tests.

Comment on

What's the dumbest thing you've shipped?

Years ago I joined a startup as a junior developer to work on a patented security application with SSL certificates and stuff. They had been working on it for 5 years, 10 engineers and 2 guys with PhDs, it was serious business. The thing was a prototype but it was fun to work with them. I was porting their app on Mac OS X too because the founders were sure that it would also be a success on a Mac.

Then one day I bought a HTC Desire to try this Android thing since I already knew Java. After a few tutorials, I realized that I could clone their whole app in 100 lines of code thanks to the Android API in less than a week, but it would be better, safer, and portable. I knew we were doomed. They closed the company a few months after because no one wanted their application.

Comment on

Why do they keep making new languages

You can't easily improve a language and stay compatible with the previous versions. C++ does it but they are crazy.

you would think there would be some kind of universal language

It does not exist, but anyone is free to try and invent it. It should be low-level like assembly and high-level like BASIC, functional, object-oriented, and have weird stuff like traits, concepts, and alien features from Haskell. It must also have both the pointers/references of C++, and the borrow checker of Rust. And don't forget to make it as secure as Ada with pre and post conditions. But it must still be easy to use. Also you will have to write a compiler for every operating system ever (mainframe, server, desktop, iOS, Android, every phone, every tablet), and contain a universal GUI that pleases everyone. It's literally impossible to do right now.

Last but not least, Java was supposed to be this universal language that you can run everywhere. It failed and it cannot be run everywhere. It also had to be improved a lot, and it's missing a fuckton of features from every other language.