What programming language would your recommend? by johnblood | tildeverse BBJ

>0 johnblood @ 2021/01/31 18:41

Hi,

I haven't logged into this tilde in a while.  I've wanted to learn how to
program for a while, but life keeps getting in the way.
I want to finally accomplish something.

What programming language would you recommend that I learn? I'd like to
create apps that work on both Windows and Linux (because I split my time
between both). I've bought a bunch of programming ebooks from the Humble
Bundle over the years, but am not sure where to start.

One caveat: I see recommendations for Python everywhere, but I would like to
try something different.

Thanks

>1 voytek @ 2021/02/01 00:03

>>OP

I'd recommend C++; classic language with compliers on all platforms.

While it's true that python has less boilerplate code to write,
is dynamically typed, and handles pointers under the hood; most
freely-available IDEs will auto-complete most of the boilerpate,
and learning materials have vastly improved since my college
days.

>2 anonymous @ 2021/02/01 00:09

>>OP

You don't mention what sort of programming you are interested in so any advice is going to be necessarily vague. Similarly, you don't say why _not_ python, so there's a real chance you'll get recommendations in the same vein.

With that being said you should probably just learn JavaScript. There are plenty of resources aimed at beginners and little prerequisite knowledge to starting. It was designed to run in the browser but has been ported to be used as server/desktop software as well. You'll get people that tell you it is wasteful or poorly designed, and even if they are right there's little argument that it isn't widely used. There's no sense being a language snob when you're just getting started anyway.

I'd read and work through Mozilla's tutorials[0] and skip books for now.

[0]: https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics

>3 jacksonbenete @ 2021/06/09 15:20

I agree with anon,
without knowing what kind of programming you are interested in, it's hard 
to suggest something.

JavaScript it terrible, it's an horrible language, but I would also 
recommend it if you don't know exactly what you want, simply because 
you have browsers available in both Operational Systems you're using and 
it would be portable for sure.

Another suggestion would be Java or something running on top of JVM, 
this would give you a lot of power and the portability as well since 
you have JVM for a lot of devices.
I would recommend Clojure, because it's a powerful language, new, 
and there is a lot of nice material to learn from.
I'm just learning Clojure myself so I'm not a guru.

If you wanted to learn programming for fun I would tell you to learn 
C and Assembly, so you could be programming microcontrollers to build 
fun and impressive gadgets yourself.

If you wanted to learn programming for enlightenment I would tell you 
to learn Lisp, more precisely MIT Scheme using the book SICP, which 
is free and teaches a lot of nice things that I didn't know even after 
years working as a programmer.

If you wanted to learn programming for geekness to do stuff like 
Math, Physics and Statistics I would say you can learn Fortran and R.

But since you want to learn for "apps" and portability, I think that 
JavaScipt or Java/JVM is the way to go.
Do Kotlin can make desktop apps (GUI)?
If so it would be a nice choice as well, now you can have portability 
since it runs on top of JVM, and you can write mobile apps (Android) as well.

>4 stern @ 2021/10/14 04:57

>>OP
It has been my experience that one can never go wrong with ADA

>5 isvarahparamahkrsnah @ 2021/10/16 09:28

I liked C# for Windows

>6 anonymous @ 2021/10/21 21:38

I'll mostly recommend unpopular languages, but they're still fairly good:
- Nim is a great languagem, it looks like Python syntax-wise but functions far more similarly to C++
- Zig is a good alternative to C but is mostly valuable only if you already know C

JavaScript is fine, but if you make desktop apps with it they will be inefficient and consume a lot of ram due to using a browser environment.
Good luck!

>7 dwd @ 2021/10/28 12:47

Haskell for the win!!

>8 taro @ 2021/11/02 19:51

>>OP

I don't know if this question is still relevant, and you are already learning something, but IMHO, I would respond with another question: what do you want to do? And another one: are you pragmatical, scientific/theoric minded or hacker minded? 
There is a plethora of languages today, and even more are flourishing in the time I'm writing these lines. But what is right for me (or for anybody), could not be for you. Some people advocates for language X because A, B and C reasons, and possibly, they are right, in their context. A programming language is a tool of expression, of the way you see the problem, and the solution you give to that problem. Nevertheless, you must ask yourself what do you pretend of your tool (language), what properties should have, having you in mind. 
Eg. some people say "language X is right learn programming because is easy". "Easy" is not the same for everybody. Imagine, for example if some Finnish person tell you that you must learn Finnish, because it's easy. Maybe that person, and his family, and his friends, and even the most of the population of Finland speak Finnish. Does that fact make easier for *you* to learn it? Some people find LISP languages easy, and other scoff at the idea. Who is right? I think the aswer is "the right language is that one that is right for you". Try as many as you can. They are in some ways like martial arts. All have one teaching to give you. At least try one of the Lisp family, Smalltalk, C, Forth, Perl.. Every language teaches you something new about programming. Stay with those you find more handy for you, for each kind of problem (web programming, scripting, ...). In your journey, you possibly will change one for another. May be you are a better programmer now and the tool hinders your progress. Don't hesitate and change it for something better.

I hope this helps. Peace. Taro.

>9 noodlez @ 2021/11/11 19:09

>>7

I've tried learning Haskell a few times and honestly I just cannot learn it. I've learned many programming languages in the past, but it feels like I'm doing a computer science project every time I try to use Haskell.

>10 mieum @ 2021/11/14 05:27

>>OP

Depending on what you wqnt to do, Lua may be a nice
starting point. It is pretty small and simple, so you
could have it all in your head after a short period
of working with it. Plus it is a bit more spartan
than something like Python, so without using external
packages it forces you to think a little more on a 
"lower" level to accomplish things that are done 
magically in other languages.

Another thing too is that because Lua is used in APIs
for so many programs, you can practice using and writing
it in useful ways without having to first build your own
program.

>11 jdtron @ 2021/11/14 18:50

As many others already said, it depends very much on what your aims are.
None of the languages mentioned above are bad for beginning.

From my own experience (over a decade ago), it could be good advice to start with
a static typed language like C++.
Especially C languages are a little confusing and maybe harder to learn for some people at first,
but all that pays off in the end. Because you'll soon be able to _really_ understand,
how to properly work with the underlying OS and machine.

As already mentioned, not to say any dymanicly typed language wouldn't do the job.

I do not recommend looking into something like Go for beginning.
As far as I love Go, many of the architectual concepts differ from what the main stream does.
While for some people like me this is a good thing, it could become confusing if you decide to
give another language a try.

I hope this was helpful to you!
If you have any questions or want to have little talk, feel free to hit me up on XMPP.

Cheers, JD.

>12 rocked_socks @ 2021/11/23 15:13

>>OP

I would recommend Java and C++. Learning java first would be easier, but C++ is generally very useful (C-like syntax wow!).
You don't have to go very far in C++ to learn much.

>13 ayko @ 2021/12/02 18:55

try the old good c (My favorite) or look a bit at haskel, a functional
language i am leaning now.You dont need to use it but seeing this alien
language is intresting.