Think of it as a map of the rapidly changing world of computer software.
On Wednesday, GitHub published a graph tracking the popularity of various programming languages on its eponymous Internet service, a tool that lets anyone store, edit, and collaborate on software code. In recent years, GitHub.com has become the primary means of housing open source software—code that's freely available to the world at large; an increasing number of businesses are using the service for private code, as well. A look at how the languages that predominate on GitHub have changed over time is a look at how the software game is evolving.
In particular, the graph reveals just how much open source has grown in recent years. It shows that even technologies that grew up in the years before the recent open source boom are thriving in this new world order—that open source has spread well beyond the tools and the companies typically associated with the movement. Providing a quicker, cheaper, and more comprehensive way of building software, open source is now mainstream. And the mainstream is now open source.
Hmm, Perl has been declining...
(Score: 1, Interesting) by Anonymous Coward on Saturday August 22 2015, @04:39PM
C may eventually be replaced by Golang, which was created by some of the same people. Go wasn't on this list because not enough people are familiar with it yet. It probably will be in a few years (Docker, for example, is written in Go).
(Score: 2) by Subsentient on Saturday August 22 2015, @05:45PM
I hope not. In many places, Go lacks features that C has. I do recall pointer arithmetic being among them...
"It is no measure of health to be well adjusted to a profoundly sick society." -Jiddu Krishnamurti
(Score: 2, Insightful) by Post-Nihilist on Saturday August 22 2015, @10:02PM
Pointers arithmetic is something best left to the compiler, you only need to be able to get and set a pointers; even for system programming and GO provides that. When you think about using pointer arithmetic you should be thinking about slice and struct. Go ahead try to find a case where structs and arrays are insufficient...
Be like us, be different, be a nihilist!!!
(Score: 1) by massa on Sunday August 23 2015, @06:18PM
Pointer arithmetic is good to write memory allocators.
Really efficient string manipulations depend on really well-written string allocators (not present today on many "most-used languages", including C++, go, perl, ruby, python, etc. -- and don't get me started on Java...).
But otherwise, yeah, C++-like iterators and for-each are more than good enough to substitute C-like pointer arithmetic.
(Score: 1) by Post-Nihilist on Monday August 24 2015, @12:18AM
Can you point me to an example where the following construct : address_of(array_u8[arithmetic]) would be insufficient? I am curious
Be like us, be different, be a nihilist!!!
(Score: 1) by massa on Monday August 24 2015, @02:25AM
Not insufficent, less efficient. The compiler has to have a clear view that you are doing
for( i = 10; i 20; ++i ) prod *= a[i]
and that it's the same as doing
for( p = a+10; p a+20; ++p ) prod *= *p
(which would translate to a single "repeat 10 times multiply addressed by register with autoincrement" instruction inside the loop -- those things in the core of the loops make the big difference in performance)
(notice that in most cases, yeah, the compiler can do that. But the pointer arith is there to deal with the other :D cases)
(Score: 1) by massa on Monday August 24 2015, @09:22AM
(smart people know that there is a < that was omitted above, on each code example)
:D