What language should I learn?

A place to discuss the implementation and style of computer programs.

Moderators: phlip, Moderators General, Prelates

jewish_scientist
Posts: 895
Joined: Fri Feb 07, 2014 3:15 pm UTC

What language should I learn?

Postby jewish_scientist » Tue Mar 20, 2018 12:52 pm UTC

Questions along the lines of 'What would happen if I made a program that...' kept popping into my head. I was going to post them here looking for an answer; then I realized I could just write a program that did that thing. I already know C++, Python, and a little html. I am willing to learn a new language from scratch though. Which one do you thing I should do my messing around in?

Mutex
Posts: 1324
Joined: Wed Jan 09, 2008 10:32 pm UTC

Re: What language should I learn?

Postby Mutex » Tue Mar 20, 2018 1:04 pm UTC

Python is good for messing around in, quickly knocking up an application that does something. Can't really think of a more suitable high-level language. There's Perl, but its usage seems to be declining and I wouldn't say it's better than Python in many ways.

commodorejohn
Posts: 1082
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: What language should I learn?

Postby commodorejohn » Tue Mar 20, 2018 5:22 pm UTC

Honestly, I do most of my messing-around in FreeBasic. Structured enough to allow clean design, unstructured enough to let you do what you like, quick-'n-easy access to a graphics window on both Windows and *nix targets, and it doesn't have friggin' literal whitespace. Just don't go to it for high-performance work or GUI applications.
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

jewish_scientist
Posts: 895
Joined: Fri Feb 07, 2014 3:15 pm UTC

Re: What language should I learn?

Postby jewish_scientist » Tue Mar 20, 2018 6:13 pm UTC

Python is really good for learning how to program, but my impression is that it is not that great for much else. No one is going to be hired to program in Python. C++, html, and Java are much more likely to be used. I figure that if am going to be messing around, then I might as well train for a job at the same time. You know what I mean?

commodorejohn
Posts: 1082
Joined: Thu Dec 10, 2009 6:21 pm UTC
Location: Placerville, CA
Contact:

Re: What language should I learn?

Postby commodorejohn » Tue Mar 20, 2018 6:31 pm UTC

I actually see a fair number of job postings listing Python as a desired or bonus language, but okay, gotcha. In that case, the hot one these days that you haven't already learned is probably C#. Other .NET languages come up fairly often as well. Or one of the billion JS web frameworks, but I gather you want to mess around for fun, not seek out reasons to slit your wrists.
"'Legacy code' often differs from its suggested alternative by actually working and scaling."
- Bjarne Stroustrup
www.commodorejohn.com - in case you were wondering, which you probably weren't.

User avatar
Quercus
Posts: 1716
Joined: Thu Sep 19, 2013 12:22 pm UTC
Location: London, UK
Contact:

Re: What language should I learn?

Postby Quercus » Tue Mar 20, 2018 6:32 pm UTC

jewish_scientist wrote:Python is really good for learning how to program, but my impression is that it is not that great for much else. No one is going to be hired to program in Python. C++, html, and Java are much more likely to be used. I figure that if am going to be messing around, then I might as well train for a job at the same time. You know what I mean?


Depends on the job. Software development, no, python is not going to land you a job, but for a more data science, analytics or informatics role python is absolutely an in-demand language.

Edit: ninja'd

User avatar
Jplus
Posts: 1711
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: Netherlands

Re: What language should I learn?

Postby Jplus » Tue Mar 20, 2018 9:33 pm UTC

I'm going to quote myself here.
"There are only two hard problems in computer science: cache coherence, naming things, and off-by-one errors." (Phil Karlton and Leon Bambrick)

coding and xkcd combined

