Moderators: phlip, Moderators General, Prelates
Pesto wrote:I'm not going to recommend PHP. Too many security issues to be considered.
He did also mention C++, which I am partial to. Since he's willing to spend a little money, is there a good commercial compiler out there that any of you recommend? The only one the comes to mind is Borland, but I have no idea if they're still around.
If ruby, definitely I'd say my IDE of choice would be Netbeans (and for Java, for that matter).Earlz wrote:I also can't go without recommending Ruby. It's a very elegant and nice language and it also has a 1 click installer.. I don't think SciTE should be considered a novice IDE though
0xBADFEED wrote:Standard forum answer is Python.
Also, do not do C++. C++ should not be anyone's first language.
Gears wrote:The atheists rioted after the Dutch published a blank cartoon.
GENERATION 63,728,127: The first time you see this, copy it into your sig and divide the generation number by 2 if it's even, or multiply it by 3 then add 1 if it's odd. Social experiment.clintonius wrote:"You like that, RIAA? Yeah, the law burns, doesn't it?"
cerbie wrote:"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." - E.W. Dijkstra
The BASIC he was talking about is far worse than VB6 or VB.NET (really, more akin to COBOL), but the heritage is still there, and they are unholy languages.
Pesto wrote:In general response to the thread, I know python is very popular for a first language, but I don't know what it's like under Windows. How problematic could the installation be? No harder than most applications? Is there any type of GUI interface for running the python scripts, or is it all command line?
GENERATION 63,728,127: The first time you see this, copy it into your sig and divide the generation number by 2 if it's even, or multiply it by 3 then add 1 if it's odd. Social experiment.clintonius wrote:"You like that, RIAA? Yeah, the law burns, doesn't it?"
*cough* IDLE sucks *cough*Poochy wrote:I had no problem with the installation on Windows in spite of the fact that I was feeling lazy that day and didn't bother to read any kind of setup instructions or readme. It's very simple. For an interface / IDE, I recommend IDLE.
...and I on my dad's TRS-80. Then batch files and MS-DOS QBasic. Then Visual Basic 3, then 5, then misc. custom app scripting languages (SS: Tribes' nostalgia strikes again!). They were there, and these free unixy things, along with broadband, weren't. That doesn't make any of it really good. Now, we have really good options. Having professionally used ASP (VB6, basically), and dicked around with VB.NET (when I look at docs, it's like an an extra verbose C#, but when I use it, it feels far worse, and too much like older VBs), I would still not want anyone to have to ever use them, or anything like them, ever, if possible.Pesto wrote:cerbie wrote:"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." - E.W. Dijkstra
The BASIC he was talking about is far worse than VB6 or VB.NET (really, more akin to COBOL), but the heritage is still there, and they are unholy languages.
Hey!![]()
I cut my teeth programming in BASIC on an Apple IIe, and I turned out just fine. I mean, who does this Dijkstra fellow think he is, anyway, huh?![]()
Pesto wrote:In general response to the thread, I know python is very popular for a first language, but I don't know what it's like under Windows. How problematic could the installation be? No harder than most applications? Is there any type of GUI interface for running the python scripts, or is it all command line?
Gears wrote:The atheists rioted after the Dutch published a blank cartoon.
Earlz wrote:Now this is how they recommend it. Is for you to take Cobol first then Java then C++ then Advanced C++. Doesn't this seem wrong to anyone else? That you must learn 3 different languages(which all have a learning curve and which all make it so that you talk more about the language than how to actually do anything with programming such as *real* algorithms).. idk..
But yea, so basically they want everyone's first introduction to programming to be in Cobol.. I think there is a reason there aren't many people that stay in computer science there.. (and not in the good way that say Scheme functions as a Weed out class)...
It and Fortran refuse to die, I guess. Having fixed T-SQL, ASP, and Javascript (only the most elegant languages in the world, right?) written by a Cobol programmer, as if they could be mapped to Cobol...*shudder* The thought process made sense, after I researched Cobol's workings a bit, but...ew.Earlz wrote:Funny thing to mention Cobol.. thats being taught at my college.
The thing is, Scheme would weed some people out, educate others (who may minor CS, or go into a hard scientific field), and if you're the right type, is a really fun and challenging language to learn. The only problem I could see, for a complete beginner, self-teaching (IE, this thread's topic), is that it requires and forces high abstraction right off the bat. If you don't yet have a mindset amenable to that, I could see it being an issue.But yea, so basically they want everyone's first introduction to programming to be in Cobol.. I think there is a reason there aren't many people that stay in computer science there.. (and not in the good way that say Scheme functions as a Weed out class)...
Yo. One of these days, I'll move north a bit, then move on to a BS.0xBADFEED wrote:Actually, I've never heard of a 2-year program offering a computer science degree. If you're bored you should consider transferring to a 4-year CS program.
0xBADFEED wrote:Earlz wrote:Now this is how they recommend it. Is for you to take Cobol first then Java then C++ then Advanced C++. Doesn't this seem wrong to anyone else? That you must learn 3 different languages(which all have a learning curve and which all make it so that you talk more about the language than how to actually do anything with programming such as *real* algorithms).. idk..
But yea, so basically they want everyone's first introduction to programming to be in Cobol.. I think there is a reason there aren't many people that stay in computer science there.. (and not in the good way that say Scheme functions as a Weed out class)...
You're not in a computer science program.
This is an Associates of Programming curriculum. Do they actually call this a computer science degree? Most 2-year schools are fairly upfront about the fact that it's more of a trade-focused program, and that it is definitely not a computer science curriculum. Their job, as they see it, is to (hopefully) create entry-level programmers, not computer scientists. COBOL, as unsexy, boring, backward, and old as it might be, still needs programmers. There are huge legacy systems still in use that need regular maintenance. Two year degrees are about getting jobs. The COBOL niche is probably a pretty good bet, as the other 4 year programs aren't going to touch it and it's likely to still be around for a while. Note, there's nothing wrong with these degrees, and in lots of cases they're probably a lot better bang for your buck than a 4-year degree, but they will not give you a CS education.
Actually, I've never heard of a 2-year program offering a computer science degree. If you're bored you should consider transferring to a 4-year CS program.
cerbie wrote:...and I on my dad's TRS-80. Then batch files and MS-DOS QBasic. Then Visual Basic 3, then 5, then misc. custom app scripting languages (SS: Tribes' nostalgia strikes again!). They were there, and these free unixy things, along with broadband, weren't. That doesn't make any of it really good. Now, we have really good options. Having professionally used ASP (VB6, basically), and dicked around with VB.NET (when I look at docs, it's like an an extra verbose C#, but when I use it, it feels far worse, and too much like older VBs), I would still not want anyone to have to ever use them, or anything like them, ever, if possible.Pesto wrote:cerbie wrote:"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." - E.W. Dijkstra
The BASIC he was talking about is far worse than VB6 or VB.NET (really, more akin to COBOL), but the heritage is still there, and they are unholy languages.
Hey!![]()
I cut my teeth programming in BASIC on an Apple IIe, and I turned out just fine. I mean, who does this Dijkstra fellow think he is, anyway, huh?![]()
True. It's a way to use hyperbole, relative to modern languages. A language built to be easy to learn with minimal mental abstractions (that's the Python, Ruby, etc. exception) introduces complexity barriers to its learners/users. Even adding things like proper OO, VB has been going in the wrong direction for years. It's OK for the people taking crufty stuff from Excel to Access, but what makes it OK for that also makes it a [wildly verbose for no good reason] irritation for general programming.Tirian wrote:I don't agree that the BASIC that Dijkstra couldn't teach around is preserved in any implementation from QuickBASIC forward. Structured BASIC is Pascal without pointers, unstructured BASIC was human-readable Assembly with FOR loops. Yes, you can abuse labels in modern BASIC, but you'd have to want to and it's true of every other language that has labels.
poohat wrote:I think its better for people to understand non-OO programming and how to structure code before they learn OO, so Java and C# are bad choices for a first language imo (theyre bad for lots of other reasons too).
Posi wrote:C# or Java - I'd lean to C# (nicer overall, probably more portable than Java (Mono has GTK and QT, while Java (AFAIK) just has a bad GTK).
Pesto wrote:I'm not going to recommend PHP. Too many security issues to be considered.
OOPMan wrote:Pesto wrote:I'm not going to recommend PHP. Too many security issues to be considered.
Such as?
Seriously, most PHP security issues at this point come down to developers writing shoddy code, not the
language itself. This is a problem that crosses language boundaries. SQL injection is just as possible in
Java as it is in PHP.
Gears wrote:The atheists rioted after the Dutch published a blank cartoon.
You, sir, name? wrote:OOPMan wrote:Pesto wrote:I'm not going to recommend PHP. Too many security issues to be considered.
Such as?
Seriously, most PHP security issues at this point come down to developers writing shoddy code, not the
language itself. This is a problem that crosses language boundaries. SQL injection is just as possible in
Java as it is in PHP.
The code of a programming newbie is by definition going to be shoddy. So a language intended for use on a web server is probably not a very good thing to start with.
spelunker wrote:Posi wrote:C# or Java - I'd lean to C# (nicer overall, probably more portable than Java (Mono has GTK and QT, while Java (AFAIK) just has a bad GTK).
What? I'm no Java evangelist by any means, but Java has billed itself as multi-platform since before C# existed. Mono is interesting I guess, but the JVM has been multi-platform from the beginning.
Plus, the way I understand it, Java has a "bad implementation of GTK" because, usually, Swing or AWT can do the job. Now I've never tried to use Swing or AWT outside Windows and OS X, so it could be crappy, I don't know. I've been out of the loop for Swing for a while, and I've heard it's improved quite a bit.
Anyway, either way, like I said earlier, I don't think I'd recommend either of them really to learn programming.
Posi wrote:spelunker wrote:Posi wrote:C# or Java - I'd lean to C# (nicer overall, probably more portable than Java (Mono has GTK and QT, while Java (AFAIK) just has a bad GTK).
What? I'm no Java evangelist by any means, but Java has billed itself as multi-platform since before C# existed. Mono is interesting I guess, but the JVM has been multi-platform from the beginning.
Plus, the way I understand it, Java has a "bad implementation of GTK" because, usually, Swing or AWT can do the job. Now I've never tried to use Swing or AWT outside Windows and OS X, so it could be crappy, I don't know. I've been out of the loop for Swing for a while, and I've heard it's improved quite a bit.
Anyway, either way, like I said earlier, I don't think I'd recommend either of them really to learn programming.
Well, the portability problem with Java was mostly license issues (ie Linux distros didnt provide it by default), and when C# came around the community worked up Mono that worked a whole lot better than Java did on Linux. Java was there first, but C# was in allot better shape when it got there. People didn't want to code for Java on Linux because it wasn't something that was included out of the box. Mono was includable in the box, and it built up good GTK/Gnome support off the bat. Then it got Qt support and is now a first class citizen in the KDE project as well as Gnome. Java just doesn't offer that yet.
Swing and AWT sucked. Besides looking grossly out of place, they also imploded on compositing desktops (at least when I learned it). SWT, which Eclipse uses, works a whole lot better but still is noticeably different (mostly font rendering) from GTK in look.
So while Java code is technically portable, C# is the better choice if you want to switch platforms. Both work, but all the good stuff works with C# and not Java.
(I know this post completely ignores OSX, and I am fine with that)
spelunker wrote:<snip>
Okay, so by more portable you mean "works well on Linux".
As far as Swing and AWT goes, it looks like jdk 1.6 is trying to improve on that. (Man, that website is slow...)
Earlz wrote:Um, I would say "works well on non-windows platforms". Mono works fine on OpenBSD(a unix type system that isn't linux, and is related to Mac OSX's kernel by NetBSD) and is more lightweight than Java... I think the jre license was rewritten or something I guess because there is now a jre package available, but I remember it use to be illegal to distribute a precompiled package of Java that wasn't distributed by Sun themselves.
Swing and all that is extremely ugly though. It doesn't match the way a desktop looks at all. Where as GTK at least can look like whatever platform it is on.
Plus with Mono you can get more decent languages than Java(including Ruby and Python as of late)
spelunker wrote:I'm actually teaching myself some C# now, to make myself more marketable... it's surprising how similar the two languages can be.
OO is just data structures that support inheritence and polymorphism. I think it makes a lot more sense to teach students the basics of structuring programs, and then later introduce the idea of inheritance once students understand the basics of how to create and manipulate data structures and suchlikespelunker wrote:poohat wrote:I think its better for people to understand non-OO programming and how to structure code before they learn OO, so Java and C# are bad choices for a first language imo (theyre bad for lots of other reasons too).
Why? The way I see it, since OOP models after the real world, it makes things a bit quicker to understand. People know what "cars" are, so explaining what a Car object would be like wouldn't be terribly difficult. It has wheels and doors and can drive around. Tada, we just explained properties and methods.
poohat wrote:spelunker wrote:and that OO isnt some kind of amazing paradigm that radically changes the way code is structured.
poohat wrote:OO is just data structures that support inheritence and polymorphism. I think it makes a lot more sense to teach students the basics of structuring programs, and then later introduce the idea of inheritance once students understand the basics of how to create and manipulate data structures and suchlike
poohat wrote:I think youre slightly confused; theres nothing specifically OO about having a 'Car' structure. This is just a basic example of an Abstract Data Type, which youre going to use in every language, even ones which arent OO. OO isnt about having 'Car' structures, its about having method inheritance and some kind of polymorphic dispatch. These are more compilcated than basic ADTs, so it makes sense to teach ADTs first in a non OO setting.
poohat wrote:In fact I think your post is an excellent example of why people shouldnt learn OO first - it leads to people confusing the specific Smalltalk(/Java) way of implementing OO (objects 'owning' methods) with Abstract Data Types in general, which just makes learning non-OO languages confusing.
spelunker wrote:poohat wrote:OO is just data structures that support inheritence and polymorphism. I think it makes a lot more sense to teach students the basics of structuring programs, and then later introduce the idea of inheritance once students understand the basics of how to create and manipulate data structures and suchlike
OOP also enables things like dynamic typing and member functions, which I don't believe structs can do.
Gears wrote:The atheists rioted after the Dutch published a blank cartoon.
Users browsing this forum: TNorthover and 4 guests