Spring’s own tutorials aren’t a bad place to start.
Yes. Am not robot.
Spring’s own tutorials aren’t a bad place to start.
Oops. Just imagine the karma I would have lost, were I still on Reddit…
Most people are still using Java 8 (including android)…
Surveys don’t seem to back this up any more… Yes there’s a lot of Java 8 code. But more and more of it is maintenance rather than new development. Respondents of surveys that are able to list the versions they use in production (vs ‘pick one’) have indicated that for many teams with exposure to Java 8, they also have newer versions in production - showing that Java 8 is increasingly about maintenance than ongoing development (with the blocks to moving forward being a mix economic and technical factors).
The most dominant frameworks in the industry are ending their support for Java 8 - so not too far down the track, staying on Java 8 will mean that while you can pay for platform support, framework support is going to disappear anyway.
…we are currently at ~java 20.
Yes Java 20 is the current release, with Oracle’s LTS being Java 17 (the previous ones being 17, 11 and 8 - with 8 having the largest paid support window).
Java 21 is out in a couple of weeks and will become the new Oracle LTS (other vendors and frameworks tend to align on this LTS designation so it continues to be important).
Well. It’s certainly close. Still looks a little tight.
Maybe the upcoming Samsung 57" 32:9 2160p will finally get us there…
Coming from Java where you have no standard tool and two current defacto standards (Maven and Gradle) which do similar things in a less clean or standardised way, I think Cargo is one of the least contentious parts of the Rust experience.
Correct. Bad Typescript. You haven’t provided any of the type information to make this a TypeScript construct (this is just JavaScript)
It should be something like…
interface Person { name: string, age: number, } const person: Person = { name: "joe", age: 23, }
And the Rust equivalent being something like
struct Person { name: String, age: u8, } let person = Person { name: "joe".to_string(), age: 23, };
Those all have different sizes and capabilities. The lack of these requires the JS JIT compiler to try and guess (and deoptimise when it’s wrong).
No, you can’t - https://en.wikipedia.org/wiki/C_data_types
I agree the Rust Async experience feels a little messy, and the lack of an opinionated default makes even the foothills a steeper climb than we might hope. However given all that it’s trying to achieve (in terms of Rust drives for efficiency and safety) I don’t have any better ideas right now.
I don’t know how you’re getting to 32MB. A release build of the most basic form of a get request is not that bad.
A simple chatgpt generated one app to get the content of an HTTPS URL, using reqwest and tokio is 4MB. I expect this can be reduced with options.
However yes, the default Rust build (with all of the panic machinery and more) is bigger than C. But Rust doesn’t have to be the best choice for every niche, to be an excellent choice for several. With that reasoning your return to TypeScript is equally flawed.
Coming from Java, Rust’s young ecosystem is definitely noticeable. It’s taking a while for it to grow, to mature, and for clearly dominant frameworks to emerge for various problem-spaces.
Java, like Rust, is not opinionated about the frameworks, but the size and age of the community means that clearly dominating frameworks emerge with huge contributor bases - Rust just isn’t quite there yet.
Again, coming from Java (which has a number of excellent GC implementations), Rust takes this a lot further (an alternative to null, protection against aliasing bugs). While I’m still fundamentally a Java developer, what Rust achieves here is significant.
Tell me you don’t pay to run anything large on cloud infrastructure without telling you don’t pay to run anything large on cloud infrastructure. There’s a cost to CPU and RAM. Java does okay on the first, but has a long history of doing poorly on the second (c’mon Valhalla - a Java enhancement project that will help here).
Of your post, this is very nearly the only part I can somewhat agree with. Our industry primarily has more of a need for ‘solution now please’ than ‘optimal solution later’. Engineering time matters. The learning curve and cycle time of Rust are barriers.
Also, while Rust is a very safe language to refactor in, it’s not quick to refactor in. The less ceremony and strictness there is, the easier it is to experiment and then refactor. This is, in part, why I think Python does so well in the ML/Data-science space - that niche is more R than D in the R&D balance of software development.
So again, Rust suits some development needs better than others, now. However as it matures I think we will see it grab little pieces of the niches previously occupied by other languages. As it’s tools and libraries get better, and as the pool of familiar developers increases, Rust’s strength are going to translate more easily into dollars without costing time.
I’m not ready to switch to Rust fully. But neither am I putting it aside - and I look forward to its continued improvements in libraries, language, tooling and adoption in more and more places.
(I can say that I’m not planning on using TypeScript for any more than our front-end development though)