back in my day we only had one language. it was called ASSEMBLY. wanted to make the computer do something? you had to ask it yourself. and that worked JUST FINE
Back in my dsy we only had non programmable computers. Wanted to make the computer do something? You had to specifically build in the function. And that worked JUST FINE
Ok Boomer
Well la-tee-da, fuck my AND gates and inverters.
Look at moneybags over here with his instruction sets.
Back in my day when you wanted a computer to do something, you just asked her to do it and then underpaid her because women can’t hold real jobs.
Gates and inverters!!?
Luxury!
In my day we had to use transitors and resistors and, if we were lucky, maybe capacitors.
Look at me, I have a friend at bell labs.
We had to use vacuum tubes, and we liked it.
My favorite is “Java is slow” said by someone advocating for a language that’s at least 10 times slower.
Those who say such things are straight ignorant
They’re basically fashion victims.
I wouldn’t say so. They are inexperienced. They don’t know where the bottleneck of most of the modern software is (it’s io in 80-90% of cases) and how to optimize software without rewriting it to C++
My favourite is “all the boilerplate” then they come up with go’s error checking where you repeat the same three lines after every function call so that 60% of your code is the same lines orlf error checking over and over
And god help you if you forget those 3 lines somewhere and you silently have database failures or something else.
Yeah, that’s the other thing - it does become easier to accidentally fail to deal with errors and the go adherents say they do all of that verbose BS to make error handling more robust. I actually like go, but there’s so much BS with ignoring the pain points in the language.
Things like lombok make the boilerplate less of an issue in modern Java too
When you handle all your errs the same way, I’d say you’re doing something wrong. You can build some pretty strong err trace wrapping errs. I also think it’s more readable than the average try catch block.
You still need to add error handling to every call to every function that might raise an error
Write your business critical process in brainfuck and have job security for life.
Sprinkle in some whitespace code…
One project I worked on had 10 different languages. That was rough. But even your basic full stack web application is usually 5 languages: SQL, a backend language, HTML, CSS and JS. Usually some wheel reinventing frameworks thrown in for good measure. 5 languages is light these days.
And don’t forget the CI “language” plus a bunch of bash scripts, Helm, Kubernetes, etc.
Probably a bunch of hacked together Python to copy stuff between fileshares. Bonus points if it runs with a .bat file and a Windows scheduled task.
Without Ansible or Terraform? What about SQL specific for each rdbms?
I work in Java, Golang, Python, with Helm, CircleCI, bash scripts, Makefiles, Terraform, and Terragrunt for testing and deployment. There are other teams handling the C++ and SQL (plus whatever dark magic QA uses).
Seems reasonable to me. A scripting language, a compiled language, SQL, some CI/CD DSL, and a dealer’s choice.
Java isn’t bad but, I’m not a fan of how verbose and convoluted it is. That said, I’ll take Java over here JS any day of the week.
we should use only the best language for everything.
And one of them is Java?
Yes Java, Scala, Kotlin, Jython and Perl
Of course Perl is in there lol
Just use Kotlin
This is literally how this all started for us lol. Senior wanted to try to migrate everything to Kotlin in our project. Migration never finished. Now one of our major repos is just half Kotlin half Java. Devs on our team learn Kotlin by unexpectedly encountering it when they need to touch that code.
Maybe it’s because I know both languages but is that really a big issue for people? The interop is great, and kotlin is very readable, so the cost of context switching between the two is miniscule.
Some people have an extreme aversion to learning new things though. I feel that holding yourself to the standards and limits of your lowest performers isn’t a great thing.
The python code we inherited had some performance issues. One of the guys was like “we should rewrite this in Java”.
Luckily the boss was not an insane person and shut that down. The issue was an entirely stupid “…and then we do one query per project” behavior that worked fine when the company was small but unsurprisingly started to suck as users created more projects.
Instead of a months long complete rewrite, we had a two hour “let’s add profiling… Oh wow that’s a lot of queries” session.
I like typescript:)
I would say that over a decade of my career was coming in as a freelancer to fix codebases where a couple of people tought they knew better than the previous ones and proceeded to add yet another very different block to a codebase already spaghetiffied by a couple such people.
Sometimes it was coding style, sometimes it was software design, sometimes it was even a different language.
I reckon thinking that just deploying one’s EliteZ skills on top of an existing code base without actually refactoring the whole thing will make it better is a phase we all go through when we’re still puppy-coders.
How to go from only being able to compile the project on a Windows machine (due to obscure dependencies that every other Java project has for some reason) to not being able to compile on anyone’s machine at all in just 1 simple step.