The most popular programming languages

I'm sure this had been covered before in any of the other 10 versions of this article's comments, but why the hell is Angular listed as a programming language?
 
Anything else to look out for? I haven't been around for a while, so except for Thor having a single point of view, what is the other opinions that is reoccurring?
Python is also a favorite of mine.
 
Anything else to look out for? I haven't been around for a while, so except for Thor having a single point of view, what is the other opinions that is reoccurring?

IIRC, it usually goes like this:

Java is the best
Nah, on borrowed time. C# is better
Java is cross platform!
So is C# these days!
Python is the greatest
Guys, what language should I learn?
Python ^
Java
You should really learn C and C++ to teach you the fundamentals
No, don't worry about the language. Focus on your studies, get a good grasp on OO principles and SOLID. Language is just syntax
Yeah, no...Python
Hey guys, I see they use Delphi in schools?!
Viva ANC! Another cadre scoring on IDE costs
In my day it was Java
PHP is Live!
Node!
Golang, node is for pussies :cool:
SOLID will only get you so far, what you need is to focus on [some comp sci wanker's name] principles. Look at this sample code I wrote and this essay to supplement it. /spins off into another thread
@cguy : you're talking crap
Uh-uh /spins off into academic discussion with latin words and ****
South Africa is so far behind international trends, in Europe they use Angular.
That's not a language
Javascript, they use Javascript. Can't wait to leave and go use Javascript
Then ****ing leave! #ImStaying

Guys..what language pays the most?
 
Anything else to look out for? I haven't been around for a while, so except for Thor having a single point of view, what is the other opinions that is reoccurring?

C is life!

:)

Otherwise, it really depends on your job - “best paid” is very loosely tied to the language, but very tightly tied to the the type of work being done.

Python is trending for data science and ML. C/C++ for performance/HPC/low-latency, and more recently, also for the trend to write code for more exotic hardware (which is quickly becoming more popular).
 
C is life!

:)

Otherwise, it really depends on your job - “best paid” is very loosely tied to the language, but very tightly tied to the the type of work being done.

Python is trending for data science and ML. C/C++ for performance/HPC/low-latency, and more recently, also for the trend to write code for more exotic hardware (which is quickly becoming more popular).
I'm still hoping Go takes over there, e.g. Tensorflow has an API. I am not a fan of python, though it's still better than e.g. VB.net.
 
I'm still hoping Go takes over there, e.g. Tensorflow has an API. I am not a fan of python, though it's still better than e.g. VB.net.

Yeah, Python has its disadvantages. I like the language quite a bit myself, but a constant theme is: do it in Python, it doesn’t need to be fast, or do it in Python, all the parts that need to be fast are in NumPy, but eventually, oh - the code between NumPy or SciKit calls is taking forever, oh well, we can just write that in C/C++ and link it in using the various mechanisms to do that (Swig, etc.), and a few years later, it’s some Frankenstein codebase with random bits in C and Python.

To avoid this, anything compute heavy we just do entirely in C/C++ and things that are non-algorithmic glue code we do entirely in Python.

It would be nice if there was something that could do both - Go and Rust are potential candidates, but tend to not really get us all the way in the two different extremes (flexibility, and performance). For someone looking to compromise, they definitely may make sense.
 
Yeah, Python has its disadvantages. I like the language quite a bit myself, but a constant theme is: do it in Python, it doesn’t need to be fast, or do it in Python, all the parts that need to be fast are in NumPy, but eventually, oh - the code between NumPy or SciKit calls is taking forever, oh well, we can just write that in C/C++ and link it in using the various mechanisms to do that (Swig, etc.), and a few years later, it’s some Frankenstein codebase with random bits in C and Python.

To avoid this, anything compute heavy we just do entirely in C/C++ and things that are non-algorithmic glue code we do entirely in Python.

It would be nice if there was something that could do both - Go and Rust are potential candidates, but tend to not really get us all the way in the two different extremes (flexibility, and performance). For someone looking to compromise, they definitely may make sense.

Numpy is mostly Fortran ABI's, soooo, yeah.

I love how people yell about "performance" when they usually write garbage code regardless of the language. The syntax has nothing to do with interpreter performance, especially since there are direct to silicon HDL compilers for Python.
 
Numpy is mostly Fortran ABI's, soooo, yeah.

I love how people yell about "performance" when they usually write garbage code regardless of the language. The syntax has nothing to do with interpreter performance, especially since there are direct to silicon HDL compilers for Python.

There are only certain constructs that can be compiled efficiently to HDL, same for JITting. Generally speaking, the only way to compile Python efficiently is to not really use any of its features.
 
Yeah, Python has its disadvantages. I like the language quite a bit myself, but a constant theme is: do it in Python, it doesn’t need to be fast, or do it in Python, all the parts that need to be fast are in NumPy, but eventually, oh - the code between NumPy or SciKit calls is taking forever, oh well, we can just write that in C/C++ and link it in using the various mechanisms to do that (Swig, etc.), and a few years later, it’s some Frankenstein codebase with random bits in C and Python.

To avoid this, anything compute heavy we just do entirely in C/C++ and things that are non-algorithmic glue code we do entirely in Python.

It would be nice if there was something that could do both - Go and Rust are potential candidates, but tend to not really get us all the way in the two different extremes (flexibility, and performance). For someone looking to compromise, they definitely may make sense.
I'm following this project: https://github.com/gorgonia/gorgonia but I doubt it will become useful in the next while since its GPU acceleration isn't great as CUDA requires cgo, which has stack switch overheads. Should still be faster than python though, but wouldn't use for production, rather stick with Pytorch or Tensorflow.

For Tensorflow + Go I've been playing with tfgo for a vision project, recognizing certain characters on an images on a screen.

I'll quote this from the page:
Train in Python, Serve in Go

Using both DyTB and tfgo we can train, evaluate and export a machine learning model in very few lines of Python and Go code. Below you can find the Python and the Go code. Just dig into the example to understand how to serve a trained model with tfgo.
726562
726568
Why?

Thinking about computation represented using graphs, describing computing in this way is, in one word, challenging.


Also, tfgo brings GPU computations to Go and allows writing parallel code without worrying about the device that executes it (just place the graph into the device you desire: that's it!)
Note the Tensorflow bindings for Go are for executing the model, not for training. I hope the above quote I copied makes it clear.
 
I'm following this project: https://github.com/gorgonia/gorgonia but I doubt it will become useful in the next while since its GPU acceleration isn't great as CUDA requires cgo, which has stack switch overheads. Should still be faster than python though, but wouldn't use for production, rather stick with Pytorch or Tensorflow.

For Tensorflow + Go I've been playing with tfgo for a vision project, recognizing certain characters on an images on a screen.

I'll quote this from the page:

Note the Tensorflow bindings for Go are for executing the model, not for training. I hope the above quote I copied makes it clear.

That seems like a reasonable way to go. The cases where Python or even Go (in far fewer situations) may be too slow for training is if you need to do some serious number crunching on the inputs prior to feeding them into the training, or if those inputs come from some specialized super-high bandwidth data source. If not, or if there is a highly optimized library to call to do this, then you're fine.

For live, I am sure that Go+TF is fine for most cases. If the time constraints are very tight, it may not be (e.g., real-time vision for a driving/flying device, market data reaction, control theory implementations, etc.). For those cases, one often needs C for performance and also for availability, since the hardware may not be a standardized hardware platform. As in their quote "without worrying about the device that executes it", tends to be accompanied with a large penalty. The final device typically affects all aspects of the training pipeline, if you want something very optimal.
 
Top
Sign up to the MyBroadband newsletter
X