Hello,
- RPG is not a modern language!
As far as I can tell, this is just your opinion, right? Is there a
formal definition of what constitutes a "modern language" that RPG does
not meet?
- RPG is not state of the art and it has never been!
You could say this about any language.
- RPG is just an improtnat language for one platform, I like (the
platform) and maybe some others too
So...? C# is only important for one platform, too, as is VB.NET or ASP.
What does this have to do with whether it's a modern language?
- even ILE RPG 7.1 has severe drawbacks!!!
Every language, every environment, has it's pros and cons.
just to name some of these:
- it has no sufficient support for namespaces
Namespaces? Are we talking about Java package names, or XML, or what
are we talking about here?
- it's not prepared for event driven programms, because it has nos
support for multi threading (yes, I know the keywords for the
H-specs)
Multi-threaded and event-driven are two completely different things.
1) RPG does fully support multi-threaded applications as of 6.1. I've
written some. They work. However, it's really hard to find a business
scenario where writing multi-threaded programs is useful.
2) RPG has always been event-driven. That's what the RPG cycle was (and
is). Granted, that looks a lot different from the way event-driven logic
looks in younger languages like C# or Java. However, you can easily
create an event-driven architecture similar to these younger languages
using callbacks. You just have to write your own "main event loop" (much
as you would in C.) The big problem here is not the RPG language, it's
finding a place where this type of architecture applies. RPG has no
native GUI, and that's really the main place where event-driven
architectures are typically used.
- the compiler does not support error handling
I think you're confusing "does not support" with "doesn't work the way
Dieter wants it to".
- static binding was an outdated concept, at the time it ws introduced to ILE RPG
True, but it's rare that this issue comes up, and it's easy enough to
work around when it does. How many programmers in the RPG community
have encountered this issue? What percentage of the whole? I doubt
very much that it's as high as 1%.
- it's complicated to have multiple connections with embedded SQL
(yes, I know, what an activation group is!)
True. But, again, how often do you need to do this? How often do you
want to connect to two database servers at the same time? If you do,
RPG does support both ODBC/CLI and JDBC (just has other environments do)
you don't _have_ to use embedded SQL.
Coding SQL statements in RPG with embedded SQL is significantly easier
than coding SQL statements in languages like Java, C# or even PHP. If
you code SQL in RPG using ODBC/CLI, then it's very similar to the way
you'd code it those other languages.
So, once again, you have pros and cons. Do you want simplicity or
functionality? It's a trade-off.
- it's not supported to controll activation at runtime (yes, I know
ACTGRP(*NEW))
Is there another language that does support controlling the activation
at run-time? I suppose Java would if you wrote your own class-loader...
but that's about it.
- there are very few components available (yes, I know, there are
some - I'm one of the guys publishing Open Source and Freeware!)
This says more about the RPG community than it does about the RPG
language.
- there are no development tools which are competitive with Eclipse
(yes, I know WDSC or RDI, or how it might be named today, but where
is refactoring???)
This, again, says more about the community than the language.
There are pros and cons to anything you do in life. Choosing RPG vs.
another language is just one more example of that. There are things that
are good about RPG (better decimal support, better database support,
better security, better stability, better performance, easier to write
business rules, etc) vs other languages. There are also things that are
better about the other languages (larger communities, more add-ons,
platform independence, etc.)
Everyone needs to decide what's important to them (and their shop) when
determining their career path.
If you prefer other languages such as Java, go ahead and code in Java!
Neither us, nor IBM, is stopping you.
But, the fact that you prefer Java doesn't mean that "RPG is dying" or
that "RPG is not modern". It just means you've evaluated the pros and
cons and chosen the one you like better. (and so have I!)
As an Amazon Associate we earn from qualifying purchases.