cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
26531
Views
21
Helpful
6
Replies

What programming Languages to learn

pcromwell
Level 3
Level 3

I want to further my knowledge of Unified comms, and I figure to help me further, I would need to learn some programming, however I have no idea which language to start with. From what I have been researching it appears that C++ or Java or both, is the place to start, but then I see that Jabber is based on XMPP, Contact center is based on something else it all seems rather confusing. I appreciate it is not something that can be done quickly, I am happy to take a few years to learn, but just want to make sure I start off from the right position. I am interested in  call control, Jabber and contact center, in terms of developing extra features and if neccesary, database lookups. If anyone could help that would be great, I appreciate there is probably no one answer

1 Accepted Solution

Accepted Solutions

Your best bet will be to learn both Java and JavaScript to start with. Despite the name they are completely different languages, and are usually used in different ways.


When it comes to enterprise server-side software, Java is the most popular and widely used language by a wide margin. It also has one of the biggest open source communities around meaning you can find tools and examples for almost anything you would like to do. Most of Cisco's UC apps are built on Java and products that support plugins or embedded code (like UCCX or CVP) often use Java as the plugin or embeddedable language. You also have the java-based JTAPI library for low-level call control.

You will need JavaScript it if you are building a web-app or integrating with any of Cisco's newer browser-based SDKs, including the Jabber Web SDK.

TCL is used for scripting on Cisco routers and voice gateways, that is why you see it thrown around quite a bit here, but in terms of the industry in general it is pretty obscure. It's use is very narrow so I wouldn't start with that.

C and C++ are a bit lower level and more complex to use, they are generally only popular in systems programming or anywhere where high levels of optimization are important. UC apps are typically bottle-necked by network latency so there is no reason for low-level CPU optimization unless you're writing a transcoder.

For database lookups SQL is an absolute must. You'll need this in addition to any programming languages you learn.

XMPP is not really a programming language, it is a communication protocol designed for real-time applications. You can use any language to interface with it, and there are XMPP libraries available for all major languages. I suggest to become very familiar with TCP-IP, HTTP, and XML and work up from there. You need to know these things in addition to whatever programming language you learn, it is not an either or.

View solution in original post

6 Replies 6

tinghche
Level 5
Level 5

Hi there,

For call control, it's either JAVA in using JTAPI, or C++ on TAPI.

Or, you can learn JQuery/JavaScript to use Jabber web SDK.

Other than that, most of the API are SOAP, REST web services based  which can be used via most of the modern language.

Hope this gets you some starting point, you can check out the developer guide in each of the API and learn from some of the sample codes that Cisco has provided.

Thanks,

Howard

thanks for the feedback, is TCL important these days? I see it mentioned a few times.

Your best bet will be to learn both Java and JavaScript to start with. Despite the name they are completely different languages, and are usually used in different ways.


When it comes to enterprise server-side software, Java is the most popular and widely used language by a wide margin. It also has one of the biggest open source communities around meaning you can find tools and examples for almost anything you would like to do. Most of Cisco's UC apps are built on Java and products that support plugins or embedded code (like UCCX or CVP) often use Java as the plugin or embeddedable language. You also have the java-based JTAPI library for low-level call control.

You will need JavaScript it if you are building a web-app or integrating with any of Cisco's newer browser-based SDKs, including the Jabber Web SDK.

TCL is used for scripting on Cisco routers and voice gateways, that is why you see it thrown around quite a bit here, but in terms of the industry in general it is pretty obscure. It's use is very narrow so I wouldn't start with that.

C and C++ are a bit lower level and more complex to use, they are generally only popular in systems programming or anywhere where high levels of optimization are important. UC apps are typically bottle-necked by network latency so there is no reason for low-level CPU optimization unless you're writing a transcoder.

For database lookups SQL is an absolute must. You'll need this in addition to any programming languages you learn.

XMPP is not really a programming language, it is a communication protocol designed for real-time applications. You can use any language to interface with it, and there are XMPP libraries available for all major languages. I suggest to become very familiar with TCP-IP, HTTP, and XML and work up from there. You need to know these things in addition to whatever programming language you learn, it is not an either or.

thanks for the authoritative answer has been extremely helpful

Overview

 

The Cisco Network Programmability Developer Specialist certification and course develop the foundation skills needed to develop network applications in programmable environments such as Cisco's One Platform Kit (onePK), Open Daylight Controller (ODL), and Application Policy Infrastructure Controllers (APICs). Unlike SDN courses that focus on network theory, this certification adds to your practical networking understanding and utilizes Cisco's experience in WAN, data center, and campus environments to provide you with the skills you will need to become a network developer.

Candidates should be able to program in Python, C, or other languages in an open networking environment prior to this certification.

stewartjobs9807
Level 1
Level 1

thanks for the authoritative answer has been extremely helpful for programs.