What programming language should you learn?

Javascript. It is FREE. Low bar of entry. No need for any fancy software or complicated setup, any browser can run it. Covers and has a surprising number of features and concepts that other languages use. Things like CodePen and JSFiddle are great for playing, learning, and getting feedback. Tons of libraries, most also free. You can use javascript in a lot of situations and jobs it is a very practical swiss army knife. You can program server side, client side, mobile apps, etc all with Javascript.

I know a lot of languages but if I were starting all over again today that is where iā€™d start.

5 Likes

Are you familiar with mobile apps (primarily for Android) in javascript? If possible without the monstrosity of the Android SDK? Would you have any pointers, please? If possible with access to sensors and bluetooth serial ports?

2 Likes

Android sdk

Thatā€™s exactly the answer I hoped to not hear. :stuck_out_tongue: :frowning: :cry:

It is a pain in the rear. But it is like getting dental work done. Just accept the pain.

I personally use Cordova/Phonegap which allows you to create mobile apps using Javascript/CSS/HTML (and optionally SVG if desired) and compiles them into native apps for all the various mobile platforms. That framework abstracts almost all the native hardware sdk calls, so it makes writing an app that runs on iPhone, Android, and Mobile Windows very easy with a single code base. You can make calls to the sensors, the camera, and most everything youā€™d expect from the native SDKs. There are lots of plugins, you can use any third party javascript libraries you want. You can even include bits of native code if you need to.

Cordova is maintained by Apache and PhoneGap by Adobe, so big names, and they are essentially the same platform but Adobe provides an online compiler and app signing service. The compiled apps can be uploaded to the iTunes and Google Play and Windows stores.

2 Likes

My dentist is almost pleasant to visit. (I am lucky in this regard.)
Android SDK is way worse than that.

Good recommendation! To the todo list notes it goes! :smiley: Thanks!

2 Likes

APL? Seriously? If you donā€™t use INTERCAL you might as well be rubbing two sticks together. INTERCALā€™s abandonment of BASICā€™s GOTO in favor of the more easily used COME FROM makes it worth learning. https://en.wikipedia.org/wiki/INTERCAL

2 Likes

Thatā€™s true of almost any programming language thatā€™s used outside of a narrow, specialized niche. Of the ten languages in that graphic from the article, nine of them are available for free and could be installed easily on any Windows, OS X, or Linux system; only Matlab is proprietary. Simple programs can be run in a terminal window in all three operating systems

Iā€™m sure Javascript has plenty of virtues; I just donā€™t see why thatā€™s the one you led with.

(Nominally, I can run Javascript on my mobile phone, but, setting aside the Web browser, that requires installing a kludgy bit of software that hasnā€™t been updated in about five years, last I checked. In practice, it would be difficult to run anything but Java.)

1 Like

Until someone invents a language with the function ā€˜AAAAHHH! You electronic bastard! Why wonā€™t you do the thing?!ā€™ that then does [thing], Iā€™ma leave trying to code in my pastā€¦

2 Likes

Hereā€™s one for bash sortof along those linesā€¦ https://github.com/nvbn/thefuck

1 Like

Most JVM languages interoperate with Java libraries pretty well, so if you hated Java for example, it is possible to write code in another JVM language like Clojure. This doesnā€™t get you out of learning the android sdk though. http://clojure-android.info/

If you wait long enough react native should be adding support for the Android SDK, https://facebook.github.io/react-native/

2 Likes

@Mindysan33 seems to deploy it when something awful has been posted, and she doesnā€™t think the troll warrants the effort of a response (yet doesnā€™t want to flag the post and get it binned).

I used it here more like the popcorn-gifs ā€“ Iā€™m sitting back and watching the flamewars.

Iā€™m glad that the ā€œVB6 is teh best langwedge ever and .NET IS EVILā€ guys have mostly receded to muttering about their staplers in their basement offices (while still maintaining the desktop-apps that the c-level offices launch once or twice a year).

1 Like

Oh, hey, everybody ā€“ what do you think about indentation - tabs or spaces? And how many?

And what about lexical whitespace a la Python?

1 Like

2 Likes

Hello World in INTERCAL:

DO ,1 ā† #13
PLEASE DO ,1 SUB #1 ā† #238
DO ,1 SUB #2 ā† #108
DO ,1 SUB #3 ā† #112
DO ,1 SUB #4 ā† #0
DO ,1 SUB #5 ā† #64
DO ,1 SUB #6 ā† #194
DO ,1 SUB #7 ā† #48
PLEASE DO ,1 SUB #8 ā† #22
DO ,1 SUB #9 ā† #248
DO ,1 SUB #10 ā† #168
DO ,1 SUB #11 ā† #24
DO ,1 SUB #12 ā† #16
DO ,1 SUB #13 ā† #162
PLEASE READ OUT ,1
PLEASE GIVE UP

Hello World in APL:

ā€˜Hello World!ā€™

Quicksort in APL (Iā€™m not even going to bother with INTERCALā€™s Quicksort):

qsort ā† {1ā‰„ā“āµ:āµ ā‹„ eā†āµ[?ā“āµ] ā‹„ (āˆ‡(āµ<e)/āµ) , ((āµ=e)/āµ) , (āˆ‡(āµ>e)/āµ)}


Malbolge and INTERCAL are great for driving the programmer nuts, but only APL combines very real power and elegance with absolute insanity. Note that Quicksort is only a bit longer than Hello World. Note also that you could easily add other transformations to the sorted array before the assignment. 5 lines can call up the Great Old One of your choice; 6 lines can bring all the Outer Gods crowding in.

However, APL does require a special keyboard, so, if you would like to bring chaos to the universe, but youā€™re worried about tentacles sprouting from the runes on the key caps (and, really, who wouldnā€™t be?), thereā€™s J.

Yay! Progress!

If your standard is conciseness youā€™re sure not gonna like Java2kā€¦
http://p-nand-q.com/programming/languages/java2k/

1 Like

VB6 was great though, I used to love hacking it to do crazy shit it wasnā€™t designed for, like multi-threading, and writing W32 control api wrappers. It also had the best debugger ever, .NET has nearly caught up with it, but itā€™s still nowhere near as good.

1 Like

Well, thatā€™s just it - if you work in a language like Malbolge, INTERCAL or Java2k, youā€™re likely to go irretrievably insane before finishing the incantation programme. (Either that or die of old age.) With APL, you can right get into the Twilight Zone and finish the incanta programme in jig time before insanity sets in, thus sharing its Apocalyptic madness, death and destruction benefits with the entire world.

Now granted, all these languages create incanta programmes that are difficult to reverse engineer, but with Malbolge, INTERCAL and Java2k, itā€™s because the would-be hacker will die of old age before succeeding. With APL, the would-be hacker will probably be found the next day with brains oozing out his ears and smoke billowing from empty eye sockets, and how cool is that?

1 Like