Benefits:
- Compile once, run everywhere. Crossplatform programming experience should tell you the idea of "compile everywhere (for every architecture)" doesn't really work. It never worked and will never work.
This might go for Java and .NET, systems that have at least a chance that the VM is already deployed in the correct version.
If you have to deploy the VM everywhere yourself, it is still a binary drop per target, so it only complicates.
- JIT optimizations can potentially allow even higher performance levels (extremely CPU-specific commands can be used, no need to compile for "most common architecture")
While theoretically true, except a few micro benchmarks there are few proven trackrecords of this aspect.
why are JVM or .NET targets bad:
- you're forced either to use their type systems or hide behind wrappers, no alternatives at all
- you're forced to make language garbage collected even it has different nature
- proprietary VM, "source code" is still bound to non-free basement. License terms can change any day and you can be forced to pay, for ex., for tools you use or even worse - to distribute your product
There are open versions. But versioning of the VM and licensing will happen with any foreign VM. See e.g. GNU projects changing to GPLv3 and not developing the old licensed version further.
- moving from pascal language to something more progressive (adding other languages on the same platform as JVM does, for ex.) without need to throw pascal development itself or making it deprecated and legacy.
I don't like the all-out OOP approach of JVM. I like mixed paradigm languages like Delphi/FPC and C++ more.
Do you interested in such feature, thought about something like that or you consider fpc&lazarus complete tool with frozen ideology?
Both are not true IMHO. Most lapses in the FPC projects are due to manpower constraints, not ideology. Being constantly compared to projects with fulltime, paid labour is simply unfair, and trying to make similar changes unrealistic.
Starting a massive reengineering effort won't lighten the manpower problems, but worsen it.
Personally I think the most major problem in FPC's Pascal is container type and generics related. Both FPC and (the most current) Delphi simply do not have equivalents for what is possible in C++.
Though I originally thought the Delphi generics (borrowed from C#) were cleaner, they are IMHO too limited long term.
(for the interested people: design an ordered container type that can be specialized with either the real or integer type within current Delphi generics constraints. To my best knowledge Delphi can't, and while FPC can (due to the older own attempt at generics that was more C+ oriented), it is not very elegant yet)