[math-fun] programming languages...
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html claims to measure how popular different programming languages are (currently C is the most popular, with Java a close second). --------- http://golang.org/ includes a 34 minute video giving you a "tour of go" -- go being a programming language brought to us by google. It has a lot of what I want. One gripe: go has no "asserts." * unicode (UTF-8) * considerable similarity to C syntax. They got rid of the ; statement terminator. I like multiple statements on one line. Go will not let you. However, you still are allowed to use ";" optionally, in which case multiple statements on one line are permitted. In some ways the syntax got worse than C, in others better. Mostly I prefer C's syntax. Two improvements in go are int x,y rather than int x, int y in function declarations; and considerable improvement of switch/case. * go got rid of pointer arithmetic. Good move in my view. * go does array bounds checking. Hooray. * go unfortunately failed to implement the superior function declaration+use ideas in Ada. * about arrays: does roughly what I advocate: there are only 1-dimensional arrays, but there can be "slices" (subarrays) * go has meaningful types like uint16, not undefined rubbish like "unsigned short." * Apparently they got rid of "make" (never to be missed) for multi-file programs * go added an "error mechanism" but it seems to be stupid. * go added an "image" graphics IO notion * added thread-spawning concurrency. By default new threads run in the same memory space. * concurrent processes can communicate thru "channels." A thread can send info into, or receive info from, a channel. This automatically causes waiting until the other side is ready. There is a way to listen to multiple channels and act on the first one that has info available. * garbage collection (although, annoyingly, there are two kinds of allocators which seem the same) * interfaces is a "contract" mechanism for specifying purpose without giving the details. -- Warren D. Smith http://RangeVoting.org <-- add your endorsement (by clicking "endorse" as 1st step)
participants (1)
-
Warren D Smith