Programming Languages

Hi Everyone this is just a general discussion, since I’ve been starting to use CCG more I need to actually learn some programing instead of blindly fumbling about. so my questions is what language are most people using for CCG, and where is a good place to start Ruby? Python? are there advantages to either?

It depends if you intend to run on Windows or if you want to be platform Independent. For Win only a lot of people (including myself) rely on VB.NET or C#. For multi-platform LiveCode is something that a some Caspar users work with.


I like driving a car. Which one should I buy? Well… it depends… same here.

Give an example case, what you want to do?

Create tempate? start with HTML, CSS and JavaScript.
Want to write own custom Client? C# / VB.NET has low learning curve…
Want to take a part in creating CasparCG Server? Logn way ahead of you, but C++ is the road to take…

1 Like

JS. Same knowledge spans templates and clients. I’d argue most custom clients being built today are using the nodejs ecosystem.


Thanks for the points of view, I would like to start with a language that will make moving around and learning others easier.
are any languages easier to pick up then others?

I want to get started with programming. get a better understanding of the systems and how they interact.

I think Hreinn has a good point: Learn JavaScript and you can do HTML templates and any kind of clients. There are also things like Electron to run JavaScript (node.js) apps on the desktop. Also mobile apps can be built with it. The good thing also is that most of the tooling is free and open source.


last year i decided to do everything in JS

Client’s and Templates.

First i was using other languages for the client side’s

why i made this decision is simple
ONE LANGUAGE although i hate JS sometimes :wink:


I use both C# and JavaScript for most of my CasparCG Projects.
with JavaScript i most often use node.js

However installing all the different dependencies and libraries i want can be a frustrating rabbit hole some times. Its even more of a problem if other people will need to install them to use a script. :unamused:

Not sure if this is mentioned in the forum anywhere yet (I really want to do a full write up about it some day), but we created a library that can control

  • CasparCG
  • Atems
  • Panasonic PTZ
  • OSC
  • Lawo mixers
  • HTTP
  • Hyperdeck Recording
  • Pharos Lighting

This is all done through a state-timeline model, which basically means you only need a single array of objects to control all of these. The library is built in TypeScript (which is basically JavaScript with type checking) and plays really well with both NodeJS and Electron.

This might not seem super related to languages, but I think the point here is that this is 100’s of hours of development work you get for free by picking the language with the most tooling available. JS can be very quirky but it also has a huge developer community and tons of free libraries.


And in the FWIW department, most of my control code is in tcl (with a tk front end); maybe 7k lines for a time-based playout system.

It’s really about what you’re comfortable learning and using, some languages are harder for some people to learn but others take to them quickly.


Thanks everyone you’ve given me some great advice and things to consider.