I've read that one should pick languages for he wants to do. Are there just like, a few languages, that when learned, would cover pretty much every job?
I'm a programming nub. I've just turned seventeen and I'm only halfway through a high-school Java course. >.>
Name:
Anonymous2007-01-20 1:07
What would be the best OO language?
Name:
Anonymous2007-01-20 1:51
Java is a good one. Teaches pretty good OO, and its widely used in business. Lots of samples on the web, and free development tools (like Eclipse) that work well for cheap students.
The "best" OO language is a heated debate full of zealotry, but SmallTalk had a pretty darn pure impimentation. Of course, its dead now, but free implimentations still exist out there. Probably not worth your time to learn, though.
I would, instead, learn a newer dynamically typed OO language, like Perl, Python, PHP or Ruby. Ruby probably has the cleanest syntax out of them all, but the rest are far standard and (IMO) useful languages. All of them can be leveraged towards web development as well, so learning them couldn't hurt.
I learned on C++. Kind of a "throw the students to the lions" approach. Worked very well for me, but the failure rate was over 50%, so its definitely not for everyone. C++ is very unforgiving, and a newbie would probably have difficulty with it.
All in all, I would say Java is a good start. Avoid M$ stuff as much as possible (it leads to the dark side), and give a dynamic language a shot too while you are at it.
Also, pick up some good books. While you can get lots of info on the net, I find it far easier to learn from a good book. Good being the operative word here - there are lots of crappy programming books out there.
Name:
Anonymous2007-01-20 2:05
if you like MS, c# is a good start too.
I went thru this path in college:
vb.net (horrible...) --> Cobol (horrible too... even the oop is horrible in cobol...) --> Java (good!) --> c# (its a copy paste of java...)
The language i enjoyed the most was java with NetBeans5 or JCreator.
C# is not a copy-paste of java. It's evemt driven, while java is pure OO (object orientated). But it is the easiest language to start with after Java, and is quite powerfull.
Visual Studio is good for learning the programming stuff. MSDN is included in it, which is a large library of it's objects and functions. Also it allows for you to use other languages as well.
Name:
Anonymous2007-01-20 12:21
Fuck Java. The only reason it's massively used is because people are using it because it's massively used.
Name:
Anonymous2007-01-20 13:10
I would, instead, learn a newer dynamically typed OO language, like Perl, Python or Ruby.
Fixed.
Name:
Anonymous2007-01-20 15:49
What's wrong with Java?
OP
Name:
932007-01-20 16:01
Languages I enjoy working with:
JAVA, PHP, Python, PERL
Languages I can tolerate:
VB.Net, C, C++
Languages I avoid like the plague:
basic, fortran, smalltalk
it is with the python what it is well made in the way it was. i would say it will be the python
Name:
Anonymous2007-01-20 18:09
touch my python
Name:
Anonymous2007-01-20 18:25
Pick up with C as a base then move up to C++ or whatever the most popular programming language is at that time (probably c++). C is pretty much a must for application programming due to the massive amounts of legacy code and just plain awesomeness of the language. Once you get a good base in C you should pretty much know how systems work (at a lower level) and if you want to know even more, head to assembly to see exactly how everything works. Assembly really isn't necessary at all nowadays and should be left to the few specialists, hardware developers and hobbyists.
It really depends on what it is you're going to be going into.
Name:
Anonymous2007-01-20 18:40
You should learn:
C, Haskell, ruby/python, assembly.
Name:
Anonymous2007-01-20 19:32
>>1
seventeen? that's the perfect age to make a shitty mmorpg in flash, then spam the boards with a link to it
Name:
Anonymous2007-01-20 19:34
i heard if you learn fortran, you magically turn into a fat 60 year old dude with a huge beard
Name:
Anonymous2007-01-20 20:21
>>3 is stupid
Ok, several people in this thread is stupid. But people saying Java is good are not to be trusted for suggestions on programming languages, as they show by liking that.
You should learn a low level language, i.e. C, not C++ shit, C, like a man, then a high-level, dynamic langauge which supports functional programming, where you have a lot of good choices. I'll name three: Python, Ruby, Lisp. You may like Python's __cleanliness__, Ruby's weeabooism, or Lisp (((((and (purity) (macros)))))).
Name:
Anonymous2007-01-21 4:18
STFU fucktard
Name:
Anonymous2007-01-21 4:19
and fuck lisp. never will you get a job doing lisp. dumb advice
Name:
Anonymous2007-01-21 6:59
>>23
I got a job doing Lisp, what can you answer now?
Name:
Anonymous2007-01-21 7:03
>>23
Programming is not just about "getting a job", moron. If you want to get a job fast, learn Cobol and Java, and fuck your life by hating your job for the rest of it and being a mediocre programmer at best. Read:
You don't really "need" a language to know how to program. If you can do good algorithms, then the language becomes irrelevant. Once you know how to do your programming logic quickly and efficiently, the only thing you have left to do is choose a language, learn its vocabulary and syntax, and off you go.
C++ can be used fairly well without having to jump into object-oriented right off the bat. I personally like C++ better than C. It's a bit easier and faster to type and read, but it retains the ability to allow you do to "classic" DOS-like programs to learn the ropes. Once you're done, you can then jump into OO without much trouble.
Name:
Anonymous2007-01-21 11:24
Perl is awful to start with.
C is perfect to start programming, as it is quite unforgiving (you won't learn bad habits). Good idea to know C before digging into C++ (I hate C++ btw).
I like Java, but I don't think it's good for a first approach. Too much abstraction about what's going on in the JVM, and you end up knowing how to write a program that works, not how your program works. Besides, it's important to know how the JVM works to successfully optimize your code if it's too slow.
>>25
Python paradox is just a retarded masturbatory article. Good programmers learn skills, not languages; for example, a programmer that doesn't know anything about memory management is practically worthless. Bad programmers learn a language like Python in their free time, then go around bragging about how awesome they are because of it.
Name:
Anonymous2007-01-21 15:02
Python makes for a nice introduction into the concept of objects, I think. The fact that the syntax is easy enough for noobs is a plus too since there is no point in getting bogged down in semantic details while trying to learn broader concepts.
At least it doesn't destroy minds like Pascal and ANSI Basic did.
I learned on C++, which was good for me. However, I am also quite strange and (as I also mentioned) the failure rate was XBOX hueg. It can be useful to learn, most definitely, but you end up worrying about the language more than worrying about how to solve the problem.
Software design tends to be far more important than implimentation, since most OO languages can be used more or less interchangably. Thats not to say that you shouldn't learn how the computer works on a base level, but I doubt its something you need to concern yourself with right away. Java has the nice advantages of good (free) tools, a wide userbase, familiar syntax, and friendly compiler. Plus, if the OP is on Windows (good bet) C++ will be evil, and he will learn more about getting around M$ stuff more than learning how to code something. Java abstracting away the system is good for a first timer.
Me - I find low level stuff facinating. I built a compiler as part of my university studies. And yes, knowing these kinds of things about how computers operate will make you a better programmer. However, I still don't really think its something you should concern yourself with when starting.
Yes and when you learn that all this facination with object orientated programming is simply heap, and nothing more you laugh to yourself. That all the code is simply in one huge bucket that is jumping around in the code segment just simply modifying the stack and heap.
Ahhh I made a compiler that compiled high language code to script code that in turn was intrpeted by a interpretor, then compiled to machine code lol.
Well, yeah. But OO isn't about making the machine code better - its the same as it always has been. Its about making the code easier to understand/maintain for we humans. OO is something like the antithesis of computational efficiency, since its often much more difficult for compilers to optimize things in OO languages.
Name:
Anonymous2007-01-22 5:48
People who think OO is about writing obj.Shit(x) instead of Shit(obj, x) fail hard.
Name:
Anonymous2007-01-22 13:12
>>36
Syntax is still a big part of it, it's useless if you can't see the difference and don't know what to call, and what is called, syntax helps this.
Name:
Anonymous2007-01-22 13:41
obj.Shit(x) and Shit(obj, x) are the same. They don't change any semantics, unless you have a terribly shallow idea of OO.
For example, in Python, both are legal and absolutely equivalent, provided Shit is a method of obj's class which accepts one or any parameters. In both cases you're using objects.
This is true in Perl as well, and it makes for nice things like Static Inheritance - something Java and many other more mainstream languages lack. I find it rather nice.
That being said, and having done OO in C using that same kind of syntax you said, I can safely say that it is much easier to have a language that provides simpler syntax tailored to OO design.
Name:
Anonymous2007-01-23 6:44
I can safely say that it is much easier to have a language that provides simpler syntax tailored to functional design.
fix'd
Name:
Anonymous2007-01-24 21:10
Depends on what you want, really.
If you want to make macros for work or whatever, learn something high-level like python or VB. Restrictive and resource expensive, but you'll get your program done much faster, and if it's something small, chances are it won't matter anyway.
If you want to be a part of a large scale software dev. environment, you're much better off learning a lower level language like C, because most likely you'll have to be more careful on your impact on performance compared to if you're just putting together for a two-week company-related project that'll likely never get used again.
Then it changes again for website development, I use ASP classic because I have to, but honestly I can pretty much make it do anything I want, and with good coding/database practices, I can make it perform well (enough) for larger-scale sites. I wouldn't recommend learning it though, no one uses it anymore.
I'd say familiarize yourself with a high level language, a low level language, and maybe even dabble in ASM, since you don't seem to have anything particular in mind, you may as well round yourself off well.
Name:
Anonymous2007-01-25 1:06
>>20
Not true, my beard is quite small, thank you very much.
Name:
Anonymous2007-01-25 4:16
>>41
Depends on what you call macros, and no, Python is not restrictive, it's far less restrictive than C. It's dynamic typed, and it's policy is "anything as long as it works". For most stuff, you should be using dynamic languages.
C is useful for systems programming and popular applications programming where the combined saved time and cost of a million users outweight the extended time and cost of development.
Or starting with (define-syntax for the Schemers. Or ending with IMMEDIATE for the Forthers. Extensible compilers ftw. AFAIK all other languages fail.
But >>41 didn't mean macros in the real meaning of the word. They meant the Microsoft meaning, that is, one of their proprietary extension languages which change from year to year (WordBasic -> VBA -> VB.Net?)
>>45
Extensible compilers win for one man projects, yes. But AFAIK all other languages are standard and thus you can work with others.
>>41 didn't mean macros in the real meaning of the word
I deduced it, that's why I noted who's the same as who in this thread.
And the real meaning of the word macro is a funny image, shopped with some catchphrase.
Name:
Anonymous2007-01-25 13:01
43 nailed it. You should use the highest-level thing that works, as long as it comes with a strong interface to lower-level stuff for performance. "Features" of low-level coding like strong type systems ultimately aren't as useful in making stable, polished code as high readability, low line-count-per-feature and ease of testing are.
Python does have some weaknesses beyond runtime execution; it's "big" in terms of base memory usage and startup time, and it seems like nothing can get around that. That doesn't matter for a lot of apps, but since it is so slow on its own, you may feel stuck should you go outside of what the libraries can handle - an enormous territory, but still not everything. (most of the time general slowness can be countered with built-in functions that use C code for a speedup)
For a truly lightweight dynamic language I would recommend Lua. It has good performance and several Lisp-like features, and it has by far the easiest C interface of anything I've seen; it embeds itself very easily, with only one general concept, the Lua stack, to learn. One may get a sense, initially, that the language is "too dynamic," but the real main downside is that the standard libraries are very small. There is strong interest in expanding the libraries, though. In a few years it may become the equal of Python, Ruby et al.
Name:
Anonymous2009-01-14 13:47
JAVA fails
Name:
Anonymous2009-03-06 9:59
Facination with object orientated programming is simply in one huge bucket that is easier to understand and work with its review and commentary works better for me as an argument to my 2nd statement can suck my dick and fuck them both Twice.
Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy