Basically, I have a free summer and want to learn a language that is going to be useful in the future. I already know basic Java, but it seems like Java is going by the wayside. What other languages should I learn?
ICE
***Pieman7373 runs
Well, lots of things use C, C++, and other variants. I suggest playing around with those.
Given the fact that as a CS student, I am forced to learn RPG and COBOL, I'd say those are definitely the future right there. As we like to say in class, if it doesn't look like a spreadsheet, you're doing it wrong. Also, if it was made after the 50s, it's no good.

Seriously though, I am just beginning with Java, which I think is a good one to learn.
I haven't even heard of RPG and COBOL Razz
I'd agree with Luxen and Mr Womp Womp. Java, and the different C languages are your best bets in learning inernationally-accpeted languages. And they aren't going anywhere. I might add in Python as a language that is both easy to learn and also widely applicable. The TIOBE index can be useful if you want to see what languages are popular right now.
People have been composing replies much faster than I did, but not bothering to adjust my response with those in mind.
Java isn't going anywhere, it's just not trendy. Getting to know Java better would hardly be a bad choice.

Otherwise, choices are best informed by what you want to do. These are by no means hard requirements, but they're applications for which a suggested language is a common choice:
  • Web? Try some Javascript- as much as I dislike it as a language and ecosystem, you can't deny its existence if working on the web.
  • Web but server-side? Consider Python (my preference) or Ruby, especially with Django or Rails respectively.
  • Dark systems magic? Plain C. Probably going to be tedious unless you have something in mind to build.
  • GUIs? C++ with Qt. Also usable with Python among other languages, but the availability of docs for C++ is much better.
  • Something that is conceptually less than 20 years old? Rust, my favorite choice for many tasks- like C++ without the nasty backwards compat and cool higher-level constructs mixed in.
I definitely endorse Tari's advice, as he has great experience in the field - heck, if you look on his website, he's even done talks on Rust. Now that's what I call experience.

I guess I'll pitch in, too:

  • For presenting or studying algorithms, I suggest either C (if you prefer studying them from the lowest level) or Java (if you want to use higher-level data structures already made for you, or don't wish to get tangled in pointers or memory management). The compromise, of course, would be C++.
  • For making quick scripts, I'd say Python, Ruby, or Perl fit the bill. Python is the faster growing language right now.
  • For making cross-platform desktop applications, C++ with Qt, along with CMake to feed your project files into your build system/IDE of choice. The alternate path of C# or another .NET language is also possible. (Learning C# also gives you an edge if you decide to make Unity games in the future.)
  • For making web applications, the front-end will, of course, have to be written in HTML, CSS, and JavaScript, but your backend can be written with Python (Django, Flask, ...), Ruby on Rails, PHP, ASP.NET, Node.js, and the list ceases to end.
  • For experimentation and the appreciation of computer science (but can arguably be used for more than that), try Haskell, Rust, D, Fortran, Scala (I've personally met a CS professor in my city who is an avid supporter of Scala), and Haxe. These are the more exotic languages.
  • If you are really, really, really bored and don't know what to do this summer... *sigh* Flat Assembler, although be ready to buy those 600-page Intel optimization guides for the latest and greatest Intel processors. (kek)
C. Pure C. C++ will confuse the heck out of anyone once you start going any higher. Generally speaking, C and Python are the two most important languages you can learn if you are looking for a career in somewhat lower level programming; although C is pretty much the go-to language.
MateoConLechuga wrote:
C is pretty much the goto language.


Ba dum tss!
As several people have said, C, C++, and python are probably your best choices. I don't know if you should invest in perl, I never saw the use in it, but others might disagree.
Perl is for the strong willed Razz People don't use it because it makes no sense Razz
I learned how to program using Perl! Smile 2 perl books and my outdated laptop.
Mateo, sounds something like how Kerm complains about PHP
My friend is trying to learn a programming language, so I suggested Perl as a joke...

He is now confused as heck, as he has zero programming experience otherwise...

Evil or Very Mad

don't worry, I was a good person and suggested easier, less insane languages, like php and c++.

Otherwise, Java is beginning to slow down in popularity (boo), and C is gaining momentum (plz don't kill me Mateo, but boo Bad Idea)
author bias

I really/kinda/sorta/maybe want to learn C, though (starting over the summer, lots of free time), and hopefully I will enjoy it almost as much (or even more, who knows?) than Java.

The online documentation for C seems to exceed my expectationsUnlike the CE version of C, that still needs some work in my opinion..., and it seems very similar to Java, so I think it may/can/will be worth the switch.
Java is flawed; horribly. If you want to write a decent program, write it in C. There is way; way more documentation available for C than for Java. And of course C looks like Java. Java is based on C.
MateoConLechuga wrote:
If you want to write a decent program, write it in C.
If by "decent" you mean "riddled with latent (and not-so-latent) bugs,"1 sure.

C (and C++) is powerful, but sorely lacking in ergonomics. There are some applications where C is truly a good choice, but it's a very poor default- doubly (or more) so if whatever you're doing is remotely security-related.

1 Assuming somewhat high complexity. An easy-to-write program is probably going to have correspondingly low bug frequency.
ordelore wrote:
I'd agree with Luxen and Mr Womp Womp. Java, and the different C languages are your best bets in learning inernationally-accpeted languages. And they aren't going anywhere. I might add in Python as a language that is both easy to learn and also widely applicable. The TIOBE index can be useful if you want to see what languages are popular right now.

Looking at the graph at the link, its kinda weird how c and c++ (and java) plummeted while nothing else went up :V
c4ooo wrote:
ordelore wrote:
I'd agree with Luxen and Mr Womp Womp. Java, and the different C languages are your best bets in learning inernationally-accpeted languages. And they aren't going anywhere. I might add in Python as a language that is both easy to learn and also widely applicable. The TIOBE index can be useful if you want to see what languages are popular right now.

Looking at the graph at the link, its kinda weird how c and c++ (and java) plummeted while nothing else went up :V


It appears the choice of languages is balkanizing. I predict this will be a problem in the distant future.
Why has nobody mentioned go? https://golang.org/
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement