Best language for n00bs

Please compose all posts in Emacs.

Moderators: phlip, Moderators General, Prelates

Re: Best language for n00bs

Postby Mortabis » Fri Apr 18, 2008 11:22 pm UTC

Java, IMO, is the worst choice, since it's obsessively OOP and not in a good way like Ruby. Hell, input, or at least the only ways I know of obtaining it, is through objects. This makes no sense, since, for instance, command line output is not object-oriented.

The language used should either be C or Python. C forces you to learn what's actually happening in memory. It's been really helpful to me to understand pointers when I program in Python, or Java, or any language at all. Admittedly, a significant portion of my time coding in C is tracking down segfaults. But once the segfaults are fixed my programs usually do what they were supposed to do, and properly.

Python on the other hand lets you ignore all of the low-level crap. Duck typing means you don't have to worry about the type system at all, and its garbage collection really good. Although you don't learn what the computer is actually doing when your program runs, the high-level nature of the language makes it a lot easier to study stuff like algorithms and AI. My school offers several CS course: Intro CS and AP CS in java because they have to be, Artificial intelligence in Python and Ruby (simultaneously), and Parallel Computing and Computer Architecture in C. And if the College Board gets rid of AP CS, we'll be switching intro to Python, and offering some class in place of AP CS, probably in C but possibly in Lisp.

And if anyone in reading this thread is just learning to program, the language I recommend depends on what you want to do. If you want to learn actual Computer Science, which is NOT the same thing as programming, start with Python. If you want to learn to program start with C.
Image
User avatar
Mortabis
 
Posts: 50
Joined: Fri Feb 08, 2008 12:24 am UTC

Re: Best language for n00bs

Postby Rysto » Fri Apr 18, 2008 11:38 pm UTC

Mortabis wrote:Java, IMO, is the worst choice, since it's obsessively OOP and not in a good way like Ruby. Hell, input, or at least the only ways I know of obtaining it, is through objects. This makes no sense, since, for instance, command line output is not object-oriented.

You going to justify this at all? Why can't you model I/O with objects?
Rysto
 
Posts: 1420
Joined: Wed Mar 21, 2007 4:07 am UTC

Re: Best language for n00bs

Postby poohat » Sat Apr 19, 2008 2:47 am UTC

Rysto wrote:You going to justify this at all? Why can't you model I/O with objects?

You can, its just confusing for beginners and a bit pathological - no language would even think about doing it unless it had made a prior commitment to use OO for everything.

Mortabis wrote:
And if anyone in reading this thread is just learning to program, the language I recommend depends on what you want to do. If you want to learn actual Computer Science, which is NOT the same thing as programming, start with Python. If you want to learn to program start with C.
But C just isnt fun. I think its important for new people to actually enjoy the learning process rather than get frustrated about quirks of the language theyre using, which is why python is probably a better choice imo. Yeah, you need to learn C at some point, but why should it be a first language?
poohat
 
Posts: 226
Joined: Mon Apr 07, 2008 6:21 am UTC

Re: Best language for n00bs

Postby btilly » Sat Apr 19, 2008 4:10 am UTC

poohat wrote:
Rysto wrote:You going to justify this at all? Why can't you model I/O with objects?

You can, its just confusing for beginners and a bit pathological - no language would even think about doing it unless it had made a prior commitment to use OO for everything.

I think you're confusing modeling everything with OO with modeling everything verbosely with OO. Compare Java to Ruby, which takes OO everywhere considerably farther than Java. (Quick, what methods can you call on 1?) But Ruby hides the OO behind some smart defaults so that it disappears under the covers until you need it.

The result? Hello, world in Ruby is
Code: Select all
puts "Hello, world"

while in Java it is
Code: Select all
class myfirstjavaprog

    public static void main(String args[])
    {
        System.out.println("Hello World!");
    }
}
Some of us exist to find out what can and can't be done.

Others exist to hold the beer.
btilly
 
Posts: 1877
Joined: Tue Nov 06, 2007 7:08 pm UTC

Re: Best language for n00bs

Postby ash.gti » Sat Apr 19, 2008 5:03 am UTC

btilly wrote:I think you're confusing modeling everything with OO with modeling everything verbosely with OO. Compare Java to Ruby, which takes OO everywhere considerably farther than Java. (Quick, what methods can you call on 1?) But Ruby hides the OO behind some smart defaults so that it disappears under the covers until you need it.


