LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices

Reply
 
Search this Thread
Old 09-23-2009, 12:13 PM   #16
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 453Reputation: 453Reputation: 453Reputation: 453Reputation: 453

Quote:
Originally Posted by TaylanUB View Post
That's quite interesting information for me. I'm all for minimalism, simplicity, efficiency, speed, and so on. (In this case it's just efficiency of course.)



And my point was actually that learning a language purely for `learning a new concept', just isn't `real-life'. =P
A friend in another forum made a puzzle solving analogy. Just like people solve puzzles like sudoku, you might be liking to solve programming problems you make up, in languages like BrainFcuk. (But that's a bit of an extreme example.)
I'm definitely adding OCaml to my list anyway, though. And if it is being used more often in real projects, it means that i should actually learn it first, i guess.

(Of course all those languages come after i've learned Python, C/C++, Java, BASH scripting, Perl and PHP, along with (X)HTML and CSS, and maybe XML and JavaScript too... )
As I understood from reading on both Haskell + OCaml the latter has everything the former has plus the imperative part. So, if my understanding is correct, you won't lose anything concept-wise learning OCaml.

When some time ago I was considering learning a functional language, I first came across Haskell, and it is indeed very elegant, but than I learned about OCaml, and came to the conclusion that I would rather learn the latter. Alas, I had to put it away, but I learned some things about functional languages and realized that Perl has many features of functional languages and that I had already been using a lot of them - I simply hadn't known the term .

...

In the past I also had exposure to Prolog, and during that time I learned how back-tracking parsers work.

...

AFAIK, Haskell and OCaml communities are cross-friendly.
 
Old 09-23-2009, 12:30 PM   #17
johnsfine
Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,063

Rep: Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106
Two languages I think are worth learning more for what learning them will tell you about programming other languages, than for actually programming in them:

Assembler and Lisp

I generally don't like special purpose languages and I don't think any special purpose languages have important concepts in them that would make them worth learning for some purpose other than being able to use them. So after assembler and Lisp, I'm not impressed with any of the other proposed languages to be learned for its ideas rather than for its practical use.
 
Old 09-23-2009, 01:26 PM   #18
TaylanUB
LQ Newbie
 
Registered: Sep 2009
Posts: 8

Original Poster
Rep: Reputation: 0
Thanks for your input.

LISP is definitely great. I'm hearing a lot about it.

And yeah, although the only thing i know about it is that it's pretty much one step above machine-code, i'm generally for understanding what goes on beneath whatever you do, so Assembly is under my list of prime languages to learn.


But don't be so pessimistic about the others. It's something you're supposed to do in your spare time anyway... Depends, after all, on if you actually enjoy it i guess.
 
Old 09-23-2009, 02:45 PM   #19
johnsfine
Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,063

Rep: Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106Reputation: 1106
Quote:
Originally Posted by TaylanUB View Post
i'm generally for understanding what goes on beneath whatever you do, so Assembly is under my list of prime languages to learn.
Then I'll make an important suggestion there, especially if you already know C or C++:

Lots of tutorials focus on obsolete versions of x86 assembler and/or on writing small programs in assembler. That is a waste of time.

The thing to learn in assembler is how to write small functions that can be called from C (or called from C++ but with a C interface).

That is the role in which assembler might actually be useful, but more importantly, it is the role in which knowing assembler will help you design, debug, and profile projects in other languages. All the random nonsense that goes into just being a program in assembler and/or doing simple I/O in assembler is a waste of time. Learning that aspect of assembler won't leverage anything else. But if you learn the parts and aspects of assembler that are needed to write a function to be called from C, you have learned the foundation of almost everything that happens in the computer.

The assembler architecture to learn is whatever one you normally compile C programs in. Too many tutorials teach 32 bit x86 assembler on 64 bit platforms or even 16 bit x86 on 32 bit platforms.
 
Old 09-23-2009, 03:00 PM   #20
linuxpokernut
Member
 
Registered: Jul 2007
Distribution: Slackware 14
Posts: 237
Blog Entries: 8

Rep: Reputation: 59
I decided to learn myself, and I'm starting with perl. The ones I am interested in are Perl, Java, c/c++, php, sql. I started with perl because I have a lot of irc experience and you can write a bot/client with relative ease. Some form of visual basic would be interesting also. Those seem to me the languages you "see everyday".
 
Old 09-24-2009, 04:52 AM   #21
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 453Reputation: 453Reputation: 453Reputation: 453Reputation: 453
Quote:
Originally Posted by johnsfine View Post
Two languages I think are worth learning more for what learning them will tell you about programming other languages, than for actually programming in them:

Assembler and Lisp

I generally don't like special purpose languages and I don't think any special purpose languages have important concepts in them that would make them worth learning for some purpose other than being able to use them. So after assembler and Lisp, I'm not impressed with any of the other proposed languages to be learned for its ideas rather than for its practical use.

LISP is monumentary/legendary, and for a reason, but I think it is not strictly typed.

If I'm correct on strict typing, then a more interesting language would be the one which is strictly typed or, at least, both strictly and loosely typed.
 
Old 01-05-2010, 05:22 AM   #22
colonna
LQ Newbie
 
Registered: Feb 2009
Location: Paris (France)
Distribution: CentOS 5.2
Posts: 18

Rep: Reputation: 1
What is an interesting language ?

Quote:
Originally Posted by TaylanUB View Post
Programming gurus keep talking about the importance of learning as much different programming language ideas as possible.

When you make a Google search similar to this thread's title, you usually end up either getting a list of tens if not hundreds (heard of 2'500 actually) of programming languages, or catchy ``10 languages every programmers should learn'' articles that include stuff like VB and C#, if you get what i mean.

I managed to find some interesting lists, like this one, but that simply doesn't cut it.

So i was going to ask, what programming languages do you think are worth learning purely for the `enlightenment' you will gain out of being able to think inside their boundaries?

Maybe i'll actually be able to make a nice list in the end, eh?
----
Hello

If you want to understand what programming is, have first a look at Dijkstra texts [URL="http:://www.cs.utexas.edu/users/EWD/"] and avoid any kind of imperative languages like C,C++, Java. Choose a good functionnal language like Haskell or Caml (OCaml) you will be forced to think the good (logical) way, as Dijkstra pointed it out.

By the way don't listen to gurus (they are programming in C,C++ and Java) and you already know by (bad) experience as a software user what kind of (bad) quality their very tricky codes achieve.

Best.
F.C.
 
Old 01-07-2010, 06:43 AM   #23
garryg68
LQ Newbie
 
Registered: Jan 2010
Posts: 19

Rep: Reputation: 0
Quote:
Originally Posted by TaylanUB View Post
... So i was going to ask, what programming languages do you think are worth learning purely for the `enlightenment' you will gain out of being able to think inside their boundaries? ...
Oh, in that case Assembly Language... absolutely!!

I’d also recommend learning a basic (non Object-Driven) Pascal, after all it was developed as a teaching language, and as such the structure is much better to learn on than C or Perl etc; you can write bad code in C and Perl much easier than you can in Pascal.

If you want to hurt your brain, learn AWK


These all have very different ‘boundaries’ but learning them all will give you a better understanding of programming IMO



Ps. The Vectrex in a very neat machine to write assembly for.

Last edited by garryg68; 01-07-2010 at 06:49 AM.
 
Old 01-07-2010, 03:38 PM   #24
smeezekitty
Senior Member
 
Registered: Sep 2009
Location: Washington U.S.
Distribution: M$ Windows / Debian / Ubuntu / DSL / many others
Posts: 2,227

Rep: Reputation: 170Reputation: 170
Quote:
Ps. The Vectrex in a very neat machine to write assembly for.
How about x86? its the most common and you can write useful programs without an emulator.
 
Old 01-08-2010, 05:00 PM   #25
garryg68
LQ Newbie
 
Registered: Jan 2010
Posts: 19

Rep: Reputation: 0
Well the Vectrex has a Motorola 68A09 processor, so it is an early varient of the X86 family.

I just think it's an interesting machine to program, there are good rom routeans, and I just love the vector graphics!

With the processor running at 1.5MHz you have to watch how you are coding as well, sloppy code will produce bad results.
 
Old 01-08-2010, 05:04 PM   #26
smeezekitty
Senior Member
 
Registered: Sep 2009
Location: Washington U.S.
Distribution: M$ Windows / Debian / Ubuntu / DSL / many others
Posts: 2,227

Rep: Reputation: 170Reputation: 170
Quote:
With the processor running at 1.5MHz you have to watch how you are coding as well, sloppy code will produce bad results.
You do know thats a 1/3 of an 8088, right?
Quote:
If you want to understand what programming is, have first a look at Dijkstra texts [url="http:://www.cs.utexas.edu/users/EWD/"] and avoid any kind of imperative languages like C,C++, Java. Choose a good functionnal language like Haskell or Caml (OCaml) you will be forced to think the good (logical) way, as Dijkstra pointed it out.
Sure, lets all learn languages that are useless/outdated instead of the one your OS is written in!
 
Old 01-08-2010, 05:28 PM   #27
garryg68
LQ Newbie
 
Registered: Jan 2010
Posts: 19

Rep: Reputation: 0
Quote:
Originally Posted by smeezekitty View Post
You do know thats a 1/3 of an 8088, right?
Err, your point being


I have to write VB and ASPX .net code for money during the day, tinkering around with some proper-nutís-and-bolts stuff on my old machines now-and-againe keeps me grounded.

I don't like modern languages; I want to go back to the Eighties.
 
Old 01-08-2010, 06:06 PM   #28
GooseYArd
Member
 
Registered: Jul 2009
Location: Reston, VA
Distribution: Slackware, Ubuntu, RHEL
Posts: 183

Rep: Reputation: 46
Quote:
Originally Posted by TaylanUB View Post
Programming gurus keep talking about the importance of learning as much different programming language ideas as possible.

...

So i was going to ask, what programming languages do you think are worth learning purely for the `enlightenment' you will gain out of being able to think inside their boundaries?

Maybe i'll actually be able to make a nice list in the end, eh?
I've been programming for a living for almost 20 years, and I interview and hire young programmers regularly.

There is no bigger waste of time in my opinion than spending time thinking about which language you should use for something. Most of the bright young programmers that I meet read about a language with an unusual feature, it piques their interest, and they write some program in it to try it out. We never start with a problem and then try to spend time deciding on which language to use. If you're in a group of 3 developers and they all know Python, maybe you'll start with Python, and if it doesn't work, you'll do something else. It's a much bigger challenge to figure out how the program will solve the problem, not figuring out how to implement the solution in the language.

The other thing that happens is that paradigms come, catch fire, and then burn out. When I was in school, OOP was the trend, then everyone was excited about automatic garbage collection, then there was excitement about type systems. Now we are in the midst of excitement over non-Lisp functional languages, and verifiable (i.e. statically analyzable) message-passing based languages like Sing#.

If you're familiar with a concept it is usually no big deal which of the languages you choose, since its likely that by the time you've heard of them, they've been vetted by language experts and are reasonably sound. For example, you won't go wrong learning either Erlang or Scala or Haskell, since you are probably using them for their functional features.

I would focus on making a list of the paradigms themselves, since many languages don't fit neatly into a single paradigm, and you may wind up understanding the concept poorly if you study only one languages implementation of it.
 
1 members found this post helpful.
Old 01-08-2010, 07:06 PM   #29
CoderMan
Member
 
Registered: Jan 2009
Location: Gemini Capsule 25164
Distribution: Gentoo
Posts: 375
Blog Entries: 24

Rep: Reputation: 43
Quote:
Originally Posted by TaylanUB View Post
Programming gurus keep talking about the importance of learning as much different programming language ideas as possible.

When you make a Google search similar to this thread's title, you usually end up either getting a list of tens if not hundreds (heard of 2'500 actually) of programming languages, or catchy ``10 languages every programmers should learn'' articles that include stuff like VB and C#, if you get what i mean.

I managed to find some interesting lists, like this one, but that simply doesn't cut it.

So i was going to ask, what programming languages do you think are worth learning purely for the `enlightenment' you will gain out of being able to think inside their boundaries?

Maybe i'll actually be able to make a nice list in the end, eh?
Definitely BASIC. Not that modern VB nonsense -- I'm talking Altair BASIC. Just don't forget your line numbers.
 
Old 01-08-2010, 07:42 PM   #30
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713
Definitely C (a great compiled language, fast, used everywhere, as low level as it gets if not for assembly language)
C++ (because it's common)
Java (To really understand OOP)
Python (general-purpose scripting language, in my opinion it's better than Perl, but you can try both and choose)
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
is fortran worth learning anymore? andrews-mark Programming 8 10-09-2007 07:30 AM
Python - worth learning? vharishankar Programming 39 07-08-2005 02:38 AM
Is Visual Basic worth learning? titanium_geek Programming 20 07-07-2005 09:58 AM
Is it really worth learning vi at this point? Tyir Linux - General 8 02-24-2004 12:51 AM
Is scripting worth learning ChimpFace9000 Linux - General 3 07-05-2001 04:02 AM


All times are GMT -5. The time now is 06:12 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration