Tuesday, December 26, 2017

Arun Arya on Languages 2017



If epistemology=GIT(=linus Torvold) then
  1. JAVASCRIPT
  2. PYTHON
  3. JAVA
  4. RUBY
  5. PHP
  6. C++
  7. CSS
  8. C#
  9. GO
  10. C
  11. TYPESCRIPT
  12. SHELL
  13. SWIFT
  14. SCALA
  15. OBJECTIVE-C
Are the most popular 15 languages in usage-popularity order in 2017. I say learn 2 (Python, Go) and idea behind angular js and win in 2018. Other experts are ancients!

This kind of statement is very deep and can be made by experts in PL only – I am one. 9 out of 10 in m tech CS from IITK became ancients long ago. I did not because I spend time in predicting then learning.

1977 - I started before internet, when structured programming reigned.
1980 – Wonders of object oriented programming. the vtable. Natural extension in inheritance
1985 – (Waste) Latex
1990 – PGP, poor fucked up MI in C++
1994 – HTML and ability to attach handlers to image objects and render images without fixed aspect ratio.
2000 – Approximate searches – Google
2008 – Emails as automatic events – Facebook. Fat pointers in Go.
2014 – Bit coin, mining implementation of distributed contention. cheap type checked threads in c#
2018 – aalan = privacy preserving blockchain, fat variables, non-deterministic ll-1 programs = expanded Go

Go has already surpassed C. It has right idea of fat pointers (rare), expanded to fat variables in aalan. Python does shell well. Idea from angular JS, central to aalan, independently discovered is scope as a first class value. Many modern languages have made new kinds of first class values – ancientifying great painful innovations of their time!

Object oriented – modules as 1st-class
Javascript – functions as 1st-class, eliminates inheritance

Angular js – scope as 1st-class, like smart staging, ancientifies Go

Aalan – privacy preserving blockchain, fat variables, non-deterministic ll-1, fights Go and python
Fat variables allows multiple inheritance (essential primitive in aalan, ancientifying c++, c#, java, and friends).

Privacy preserving blockchain by library calls to components implementable in hardware
ll-1 – reason why new syntax needed eventually, declarative statement of intentions, let computer figure out how to implement semantics




No comments:

Post a Comment