I'd like to point out how Smalltalk takes this one step further... (the if statements even an object...)

Plus, in Ruby you can dynamically re-define any part of the language, as you should be able to with any good OO language. Need all integers to have a factorial function? Then just dynamically extend the Integer Module (included in Fixnum and Bignum which are Rubies two integer classes depending on the size of the number).

I <3 Ruby.

Smalltalks nice IMO, but I never found an implementation of it I like, unless you count Ruby :-P

ooo, and btw all the methods 1 has in ruby are:

Code: Select all
kingsteve@Ubuntu~$ irb
>> 1.methods
=> ["%", "inspect", "<<", "singleton_method_added", "&", "clone", ">>", "method", "round", "public_methods", "instance_variable_defined?", "divmod", "equal?", "freeze", "integer?", "chr", "*", "+", "to_i", "methods", "gem", "respond_to?", "-", "upto", "between?", "prec", "truncate", "/", "dup", "instance_variables", "__id__", "modulo", "object_id", "succ", "|", "eql?", "zero?", "require", "~", "id", "to_f", "singleton_methods", "send", "prec_i", "taint", "step", "to_int", "frozen?", "instance_variable_get", "__send__", "^", "instance_of?", "remainder", "to_a", "+@", "nonzero?", "-@", "type", "**", "floor", "<", "protected_methods", "<=>", "instance_eval", "==", "prec_f", "quo", ">", "display", "===", "downto", "id2name", "size", "instance_variable_set", "kind_of?", "abs", "extend", ">=", "next", "to_s", "<=", "coerce", "hash", "ceil", "class", "tainted?", "=~", "private_methods", "div", "nil?", "untaint", "times", "to_sym", "[]", "is_a?"]


*Done being a smartass... *


/On Topic

I personally don't mind Java, especially for beginners... I just don't think its that great of a language. I mean, yeah, it works on just about any platform that matters, ya its not the slowest language around, and it is pseudo-multi-paradigm, its just not the first thing I'd go to for most programming solutions.

poohat wrote:But C just isnt fun.


In your opinion... Now, I may not love C, but I do very much enjoy programming, even in C. I still think C++ should be most *serious* programmers second or third language at the latest. Because of simply how much it teaches you about programming, about styles, about coding practices, etc.

Maybe more people should learn Objective-C near the beginning instead of C++... I duno, I still don't know which OO implementation I like better... I mean I'd say Ruby, but its not of the C family :-P
# drinks WAY to much espresso
User avatar
ash.gti
 
Posts: 404
Joined: Thu Feb 07, 2008 1:18 am UTC
Location: Probably a coffee shop.

Re: Best language for n00bs

Postby poohat » Sat Apr 19, 2008 6:49 am UTC

ash.gti wrote:In your opinion... Now, I may not love C, but I do very much enjoy programming, even in C. I still think C++ should be most *serious* programmers second or third language at the latest. Because of simply how much it teaches you about programming, about styles, about coding practices, etc.
I meant compared to more expressive higher level languages where the logical structure of your code/ideas doesnt get distorted to make it fit into very rigid paradigms, along with all the memory-management tediousness.
poohat
 
Posts: 226
Joined: Mon Apr 07, 2008 6:21 am UTC

Re: Best language for n00bs

Postby Mortabis » Sun Apr 20, 2008 6:29 pm UTC

Rysto wrote:
Mortabis wrote:Java, IMO, is the worst choice, since it's obsessively OOP and not in a good way like Ruby. Hell, input, or at least the only ways I know of obtaining it, is through objects. This makes no sense, since, for instance, command line output is not object-oriented.

You going to justify this at all? Why can't you model I/O with objects?


Yes, I am going to justify it. Scanners are bullshit. I see no point in making everything object-oriented. Certain things benefit from OOP, like widget toolkits. But basic, command line IO, or even file IO in general does not. You use the right tool for the right task. It's perfectly possible to describe a file as an object. It's got a location, it's got a size, it's got a mode, it's got the crap that's in it. That lends itself to OOP. Yet that doesn't mean that describing it that way is better than just using functions. I'm still having trouble working my mind around scanners and so are all of my classmates. Scanf is obvious and easy to use, being simply the opposite of Printf. You tell it a format, then you tell it variables to store stuff in. For Printf, you tell it a format and the variables to retrieve stuff from. As a result C's output and input are mirror images of each other. This demonstrates what I think is an important concept in a language's IO system: Consistency. Output in Java is not through objects. It's a simple function: System.out.printf() (Which is a little wordy, but so is the rest of java). Whereas input is an object. When I first learned java it took me hours to figure out how to get input, and in the end I didn't actually succeed. It wasn't until months later that I learned how to use JOptionPane, which still wasn't a very good solution since I'm often running programs sshed into school, without the luxury of a GUI.

/end rant.

In any case, I have gone through the experience of trying to hassle with Java's input, and in the end, I gave up and switched to C. I think that's decently empirical evidence that something is wrong with the IO system in Java.
Image
User avatar
Mortabis
 
Posts: 50
Joined: Fri Feb 08, 2008 12:24 am UTC

Re: Best language for n00bs

Postby Rysto » Sun Apr 20, 2008 6:52 pm UTC

You see, you make the mistake of seeing that Java's console I/O sucks, and concluding that designing I/O around objects must suck. Improving the console I/O interface is not high on Sun's todo list.

Output in Java is not through objects. It's a simple function: System.out.printf() (Which is a little wordy, but so is the rest of java). Whereas input is an object.

System.out is an object of type PrintStream. print() and println() are methods on PrintStream. So output is done through an object.

Have you ever used C++ I/O? It is also done through objects, but the interface is much cleaner and easier to use. The problem isn't objects; the problem is Java's poor implementation.
Rysto
 
Posts: 1420
Joined: Wed Mar 21, 2007 4:07 am UTC

Re: Best language for n00bs

Postby Xanthir » Tue Apr 22, 2008 4:36 pm UTC

I'm probably weird in this, but I actually did find learning C++ fun (it was my first language), because I honestly enjoyed pointers. I think that puts me in a small group, though, since from what I've heard most people *stop* programming when they hit pointers (or just shift sideways into things that never involve that sort of indirection). When I stopped programming in languages that explicitly exposed pointers, I switched over to heavy use of closures which are similar in my brain.

I don't really like hacking in C++ anymore, but then again, I'm doing small-scale app development in PHP which is relatively similar and enjoying that, so shrug.
(defun fibs (n &optional (a 1) (b 1)) (take n (unfold '+ a b)))
User avatar
Xanthir
My HERO!!!
 
Posts: 3988
Joined: Tue Feb 20, 2007 12:49 am UTC
Location: The Googleplex

Re: Best language for n00bs

Postby Ptolom » Mon Apr 28, 2008 6:16 pm UTC

I started with the awesome bbc basic. I'm currently grappling with learning C++
It Should Be Real wrote:Fuck the wizard.
We're doing this manually.

http://www.hexifact.co.uk - Hacking blog: in which I take some things apart, and put other things together.
User avatar
Ptolom
 
Posts: 1428
Joined: Mon Mar 24, 2008 1:55 pm UTC
Location: The entropy pool (Leicester)

Re: Best language for n00bs

Postby lurkersanonymous » Sat May 03, 2008 2:06 am UTC

Dark Shikari wrote:I'd say the best three newbie languages are C (NOT C++), Java, Python, and Scheme, depending on how you want to approach the problem of learning programming.


Your definition of 3 differs from mine....

I started with C++, hated it. Moved to C, hated it. Moved to Python, love it and haven't moved on.

I like Python because it is really simple to use, yet can still do a lot of clever stuff.
This just in from the tether ball Court, Obama's friend said Ms. Clinton has cooties.
User avatar
lurkersanonymous
 
Posts: 12
Joined: Thu May 01, 2008 12:09 am UTC

Re: Best language for n00bs

Postby Kirby54925 » Sun May 04, 2008 10:23 pm UTC

Started with Scheme. I loved it because it was so simple, yet very expressive. Then I tried Java. Okay experience with it. Then I moved on to Haskell. Instantly fell in love with it. Never going back to any other language again (save for Python, which I think represents the best of some worlds).

Here's something to stir the pot: FP > OOP for programming in general, especially for n00bs.
Kirby54925
 
Posts: 36
Joined: Thu Dec 13, 2007 3:43 pm UTC

Re: Best language for n00bs

Postby ash.gti » Mon May 05, 2008 2:46 am UTC

Kirby54925 wrote:FP > OOP for programming in general, especially for n00bs.


I respectfully disagree.

FP has its uses, and thats when speed is more important than maintainability. But that is not often the case.

To quote wikipedia, and any book that covers the history of programing languages and/or any discussion of the differences between paradigms:
As hardware and software became increasingly complex, researchers studied ways in which software quality could be maintained. Object-oriented programming was deployed in part as an attempt to address this problem by strongly emphasizing discrete units of programming logic and re-usability in software.


OO was designed from the get go as a maintainable approach. Functional in almost every case (unless your using very very specifically designed hardware) will out preform OO, however functional is harder to maintain. In most cases code maintainability is equally, or sometimes more important than the program running blazing fast.
# drinks WAY to much espresso
User avatar
ash.gti
 
Posts: 404
Joined: Thu Feb 07, 2008 1:18 am UTC
Location: Probably a coffee shop.

Re: Best language for n00bs

Postby poohat » Wed May 07, 2008 5:58 am UTC

ash.gti wrote:OO was designed from the get go as a maintainable approach. Functional in almost every case (unless your using very very specifically designed hardware) will out preform OO, however functional is harder to maintain. In most cases code maintainability is equally, or sometimes more important than the program running blazing fast.
This is a bit of a strange claim: theres no dichotomy between functional programming and OOP, unless by OOP you specifically mean "OOP in the way that Smalltalk/Java does it (where objects have state)". The generic function approach to OOP (http://en.wikipedia.org/wiki/Generic_function) used in languages such as the common lisp object system allows you to program using standard OOP techniques (inheritence, polymorphism, etc) without the need to talk about objects 'owning' variables/methods or having any state.

Also even if youre talking about Java-style OOP, I dont think its true that functional programming is necessarily going to be faster/more efficient than OOP. Why would that be the case?




edit: Ive been learning Python this month and I quite like it. I go by the principle that the closer a language is to Lisp, the better its likely to be, and python is pretty close to Lisp. I do still think that Lisp is a better language since its syntax/semantics allows the powerful macro system which other languages like python could never have, but its good anyway (even if very slow compared to Lisp) and has far better libraries available which is the main problem with using Lisp for many practical tasks.
poohat
 
Posts: 226
Joined: Mon Apr 07, 2008 6:21 am UTC

Re: Best language for n00bs

Postby Dusty Chalk » Thu May 08, 2008 12:36 am UTC

I cut my teeth on Pascal -- I still think it's a great choice.
I remain,
:-Peter, aka :-Dusty :-Chalk
User avatar
Dusty Chalk
 
Posts: 142
Joined: Thu May 01, 2008 9:00 pm UTC

Re: Best language for n00bs

Postby aleflamedyud » Thu May 08, 2008 1:04 am UTC

I remember my learning to program. It was in Delphi 5 Standard. Good times.
"With kindness comes naïveté. Courage becomes foolhardiness. And dedication has no reward. If you can't accept any of that, you are not fit to be a graduate student."
User avatar
aleflamedyud
wants your cookies
 
Posts: 3307
Joined: Tue Oct 09, 2007 7:50 pm UTC
Location: The Central Bureaucracy

Re: Best language for n00bs

Postby a toddler » Fri May 09, 2008 10:13 am UTC

i learnt programming on the ultimate programming software for n00bs.... Visual Basic for windows!

it is so damn easy its funny.

by comparison, when i tried to tackle C++, i nearly broke.

for noobs, definitely VB.
User avatar
a toddler
 
Posts: 4
Joined: Fri May 09, 2008 9:42 am UTC

Re: Best language for n00bs

Postby cypher » Wed May 14, 2008 7:30 pm UTC

The first thing I learned was HTML. That isn't really a language, but it felt like it. Then I learned Javascript. Javascript is very easy. Then I jumped into C++, where I am still today. I'm toying with Python, but to me Python is very confusing. I like the way things are written in C++. :|
find the limit as x approaches infinity of
___x___
(x2+1)1/2
using L'Hôpital's rule.
User avatar
cypher
 
Posts: 41
Joined: Mon May 05, 2008 9:22 pm UTC

Re: Best language for n00bs

Postby zenten » Wed May 14, 2008 8:05 pm UTC

As to worst language, anything has to be better than Turing, or even worse, Object Oriented Turing.
zenten
 
Posts: 3765
Joined: Fri Jun 22, 2007 7:42 am UTC
Location: Ottawa, Canada

Re: Best language for n00bs

Postby AbAbsurd » Fri May 16, 2008 7:45 pm UTC

N00bs should suffer... so that in the future they will be able to learn any language in 5 minutes!

IMHO, teaching OO languages before imperative addicts people. They end up wanting to use OO to code square roots programs, and the simplest (in the sense of having a neat sourcecode) chess game I have ever seen was coded in C using the Windows API by a first semester student (ok, the WinAPI bit was a little too much, he could have used RGL or something).

And functional programming scares anyone who isn't a mathematician at heart. Stick with good ol' ANSI C in the beggining, teach them how to do inimaginable classes in C++, to rebuild a BIOS in ASM, meld their brains with a Brainfuck Interpreter written in Malbolge and only then let them play with real world stuff.
AbAbsurd
 
Posts: 0
Joined: Fri May 16, 2008 7:21 pm UTC

Re: Best language for n00bs

Postby ash.gti » Fri May 16, 2008 8:31 pm UTC

AbAbsurd wrote:N00bs should suffer... so that in the future they will be able to learn any language in 5 minutes!

IMHO, teaching OO languages before imperative addicts people. They end up wanting to use OO to code square roots programs, and the simplest (in the sense of having a neat sourcecode) chess game I have ever seen was coded in C using the Windows API by a first semester student (ok, the WinAPI bit was a little too much, he could have used RGL or something).

And functional programming scares anyone who isn't a mathematician at heart. Stick with good ol' ANSI C in the beggining, teach them how to do inimaginable classes in C++, to rebuild a BIOS in ASM, meld their brains with a Brainfuck Interpreter written in Malbolge and only then let them play with real world stuff.


I don't really agree with hiding OO from new people. Showing noobs every paradigm from the get go will widen there understanding of how software is made. For instance I know some very good programmers that will go out and prototype their OO code in Smalltalk because its a lot easier and quicker to prototype in than C++, then once they have the basics down they move their code to C++.

What about introducing people to Objective-C? I'd much rather teach that to a noob than C++. You can always come back and mix-in C++ into your Objective-C, which is great because it will give you access to all the C++ libraries as well as Objective-C.

I still personally equate most versions of lisp to mathematics, but thats because I don't have as much experience with them as I should. Either way I think its probably better for someone that is new to programming to get a taste of everything that is programming, not the things a handful of people find important. If they know all the tools that are out there then they can make a better decision as to which one is the right one for whatever they are trying to do.
# drinks WAY to much espresso
User avatar
ash.gti
 
Posts: 404
Joined: Thu Feb 07, 2008 1:18 am UTC
Location: Probably a coffee shop.

Re: Best language for n00bs

Postby Kirby54925 » Fri May 16, 2008 9:06 pm UTC

Yes, Lisp did have a lot of history with mathematics and AI, but a famous example of Lisp in industry is an early version of the Yahoo! store (Viaweb) coded by Paul Graham.

I dunno, though. Since I stuck with Scheme for about a year and a half before moving on to other languages, I tend to hold a more functional view of programming. Aside from some of the points raised earlier, I really don't see what's so scary about functional programming. From the look of things, I suppose it's because most people equate functional programming to the ivory-towerish mathematical research community. (and for full disclosure, I only know a little C, but I already don't like it because of all the low-level details that must be taken into account. I prefer programming for humans, not for computers.)
Kirby54925
 
Posts: 36
Joined: Thu Dec 13, 2007 3:43 pm UTC

Re: Best language for n00bs

Postby simo » Sat May 17, 2008 4:15 pm UTC

I feel sad that noone has mentioned lua!

I'd say lua is one of the simplest scripting languages to learn, its really forgiving and of course its a great introduction to the power of C. I learnt lua in an evening, even things like creating complex object orientated behaviour were a breeze due to the single data structure type.
simo
 
Posts: 227
Joined: Sat Dec 08, 2007 12:17 am UTC
Location: In ma Bucket! (bournemouth uk)

Re: Best language for n00bs

Postby Chugga » Sat May 24, 2008 2:17 pm UTC

I only began learning programming last year, in a Computer Science subject as part of a general Science course. The course was designed for people with little or no experience with programming, and we were started off on C. I don't know a huge number of languages (since then I've only learned Haskell and dabbled in C#), but i can attest to how incredibly easy it was to learn C using the book Programming, Problem Solving and Abstraction with C by Alistair Moffat. If you can get your hands on it it's a great book. Alistair was the lecturer from the first semester of the course, and his book is almost word for word what he says in lectures (I still attended them due mostly to his charisma and ability to generate enthusiasm for the subject) and is designed for people with no prior language experience.

It'd probably be pretty hard to get ahold of the book, as It hasn't been widely published as far as I know, but my point is that i think that learning to program is less about which language you start with (from what you've been saying, C is relatively difficult to wrap your head around initially - I found it a breeze) and more about the resources you have to learn from.

But then, I'm sure you've all been doing this much longer than I have, and therefore probably have a much better idea of what is required. This is my first post to the community by the way, so Hello to you all.
User avatar
Chugga
 
Posts: 5
Joined: Sat May 24, 2008 2:01 pm UTC

Re: Best language for n00bs

Postby TomBot » Sat May 24, 2008 6:45 pm UTC

I won't disagree that learning resources are helpful, but I don't think it's the biggest factor. You need to be (self-) motivated, and for that you need to be able to very quickly get to a point where you can do something cool. I mean, hell, I learned QBASIC back in the day with nothing but its help file, but it would have gotten boring quickly if not for cheating at Nibbles and writing screensavers.
User avatar
TomBot
 
Posts: 228
Joined: Sun Jul 29, 2007 1:17 am UTC
Location: Illinois (UIUC)

Re: Best language for n00bs

Postby Barton » Sat May 24, 2008 10:24 pm UTC

.
Last edited by Barton on Fri Jul 16, 2010 6:53 am UTC, edited 1 time in total.
Barton
 
Posts: 20
Joined: Sun Apr 06, 2008 6:56 pm UTC

Re: Best language for n00bs

Postby UchihaJax » Sun May 25, 2008 2:51 pm UTC

I'd suggest Javascript first, as it contains classic programming syntax and is a concept close enough to home for most novices (create file in notepad, open in web browser. Done!).
I'd then move onto an OO language probably statically typed, Java or C# as they are both prevalent have huge communities, online resources and first class support for most technologies.
Finally something more funky, either a cute scripting language for kicks (Ruby/Python) or something a bit more interesting and fundamentally different (Lisp/Scheme/F#).
UchihaJax
 
Posts: 12
Joined: Thu Sep 06, 2007 7:37 pm UTC

Re: Best language for n00bs

Postby Qoppa » Sun May 25, 2008 4:28 pm UTC

Dusty Chalk wrote:I cut my teeth on Pascal -- I still think it's a great choice.
No. I'm learning Pascal now (against my will), and it's a terrible introduction to programming. So many things are done in really dumb ways that would probably make transitioning to a 'real' languages more difficult. The lack of scope, no typecasting, the lack of a 'break' command for loops, not being able to initialize variables in their declaration, no += or similar operators, etc. are all really annoying. Also, the language is really unstandardized. Some compilers do allow operators such as += or the declaration of variables within a function, but then others don't. It's a pain to work with, and I would definitely not recommend it for any purpose.

Learn with C or C++. I started with C++. Even if the languages are a bit more complicated for a beginner, they'll be learning an actual useful language, and they'll learn about how stuff is done in the real world.
Code: Select all
_=0,w=-1,(*t)(int,int);a()??<char*p="[gd\
~/d~/\\b\x7F\177l*~/~djal{x}h!\005h";(++w
<033)?(putchar((*t)(w??(p:>,w?_:0XD)),a()
):0;%>O(x,l)??<_='['/7;{return!(x%(_-11))
?x??'l:x^(1+ ++l);}??>main(){t=&O;w=a();}
User avatar
Qoppa
 
Posts: 694
Joined: Sat Nov 24, 2007 9:32 pm UTC
Location: Yes.

Re: Best language for n00bs

Postby MrFrothy » Sun May 25, 2008 7:34 pm UTC

I fully agree with Mortabis here. I first started programming in fourth grade when I found a VB6 compiler lying around my house. At the time I wasn't thinking what the best noob language was, I was thinking "Hey cool I'm gonna learn how to program!" I got quite good at it at one point (for a fourth/fifth grader) but I never used OOP, I hadn't heard of it (lol). Years later I came back to programming (around 8th grade) when I discovered Python on my computer (because I had Civ 4, great game) and learned it basically for the same reasons I learned Visual Basic 6. I fell in love with it, then in Intro CS this year I was forced into the bitch that is Java. This is in a large number of my graphical programs:

Code: Select all
int mx = toolkit.getDefaultToolkit().getScreenSize().width;
int my = toolkit.getDefaultToolkit().getScreenSize().height;


That's just a testament to the horrible, HORRIBLE Java method naming scheme. My instructor has started letting me use Python for my labs, so when we hit strings I was finishing them in 20 minutes or less, and the other kids took several sessions because of all of the methods they had to look up. :lol:
User avatar
MrFrothy
 
Posts: 3
Joined: Sun Feb 03, 2008 2:33 am UTC
Location: ::1

Re: Best language for n00bs

Postby Xbehave » Wed May 28, 2008 12:10 am UTC

Not sure if this belongs here or in another topic but i have a similar question.
Ive got a free month now (well apart from making up for my lack of going out at other times of the year), and while i have no intetnion of becoming a programmer, im a scientist (or intend to be), im thiking of picking up a language, but im not sure what to do, because:
next year im taking an OO course (in java) for science
I'd like to tweak my KDE, which uses C++ mainly (but OTOH apparently the widgets are designed to be done in scriptable languages JS, etc)
I heard that python[353] is cool [413] and easier than others[409]

The discussion here leads me to think that Python mite be better starting point than java, and as ill only be able to learn one in the time i have i should go with that and just hope that being able to program in general comes in useful in the java course. is this a wise choice?
GENERATION 20: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.
Xbehave
 
Posts: 54
Joined: Wed Jan 09, 2008 4:45 am UTC

Re: Best language for n00bs

Postby Korandder » Wed May 28, 2008 2:18 am UTC

If you want to be a scientist especially in a field like physics you should know how to program.

Python is a useful and easy language to learn.

Not directly relevant to best language for n00bs but I am not a big fan of the Python documentation. I wish there was more 'I know how to do it in C++/Java/Perl, now how the hell do I do it in Python'. Just today I had some trouble with the difference between instance variables and static variables in Python something that the Python documentation does not make clear. Admittedly I understand the Java object model much better than I do in any other language since I was tested on it in one of my computer science classes.
Image
User avatar
Korandder
 
Posts: 161
Joined: Fri Sep 14, 2007 6:12 am UTC
Location: LoadingReadyRun Australian Astrophysical Observatory

Re: Best language for n00bs

Postby Berengal » Wed May 28, 2008 7:23 pm UTC

Agreed, python documentation leaves something to be desired. Googling for python usually yields just your regular programming tips and trickses sites, unlike Java which usually yields the online javadocs. Also, docstrings for many functions are lacking. Maybe they aren't meant to be used by regular users, but at least tell me that much. There must be something good about either the language or my searching skills though, because I haven't really gotten stuck on something because of lack of documentation. I've always found a way in the end, and usually not after too long either.

@Xbehave: Python and java aren't too different. Most of the concepts are the same, with a few differences (which could prove confusing at first. "Feature X does this in both java and python, but for input Y it doesn't? HALP!"), but compared to how different languages can be they're pretty much similar. There's also jython, which allows you to use java classes in python scripts, and python modules in java apps.
It is practically impossible to teach good programming to students who are motivated by money: As potential programmers they are mentally mutilated beyond hope of regeneration.
User avatar
Berengal
Superabacus Mystic of the First Rank
 
Posts: 2707
Joined: Thu May 24, 2007 5:51 am UTC
Location: Bergen, Norway

Re: Best language for n00bs

Postby TheGZeus » Thu May 29, 2008 12:59 am UTC

I'm gonna go out on a limb and say Logo.
Not turtle graphics Logo(though that's a given standard part of it) but a full-fledged programming language, like UCBLogo.
You're learning to program, not writing programs for people to use, so I think it makes sense to use something easy to use yet full-featured, rather than the easiest to read/learn/program in language currently in use.
TheGZeus
 
Posts: 15
Joined: Sun May 25, 2008 3:20 pm UTC

Re: Best language for n00bs

Postby TheGZeus » Thu May 29, 2008 1:47 am UTC

zenten wrote:As to worst language, anything has to be better than Turing...

Well, brainfuck IS Turing...
TheGZeus
 
Posts: 15
Joined: Sun May 25, 2008 3:20 pm UTC

Re: Best language for n00bs

Postby TheGZeus » Thu May 29, 2008 1:49 am UTC

a toddler wrote:i learnt programming on the ultimate programming software for n00bs.... Visual Basic for windows!

it is so damn easy its funny.

by comparison, when i tried to tackle C++, i nearly broke.

for noobs, definitely VB.

To me, this proves it's NOT for noobs. Anything that makes it HARDER to move to something more powerful...
TheGZeus
 
Posts: 15
Joined: Sun May 25, 2008 3:20 pm UTC

Re: Best language for n00bs

Postby Emu* » Thu May 29, 2008 2:06 am UTC

AHEM.

Having learn Basic, then Pascal, HTML, then moved onto simple Delphi (5 Standard here too), I had VB6 forced upon me.
At this point I learnt as much ASP as I needed to turn my VB recipe editor prototype into a full(ish) project on IIS5.
I then learned PHP(4) and learnt how to do HTML/CSS properly.
I learned Java in my first year at University; C C++ and more Java in my second; Smalltalk and Eiffel in my third.
I'm now learning PHP5/Zend to bring my webdev up to date a bit.

What has all this taught me?

Don't learn specific languages - learn how to write good algorithms. I didn't realise Java had for-each until I learnt about its existence in PHP. Ideally you should be able to pick up the basics of whatever language you want within a few hours, and after that it'll simply be a matter of learning what the framework/libraries you're using are capable of.
Cosmologicon wrote:Emu* implemented a naive east-first strategy and ran it for an hour, producing results that rivaled many sophisticated strategies, visiting 614 cells. For this, Emu* is awarded Best Deterministic Algorithm!
User avatar
Emu*
 
Posts: 689
Joined: Mon Apr 28, 2008 9:47 am UTC
Location: Cardiff, UK

Re: Best language for n00bs

Postby zenten » Thu May 29, 2008 3:51 am UTC

TheGZeus wrote:
zenten wrote:As to worst language, anything has to be better than Turing...

Well, brainfuck IS Turing...


Brainfuck was developed by the University of Toronto?
zenten
 
Posts: 3765
Joined: Fri Jun 22, 2007 7:42 am UTC
Location: Ottawa, Canada

Re: Best language for n00bs

Postby TheGZeus » Fri May 30, 2008 2:43 am UTC

zenten wrote:
TheGZeus wrote:
zenten wrote:As to worst language, anything has to be better than Turing...

Well, brainfuck IS Turing...


Brainfuck was developed by the University of Toronto?

Wait, tat's actually a programming language? i was referring to it's syntax being the same as the Universal Turing Machine.
TheGZeus
 
Posts: 15
Joined: Sun May 25, 2008 3:20 pm UTC

Re: Best language for n00bs

Postby zenten » Fri May 30, 2008 3:35 am UTC

TheGZeus wrote:
zenten wrote:
TheGZeus wrote:
zenten wrote:As to worst language, anything has to be better than Turing...

Well, brainfuck IS Turing...


Brainfuck was developed by the University of Toronto?

Wait, tat's actually a programming language? i was referring to it's syntax being the same as the Universal Turing Machine.


http://en.wikipedia.org/wiki/Turing_(pr ... g_language)
zenten
 
Posts: 3765
Joined: Fri Jun 22, 2007 7:42 am UTC
Location: Ottawa, Canada

Re: Best language for n00bs

Postby TomBot » Sat May 31, 2008 3:33 am UTC

Emu* wrote:Don't learn specific languages - learn how to write good algorithms. I didn't realise Java had for-each until I learnt about its existence in PHP.

Don't feel bad, it probably wasn't part of the language when you learned it, it's new in 1.5.

When I learned QBASIC as a kid, I had been programming for several months, and thought I was pretty good, before I learned about functions. I imagine VB is better, even somewhat object-oriented, but still... ugh.
User avatar
TomBot
 
Posts: 228
Joined: Sun Jul 29, 2007 1:17 am UTC
Location: Illinois (UIUC)

PreviousNext

Return to Religious Wars

Who is online

Users browsing this forum: No registered users and 8 guests