Hello all, I’m looking for some guidance regarding what programming languages are useful in lab automation. I already use python to do file handling, GUIs, etc. I am considering trying to learn R b/c my company has some internal applications that run on it, and I’d love to be able to modify them in the future. I am also interested in the Research Informatics field, so I’m wondering what languages would be useful there. I don’t have a software / comp. sci. background, but I have access to LinkedIn Learning so I’m doing my best to teach myself as time allows. Thank you!
I would learn about what tech stacks are out there for the types of work you’d like to expand into. More so than particular languages, there are frameworks and libraries that are used as foundations for domains of applications. These can be grounded in one language or another but can also be language agnostic.
Could you be more specific about the type of work you’re interested in and what your company does or needs? The more details the more info I can give.
It helps to know your familiarity with Python because there’s more to the language than simple I/O or UI’s. Sometimes (when I have time), I’ll visit some of my favorite GitHub’s to see how elite minds think through their problems and subsequently solve them. A good reminder that I don’t know anything.
In terms of languages for lab automation, I would recommend C#, Python, VB or VBScript (mainly Tecan), and JavaScript because they are all common languages used by the major manufacturers. If you’re interested in a tangential field like informatics/data science stuff then yeah R becomes more relevant. Enterprise software? Maybe Java or C# but you’ll end up having to learn more about the frameworks (Spring or .NET) than the core languages.
I agree with Stefan, it’s more useful to learn a tech stack. But those stacks can change often so it’s also useful to get a solid foundation in programming principles because some core concepts do not change from language to language.
from my perspective it definitely makes sense to learn a object oriented language because the related concepts are applicable to lab automation topics very well
C#, VB, VBScript, Javascript
I agree with these, although it also depends on what you would like to do.
Scripting languages like VBScript and Javascript are often useful in certain situations, and at least in the non-web dev world, are used in conjuction with other languages. We often use VBScript in our hamilton methods to perform IO tasks outside of the run, for example.
If you are wanting to go more into data science, then R and Julia are my recommendations, although there is quite a bit of cross functionality between R and python now, especially since Shiny has been released on python.
C, C++, C# are all great languages to learn as they are lower level languages, and you’ll get a better sense of core computer science fundamentals, but often they are not needed for automation etc. You’d only need to use them in scenarios when performance is important.
Rust and golang are more modern languages, and are great, but again, might not be what you are looking for.
Some companies do direct C# coding in their software like Dynamic Devices with Method Manager or GBG hence why I included them.
Also middleware like SiLA Servers can be utilized in C#, Python and even Java which is interesting! There’s also at least one other scheduling service I know that predominantly uses Java.
Also as data management layers aka infrastructure become a greater part of our jobs, some companies are deep in cloud tech stacks so if Azure is the stack of choice then you may be best served knowing C#/.NET.
Hi @lgoeser
If you are so proficient in Python, then I guess you don’t need to think about other languages. Its all about mastering the language. I would recommend you to join any open source community and start solving problems, or do something you find interesting and also volunteer to contribute some time each week.
Many of the time such activities may prove to be tedious, but in time it will become a value addition to your skillset. You will be exposed to complex problems through the community threads and the complexity of issues will help you gain confidence.
Otherwise you can start with C. This truly deepen your understanding of how computer work under the hood. Many software development and ai services provider are in the lookout for top Python and other programming language talents. For discussion platforms, you can start with discourse, uipath, stackoverflow etc.
Related: I enjoyed reading this yesterday! Perhaps not explicitly stated but it is a good reminder that your tools (programming language, libraries, frameworks, hardware) will change but strong fundamentals are what allow you to adapt to these changes.
I’m just interested in general advice, I don’t have a specific application in mind at the moment. I’m always interested in improving our workflows, and data handling is something I find interesting, which is why I started with Python in the first place. I had to look up what a tech stack is, so that’s a new road I could go down, but I don’t have any imminent plans that require it. I’d love to be able to make a little web portal that assists users with Vantage worklist creation. Right now I just have standalone python program to do this task, which works fine.
I currently work in compound management and we recently invested in a Hamilton Vantage and a Verso freezer. Our Vantage is a self-contained system, and the Verso should be functional right out of the box (if it’s not there’s not much I can do about it). It would be cool to be able to directly query the Verso database using SQL, I have no idea how to set that up though.
I’m very much a beginner in python. I can d basic stuff and the programs that I create are pretty simplistic, just data rearranging. I am partially wondering if I should even learn another language or just focus on getting as good as I can at python, it seems capable of doing 90% of what I want to to. I’m tempted to learn a bit of C# b/c it can be used to create APIs which seem like an interesting skill set, but I don’t know if beginner level programming would even allow me to do that.
I might focus on fortifying my understanding of programming principles a bit more before going to another language. I taught myself so my knowledge is piecemeal at best. I will also look into tech stacks.
I’m a definitely a beginner in Python. Part of my motivation for posing this question was to determine whether it would be worth it to learn another language at all, or if I should just continue getting better at Python. Your advice regarding open source communities is interesting, I’ll take a look at that. I can only come up with so many interesting challenges on my own, I’d definitely benefit from seeing how others use the language to do problem solving.
If you want to get into full stack applications development try making a Flask app that hooks up to some kind of database like SQL. The freezer project sounds like a very good match.
Flask is a Python web development framework that is really good for simple applications. FastAPI is also very popular for Python APIs.