Story 2014-06-30 3PN Programming languages: where to begin?

Programming languages: where to begin?

in code on (#3PN)
story imageThere's been tremendous evolution in the programming language space, as new coding philosophies and paradigms change over time to address old problems or new visions. But how to decide where to invest your time and energy?

Apple's new Swift language is the newborn on the block, and iOS developers seem to be impressed. Infoworld recommends nine languages that make writing Javascript a joy, if that's possible (coffeescript, gorillascript, typescript, and others). Venturebeat recommends you start with Javascript before moving onto something like Python or Ruby. The Google engineer who invented Dart, Gilad Bracha, deplores the dearth of viable programming languages that would allow the Web to compete with native code. CIO also recommends Javascript, but also suggests budding web designers also look into Opa, Scala, and Erlang, among others.

Or should you just throw in the towel, and have a little fun with something totally useless like Brainfuck, or the Arnold Schwartzenegger programming language?
Reply 6 comments

C (Score: 1, Insightful)

by Anonymous Coward on 2014-06-30 17:34 (#29W)

learn C. avoid oop until you understand how to implement it yourself. there is nothing like having a more intimate understanding and working knowledge of lower-level concepts.and it will force you to learn about security and engrain good programming practices

Re: C (Score: 3, Interesting)

by on 2014-06-30 19:06 (#29Y)

For desktop:
  1. C
  2. C++
For web:
  1. Javascript
  2. PHP or Python
For mobile:
  1. Java (Android)
  2. Swift (iOS)

Where you start depends on where you want to end (Score: 2, Insightful)

by on 2014-06-30 18:43 (#29X)

The only time I would recommend starting with JavaScript is if that's all you ever want to do - write (crappy) JS code for web pages.

If you want to learn to program, then I'd recommend starting with something simple and then adding to it. I started my college education with Pascal, and I can't think of a reason that was a bad choice then, or would be now. But very soon thereafter I did some of:
* C
* Prolog
* lisp
* Assembly (68000)

These days I would probably recommend starting with something like pascal - simple, no (c style) pointers, no OO. And then
* C (understand the machine)
* Maybe some assembly - but maybe not
* Something OO (Java, python, ruby)
* Something crazy (Prolog)
* Something DI (maybe javascript)

You could do a lot worse than once you have the fundamentals.

Re: Where you start depends on where you want to end (Score: 1)

by on 2014-06-30 23:57 (#2A4)

I'd read many complaints about ADA, but I started taking a tutorial recently and found much of it made more sense to me, in-terms of structure and how everything must be clearly and extensively defined. I also found open source compilers easy to find for my Windows and OpenBSD (gcc) platforms.

What had spurred me (besides my fathers taunt that ADA would make me pull my hair out) was first, an article i read* from an informal study of programming students progression as observed by the teachers - they found that students who learned ADA first rather than later, had a higher likelihood of succeeding in subsequent classes, and better practices and understanding of what they are writing. Second, the realization that ADA is still widely used in critical applications; isn't going anywhere; and its always good to know the odd language or skill, that nobody else is 'interested' in (ie: not cool)

Out of practicality, I am back to learning C for the time being, but next on my list-to-learn GNAT GPL, and GNAT GPS (multiplatform IDE)
*i'll try to find the article, i hope i didn't butcher the jist too much

Re: Where you start depends on where you want to end (Score: 1)

by on 2014-07-01 06:08 (#2A8)

To be fair to your father, I think that ADA has improved in the past couple of decades (to toss out a wild guess). Certainly it improved a lot in the 90's. I had kind of a crappy time with it in the late 80's. Beta compiler with bugs. Very frustrating.

I don't care for the language because it doesn't subclass the way that I like.

Still, it has a bunch of really cool features, and as a learning tool it has a lot to offer.

Lua (Score: 1)

by on 2014-07-01 20:06 (#2AF)

I've been surprised by how often I see lua crop up in different places as an extension language. World of Warcraft mods, nmap scripting, nginx integration just to name a few. I've never had much luck learning languages just to learn them, but I find lua already involved with many things I already use, so I can do interesting and useful things with it.