You are not logged in.

#26 2011-11-23 19:51:31

bsilbaugh
Member
From: Maryland, USA
Registered: 2011-11-15
Posts: 141

Re: Which group of programming languages to master?

There is such as thing as a ``general purpose language''. It's called D. tongue

Last edited by bsilbaugh (2011-11-23 20:21:41)


- Good judgement comes from experience; experience comes from bad judgement. -- Mark Twain
- There's a remedy for everything but death. -- The wise fool, Sancho Panza
- The purpose of a system is what it does. -- Anthony Stafford Beer

Offline

#27 2011-11-23 20:42:37

pling
Member
Registered: 2011-11-21
Posts: 20

Re: Which group of programming languages to master?

bsilbaugh wrote:

There is such as thing as a ``general purpose language''. It's called D. tongue

D is an excellent design that will probably never be widely used. The network effect - users create libraries drawing users - is too strong for it to overcome in enterprise apps. And many of the jobs that C++ has left are ones where either manual management or at least a soft realtime garbage collector is required - telephone switching systems, for example.

The uber language that's most likely to have a future is possibly Scala - a complex OO + FP "super Java". It's widely thought that future versions of Java will tend to evolve towards it.

Offline

#28 2011-11-25 00:36:17

Nanthiel
Member
From: Slovenia
Registered: 2009-09-20
Posts: 148

Re: Which group of programming languages to master?

Well if you're looking for general languages to learn, I'm not sure what I'd suggest.

At Uni we had Java in the first year. Some of us transitioned to C (or C++) soon. I prefer C myself.
I think Java is a good language to learn programming on. Object-oriented programming is very popular today and Java does it reasonably well. It teaches it well, at least.
I'm not a fan of the style though. Thinking of everything as an object doesn't seem very intuitive to me. smile

If you're looking for something more interesting, or even intuitive (once you learn it), I would like to mention Prolog. It may not be a very general (or fast) language, but definitely an extremely fun one.

I haven't learned any functional languages yet (sadly), but I'm planning on learning Haskell and Erlang at some point — I've been unable to decide which one first.

Also on my list are Fortran, Eiffel, D and Ruby!

Offline

#29 2011-11-25 03:55:56

trengof
Member
Registered: 2011-11-25
Posts: 1

Re: Which group of programming languages to master?

I'll weigh in. After experimenting with a plethora of languages over the years, I keep going back to the following:

Systems Programming: C.
Scripting: Ruby. I have stylistic issues with Python but it definitely has the edge over Ruby if you are interested in scientific / numerical computing (i.e. SciPy). I am more involved in web programming where Ruby and the Rails framework are really useful.
Browser: Javascript. No real alternative here. Coffeescript is interesting but you are still essentially writing Javascript.

I avoid the more enterprise OO languages (Java, C++, C#, etc) because I find them bloated for the projects that I tend to work on. Forth, Haskell, Scheme/Lisp, Erlang, and io, are all definitely worth trying out but I don't use them enough to place them on the above list.

Offline

#30 2011-11-25 21:10:52

bsilbaugh
Member
From: Maryland, USA
Registered: 2011-11-15
Posts: 141

Re: Which group of programming languages to master?

For what its worth, you might also consider The Transparent Language Popularity Index. Although, I think you've already received some reliable suggestions. Obviously, "most popular" does not mean "best for you".

I was surprised to see D listed among the top 10 "general purpose" languages, as I'm not aware of any large projects using D. Then again, the ranking is nonlinear; after about the 3rd position the share drops below 10%. (NOTE: Their definition of "general purpose" simply means the code gets compiled into a stand-alone executable. Hence, Fortran being categorized as "general purpose".) I've been drooling over the features of D for quite some time, but the investment of my time seemed too risky due to its lack of maturity and popularity. Maybe I just need to grow a pair and start testing it out on some of my smaller projects.

(I'm not discounting Scala. I'm just not that familiar with it.)

Last edited by bsilbaugh (2011-11-25 21:15:46)


- Good judgement comes from experience; experience comes from bad judgement. -- Mark Twain
- There's a remedy for everything but death. -- The wise fool, Sancho Panza
- The purpose of a system is what it does. -- Anthony Stafford Beer

Offline

#31 2011-11-25 21:55:54

bjornoslav
Member
Registered: 2011-11-01
Posts: 137

Re: Which group of programming languages to master?

Learning C helped me understand the lower levels of programming, OS-es, hardware drivers. I see C as an universal "assembler". smile
A totally different approach in programming is Ruby - it will change the way you look at programming. I learned it in 15 minutes.

My advice - go with these two. smile


asus ux303la, core i5@1.6ghz, 8 gb ram, 500gb hdd, hd4400 gpu, crux x64 with openbox

Offline

#32 2011-11-26 16:43:00

pling
Member
Registered: 2011-11-21
Posts: 20

Re: Which group of programming languages to master?

bsilbaugh wrote:

I was surprised to see D listed among the top 10 "general purpose" languages, as I'm not aware of any large projects using D. Then again, the ranking is nonlinear

The rating on that page are based on blog traffic rather than, say, major open source projects using a language, or job ads featuring that language. I.e. they're meaningless as a measure of real use.

(I'm not discounting Scala. I'm just not that familiar with it.)

Scala is a good example of why the idea of do-everything languages should be approached cautiously. It's a great design, it isn't simple. If a beginner wanted to learn a JVM language he'd be much better off with Groovy.

Last edited by pling (2011-11-26 16:54:39)

Offline

#33 2011-11-26 16:51:27

pling
Member
Registered: 2011-11-21
Posts: 20

Re: Which group of programming languages to master?

bjornoslav wrote:

Learning C helped me understand the lower levels of programming, OS-es, hardware drivers. I see C as an universal "assembler". smile
A totally different approach in programming is Ruby - it will change the way you look at programming. I learned it in 15 minutes.

My advice - go with these two. smile

I slightly prefer Ruby to Python myself (although they're really pretty damn similar.) However, smart programmers choose languages for the libraries available for them. Ruby has the edge over Python here for web programming, but it's the other way around for systems admin and the sciences - and the OP is a science student. The availability of SageMaths alone should make Python a clear winner - and SageMaths is far from alone: Python has become the defacto scientific scripting language (outside of Bioinformatics, where Perl still hangs on.)

Offline

#34 2012-01-03 06:46:36

oldpond
Member
Registered: 2010-01-26
Posts: 43

Re: Which group of programming languages to master?

Interesting thread.  In my experience, from a practical perspective, you will find most markets dominated by either IBM or HP.  Where IBM is dominant all the technology will be Java.  Where HP is dominant the technology will be .Net.  There is almost nothing going on here in my home town market in C, Python, or any of the less popular languages.  There is some interest in iOS development now, and I was the first to break into the Android market here.  It will probably be a couple more years before mobile development jobs are plentiful.  Android is very easy to get going in.

Teaching yourself erlang, haskell, or closure would be fun (I'm doing that now), but don't expect to find a lot of opportunities to use them outside of university or open source projects.    In some cities where they have large game development houses you will find a demand for C and LUA.  Get to know your market.


oldpond = glide

Offline

#35 2012-01-03 16:48:50

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,797

Re: Which group of programming languages to master?

oldpond wrote:

...Where HP is dominant the technology will be .Net...

WTF??

There is almost nothing going on here in my home town market in C, ...

Where in the world is this true?


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#36 2012-01-09 00:42:14

holland01
Member
Registered: 2011-12-22
Posts: 50

Re: Which group of programming languages to master?

pling wrote:

Just pick one of either Ruby or Python and work at it a while. The choice is actually pretty arbitrary. Do what a pro and would do and code in the highly productive scripting language until you a performance hit, then write C code for that limited area. Rather than learning lots of languages badly, learn the fundamentals of procedural programming well - get books like Code Complete, Pragmatic Programming, Programming Perls, etc and work through them.

I disagree with this. A lot.

Learning a scripting language FIRST is one of the worst things you could to yourself, it also makes switching to a different language such as C a real pain the neck. If you want to just learn how to code or write Web/GUI applications, sure - learn Python, Ruby, or even (God, help me) PHP. If you *really* want to know what you're doing, however, don't do it. Start off with C or C++ (honestly, either one will do), then once you've learned those, go and learn NASM x86. Even if you don't plan on ever using it for a single project, it is ESSENTIAL that you eventually learn at least one assembly language, mainly so you know what the hell it is that you're doing. After that, move on to a higher level language.

Despite the fact that a higher level language is easier, it's practically shooting yourself in the foot. You'll get used to high level and the thought of moving on to a lower level, much more challenging language will just seem like overkill to you. Plus, learning a language the hard way and THEN learning a higher level language like Python will be much easier than the reverse.

I don't have anything against scripting languages, I just think that if you want to get out of the script kiddy bubble that exists in the programming world, you need to buck up and go with the hard knocks.

Edit:

Basically, any language which holds your hand in any way is a bad start. I learned C# for my first language and realized it was one of the worst mistakes I could ever make due to the fact that it was a managed language.

Last edited by holland01 (2012-01-09 00:45:45)

Offline

#37 2012-01-09 01:00:49

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,535
Website

Re: Which group of programming languages to master?

ewaller wrote:
oldpond wrote:

...Where HP is dominant the technology will be .Net...

WTF??

There is almost nothing going on here in my home town market in C, ...

Where in the world is this true?

My guess, is here


I'd agree with many others who have said "It depends".  There is no one best language - though being proficient in C seems to be a clear benefit if not necessity.

My one suggestion - and it's not joke - is to spend some time learning some assembly languages.  I don't know that I'd ever write anything substantial in assembly, but having learned some and gone through the steps of making a few simple programs, I've come to have a much better understanding of what the computer is *really* doing.  This, I believe, can help inform coding practices in 'higher level' languages to get efficient programs.

Also, while I am amazed by it - many beginning C students struggle with pointers.  I suspect after writing one "hello world" program in an assembly language, pointers would suddenly make perfect sense.

Edit: I hadn't even read the previous post when I posted this - suffice it to say I completely agree, and almost literally echo all of it.

Last edited by Trilby (2012-01-09 01:02:27)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#38 2012-01-09 01:17:13

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,797

Re: Which group of programming languages to master?

Trilby wrote:

My guess, is here

ROTFL.  That made my evening smile

Last edited by ewaller (2012-01-09 01:17:55)


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#39 2012-01-09 05:08:14

austin.rbn
Member
Registered: 2010-01-23
Posts: 77

Re: Which group of programming languages to master?

holland01 wrote:

Despite the fact that a higher level language is easier, it's practically shooting yourself in the foot. You'll get used to high level and the thought of moving on to a lower level, much more challenging language will just seem like overkill to you. Plus, learning a language the hard way and THEN learning a higher level language like Python will be much easier than the reverse.

I think this strongly depends on how one learns the higher-level language. I found the transition from Python to C incredibly smooth and easy. However, I really dug into the mechanics of Python and used it as an easy playground in which to study Computer Science concepts. That is, by the time I started learning C, I knew the Pythonic distinction between object references and the objects themselves, I understood how to determine algorithmic complexity, I had already implemented many elementary data structures, and I had a good grasp of Python's type system. All of this made C incredibly easy to understand, and it didn't seem a strange or foreign beast at all.

I'm not sure, but I suspect that institutions like MIT teach Python to new programmers because, as a language, it gets out of the way and lets the student get right into understanding the important concepts of programming. So, I disagree that Python (or Ruby) is a dangerous first language. However, the fact that you lumped Python and PHP into the same category of "scripting languages" suggests that you don't understand how their semantics differ. I wonder if you would say that Scheme or Common LISP do a lot of "hand-holding" just because they're dynamically-typed and garbage-collected.

I do agree on the necessity of learning an assembly language, though. There's really no substitute for understanding how to program the metal.

Last edited by austin.rbn (2012-01-09 05:16:11)


"Computer Science is embarrassed by the computer." -- Alan J. Perlis

Offline

#40 2012-01-09 05:52:35

holland01
Member
Registered: 2011-12-22
Posts: 50

Re: Which group of programming languages to master?

austin.rbn wrote:
holland01 wrote:

Despite the fact that a higher level language is easier, it's practically shooting yourself in the foot. You'll get used to high level and the thought of moving on to a lower level, much more challenging language will just seem like overkill to you. Plus, learning a language the hard way and THEN learning a higher level language like Python will be much easier than the reverse.

I think this strongly depends on how one learns the higher-level language. I found the transition from Python to C incredibly smooth and easy. However, I really dug into the mechanics of Python and used it as an easy playground in which to study Computer Science concepts. That is, by the time I started learning C, I knew the Pythonic distinction between object references and the objects themselves, I understood how to determine algorithmic complexity, I had already implemented many elementary data structures, and I had a good grasp of Python's type system. All of this made C incredibly easy to understand, and it didn't seem a strange or foreign beast at all.

I'm not sure, but I suspect that institutions like MIT teach Python to new programmers because, as a language, it gets out of the way and lets the student get right into understanding the important concepts of programming. So, I disagree that Python (or Ruby) is a dangerous first language. However, the fact that you lumped Python and PHP into the same category of "scripting languages" suggests that you don't understand how their semantics differ. I wonder if you would say that Scheme or Common LISP do a lot of "hand-holding" just because they're dynamically-typed and garbage-collected.

I do agree on the necessity of learning an assembly language, though. There's really no substitute for understanding how to program the metal.

I guess it really depends on how you learn. For me, it was somewhat of  a pain, and I felt less motivated to learn simply because of the fact that I had began on C#. I don't believe Common Lisp or Scheme do a lot of hand-holding, no. although, I really don't even know what they're like as I've never written in them. It's the languages like Java and C# I'm not too fond of, partially because of their success due to corporate backing and partially due to the fact they teach poor programming practices in the long run, especially if you plan to go lower level in the future. Maybe I'm wrong with Python - I'll have to admit that statement was rather ignorant due to the fact that I've never coded in the language and based every statement I said about what I read and heard, rather than saw. Then again, from what I hear, Python takes care of a lot of different concepts for you, such as linked lists, which (from what I hear at least), are an internal concept rather than something you write on your own.

Offline

#41 2012-01-09 10:51:15

Nanthiel
Member
From: Slovenia
Registered: 2009-09-20
Posts: 148

Re: Which group of programming languages to master?

holland01 wrote:

Python takes care of a lot of different concepts for you, such as linked lists, which (from what I hear at least), are an internal concept rather than something you write on your own.

C++ has containers as well. I don't think everyone rolls their own vector, "arraylist" or deque.
And I'm sure you can write lists in Python, if you really wanted to. Although in Python,
dynamic lists and stuff are language-level rather than library-level, at least on the surface.
Also, the language D has associative arrays and dynamic arrays (at this moment of speaking)
at language-level, and is meant as a new take at a mixed-level systems language, like C++
could probably be classified.

I think universities have their reasons to teach GC-ed OO language to first year students,
but assembly is a must just as well. As far as I'm concerned, the only way to really become
proficient in most fields of programming is to get to know at least one language from every
"pool", or, every paradigm (one language may cover more than one): imperative, functional,
declarative, object oriented (class and/or prototype), some concurrency models ...

I know it's taken me a very long time to really undestand recursion until I took a course in
Prolog, at which point everything became crystal clear. Assembly helped a lot as well, before
learning it I didn't know how the call stack works and why deep non-tail recursion results in
a stack overflow.

Offline

#42 2012-01-09 16:13:51

holland01
Member
Registered: 2011-12-22
Posts: 50

Re: Which group of programming languages to master?

I honestly don't know of any language which doesn't have the concept of a hashmap built in. If you know of a few, feel free to enlighten me. Still, regardless, I believe that kind of thing SHOULD be built in; the same goes for vectors.

Offline

#43 2012-01-09 21:27:37

Barrucadu
Member
From: York, England
Registered: 2008-03-30
Posts: 1,158
Website

Re: Which group of programming languages to master?

holland01 wrote:

I honestly don't know of any language which doesn't have the concept of a hashmap built in. If you know of a few, feel free to enlighten me. Still, regardless, I believe that kind of thing SHOULD be built in; the same goes for vectors.

C.

Offline

#44 2012-01-10 14:31:21

Cythes
Member
From: That place...Over there.Yeah.
Registered: 2011-09-14
Posts: 9
Website

Re: Which group of programming languages to master?

My bets even though some dont consider (Some of) them "Programming Languages" I would learn:

- XHTML / CSS (This is a good skill to have even if they are not programming persay)
- JavaScript (This actually has some uses that most people overlook, Portable game programming to name one)
- Python (It simple even though I have yet to fully explore it.)

Offline

#45 2012-01-10 15:06:07

holland01
Member
Registered: 2011-12-22
Posts: 50

Re: Which group of programming languages to master?

I would say JavaScript is good if you plan on getting into web development. Otherwise, it's truly a waste of time.

Barrucadu wrote:
holland01 wrote:

I honestly don't know of any language which doesn't have the concept of a hashmap built in. If you know of a few, feel free to enlighten me. Still, regardless, I believe that kind of thing SHOULD be built in; the same goes for vectors.

C.

C doesn't count; the same goes for assembly tongue

Low level programming ftw cool

Offline

Board footer

Powered by FluxBB