With an average of 30-40 years of experience, today’s Pick programmers have been developing in MultiValue longer than the average modern programmer has been alive. Although highly skilled in Pick BASIC, few have ventured into newer programming languages and frameworks, such as JavaScript and Vue. But as companies look for ways to modernize their Pick applications and build succession plans, traditional Pick programmers are increasingly being asked to refresh their user interfaces with modern programming languages.
Of course, elegant programming looks easy. But we all know that it takes a lot of hard work to get that good.
This problem recently hit home for one of our own Senior Pick Developers, Wouter Schuchner. When one of Wouter’s longtime customers migrated off Pick – still a work in process — Wouter found himself picking up a new Pick account with challenging requirements for modernization.
In this interview, Wouter gets real about the process — the ups and downs of learning a new language.
What is it like to pick up JavaScript and Vue after so many years programming in Pick?
I’ll be blunt: It is not easy. I often wonder, “How did so many people get so good at what is so difficult for me?”
After nearly 40 years programming in Pick BASIC, I am used to producing software that runs correctly on the first pass with little or no debugging or tweaking. I’ve been working with JavaScript and Vue.js for about a year, so I’m nowhere near where I am with Pick, which can be discouraging at times. On the other hand, when I do overcome an issue, it is thrilling. I get quite a lot of satisfaction from learning, and I’m also gaining confidence in my abilities to overcome programming challenges on my own. Hard-earned experience is definitely key in learning this stuff.
In what ways is Vue.js different from JavaScript? How has learning Vue.js benefited you?
It seems as difficult to me as learning JS coding. It took a while before I even recognized what was straight JavaScript vs. what was Vue.js. One nice thing about Vue.js is that when you find what you’re looking for on Vue’s website, you can copy/paste the code right into your project and it will work. Then you can start tweaking and adjusting to get the actual results you need.
It’s clear to me how Vue.js became a wonderful tool for developers that started off doing everything in JavaScript. Vue.js encapsulates the formatting of web page details for you in a consistent and all-encompassing way.
What has your experience been like with Microsoft’s Visual Studio Code?
I was thrown into VS Code as a result of an existing project, so I started learning from scratch. I have no idea how it compares to other development environments. However, I love the way that a few well-picked add-ons, such as auto-indentation, auto-correcting, and color coding, can assist in coding.
I’ve been using the MV Basic extension with VS Code. After seeing how other add-ons make the VS code environment so much more developer-friendly, I can see how using VS Code to develop Pick BASIC code would be natural for a Pick-specific extension.
What would you say to other Pick developers who are reluctant to learn a new language?
JavaScript is quite different from Pick BASIC, so I think a big first step towards learning JavaScript is understanding that Pick programming concepts and techniques do not generally carry over into JS coding. It’s far from a line-by-line programming language. It is really an event-driven environment, so it is not the type of code execution that Pick developers are so used to.
As I said before, it’s not easy, so be prepared to work. Here are some things you can do to make it easier:
- Get a mentor. It’s really overwhelming to try and learn from documentation. You just don’t really know where to start. Find someone to bounce issues against and lead you in the right direction. I was fortunate to have Mike Wright (Director of Technology at Zumasys) help me in this process, and he has been my most valuable resource. He showed me how to search for the answers I needed myself and integrate that knowledge into my projects. A lot of the examples you find online are not that specific or straightforward, so you need to be able to extrapolate, and Mike helped me learn how to do that.
- Get good at Google. Like pretty much everything else these days, you can solve a lot of common issues with a simple web search. Many of the available resources include “sandboxes” (like the Try-It editor) where you can test and play around with the things being shown before incorporating the code into your actual project. Times have really changed as far as what’s available online, so figuring out how to ask the question that will get you the answer you’re looking for and finding it via Stack Overflow or whatever is really important.
- Accept that you simply won’t understand everything at first. Stay focused on what you need to accomplish at the time, and eventually other things will probably come to light. Once you find a way to accomplish what you need, don’t get hung up on the other coding presented with it. Notice the concepts and techniques when you can. You may remember some of them later when you need them.
- Whenever possible, learn by example. The project I started learning in had already been developed into a well-rounded set of code, so I had working examples of much of the same type of coding I needed to accomplish. These examples were, in my estimation, the most helpful tools in getting started.
- Finally, learn how to use the DevTools. All the answers to why things aren’t working right are buried in there.
Do you have a set of working examples for a small Multi-value / Vue.js project?
Hi Bill!
I would recommend signing up for https://git.zumasys.com and checking out https://git.zumasys.com/demos/vue-intro. This project includes some sample Pick programs that serve as the REST APIs using MV Connect (or jAgent, for those on jBASE). It also includes a light-weight Vue.js application with a few plugins like Vue Router, Vuex and Vuetify.
The Vue.js sample is light-weight because it uses Vue via their CDN (similar to their own getting started guide) which allows you to check it out without having to setup all of the JavaScript tooling to build and run things.
Mike
You are a brave man Wouter and good luck to you.
learning and Using Java script or vu or any other programming language is not the challenge..
relating top to bottom logic (pick) with entitity relationships and objects and events
is where the difficulties are.
Great Job Wouter
Glad to see you show you can excel at the PIcK and embrace the newer languages.
Been a long time since you hired me, back in 2001. My first IT boss learned a lot in that year with you.
Rodney Courtney