Why use PVX?

Started by Cedric, June 14, 2024, 11:11:02 AM

Previous topic - Next topic

Cedric

Hi guys,

I am currently debating with my team on the advantage of using PVX and why we should keep it.  I do have some arguments against them who try to push me out of PVX to use a more "standard" framework, but still, I am wondering what were your thoughts on it?

We've been using PVX for almost 25 years, but with all the new frameworks available that has a lot to offer, the question is relevant.  So, how to convince them that PVX is still relevant for us?  Our main product is an ERP system built 100% in pvxplus with WindX.  Our complimentary tools (web sites and mobile app) are built in Flutter and php mainly.  Note to say, we use our "in house" GUI engine... So no Nomads... 

I like the fact that PVX stays "retro" compatible, which makes it easy to maintain.  I also like the use of WindX, for control and security mainly.  The database is grest too.  All around, the performance is great for what we do, but there is some drawbacks that makes us rethink our strategy.

RobL

Hi Cedric,

Considering all the advantages you mentioned, along with the additional advantage of NOT having to rewrite your main app, I would be interested in what the perceived disadvantages are. I think they'd have to be fairly serious in order to justify the cost and effort of a re-write.

Regards,

Rob Leighton

Cedric

Thanks for your response Rob!

Well, there's some flaws in our current structure where the main software only works through Windx.  I like Windx, but in Today's world, many prefer having the option to run the software from any OS and any type of devices.  I also find it more difficult to build GUI interface that adapts perfectly for all the different types of screen resolutions and screen sizes.  There's also a performance "issue" where I find that a more asynchonous approach would help with performance and change the way the interface is built and navigation.

Obviously, the "way it looks" is now a big sale point that gives a good "first impression" to future customers.  Even if the software performs better than competition, customers that do not know us are tempted to choose the most "modern looking" option.

Also, it's hard to seduce young developers to join the team since PVXPLUS has an old school approach that's really different to all the other popular "web based" technologies.  There's not a lot of documentation or info about the language that makes it hard for them to learn.

Anyway, nothing is perfect and it's just a matter of bein rational about it.  The "stability", low ressources requirements, easy maintenance and security are all super good qualities about the technology.  I really like how the "old school" mindset is still relevant Today. I mean, I remember a few years ago, everbody was pushing SQL for databases and nowadays, some are bragging about NoSql like it's a new thing, but it's pretty much what PVX is providing since forever.  There's also the security question that is more than relevant Today!

pwhirley

Cedric, those are all good points and I sympathize with you.  I'm glad I no longer have to deal with such decisions, but I had trouble finding programmers back when I needed to. 
You said you use your own GUI, which could be part of your adaptability issue. With NOMADS you can make the GUI look however your want and with iNOMADS you can give it a web interface without using WindX. 

You could also take a look at Webster+, which gives you an easy path to a REST model using all the tools of PxPlus on the back end.  It's worth the investigation.  I've found it's pretty easy to implement and performs well while preserving the back end that you're familiar with.  With proper planning you could migrate the whole system to a REST-based application gradually.

I think the coding tools that come with PxPlus tend to be off-putting for programmers coming from other environments, but if you adapt Eclipse for your IDE, you'll find that many of the young programmers are familiar with that environment and adapt well.  PxPlus is easy to learn and many programmers find it a very pleasant alternative to Java and C# when they get into it.

I enjoyed working with PxPlus for the business layer while using SQL for the back end.  This was not only a familiar tool for other programmers but it opened the door to use other tools on the database.

My .02

Phil
Philip Whirley
Freelance software developer
Ride the Lowcountry, LLC
phil@whirley.org

cwellis67

Cedric said "Also, it's hard to seduce young developers to join the team since PVXPLUS has an old school approach that's really different to all the other popular "web based" technologies.  There's not a lot of documentation or info about the language that makes it hard for them to learn."

This is a very important point. We are in the process of hiring a new developer maybe, but they will not know PxPlus at all. Is there any type of training that new developers to PxPlus can go through to learn the language? The User Manual is a good reference, but is there something like "PxPlus for Dummies" type of documentation?

Peter.Higgins

