Easiest language to learn

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • 5

70 Replies - 4150 Views - Last Post: 29 June 2013 - 02:51 PM

#31 Flukeshot  Icon User is offline

  • A little too OCD
  • member icon

Reputation: 415
  • View blog
  • Posts: 1,030
  • Joined: 14-November 12

Re: Easiest language to learn

Posted 21 June 2013 - 06:36 PM

First language I learned was True Basic, it was a pretty good eye opener to the world of programming. Its most important feature to me was how close to english it was. I don't think my understanding of programming has been mutilated due to exposure to it. In fact, I think it gave me a light grasp on the fundamentals of how computers worked - one line of code at a time.
Was This Post Helpful? 1
  • +
  • -

#32 tevildo  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 3
  • Joined: 01-October 12

Re: Easiest language to learn

Posted 22 June 2013 - 03:58 AM

The original question was just which language is easiest to learn. It does depend on your actual learning goals and your definition of easy (mine might be a bit skewed, my first language was C :P). BASIC certainly is/was very easy to learn, but won't do you much good as it it will encourage (if not require) bad programming practices. My opinion on this is not well formed, though, as I've only used gwbasic (way back in the 80s) and VB.NET.

VB.NET has many of its own issues, as well - it's certainly not an easy language to just pick up and go with minimal tuition, but it is a modern language and, used with care, does not necessarily force bad programming. However, for the beginner programmer it does have a few gotchas and things that will not mesh with future languages (code that, while unambiguous to the compiler, is ambiguous to the reader is my favourite and I was caught out by boolean and not being lazy).

Logo would probably get my vote, though I've not used it for many many years. It has the advantage of immediately giving visual, non-text output which would, I imagine, help inspire and motivate new programmers.

Python also has a very low barrier to entry, with excellent tutorials available all over the place, a large set of libraries to draw on as you progress with minimal requirement to know them to get anything done and it's fairly easy to go from no knowledge to meaningful output. Its main disadvantage is tooling, to my knowledge, comprehensive IDEs for it seem unavailable (though I must confess I didn't look for long). It does have a big advantage in that it's used as an extension language in many products so it's easier to find a reason to learn it and there are many places where you can apply your knowledge.

Scheme would certainly be an easy language to learn (level 0 really doesn't give you much to work with/learn...) and I certainly found it enjoyable to work with but a big part of that was how very differently I had to think compared to procedural languages which a new programmer would not experience.
Was This Post Helpful? 2
  • +
  • -

#33 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5795
  • View blog
  • Posts: 12,627
  • Joined: 16-October 07

Re: Easiest language to learn

Posted 22 June 2013 - 04:31 AM

This again should be emphasized: easiest to learn.

BASIC has issues and generally doesn't offer enough tools to overcome those issues. But, it is easy to learn.

Logo: I should mention that I once had the great pleasure of teaching children (grades 1-5 ) Terrapin Logo on Apple ][. Some still weren't strong with letters, but give them a couple RT 90 FD 10 and off they went. Some of the fifth graders were actually up to procedures.

Python: A great and useful language. The only issue is scale. There's a whole lot of stuff that can be thrown at a Python student. Fun from programmers, but not for those starting out. It's just not as simple as those languages from a more primitive era.

I guess my point is really simplicity. Low cost of entry. Languages where you don't have to learn a boat load of things and can hit the ground running. We've lost the idea of a learning language and expect beginners to take up the tools of experienced programmers from the start. I'm not sure that's a good thing.

Note on GOTO: We've had this out, GOTO is evil. However, context is everything. GOTO is evil in procedural languages. In BASIC and assembly, it is the tool you have. Modernly, I use it in batch scripts and T-SQL without shame.
Was This Post Helpful? 1
  • +
  • -

#34 andrewsw  Icon User is offline

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3316
  • View blog
  • Posts: 11,188
  • Joined: 12-December 12

Re: Easiest language to learn

Posted 22 June 2013 - 04:32 AM

@tevildo Nice, reasoned, post ;)

I use Komodo Edit with Python. Komodo Edit is a favourite editor but it does require a couple of steps to configure for Python. Mainly, pointing the preferences at the Python location, and possibly a slight edit to the run command:

%(python3) "-u" "%F"
# for Python 3

There are a number of dedicated, and mainly free, Python editors/IDEs. I understand eclipse and even Visual Studio have Python configurations.

This post has been edited by andrewsw: 22 June 2013 - 04:34 AM

Was This Post Helpful? 0
  • +
  • -

#35 tevildo  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 3
  • Joined: 01-October 12

Re: Easiest language to learn

Posted 22 June 2013 - 04:48 AM

