Programming Languages

Learning to build a program in Scratch is very much like any other language I have worked with or development I have ever done. I get in and I play around with it a short while and then when I want to do something specific I turn to internet resources to fill in the gaps of knowledge. The little program I built is a little character named Frank who pops up, asks you your name, and then moves around a bit. He eventually asks if you like cake. If you say “Yes”, he says something else and the program basically ends. If you say “No”, he asks if you like Pie. If you say “No” there as well he says something a bit funny and a little salty. He then calls a dragon over and tells the dragon. The dragon then responds with a similar salty insult and the program is over.

The first thing I needed to do was to understand how a quick program can be built and I dragged and dropped the items around to see what I could do. In many ways, this is similar to the Process Builder within Salesforce (See the example of the Salesforce Process Builder below). It is a declarative programming approach where the philosophy is a “clicks not code” approach to development. You can drag and drop the various command and create decision branches that could then be executed based on other events or set to run at specific intervals. 

While building this application I started simple but I needed to determine how they handled variables and remembering entries that a user keys in. I wanted to reuse those values or to remember them for IF, ELSE statements. I started with a simple Google search and the first forum posting I found not only explained it but also had an example. That was all I needed and back to my program. When I got up to the challenge of the IF, ELSE statement it was another quick search and this time there was a YouTube video that showed me this information. This is how I have worked with any language I have had to previously work with. From SQL, SOQL, APEX, ASP.NET, and lately Python. I get the tools, I play, then I get serious about what I need to accomplish and I figure it out quickly. 

The biggest challenge I faced was working between sprites. I had to figure out how to send a broadcast message and have a sprite I had hidden reveal itself when appropriate, in this case, it was the dragon sprite. They had a little banter back and forth. I had to wait for the broadcast messages to appear before they could act. It was an incredibly fun problem and with that, I played with the broadcasting and waited until one appeared. I did not do any additional research when working with that aspect. Once I had that figured out, the program was done for this assignment.

Comparisons with Textbook

In our class, our textbook titled "Computing Technology for All" had a lot of fun examples in it for Machine Language. Where the utilizing of binary to directly make a computer do something was certainly cumbersome. Years ago I had learned about Machine Language and to this day I still go cross-eyed when looking at it. When it comes to high-level languages, Scratch is less programmatic and more declarative. A program like Python is going to do a lot and have very fine control over the program. I love this level of control, but I am not a master of this style of programming. Normally I can wrangle something together and get something working, in a Frankencode way. I work better when I take something existing and work my way through it to make alterations to code.

Ease and Decision

When it comes to development, the declarative, drag and drop, approach is by far the easiest. Visualizing where the information is going to go or what is going to happen makes things easy to work with. Going back to Salesforce there is a programmatic way to develop using their APEX and SOQL languages that reminds me very much of JAVA, another high-level language. Those high-level languages can take a very long time for me to master. I have utilized and enjoyed playing with Python, but the kind of development I prefer is the kind in Scratch or specifically within my career the Process Builder within Salesforce.

Scenarios

Within my career, my focus is on Salesforce and the JAVA-like language of APEX and the Scratch-like development of Process Builder. There are cases to be made for both types of programming. For simpler workflows, such as within Salesforce when a new record is added to an object you may wish to automate a post to Chatter, the Social Media aspect within Salesforce. Where you would have a more difficult issue is that some solutions, such as creating some kind of email service to handle something unique to the program could not be done within Process Builder. You would need to more to their Java-like program Apex to build out a program. The difference between this is a declarative approach versus a programmatic approach. Ideally, someone may wish to build from that simpler approach until this runs into the limitations of what can be done, and then one would want to switch to a high-level language.

Example image of the Salesforce Process Builder

Popularity

I feel Python is the most popular within my career right now. This is due to the amount of data work that I do and Python has many user-created libraries for data science. These include NumPy, Pandas, Matplotlib, and Plotly. These are only a few libraries that can expand the capabilities in a very easy manner for those who use Python. Python also has a simple syntax that is not too difficult of a learning curve. It is simple to get in and begin building with it. As it is so popular many code examples exist too. The user community is large and helpful and this makes learning that much easier.

For myself using Scratch and similarly, Salesforce’s Process Builder is the easiest way for me to work. This would be followed up with Python for the minor work that I have done within it. These next few years I will be utilizing Python a lot more than I have and I am rather excited about this.

References

Python. (n.d.). Python. Retrieved March 8, 2021, from https://www.python.org/

Salesforce. (n.d.). Salesforce. Retrieved March 8, 2021, from https://www.salesforce.com/

Scratch. (n.d.). Scratch. Retrieved March 8, 2021, from https://scratch.mit.edu/

Vahid, F., & Lysecky, S. (2017). Computing technology for all. http://zybooks.zyante.com/


Comments

Popular Posts