Cedric,
A client just hired an excellent BBX programmer who picked up PVX like he sleeps with the manual under his pillow.  The languages are very simual, but the file system, Dictionary and Nomads are all far simpler than the BBX versions. 
A bonus is java as that skill is requred for BBX gui.
He seems pretty happy with the change.  There are no major users of BBX left so its hard to find work in it.  I spent a year and a half in BBX and learned things about PVX like string templates that are barely mentioned in PVX.
Python seems to be the closest language to PVX but has 60 string functions covered by the 6 PVX ones and doesn't have a comparable object model.  I'm not a fan of libraries.  If it did I problably would have switched.
Object Nomads is absolutely great for moving all logic out of the nomads files.  Grids are so much easier to maintain with an objects for load and interface, business and file logic with only the screen configuration and managment in the program. 

jhendrickx00

Hi I'm in the process of finishing a PxPlus book, my native language is spanish, but using some help I'm translating it to english, it have 350 some pages and covers mainly NOMADS and  the programming (the CONSOLE programming) too. If everything goes fine... I think in a couple of months will be available. The content would be entry level (perhaps some mid-level topics); but it won't be an 'encyclopedic style' or a book with some of the 'super-clever' approaches of Mr Mike King (hope some day I can use some of the his great routines in the book!); instead is an user frendly (and simple) approach to learn and use PxPlus.

About the OP: Why use Pvx/PxPlus? Some years ago (5 or so) we felt the need to explore other solutions/languages, and tryied some: Embarcadero, Phyton, and other frameworks; they are great, but in a couple of months, we found working in some stuff that was 'automatically' done in PxPlus or taking 2 weeks to finish tasks (in others languages) when we could finish in PxPlus in a couple of days. Also, we didn't like the need to use several tools: Database, Language, Designer, Data Base Query and so on ... in PxPlus we focus in just one tool. The 'final' point is the easy approach (in many cases) to solve certain tasks; a customer ask for a report involving several tables, some calculations and similar to an already done report, we copied the program, made the changes and the customer have the report for the next day! Later we optimized it, but the answer was fast!

Jean H//

Len Vassos

Thanks to everyone for your input.  We appreciate hearing from our customers and want to learn more about how we can support our customers roadmaps with enhancements and modernization of the language.  Our goal is to ensure that PxPlus is providing our customers with the tools they need to build and maintain their applications now and in the future.

As it relates to training materials, we understand that training new employees is a priority for our customers. We are currently reviewing all training materials and will be making them accessible soon.  This will include updated training manuals, previous DireXions presentations and "how to" tutorials. This is only the beginning as we continue to build our library of training materials.

PVX Plus Technologies, Ltd.

Cedric

Thanks everyone for the responses! 


Stéphane Devouard

#9
Sorry for the late response, been away for a few days

I agree with all of the above

On the new blood attractiveness of the language, I had the bad luck of one year of unemployment with the good luck of a web development training funded by the french unemployment agency. I learned PHP, Javascript, Java / C# programming. And refreshed / upgraded my OOP knowledge.

Youngbloods can download PHP, Java or C# on their machine and start programming straight away without paying anything. They don't have to re-init ACTIVATE.PVX with a demo key after 30 days, and they don't have to consider paying a license if they want to test their app with data files above 5000 records.

Youngbloods are shown code editors and IDEs such as VScode, Eclipse, Jetbrain's PHPStorm, etc... So they may be a bit surprised when they see *IT, a little less when they see ED+. Don't show them *e :) The new PxPlus VScode extension in the last PxPlus version is great. However it's limited to PxPlus for Windows at the moment. The great thing with VScode is that it exists for Windows, Linux with GUI and MacOS.

Youngbloods are shown web frameworks that speed up development, often with concepts such as convention over configuration. You put your code in a convention-named script in a convention-based directory, and the framework picks it up by itself when reacting to an URL. No such framework in PxPlus. Because you have to pay for a development license, you want to protect the code and in-house framework you write for your needs. No such thing as open-source in PxPlus, so no ecosystem of ready-to-use modules / libraries. No such thing as PHP's Composer, Python's PIP, Javascript/NodeJS yarn/npm etc... For those not knowing what this is, basically these are package managers, where you can add to your projects/apps external libraries created by others and shared through open-source licenses.

Youngbloods are taught OOP concepts. PxPlus OOP model exists but is a bit different from standard : no 'protected' visibility, no static (=class) members only instance members, no interfaces (another way of implementing inheritance). So even if they know OOP, they have an additional learning curve to get used to PxPlus OOP paradigm.

Youngbloods are taught SQL for data persistence. KEYED files and ISAM b-trees are not concepts you learn nowadays. They have to learn READ/FIND/WRITE/REMOVE/KEY() and understand that they cannot expect a DB engine to optimize their query, they have to know how the files are structured, and they have to join related files in their code. They do not even know about semantic primary keys (customer code, product sku,...), as nowadays everyone design their DB schemas with auto-incrementing integers as primary keys.

I am not saying you shouldn't use PxPlus. I am just describing the difficulties that newcomers to the language may encounter, because I've seen "the other side" after 30 years of Business Basic.

On the other hand, re-developping an app with mainstream languages & framework requires that you re-skill your existing staff on the new technology stack you choose, which takes much more than a few weeks of courses to be productive and efficient. And of course, you cannot freeze your existing code base, so the functional gap keeps widening as you re-develop the app.

IMHO, we PxPlus developers are not to be afraid of AI yet. Generative AIs create source code by analysing and borrowing the petabytes of web pages, blogs and forums where people post code in mainstream languages. There is no such thing in PxPlus. So far I haven't been able to run any of the "PxPlus" code generated by ChatGPT in a pxplus.exe instance :)

My 0.02€
Stéphane Devouard
Portfolio | Work

Cedric

Thanks again for all the comments.  It looks I have some homework to do!  Just to be clear, we've been using Eclipse IDE since the plugin came out like 15 years ago and we've never used Nomads except for database/file management.  So yes, I feel that most of PVX effort in the last few years were to develop Nomads and Webster+ and I may be missing on these.  I've played a bit with them, but not enough to see the real potential I guess! 
I think that PVX lacks of tutorials and that's what makes it hard to learn.  All popular languages have tons of info on the web and everyone I know learns languages by following tutorials and/or examples.  I mean, I could watch a 15 minutes youtube video and could learn the basics of any language probably.

Some have mentioned hiring somebody coming from BBX... How old was that person?  I mean, I would be surprise someone less than 60 years old knows BBX?!  My old boss, the original founder of our company, came from a BBX background and discovered Providex in early 2000s. He's well over 60 years old though! ;)

We have used Java for Android mobile apps in the past, but we have now switched to Flutter which isn't perfect, but pretty good for what we do (and most importantly real cross plateform compatible).  But, my concern with a technology like Flutter is that it evolves too much.  There's frequent updates and a lot of obsolescence.  I'm not sure how many times we had issues after an update because of versions compatibility.  We tried React Native prior and it was way worst!   That's one thing I really like about PVX.  Our code is rarely broken because of an update.  That makes it easy to maintain and keep a stable software with low maintenance.

Again, thanks everyone!


nrh7

Probably out of topic but I agree with this comment:

Cedric said "Also, it's hard to seduce young developers to join the team since PVXPLUS has an old school approach that's really different to all the other popular "web based" technologies.  There's not a lot of documentation or info about the language that makes it hard for them to learn."
-------------------------------------------
My story is that I was technically forced to learn PVX because the only one left in the company who knew PVX is about to retire, so technically PVX was my first programming language, I knew a very little about visual basic but only dealt with it doing macros inside excel sheets. with copy/pasted examples from the internet, something you can't really go with PVX.

Problem is the one who taught me know way less about PVX than I learned in a few weeks of diving in https://manual.pvxplus.com/. (of course, with the basics he taught me)

The manual is no "training material" at all, it gives examples but they're not really newbie/student friendly, it is what it is, just a manual as if I was trying to understand a car's manual, show's me how it works but doesn't make me a mechanic.

So the little I have learned by trial and error has been enough to make some tools our clients and THAT's precisely why I decided to stick with PVX, I was shown visual studio and python but I kind of like the simplicity of PVX even though I know it's a LOT MORE simple than what I know.

I would reeeally like to learn about android apps and iNomads, but right now I'm burned with trial and error/self teaching.

So! I finally decided to join the forums, maybe here I can get some tips make the most our of PVX.

But back to topic, it's kind of hard to learn PVX as your first programming language, HOWEVER I do find it very simple and quite amazing if used well.

Either way, I'm trying to get as many clients as I can and use PVX in them all, I don't find myself replacing it, instead learning more from it along the way.