(Julian/Julian's)

jewish_scientist
Posts: 895
Joined: Fri Feb 07, 2014 3:15 pm UTC

Re: What language should I learn?

Postby jewish_scientist » Wed Mar 21, 2018 7:12 pm UTC

commodorejohn wrote:I actually see a fair number of job postings listing Python as a desired or bonus language, but okay, gotcha.


Quercus wrote:Depends on the job. Software development, no, python is not going to land you a job, but for a more data science, analytics or informatics role python is absolutely an in-demand language.


Really? I never realized that. I think that I will not chose Python though because it is so easy to use. If I ever get hired to program in Python, it would take only about a weekend for my skills to de-rustify.

Most of what I want to do is math stuff that any language can handle, but I also want to experiment with AI. Does that effect what language I should use?

User avatar
Quercus
Posts: 1716
Joined: Thu Sep 19, 2013 12:22 pm UTC
Location: London, UK
Contact:

Re: What language should I learn?

Postby Quercus » Wed Mar 21, 2018 9:41 pm UTC

Quercus wrote:Most of what I want to do is math stuff that any language can handle, but I also want to experiment with AI. Does that effect what language I should use?


I'm barely more than a layperson when it comes to AI stuff, but my gut feeling for this is unless you want to reinvent the wheel purely for learning/fun purposes the important thing is to choose the framework/library you want to use and then use a language which works with that. I realize that that's just shifting the question, but hopefully it shifts it in a direction which is easier to research - articles comparing AI/machine learning frameworks are a dime a dozen.

User avatar
Jplus
Posts: 1711
Joined: Wed Apr 21, 2010 12:29 pm UTC
Location: Netherlands

Re: What language should I learn?

Postby Jplus » Thu Mar 22, 2018 9:43 pm UTC

Quercus wrote:I'm barely more than a layperson when it comes to AI stuff, but my gut feeling for this is unless you want to reinvent the wheel purely for learning/fun purposes the important thing is to choose the framework/library you want to use and then use a language which works with that. I realize that that's just shifting the question, but hopefully it shifts it in a direction which is easier to research - articles comparing AI/machine learning frameworks are a dime a dozen.

This. This is true of all software development.
"There are only two hard problems in computer science: cache coherence, naming things, and off-by-one errors." (Phil Karlton and Leon Bambrick)

coding and xkcd combined

(Julian/Julian's)

User avatar
Flumble
Yes Man
Posts: 1998
Joined: Sun Aug 05, 2012 9:35 pm UTC

Re: What language should I learn?

Postby Flumble » Sat Mar 24, 2018 3:04 pm UTC

commodorejohn wrote:Or one of the billion JS web frameworks, but I gather you want to mess around for fun, not seek out reasons to slit your wrists.

With the chief advantage of JS of course being you can mash stuff together in a graphical environment (the browser) from the get-go. I feel more like "having fun" than "wanting to slit my wrists" when right-clicking your message, inspecting the element (so it gets bound to $0) and executing $0.innerText.split('').filter(char => char.toLowerCase()=='e').length to count the number of Es in it.

Lately, I've been using Haskell quite a lot for solving Project Euler problems. Usually I'm done in a couple of lines (and hours of thinking, fiddling with expressions and debugging –debugging edge cases, mind you, there's no debugging of null pointers or anything) and the runner is done in a couple of seconds. Only for a tenth of the questions do I arrive at an (imperative) approach that takes ages in Haskell and I resort to C++. To be fair, other languages with FP-style libraries may result in similarly* concise and readable code, but I chose the Haskell cake and now I want to eat it, dammit!

*except for all the parentheses; though even in Haskell there's lots of parentheses because the fixity rules are working against you half the time. *something something visual programming something something should exist something something can't recommend any because there's no general-purpose one with a user base of more than 10 people ever*

Demki
Posts: 199
Joined: Fri Nov 30, 2012 9:29 pm UTC

Re: What language should I learn?

Postby Demki » Sat Mar 24, 2018 4:49 pm UTC

Flumble wrote:Lately, I've been using Haskell quite a lot for solving Project Euler problems. Usually I'm done in a couple of lines (and hours of thinking, fiddling with expressions and debugging –debugging edge cases, mind you, there's no debugging of null pointers or anything) and the runner is done in a couple of seconds. Only for a tenth of the questions do I arrive at an (imperative) approach that takes ages in Haskell and I resort to C++. To be fair, other languages with FP-style libraries may result in similarly* concise and readable code, but I chose the Haskell cake and now I want to eat it, dammit!

I find Haskell to be perfect* for fiddling around with the kind of problems found on Project Euler, but I wouldn't give it to someone as a first language to learn (unless they really like math, but then I might suggest Prolog).

* in some sense of the word perfect.

Flumble wrote: *something something visual programming something something should exist something something can't recommend any because there's no general-purpose one with a user base of more than 10 people ever*

I'd like to know of one of those so I can get the user-base up to eleven.

I think a good programming language to start to learn to program is a programming language that supports a simple and easy-to-use graphical engine.
For example Logo programming language would a nice place to get some programming in.
If you are looking for a programming language for a job, then you should research the type of job you want (do you want to work on AI? back-end? front-end? maybe you want to work in gaming?), since that will affect the programming language that it requires.
For example most games use C++, while front-end is almost exclusively Javascript and derivatives of Javascript(like TypeScript), along with HTML and CSS, or if building native apps then for IOS there's Swift and Objective-C, for Android there's Java, for PC there's a whole bunch of choices which I'm not going to list here.

Also I suggest learning Haskell, it's perfect* fun.

User avatar
Flumble
Yes Man
Posts: 1998
Joined: Sun Aug 05, 2012 9:35 pm UTC

Re: What language should I learn?

Postby Flumble » Sat Mar 24, 2018 10:24 pm UTC

Demki wrote:I'd like to know of one of those so I can get the user-base up to eleven.

I know of Subtext, Viskell and Luna as the most general-purpose languages, with Luna actually being worked on right now. Then there are more specific languages like XOD, Simulink, LabView, GNU Radio which are (if I recall correctly) dataflow languages and things like Scratch (and derivatives), Kodu, MindStorms, Alice, (Unreal) Blueprints which are gaming languages. Unfortunately, all the languages require a keyboard half the time, so I have a hard time recommending any of them.
Right now I would say Luna. Unless you want to fiddle within a game environment (reading the output from how many bots are coming after you, for example), then by all means install Unreal Engine.

User avatar
pogrmman
Posts: 514
Joined: Wed Jun 29, 2016 10:53 pm UTC
Location: Probably outside

Re: What language should I learn?

Postby pogrmman » Sun Mar 25, 2018 6:01 am UTC

jewish_scientist wrote:Most of what I want to do is math stuff that any language can handle, but I also want to experiment with AI. Does that effect what language I should use?


Python is fantastic for AI use — there’s lots of libraries out there for it and at any level you want. You could use something like Theano or Tensorflow to learn how, say, neural nets work by implementing a framework of your own design. But you could also use a library like Keras to be able to get an “out of the box” one.


Python is really commonly used for all sorts of data science stuff because people started building libraries on it due to its ease of use. It’s one of the more common data science tools out there.

User avatar
thoughtfully
Posts: 2253
Joined: Thu Nov 01, 2007 12:25 am UTC
Location: Minneapolis, MN
Contact:

Re: What language should I learn?

Postby thoughtfully » Fri May 25, 2018 1:11 pm UTC

I've been having a lot of fun learning Kotlin. It's a staticly-typed language mainly for the Java Virtual Machine, with support for compiling to Javascript and native support via LLVM is on the way. It has much better support for Javascript and Java interopability than Scala, generally compiles faster, and also has much of the functional programming goodness. No pattern matching, alas. Type inference is supported, but the type system does not require you to pretzel your mind to grok it. Google officially supports it for Android development.

It was created by and is actively developed by JetBrains and is intended to be highly pragmatic / practical. There are REPL and scripting modes. On-line docs are excellent.
Image
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
-- Antoine de Saint-Exupery


Return to “Coding”

Who is online

Users browsing this forum: No registered users and 7 guests