5 ms·
> Remember how Twitter had to re-platform from Ruby to Java to support its growth? Definitely not an enticing prospect, so our choice was geared towards the lon
by ch4s3 4y ago
> Remember how Twitter had to re-platform from Ruby to Java to support its growth? Definitely not an enticing prospect, so our choice was geared towards the long run. Unlike Twitter, Picnic embraced Java from the get-go!
Once again, it must be said that almost no app will ever be twitter scale. Time to market is more important than needing to do some architecture in the future. Twitter was also early in both Rails and doing globally distributed web apps, a lot of lessons have been learned since and rails itself is much better, it's been almost 12 years after all.
It seems like this article could have stopped with, most Dutch developers already write Java professionally.
- spullara 4y agoHonestly the biggest reason we had to re-platform to the JVM was latency (fail whale was a 5s timeout) and not growth. Ruby was just too slow for all the stuff we wanted it to do. It ended up being 10x fewer servers AND 10x lower latency.
- skwirl 4y agoI feel like this is a pretty important comment that busts a popular myth about Twitter and Ruby. The notion that Ruby was a poor choice even for a young Twitter that hadn't hit scale makes Ruby (or at least, late 00s/early 10s Ruby) look even worse than it already does.
- tommek4077 4y agoThat said: time to market with java is also quite nice and one selling point for it.
- lowbloodsugar 4y agoI think people confuse "I don't personally know Java" with "Java has a slow time to market." Sure, for people that don't know Java, learning Java to that level is definitely going to cost you time.
- vineyardmike 4y agoI have mentored coworkers who didn’t know Java on how to use Java at work. I would definitely rather hand a random person Java to learn for work than others.
- xtracto 4y agoI've worked with plenty of languages [1] since 2001 when I entered the job market . Recently I've been doing coding interviews for developers for a Java shop who theoretically knew Java. It pains me to see what they need to do to implement what I ask them (simple tic-tac-toe game) using Java. Something that in Ruby would be: puts(row.join('|')), in Python would be: print('|'.join(row)) in JavaScript would be console.log(row.join('|')) in Java requires either a StringBuilder monster or a third party library [2] to make it bearable. And like that, there are other crazy things that make me glad I don't have to write Java anymore (I worked 4 years with it in total in the early 2000s). [1] (VB6, VB.net, C#, Java, PHP, ActionScript3, C++, JavaScript, TypeScript Python, Ruby, 8086 asm, top of my head). [2] https://stackoverflow.com/questions/6622974/convert-string-to-comma-separated-string-in-java https://stackoverflow.com/questions/6622974/convert-string-t... StringUtils or TextUtils
- fsdjkflsjfsoij 4y agoString has had a static join method since Java 8 which was released almost 10 years ago. Your example would just be String.join("|", row).
- lowbloodsugar 4y agoRight? I mean I think what GP is saying that they aren't qualified to interview Java programmers? Hasn't used it since 2010??? Yet they had the hubris to think that they were qualified, and used the interviewees lack of knowledge to confirm his priors about Java?
- pjmlp 4y ago2004 Java is a little different from 2022 Java....
- topspin 4y agoJava was designed to, and still delivers, rapid development. Is it possible for java developers to entangle their work through poor choices such that development becomes slow? Absolutely; the java ecosystem has accumulated a number of such tar pits. Competent java developers avoid these. Unfortunately incompetent java developers abound. The world is full of java developers that haven't learned anything new since Java 6 appeared 16 years ago. The above argument is also used by C++ advocates; C++ is great if you know what you're doing and apply the solutions provided in modern iterations. Ironic since java was Sun's 'fix' for C++. Given the rapid rise of competitors to C++ I believe that argument isn't working terribly well.
- emodendroket 4y agoTrue enough. But Java (and other options) have changed in the meantime too. Are the productivity arguments equally true today as they were when Twitter decided on Rails?
- ch4s3 4y agoI haven't kept up with Rails or Java for a couple of years, but Rails has always been laser focused on rapid feature delivery. If I knew up front I'd end up with twitter I might not start with Rails, but I wouldn't choose Java either. The truth is, there are a lot of good options today and hiring will be a consideration. I think the big negative for Java there is that almost every dev sort of knows it, so the signal to noise ratio there isn't very good.
- _skel 4y agoA competent Java programmer is not slower than a competent Python programmer. Time to market won't suffer. There is definitely a higher barrier to entry with Java, and starting new projects involves a bit more setup, but that is never the bottleneck. You start a project once. You work on it every day after that. The time it takes to set up the build system is a drop in the bucket compared to the rest of the work. Maybe it will take your company a few more hours to get to market because of that? Big deal.
- deleted 4y ago[deleted]
- jeroenhd 4y agoIntelliJ comes with a step by step GUI to set up Spring Boot for you with all kinds of bells and whistles, with the choice between Gradle or Maven for your build chain (last time I checked, maybe they're moving away from Maven at this point). You follow the steps and get going. You can set up a project as fast as the time it takes to Google the exact name of that npm/pypi package. Sure, you'll want to check your settings before pushing your first code to prod, but the same is very much true for any other "default" deployment. The same is very much true for other "boring" platforms as well, such as dotnet these days. Getting started is quick and easy. Java will have a significantly longer setup process if you decide to throw out all the work that's been done for you and implement your own boutique web server and routing system, but that's not a realistic scenario for most companies. I imagine most of the Java horror stories people recall come from the days where there were no good Java libraries and everyone was reinventing the wheel. Sometimes there are weird dependencies that stop being maintained and rather than fix the problem, companies opt to stick to ancient versions of Java and the JVM, but that's not really a Java problem either, that's a supply chain issue. I don't understand what the higher barrier to entry is supposed to be like in practice. If you know the basics of backend development in any language, you can get started. Learning to place annotations on top of endpoints is a five minute tutorial process, not dissimilar from how setting up routes in any other language takes reading a page or two to get right. The only barrier to entry I can think of is that you probably want the full version of IDEA which costs money, though you can use all of its features for free by sticking to the EAP release if you're tight on money.