|
A customer showed me their internal system yesterday.
It runs on an IBM AS/400 and it's written in IBM RPG.
RPG was originally developed in 1959, but the latest stable version is from 2020.
I must say it looks surprisingly modern: Coding in RPG IV - a beginner's tutorial[^]
Not sure if that's also the version of RPG that their software is programmed in, but I'm guessing it isn't as it's 40-something years old.
Other than that it looks like a fancy DOS program (colored letters on a white background, so no retro black/green, and completely keyboard driven, although mouse works too).
Apparently, they've been trying to replace it for 25 years, but without much success.
Meanwhile it's still actively being developed and their supplier has a development team just for this client (all other customers switched to the newer version of the product).
My client is now looking into buying the entire product just so they can keep using it
They could buy the product, but the programmers are of course in no way obliged to move with the software.
My guess is they'll HAVE TO replace it in the coming ten years or so and it would be better to start working on a replacement NOW rather than buy something that's already obsolete.
But just out of curiosity, how many here worked on RPG and how many still do, could and/or want to?
|
|
|
|
|
I have worked for a short period on a IBM S/36 with RPG II some 30 odd years ago.
Forgot all about it besides the fact that it looked a lot like assembler and after checking your link doesn't even remotely resemble RPG IV.
After some 4 months I switched to the client side development which was done in Clipper 5 synchronising data with the S/36.
|
|
|
|
|
We don't have a setter for Fridays
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,203 3/6*
β¬π¨β¬π¨π©
π¨π©π©β¬π©
π©π©π©π©π©
|
|
|
|
|
Wordle 1,203 4/6
β¬β¬π¨π¨π¨
β¬π¨β¬π¨π©
π¨β¬π©β¬π©
π©π©π©π©π©
|
|
|
|
|
Wordle 1,203 3/6*
β¬β¬β¬β¬π©
β¬β¬π©π¨π©
π©π©π©π©π©
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wordle 1,203 4/6
β¬β¬β¬β¬π©
β¬π©β¬β¬β¬
β¬π©β¬π©π©
π©π©π©π©π©
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,203 2/6*
β¬π¨β¬π©π©
π©π©π©π©π©
Happiness will never come to those who fail to appreciate what they already have. -Anon
|
|
|
|
|
Wordle 1,203 4/6*
β¬π¨β¬β¬π©
β¬β¬π¨π¨π©
π©β¬π¨β¬π©
π©π©π©π©π©
|
|
|
|
|
Camera SVG rendered to PNG[^]
This is my current render of the final test document for my initial round of tests. It's got many complicated overlapping, semi-transparent gradients all xlink:href'd together.
It's not quite as fast as I'd like, because I traded away speed to dramatically reduce memory usage and increase flexibility, but it should be fast enough for small renders, which is what it's primarily meant for.
I still have more to do but it's basically just mop up at this point, with the largest task being to implement some baseline CSS support (selectors for classes and ids only so I don't need a DOM)
I'm thrilled.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I'm not going to lie, that's pretty damn impressive. Very nicely done.
|
|
|
|
|
honey the codewitch wrote: I'm thrilled. So you should be, that's a great image.
|
|
|
|
|
That is very impressive - well done
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
I find an open source PDF viewer in Javascript: pdf.js,
but I want to remove the download button, is it easy to remove this download button?
diligent hands rule....
|
|
|
|
|
|
Working with an STM32 device and trying to implement program in c++. Every platform is a little different in the way it implements C++ so trying to learn the ins and outs on the STM32.
Been working on a simple Timer singleton class for the past 6 hours and it's been 2 steps forward and 1 back. Should be fairly easy but there were so many gotchas that made it very frustrating.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Sounds painful, but also like article material.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
I'm probably old fashioned, but I don't find C++ that helpful when it comes to embedded work - stick to C and assembler is my preferred route.
The idea of embedded is to get the best performance out of limited resources (speed, memory and / or power) and the extra overhead of class based OOPs isn't necessarily a good idea. And it's way harder to keep an eye on memory management to ensure memory fragmentation doesn't rear its ugly head after 2 weeks of continual runtime ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: I don't find C++ that helpful when it comes to embedded work
I disagree c++, I've used C++ on various platforms for years and never had a problem.
I find; code size comparable, speed acceptable (you can also mix c++ and assembler).
The Arduino platform uses c++ as it's major language and there are libraries for everything under the sun.
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Forget classes. template and constexpr mean I can create faster/more efficient code in C++ than you can readily create in C.
You don't have to use features that generate overhead in C++. Zero overhead C++ is a thing.
Besides, Generic Programming > Object Oriented Programming anyway
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I am on the opposite side (at work): forced to use C while I would use C++ instead.
As others suggested C++ follows the Zero-overhead principle[^].
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I use the C runtimes with C++ language features on embedded.
I avoid the STL and most of the C++ standard runtimes.
Why?
For the exact reasons you're running into - the C runtimes in general are far more consistent platform to platform.
Furthermore, The STL is not set up to use the heap responsibly on constrained systems. You will get heap frag and eventual crashes without creating your own custom allocators for everything.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
honey the codewitch wrote: I avoid the STL and most of the C++ standard runtimes.
Ditto
I ran into problems because of basic stupidity on my part and trying to do something that I hadn't done before.
Responsible memory/resource management is crucial in all embedded languages.
I generally don't do dynamic memory allocation, just instantiate classes once. When I do need to do dynamic memory allocation I attempt to allocate blocks that are the same size to reduce fragmentation. When I can't do that I am very cautious to destroy when done with.
You can shoot just as big a hole in your foot using C as C++!
A home without books is a body without soul. Marcus Tullius Cicero
PartsBin an Electronics Part Organizer - Release Version 1.4.0 (Many new features) JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
I guess I misunderstood some of your initial comment. I am not fully coffee'd yet.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
watch out for memory allocation. Project I was on 5+ years ago was burned with "new" and other items for memory allocation not being thread safe. There was a macro to define that fixed everything.
Charlie Gilley
βMicrosoft is the virus..."
"the problem with socialism is that eventually you run out of other people's money"
|
|
|
|