My main issue with Python IDEs has always been debugging - especially debugging of plugins for other apps (I'm talking from experience with QGIS...). I've yet to find one that can attach to a running process and catch the entry to Python. This, of course, is not exclusive to Python but it is why all my QGIS plugins are written in C++... Certainly not a reason to pass over Python as a first language. I will give Komodo Edit a try, it might be enough to get me back into Python programming.

I've not found a usable VS extension for standard Python, but the IronPython bits do work well. Of course, then you're using .NET instead of the Python libraries which is not ideal for portability (yeah, there's Mono but it doesn't support all of .NET and for a beginning language having to be taught what to avoid for portability can't be ideal).

I think one of the most important things a first language has to provide is motivation to learn - certainly with modern languages that, as baavgai noted, aren't nearly as easy to learn as older languages. If it's reasonably easy for you to get a language to do something useful it can inspire you to think of things you might want to do and that, more than the simplicity, will get you to continue learning the language. I've often given up / got bored learning a new language because I can't see the point and have no real goal other than learning it. But as soon as I have a project or an idea I want to implement then suddenly learning it becomes just another step towards that.
Was This Post Helpful? 0
  • +
  • -

#36 andrewsw  Icon User is offline

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3316
  • View blog
  • Posts: 11,188
  • Joined: 12-December 12

Re: Easiest language to learn

Posted 22 June 2013 - 04:55 AM

Komodo Edit doesn't have Python debugging either, maybe Komodo IDE (the paid version) does. But, hey! This is Python: we don't need no debugger. (Though, perhaps tevildo has a use-case where one would have been useful.)

This post has been edited by andrewsw: 22 June 2013 - 04:58 AM

Was This Post Helpful? 0
  • +
  • -

#37 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1946
  • View blog
  • Posts: 4,047
  • Joined: 11-December 07

Re: Easiest language to learn

Posted 22 June 2013 - 02:06 PM

Quote

Maybe we could have a reasonable and intelligent debate about this


I take issue with that quote from Dijkstra, possibly because BASIC (with line numbers) was my first language. While BASIC did not teach me much about structuring my code, it was a vehicle for me to solve a lot of problems for a number of years. I didn't find that it hindered me in my studies either. Programming classes have always been easier for me than other subjects.

The quote itself seems intrinsically ignorant, which is quite surprising for someone of Dijkstra's intellectual stature. I hope it has been taken terribly out of context (do you have a link to the full text?)
Was This Post Helpful? 0
  • +
  • -

#38 andrewsw  Icon User is offline

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3316
  • View blog
  • Posts: 11,188
  • Joined: 12-December 12

Re: Easiest language to learn

Posted 22 June 2013 - 02:16 PM

There is a transcript here - 'the threats to computer science'.

I remember the ZX81, in 1K. There wasn't much room for the niceties of structure, but how many people did it introduce to the idea of programming?

Quote

The unexpanded ZX81's tiny memory presented a major challenge to programmers. Simply displaying a full screen takes up to 768 bytes, the system variables take up another 125 bytes and the program, input buffer and stacks need more memory on top of that. Nonetheless, ingenious programmers were able to achieve a surprising amount with just 1 kB. One notable example was 1K ZX Chess by David Home, which actually managed to squeeze most of the rules of chess into only 672 bytes.

I remember the chess game as well - astonishing (but not a great opponent ;)).

This post has been edited by andrewsw: 22 June 2013 - 02:25 PM

Was This Post Helpful? 1
  • +
  • -

#39 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5795
  • View blog
  • Posts: 12,627
  • Joined: 16-October 07

Re: Easiest language to learn

Posted 22 June 2013 - 02:26 PM

Dijkstra's BASIC quote really needs context.

It's from a humorous article and clearly not meant to be taken too seriously. Read it here: How do we tell truths that might hurt?
Was This Post Helpful? 2
  • +
  • -

#40 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1946
  • View blog
  • Posts: 4,047
  • Joined: 11-December 07

Re: Easiest language to learn

Posted 22 June 2013 - 02:45 PM

Thanks for the links. They certainly do show the quote in a different light.
Was This Post Helpful? 0
  • +
  • -

#41 andrewsw  Icon User is offline

  • Fire giant boob nipple gun!
  • member icon

Reputation: 3316
  • View blog
  • Posts: 11,188
  • Joined: 12-December 12

Re: Easiest language to learn

Posted 22 June 2013 - 02:46 PM

I like this quote from the previous link:

Quote

Simplicity is prerequisite for reliability.

a corollary to which would be "any sufficiently complex system will fail". I seem to recall a similar quotation, but can't quite place it? Maybe I'm mixing it up with Godel's incompleteness theorems.

Or maybe it was just Donald Rumsfeld :)

Quote

There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don't know. But there are also unknown unknowns. There are things we don't know we don't know.

This post has been edited by andrewsw: 22 June 2013 - 02:48 PM

Was This Post Helpful? 0
  • +
  • -

#42 lordofduct  Icon User is offline

  • I'm a cheeseburger
  • member icon


Reputation: 2533
  • View blog
  • Posts: 4,633
  • Joined: 24-September 10

Re: Easiest language to learn

Posted 22 June 2013 - 04:29 PM

We needed that 30 year old quote emboldened.

Because you know, because languages haven't evolved over time and changed as paradigm preferences changed in time. No... all languages, and its dialects, are static. The existence of dialects proves that staticness... o.O

What I find interesting is that you state that quote along with admitting you started out with BASIC. Are you implying that you think you yourself are mentally mutilated? Or are you just trying to blame your mental mutilation on BASIC?
Was This Post Helpful? 0
  • +
  • -

#43 AVReidy  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 65
  • View blog
  • Posts: 431
  • Joined: 17-February 11

Re: Easiest language to learn

Posted 22 June 2013 - 08:33 PM

Over all, it's probably Python. But Javascript is famously described as the only language that people don't feel they need to learn before they use it. (Maybe that's only true for people who are familiar with C-like syntax.) I think Java is the easiest language to learn well. For example, someone who starts out with Python might spend a year writing spaghetti code, while Java coders are effectively forced to learn OOP (which is arguably superior for organization to spaghetti code). The Python noob might make his first text-based RPG first, but the Java noob will be a close second and will have a better grasp of programming in general (not to mention C-like syntax). Having taught myself with Java, primarily, I have to say that OOP was just distracting until I made my first game. So while it turns out to be a decent language, Java comes with a lot of distracting overhead that is only useful to people working on big, multi-person projects. I think the ideal language would be something straightforward and statically-typed like Java, but without forced or overly-complex OOP. In other words, the happy medium between Java and Python.
Was This Post Helpful? 0
  • +
  • -

#44 Lemur  Icon User is offline

  • Pragmatism over Dogma
  • member icon


Reputation: 1359
  • View blog
  • Posts: 3,425
  • Joined: 28-November 09

Re: Easiest language to learn

Posted 22 June 2013 - 11:15 PM

The GoTo debate again? Really?

I did an experiment to find some of this out myself. My idea was that programmers could start from one of two camps, imperative or functional. I took a few people with no programming experience and taught them both forms. One started Functional, the other Imperative. Then they switched.

The first note is that it's a horrible idea to try and go functional for someone without mathematical backing. The mathematician that started functional did amazingly, while the arts major was completely baffled. The math major frequently made excited sounds as he found parralels between it and set theory among other things.

The people who started and learned functional properly were very quickly annoyed with imperative languages. Most of the comments were on verbosity, ubiquity of OO even when unnecessary, the ease of breaking things, and the massive syntax memorization lists. After some time, they were able to program imperatively but did not want to touch anything lower level than C#, preferring Ruby and Python instead.

The people who started Imperative were business and physics types. Again, complaints on how many rules there were to memorize and how much of it seemed repeated, especially from the physics major. After being able to build small programs they were given a functional language. The Physics major became an almost instant convert, not having many problems picking functional up. The business guy didn't like it at all, claiming no structure or clear rules that made it hard to think logically about things.

At this point I have to say it was still inconclusive and I want to get a hold of a larger sample size than four people. Interesting trends, yes, but not enough to draw good inferences.

Languages used were Scheme, C#, Ruby, and Python.
Was This Post Helpful? 2
  • +
  • -

#45 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7621
  • View blog
  • Posts: 12,848
  • Joined: 19-March 11

Re: Easiest language to learn

Posted 23 June 2013 - 08:11 PM

View PostAdamSpeight2008, on 21 June 2013 - 07:30 PM, said:

Quote

... Can't you break to a label ...


So that would be a GoTo then?

Edit: You also use my quote out of context. I was showing that a while is essentially a GoTo with a Conditional Branch / Jump.



No, you've misunderstood completely. The problem with goto is not that it allows transfer of the flow of control. The problem is that it allows unrestricted transfer of flow of control.


It's the difference between

while (true) {
  foo();
  if (bar()) 
    break;
  baz();
}



and
goto A_HAM_SANDWICH



In the first example, you know exactly where the program can go, and you know before you even look at it that you can only land in certain locations. Specifically, you can never land in the middle of a stream of instructions, you can only ever land at the top or the bottom of a loop.

In the second example, you have absolutely no idea, a priori, where you're going to land. At absolute best, the programmer might be both responsible and reliable, and, in meaning to do the right things and successfully doing what they meant, they have not launched you into some random string of code somewhwere. So at best you get to hope that you end up with what the first example guarantees you.
Was This Post Helpful? 2
  • +
  • -

  • (5 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • 5