Anton Prokhorov's Avatar

Anton Prokhorov

@hollandseuil.bsky.social

Software Engineer at JetBrains Work on Amper Was born in Siberia, live in Amsterdam

36 Followers  |  25 Following  |  101 Posts  |  Joined: 18.11.2024  |  1.9015

Latest posts by hollandseuil.bsky.social on Bluesky

Unpopular opinion:

In the most of spring boot projects, what folks call the "architecture" is just how files are located in packages

28.05.2025 14:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Amper Update, May 2025 โ€“ A Standalone Build Tool for Kotlin, Server-Side and Multiplatform | The Amper Blog Amper is an experimental, standalone build tool by JetBrains, for server-side and Kotlin Multiplatform development. Read on for the latest updates!

blog.jetbrains.com/amper/2025/0...

We went to serverside:

- Native Spring Boot and Ktor support
- IDE support, intelligence works even in a broken build
- Extract to template
- You can create project/module without reading docs and using generators like start.spring.io

Just give it a try!

21.05.2025 10:51 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Have you been in the situation:

- you start a pet project
- you set up your build (spent whole evening or so)
- You're tired...

???

20.05.2025 10:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Please don't put AI into my terminal

28.04.2025 14:40 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Geocoding is hard: did you know that Australia is constantly drifting by 7cm/year or something approximately like that? So you stored coordinates in the DB. Year after you're cooked

28.04.2025 14:39 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Screenshot of the paper "C is not a low-level language" https://dl.acm.org/doi/pdf/10.1145/3212477.3212479

Screenshot of the paper "C is not a low-level language" https://dl.acm.org/doi/pdf/10.1145/3212477.3212479

An interesting paper on why C no longer maps well to modern hardware. Instead of continually optimizing hardware design to support legacy abstractions like the serial execution model of C, the paper points out it is time to rethink the programming model itself. ๐Ÿงต

queue.acm.org/detail.cfm?i...

13.04.2025 17:44 โ€” ๐Ÿ‘ 119    ๐Ÿ” 20    ๐Ÿ’ฌ 7    ๐Ÿ“Œ 4

Thanks to the newsmakers, my vocab surged and now Iโ€™m capable of retaliating in a contentious debate

It make me feel smarter XD

11.04.2025 19:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Also it worth to note, that there are no as fast purely functional programming languages as you probably imagine in your reality not because there is some magical limitation on representation of the CPU (modern imperative langs don't comply long ago), but because it's quite hard to write on FP langs

11.04.2025 18:02 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Profile-based optimization can make local optimizations in a very restricted use cases with aggressive invalidation, though, but in the most cases it works solid and skyrocket your performance like god

And this is where F# beats your Rust or whatever you consider as fast

11.04.2025 17:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

If you write anything on "performant" languages, you probably gonna end up with a worse performance than undergraduate would have written the same code in Java

You very underestimated all the science which lies under VMs

Jit has benefit of having traces at the runtime

11.04.2025 17:57 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Look at the BEAM VM, btw Erlang is faster than Python for instance, or take a look at F# it has comparable speed with C# (they run on the same VM and translates to approx similar instructions)

The problem with FP is not performance and never has been

11.04.2025 17:46 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I completely can't buy that: it's an a abstraction layer, it shouln't somehow follow how CPU works, we can translate the code whatever we want, there is no problem with that

We also could write the whole runtime, which would know how to execute functional command the most effective way

11.04.2025 17:46 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The closest programming language that does that is Haskell. It's not C-like completely, it's statically typed though and very concise and expressive.

This is exactly where FP shines. Also, if transactional memory is introduced, you can semi-automatically parallelize some little things

11.04.2025 15:37 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

You have to make sure that the functions you're calling are side-effect free, and then compiler actually can infer the execution graph itself, however, in real life, it's 1. very hard problem to verify that your function is actually pure, 2. parallelization isn't free, if using wrong could slow down

11.04.2025 15:37 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Have you heard the story that VSCode started blocking extensions in forks, like Cursor?

This is what happens when you don't own the platform

But the problem is a bit deeper. The whole open-source isn't that open, in fact

There are companies behind most of the projects. They don't want to compete

11.04.2025 13:39 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Europapa, europapa!!! Welkom in Europa. Blijf hier tot ik dood ga

10.04.2025 22:47 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Once again, I'm digging into classloading debugging, let's find out how deep is the rabbit hole

10.04.2025 10:26 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Of course you can take roocode or cline and just add openai compatible custom api key

But what could be more customizable as anything written from scratch

For now itโ€™s not to much to write

Besides it could be vibe-engineered, and then bootstrapped

09.04.2025 13:06 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Different levels of understanding some particular tech

1. I bruteforce until it works
2. I finally get how exactly it works, but why it is designed so poorly, couldn't they come up with a better solution?
3. They can't because life is hard and programming is hard

09.04.2025 09:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The quality of the software is deteriorating, and vibe coding is going to aggravate that

09.04.2025 09:10 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Interesting thing, despite of MCP fetch doesn't prevent you from getting data from the websites, it turns out that without a jailbreak you can't bypass robots.txt

This is actually good news! So if you don't want LLMs to parse any content you serve, you can just easily forbid that

09.04.2025 09:03 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Context compaction is a brilliant idea

09.04.2025 07:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I gonna share the project soon (I need to clean up creds from the git history)

09.04.2025 07:00 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

It turned out itโ€™s not needed to upload the whole project to Gemini 2.5 pro

What is enough is to provide as broad toolset as you can, and it starts to perform comparably to Claude desktop

Okay, now I convinced that Gemini is a beast

09.04.2025 06:56 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Real talk: with spring boot itโ€™s literally 3 files with 50 lines of code in total

Everyone can do that, even if your main language is Python

You can vibe-engineer UI later

09.04.2025 06:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

What is the best at AI agent development is the fact that at some point when you bootstrap, agent starts writing itself

09.04.2025 06:51 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

But you get your coding AI agent in the end with ability to choose whatever model you want directly without these AI wrapper companies

Additional benefit: you control cost, you can upload the whole project into the context, or you can use caching or whatever technique

Use it!

09.04.2025 06:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

All models support OpenAI compatibility. Besides you can use models with open router or other SaaS providers that also provides openAI compatibility

Yes, it will be a limitation, no thinking process available, no animation of letters during the dialog, just calling MCP tools and answer at the end
โฌ‡๏ธ

09.04.2025 06:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Spring Initializr Initializr generates spring boot project with just what you need to start quickly!

Itโ€™s maybe obvious for everyone, but if you want to use a new shiny LLM with your favorite MCP and cursor/copilot/windsurf/jetbrains AI/etc doesnโ€™t support this model yet (and maybe never)

Open start.spring.io

Chose spring-ai-mcp-client

Do annotation-driven development (itโ€™s easy, trust me)
โฌ‡๏ธโฌ‡๏ธโฌ‡๏ธ

09.04.2025 06:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Is it a home office?

08.04.2025 12:17 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

@hollandseuil is following 19 prominent accounts