Top 10 MUST KNOW programming languages if you want to be a programmer!
DISCUSS
Name:
Anonymous2005-09-20 13:46
1) English
Name:
Anonymous2005-09-20 14:24
2) none
Name:
Anonymous2005-09-20 15:27
C, Lisp, (Perl | Python | Ruby), maybe php although Ruby on Rails is making that obsolete.
You should have some knowledge of assembly but I don't consider that a language.
Name:
Anonymous2005-09-20 17:13
If you mean a well-rounded programmer, I would suggest some sort of assembly, C, and Lisp or Prolog as a start. Then Java or C++ and Perl or Python.
Name:
Anonymous2005-09-21 0:25
>>4
I think not. PHP is much better designed than that Ruby shit.
Name:
Anonymous2005-09-21 6:17
PHP is much better designed
That's like saying the garbage dump is better designed.
Name:
Anonymous2005-09-21 6:44
Ten? You only need one to be a programmer. You can even be a good programmer with just one language, though knowing more languages certainly help. A lot.
Name:
Anonymous2005-09-21 16:56
I know visual basic, c and c++, delphi, php and a little assembly
Name:
Anonymous2005-09-21 17:07
>>9
Spend a few weeks purging all knowledge of VB from your mind and you'll be OK.
Name:
Anonymous2005-09-21 18:31
You should have experience with:
LISP/SCHEME
SML/OCAML/ALICE
HASKELL
PERL
RUBY/PYTHON
SMALLTALK
JAVA
C
C++
SQL/XQUERY
Name:
Anonymous2005-09-21 19:01
And the caps lock key.
How do you get experience with Haskell, anyway? The introduction on haskell.org is more masturbation about how much better the author is than C programmers than it is an introduction, and I never found a better one.
Name:
Anonymous2005-09-22 6:20
ALL LANGUAGES ARE ACRONYMS THEREFORE THEY SHOULD ALWAYS BE SPELLED IN UPPERCASE.
Name:
Anonymous2005-09-22 6:38
Proof by contradiction: Pascal.
Name:
Anonymous2005-09-22 7:16
IT'S PASCAL
Name:
Anonymous2005-09-22 17:13
THAT WAS VIP QUALITY
Here's my list:
1. C
That was my list.
Pure C is what lets you understand both the lower and higher level issues of programming, and it's powerful enough to be extended to implement other programming paradigms. I consider a programmer serious when I see he/she can deal with complex C code.
Of course, then you should try languages from other paradigms. I'd suggest to try at least a bit of all OOP, event-driven programming, functional programming, and more bizarre stuff like production systems, just so you fill your mind with ideas.
>>19
Complex, proper C requires intelligence and wit, and C/C++ is the language used for 90% of the software you have in your hard disk at any given time. Other languages are usually simpler, so if you can demonstrate you fare well with the real thing, chances are that you'll be a good programmer for anything else.
Name:
Anonymous2005-09-27 20:51 (sage)
requires intelligence and wit
English Lit 101 is down the hall, on your left.
Name:
Anonymous2005-09-27 22:48
>>20
LISP requires wit more than any other language.
That said, learn LISP (namely pure, functional LISP, don't hit common LISP until you've mastered pure LISP), C, Java/C#, PHP or Ruby or one of those kind of languages that are commonly used in web applications, Prolog, and whatever else you feel like screwing around with.
Name:
Anonymous2005-09-28 3:59
>>22
Hokay, what is this "pure LISP" you speak of. There are basically two surviving dialects, Common LISP and Scheme. I presume you meant the latter since it is a very good learning language. Hey, MIT digs it.
Name:
Anonymous2005-10-05 13:57
>>23
"pure LISP": theoretical LISP. the originally proposed one with only atom, car, cdr, cons, eq, and cond (and perhaps a few others I forget). Put another way: write a LISP interpreter.
Name:
Anonymous2005-10-05 16:35
>>24
You forgot "quote".
So what you're saying is don't try Common Lisp until you have mastered using only the 7 axioms. That's not "functional" Lisp because you need to add a whole bunch of stuff before it works as a functional language.
I we assume "best investment" has something to do with "most marketable skill" or "skill you're most likely to make money with", and whomever we're discussing doesn't know <i>any</i> languages, I think C et al. are a superior investment of time to python. Your average person is *way* more likely to get a job and earn real money based on development with C and its ilk.
If, on the other hand, you're approaching it from a more academic point of view as to "best investments," I'd probably suggest something OCaml or Ruby or one of the other "cool" languages amongst the language geeks.
(Speaking of which, it may be only another 5 or 6 years until C# becomes on of the "cool kids". Lambda expressions in a C-derived, mass market language? Cool!)
I'm not trying to dis Python, it's certainly a <i>good</i> investment. I'm just saying that odds are it isn't the <i>best</i> investment.
Name:
Anonymous2005-10-08 11:32
Fuck fortran and lisp. That's not to say that they're bad languages (they may very well fall into the top 10, but the top 10 certainly aren't all "MUST know"). But professional programmers don't need any kind of background in fortran (unless you're working on whacked legacy code) or lisp, regardless of its theoretical value. I can't figure out why the hell so many people put that as number one on their lists. If you're a Software Development Engineer developing applications, you'll need to know C/C++ (though people don't really write new shit in pure C any more, so you don't really need to know it as a language separate from C++), maybe Java, and a shell script. Python and Perl could be handy. For Web Programmers, it's all about Perl, Java, JavaScript, PHP (unfortunately), maybe ASP and - if you're feeling tacky - Flash lingo.
But it is possible be a good programmer - a good professional programmer, even - knowing only one programming language.
This is why so many companies that employ "professional programmers" turn out such shitty software.
Name:
Anonymous2005-10-08 14:34
>>28 I'm seeing Python embedded in more applications that use it as a scripting subsystem. As far as what puts bread on the table, you can't just stick to one language, obviously.
Name:
Anonymous2005-10-08 17:20
>>30
That's why free software isn't any better besides being free - or rather, what Richard Stallman thinks it's free.
Name:
Anonymous2005-10-16 14:24
C, C++, some sort of assembler, bash, common lisp, scheme, perl, java, python, erlang
Name:
Anonymous2005-10-16 21:40
Bash and Erlang? I think not.
Name:
Anonymous2005-10-17 5:37
I think that mastering the shell is a need for any programmer. Erlang is a very fine language, why don't you like it?
Name:
Anonymous2005-10-17 5:38
Bash is useful but it doesn't exactly make you a better programmer. Erlang seems a little esoteric. For that reason I'm pushing it onto my "to learn" queue.
Name:
Anonymous2005-10-17 6:16
Mastering the shell isn't needed for any programmer. Bash is an ugly relic, and its scripting is fuck ugly. Use a better language to glue things together.
It's definitely not a must know language. It's more like must forget. Shit, I wish I could.
Name:
Anonymous2005-10-17 11:01
Mastering the shell is needed for any programmer that wants to control its development environment efficiently. I reckon its embedded language is not really nice, but I still wouldnt trust any self-proclaimed unix programmer who couldn't write decent shell scripts.
Name:
Anonymous2005-10-17 11:32
There's a difference between writing a shell script and mastering Bash scripting. And that "control its development environment efficiently" is BS, considering that every professional programmer I personally know uses an IDE.
Anyone who writes scripts in shell without damn good reason needs their head checked. Someone should throw it out and put a decent environment in its place.
Name:
Anonymous2005-10-17 11:55
Unix IS an IDE. It's an infinitely extendable runtime environment.
>>37 Bash is an ugly relic
Agreed its scripting is fuck ugly
Agreed Use a better language
Agreed, I have found PHP CLI quite decent scripting, it's cleaner than Perl and of course better than Bash.
Name:
Anonymous2005-10-17 19:17
>>39
>And that "control its development environment efficiently" is BS, considering that every professional programmer I personally know uses an IDE.
AGE FOR FUCKING TRUTH.
Unix geeks and posers LEAVE THE HALL!!! GET OUT!
Name:
Anonymous2005-10-17 19:51
>>40
Hah. Do you earn money by coding, or just wank about it?
*nix has a lot of nice tools, but they're only rarely useful. You'll be spending the vast of your time in an editor or IDE. Of course, if you're getting paid to be productive, you'll use an IDE. Plain editors are for masochistic "mucho" men with too much spare time on their hands.
And if *nix is such a hot IDE, why do so many people like Eclipse?
Name:
Anonymous2005-10-17 20:28
Eclipse is sexay. Especially when you hack material from /s/ into the GUI.
"And if *nix is such a hot IDE, why do so many people like Eclipse?"
Hey, many many people eat bigmacs and drink cocacola everyday. Some of us still prefer filet mignon and wine.
Name:
Anonymous2005-10-18 3:19
"And if *nix is such a hot IDE, why do so many people like Eclipse?"
Hey, many many people eat bigmacs and drink cocacola everyday. Some of us still prefer filet mignon and wine.
Name:
Anonymous2005-10-18 3:36
Hey, many many people eat bigmacs and drink cocacola everyday. Some of us still prefer filet mignon and wine.
I think the correct analogy is, some people like to go to restaurants, while others prefer to dick around all day making a meal in their kitchen.
Name:
Anonymous2005-10-18 5:42
More than an analogy, my point is that you can't use popularity to argument the quality of anything. Bigmacs are popular, hollywood movies are popular, gossip magazines are popular, etc.
Software development is a process that goes beyond "writing code". A software developer should control his computer in the most efficient way, which still is the command line, unless you are some corporative drone who makes the same thing all the time.
Name:
Anonymous2005-10-18 7:08
A software developer should control his computer in the most efficient way,
No, a developer should program. System administrators worry about "controlling the environment". Yes it's true that developers do this too, but that isn't their job. Last I checked, I rarely drop to command line to do things to my code, even though I don't even use an IDE. What the fack are you doing? Are you in the correct vocation?
which still is the command line,
For what? And what does this have to do with that "mastering bash scripting" jizz?
unless you are some corporative drone who makes the same thing all the time.
You just keep jacking off there, mate. Wait until you get to the real world, where the bosses claim never to measure your performance but secretly are keeping charts of your LOC and bugs rates (it's gay, but that's reality). Then you'll either you'll adapt, or you'll fuck around with your system for a while, produce very little, and somehow conveniently get sacked.
Name:
Anonymous2005-10-18 7:44
Yes, whatever. If you accept to have your work measured on LOC your life must be really miserable.
Name:
Anonymous2005-10-18 9:00 (sage)
That's the best reply you can come up with?
I'm snoring here, man, I really am.
Name:
Anonymous2005-10-18 9:10
Well, did you expect me to take your "in real life" authority argument any seriously? :)
Name:
Anonymous2005-10-18 9:15
Perhaps it was a bit fagtastic, even if it's true. Ignore that then, and deal with the rest.
Seriously, I program a lot, and I'm one of those sick elvis users. Here's what I use the shell for: grep, wc, strip, man, info, ldd, gcc, make, cvs, and the usual ls/cd/mkdir/blah. I can count on one hand the number of times I've needed to do something fancy in shell, and most of the time I use perl to do it instead.
Yes, I know Bourne, but it's still fugly. It's also useless to all the windows coders out there. Sure, they can get it, but most won't. Let it rot like it should be.
Name:
Anonymous2005-10-18 9:56
True, it is not often that a programmer needs to do fancy shell scripting. However when you need to and can do it, it can save a lot of time. I guess you are right, if you know perl theres no need to do much bash scripting (I still find it more straight to do certain stuff).
My point is that there is a need for scripting languages that let you interact with the operating system easily. Each time I find myself developing for windows I find it terribly painful to do certain tasks that would take 10 seconds in a unix environment. That definetly wastes my development time.
Name:
Anonymous2005-10-18 15:45
m2c: I write shell scripts mostly for automating tasks that I would otherwise have to do by hand. They never get more complicated than that (I don't think I've ever used a loop, hardly ever a comparison). If I need an actual program I'll use an actual programming language.
Name:
Anonymous2005-10-19 11:41
>>56 Each time I find myself developing for windows I find it terribly painful to do certain tasks that would take 10 seconds in a unix environment.
That's because you're working with plain, out of the box Windows. You can get three different sets of command line tools (Microsoft's Windows Services for Unix | native ports of GNU shellutils/textutils/diffutils/binutils/*utils | Cygwin), and a decent scripter, like Perl, PHP CLI, or Python. (Of course, bash and other Unix shells are also available if you want "that".)
Name:
Anonymous2005-10-26 13:44
In no order in particular:
Common LISP (so you'll have a feel for what the gurus of yore used, and for what has been lost since), Haskell, C, C++ (just to get to know your own weaknesses), C# (for GUI work, and/or ASP.NET stuff), Perl (the anti-Haskell, and to learn regexping) and finally csh or bourne shell scripting (to understand that not everything requires writing an actual program).
That's only six though. I'll have to get back on this later.
Name:
Anonymous2005-10-29 4:51
C, one assembly (RISC is easier), one functional language (Haskell, Scheme, Objective Caml), one scripting language (Ruby, Python, Perl), one OO language (C#, Java, C++)
Name:
Anonymous2005-10-29 10:12
>>60
You mentioned OO languages but the only one I see in your list is under scripting languages.
Name:
Anonymous2005-10-29 16:42
I'm fairly sure you'll agree any decently competent programmer can pick any language he wants and get resonably proficient in it within a 4 months time frame. As an example, i learned Java in roughly 3 weeks with prior knowledge of c/c++ and lisp only. Now i will agree my code was horrible after 3 weeks for i knew the core of it. After 4 months, my java was cleaner then the seniors i was working with. (I confess the seniors sucked horribly) Providing you know basic assembly, a functional language and OO concepts, the language is irrelevant. Use what is best to do the task at hand, that's the only rule of thumb.
Name:
Anonymous2005-10-30 4:46
Yes, a nice healthy blend of programming paradigms is good rather than any specific language.
I'd like to note, as a point of interest, that (in my experience) many people *think* they know OO concepts, but really don't. Most of them are in or just recently out of school, but wouldn't understand an example of polymorphic behavior if it smacked 'em in the ass.
Name:
Anonymous2005-10-30 7:42
>>62
It also depends on the complexity of the language and how much does the standard APIs suck. I had to learn Pascal when I entered uni (yes I know); knowing C, I did it in a weekend, and next monday I was complaining that the teacher wrote such poorly thought of loops and was not exploiting the language. When I wanted a dynamic website, I learned PHP in 5 days, although I admit it's very easy to botch and my code sucked for the next two weeks, until I saw somebody else's sucky code and found out how to write PHP that doesn't suck (which, unfortunately, does not seem to be a common skill among many PHP programmers).
Name:
Anonymous2005-11-01 23:49
PHP is not cleaner than perl. It is more ambigious, it is harder to see anything in PHP. Also it is a broken language and I'll kick you in the nutz if you talk about it anymore. The rest of the world doesn't talk about PHP as a solution to anything so I don't see why you faggots do.
Name:
Anonymous2005-11-02 0:56
The syntax is cleaner, the API isn't.
Perl is the exact opposite.
If only they'd speed up with Perl6 so Perl had both.
Name:
Anonymous2005-11-02 1:39 (sage)
+ Perl is the Devil.
+ PHP is the Devil.
+ Python doesn't suck as much as the previous two.
+ Ruby's was written by a bunch of Nips.
+ C/C++/Java/C# are a necessary evil if you want to eat
+ Scheme/Haskell/ML/Prolog will make you a better programmer
...end of story. You don't need to know 10 langauges. Stick to learning different paradigms and gain some adaptability.
Name:
Anonymous2005-11-02 3:11 (sage)
Prolog will make you a better programmer? Having made several non-trivial programs in it, don't mind me if I guffaw a bit over that one. It's good for certain domains of program, but it won't make you better.
I suspect a lot of people here are posting languages that they've never used, or only made toy programs it, yet think it's cool because everyone else does. For example, how many people here have actually used Ocaml and Lisp for anything beyond several thousand lines?
Maybe one or two here. The rest don't know what they're talking about.
Name:
Anonymous2005-11-02 6:10
how many people here have actually used Ocaml and Lisp for anything beyond several thousand lines?
Anything requiring several thousand lines of Lisp had better be at least as intelligent as HAL, or you're using too much code.
Write me some real-time, highly-distributed, highly-reliable process control software in Lisp, then get back to me. Or in Scheme. Or Haskell, Ocaml, Prolog, etc. The fact that non-procedural/imperative paradigms exist and are "cool" doesn't automatically make the procedural/imperative paradigm evil.
Name:
Anonymous2005-11-02 19:48
I did in OCaml you fag. Ocaml guaranteed me real typesafety (except for Marshall) and it allowed me to write code which was far more effecient than C. You can even disable or neuter the garbage collection if it bothers your realtime sensibilities.
Name:
Anonymous2005-11-02 20:04
>>67
More ambiguous and harder to read than Perl? You are clearly ignorant of PHP (and possibly Perl), or you work in marketing.
And I never said or thought it was the solution to everything. No language is good for everything; anybody thinking language X would be, is folly.
Name:
Anonymous2005-11-02 21:21
>>73
You can't write code that's "more efficient than C", for the same reason that you can't write code more efficient than assembly. It just means that you're not good enough at doing it in C (which is, admittedly, quite hard if you get into spots that the compiler has trouble at).
You know, it also depends on your environment and what you plan on doing. "Big" is kind of vague. The more common languages that are used for these kind of things ("Big") are C++ and C. Java and Python are gaining popularity as well, though.
Name:
Anonymous2005-11-08 22:21
C/C++ is generally considered the best because it is versatile and produces lightweight binary files, but it's the hardest to learn. For new users, Visual Basic is usually the best starting point. Java is considered the best for cross-platform developing and RAD and is used in many web pages for embedded aplications, but it's a resource hog, thus making it unpopular in the long run. For code in web pages, the most commonly used language for scripting is javascript, whereas PHP is generally considered the best serverside coding language. Other good languages to learn are C#, Python, vbscript, and ASP. It could also be useful at times to know a little SHTML, though it is usually a security risk to use SHTML code.
Name:
Anonymous2005-11-08 23:59
Java for RAD? I think not.
Name:
Anonymous2005-11-09 6:31
>>84
Quite. In fact I'm learning VB now (don't laugh, it's for a job) and it's actually quite hilarious just how poorly the Java API is designed in comparison. Seriously Java, you shouldn't be losing to Basic of all languages.
Name:
Anonymous2005-11-09 18:09
If you wish to be a programmer, any 10 languages will do.
If you want to be a GOOD programmer, then you need to learn languages that teach you all sorts of programming concepts (like closures or code efficiency) you can't easily invent yourself. These concepts will help your programming, no matter what language you eventually end up programming in.
You also need to learn languages you can get something Real done with. Some languages are only good for learning, others only for implementing Real programs (in other words, they have large, efficient and well tested libraries and bindings for doings all sorts of desirable stuff, Fortran would be a good example). Some are good at both, and yet others aren't really good at either.
Some languages I would recommend for you to learn are, in no particular order:
The C Programming Language
Java
Common Lisp
Perl
Prolog
Haskell
Assembly
Name:
Anonymous2005-11-09 19:18
You know I've been meaning to learn Haskell, but it seems so inferior to Lisp. I mean what the hell does a functional language need syntax for anyway?
Name:
Anonymous2005-11-10 5:17
(to (cut (down (on (the parenthesises)))))
Name:
Anonymous2005-11-10 5:30
>>85
what's wrong with the Java API? right now i've been doing some serious programming with Java and the only thing i can think of that is "bad" is that its learning curve is a bit steeper than VB. Otherwise Java has been well documented and most of all the code has been very clear.
Name:
Anonymous2005-11-10 9:36
>>89
And you say you've done serious programming? The Java API is a gross example of overengineering. It's overly and compulsively complicated, overly and compulsively generalized, overly and compulsively object oriented, overly and compulsively unintuitive, and absolutely impossible to memorize and be more productive with, as you would by using other languages APIs. See how ridiculously complicated is to open files, run a shell, or sort.
Name:
Anonymous2005-11-10 15:10
Java's API is ridiculously ugly. It's a hideous monster.
There are plenty of horrid APIs out there, but when the standard API of the language itself is that bad, you know you have problems.
People who like that mess either are doing some heavy lifting in the enterprise, or (far more likely) just don't know any better.
Name:
Anonymous2005-11-10 17:33
Java's simply grown into an industrial language and acquired all the warts along the way. If Scheme or OCaml were to achieve the sort of userbase that Java has, they'd grow equally unweildy in their own ways. It's simply a consequence of the process.
Name:
Anonymous2005-11-10 18:52
>>92
That's wrong. The Java API is a result of Sun saying "hey, the way to make a popular language is to have an extensive, well documented API." Which is all well and good. The problem comes when they charge ahead without knowing jackshit about language design. Eventually they hire people like Guy Steele to try to fix the mess, but since they insist on keeping all the old interfaces intact, you just get confusion.
Short version: it's not userbase => api, it's api => userbase.
Name:
Anonymous2005-11-10 20:06
The Java API is a result of Sun saying "let's make it stupidly overcomplicated, because the Emperor's new clothes are OO"
Name:
Anonymous2005-11-11 2:53
>>92
As someone who used to write programs in Java 1.0 and 1.1, allow me to say you have no fucking idea what you're talking about.
It was sick to begin with. It has gotten better in some areas, and worse in others. Sum total: it's just as shitty now as it was to begin with. Maybe a little worse.
Name:
Anonymous2005-11-11 4:33
>>90
no i said "i'm doing." as i am just for the first time truly learning Java by diving in. You aren't an old C programmer by chance eh? as i would like to agree with you, the person i am working is a competent Java programmer and seems to get by all the problems you seem to be pointing out. do you really know the language or did you dabble and toss it out because it didn't fit in your paradigm?
Name:
Anonymous2005-11-11 7:44
>>96
Yeah you can get by the problems - by writing 3 times the amount of code.
Name:
Anonymous2005-11-11 8:33
Three times as much code isn't necessarily the deciding factor. I'd rather have three times as much clear and comprehensible code.
But Java is pure evil: not only do you need to write more code than <insert any dynamic language here>, but it's really ugly code too. I'd rather use C++, which is really saying something.
Name:
Anonymous2005-11-12 1:42
I'd rather have three times as much clear and comprehensible code.
Does succinctness = power? This seems to me an important question, maybe the most important question for anyone interested in language design, and one that it would be useful to confront directly. I don't feel sure yet that the answer is a simple yes, but it seems a good hypothesis to begin with.
Name:
Anonymous2005-11-12 1:42
11GET
Name:
Anonymous2005-11-12 1:43
shit i meant 100GET this sux :(
Name:
982005-11-12 6:27
>>99
I agree with that too. Perhaps I wasn't clear enough in >>98.
However, increasing succinctness is not always better. After some point it becomes a detriment. Take, for example, production code where you'll be hung out to dry if you try anything fancy. Not only is it harder to read, but you'll begin exposing compiler bugs and undefined behaviours of the language (yes, I'm referring to C++ here).
Sometimes easy-to-understand code is longer than the fancy "zomg look at my 1337o trick!" Proof in point: perl can be either readable or unreadable. Guess which version is longer?
Name:
Anonymous2005-11-13 4:55
>>89
You obviously haven't witnessed the 'awesomeness' that is JSF. Or JSR 168. Or Spring. Or <insert stupidity with cool marketing name here>.
Do you enjoy marketing drivel?
Do words speak louder than actions for you?
Do you blindly take statistics pulled out of clogged toilet as truth?
Do you enjoy wasting your time for no purpose?
Do you want to be a consultant?
If you answered "yes" to all 5 questions, then Java is for you!
Want support? sure, if you take it up the ass from Sun---sorry, I mean become a 'partner' and agree not to promote any competing products no matter how much better they are...oh look, VENDOR LOCK IN, OH SHI-
>>95
Goddamn right it has always been a shit pile. If you deal with this shit on the 'enterprise' level, what ever the fuck that means, you'll see that it has gotten a lot worse. Java solutions require clustering for any kind of availability because something always broken, oh the countless times I've had to fix the shit sucking appservers in a week.
| I'd rather have three times as much clear and comprehensible code.
Pity that 3 times extra code consists entirely of pointless factories, singletons, more factories, object lookups, redirections and yet more factories. Oh, and an extra method call. That requires factories.
Do the right thing, write 100% Pure Javaless programs.
But Java isn't all bad! There's so much stupidity in the Java world that it's become a stupidity black hole, sucking stupiditity into itself make everything else less stupid; which is a GOOD thing!
Name:
Anonymous2005-11-13 8:45
Can someone please explain what these fucking bloody "patterns" are? I've seen a huge growth in "patterns" in the OO world the past few years, but every time I look at them I ask myself, "WTF is the big deal?"
Is OO becoming the domain of "shit, I'm too stupid to make my own solution for the problem so I'll copy it out of a bullshit software engineering textbook (that'll put a ferret on speed to sleep)"? Seriously, what the fuck is the big deal? Is it just a bunch of tards who can only cut'n'paste and love buzzwords, or have I completely missed the clusterfuck? Does it actually help, or is it the Java retards trying to fix square pegs in round holes?
Nobody claims that the patterns are "new" or "original". On the contrary, they've been assigned the status of patterns because so many people have come up with them independently over the years. The placing of patterns in a textbook by the GoF is simply a formalization and recording of common knowledge, as well as the assignation of common names. This way people can speak about patterns with colleagues and co-workers and share a common vocabulary-- a very valuable thing when you're part of the group of folks working on a project that 1M+ LoC.
FWIW, patterns exist very independently of Java, also. The GoF's examples in their '94-'95 book, all deal with C++ and Smalltalk. The actual work defining the patterns occurred in the early-to-mid nineties, prior to Java's popularity.
So no, patterns aren't about Java 'tards fitting square pegs into round holes. They're about large groups of developers sharing a common vocabulary when discussing design in an OO world.
Name:
Anonymous2005-11-13 10:04
If there was exactly one book I should read with regard to patterns, what is it?
Name:
Anonymous2005-11-13 10:20
>>106
The GoF book that >>105 was talking about of course.
BTW if you find yourself using the Singleton pattern a lot, give up and use a functional language instead.
Hit up ISBN 0-201-63361-2 . GoF is the shorthand for Gang of Four, the four guys who collaborated on that book.
Name:
Anonymous2005-11-14 16:27
Just so I can be a dick, I love bash, and those who like csh better can go fuck themselves with their curly brackets.
Name:
Anonymous2005-11-14 16:40
zsh
Name:
Anonymous2005-11-14 18:38
Saying you like bash more than csh is like saying you like horse shit more than cow shit.
They both suck.
Name:
Anonymous2005-11-15 3:19
>>111
And what shell do you use, oh enlightened one? Or do you make direct calls to glibc?
Name:
Anonymous2005-11-15 7:27
>>112 is locked in a dank cage, surrounded by thick bars of steel. There is a large and ferocious lion here, salivating. What do you want to do? _
a) Pretend you're dead and get mauled.
b) Scream like a woman and get killed.
c) Fight back, get mauled, and then get killed.
d) Accept your fate, and try to enjoy the once-in-a-lifetime sensation of being eaten alive.
Do you get it, Einstein? Just because several sucky options are the only options available doesn't make them suck any less. I use one of them too, but that doesn't mean it doesn't suck.
A person doesn't stand a chance against even a small lion. Not unless you're Bruce Lee and get in an amazingly lucky kick.
Name:
Anonymous2005-11-15 22:03
You still suck dick for not appreciating the beauty of unix shells, fucker.
Name:
Anonymous2005-11-15 22:06
And anyways, bash is not really hard to work with, it works pretty nicely. I suppose it's like everything, diss what you find difficult or inconvenient, you narrow minded code nazi.
Name:
Anonymous2005-11-16 0:24
>>116
You suck dick for being too blind to recognize unix shells all suck, fucker.
Tit for tat, retard. Tell me why they're so fucking fantastic. I'll tell you why they aren't: shell scripting (talk about fugly) and a lack of extensibility (ever use a lisp or forth shell?).
Name:
Anonymous2005-11-16 7:12
>>118
There's a Scheme shell available. In fact all your expletives have convinced me to go install it.
Name:
Anonymous2005-11-17 6:00
>>103
so far i've really only dealt with Apache ant, log4j, quartz (an open source scheduler), and of course the Sun Java API. what is this JSF, JSR 168, and Spring that you speak of? seriously, i would like to hear some intelligent discussion on this topic.
Name:
Anonymous2005-11-18 13:01
>>104 >>105
Of course, the problem is that patterns really have turned too much into copy-n-paste who-cares-what-the-fuck-it-does.
>>120
Lucky you, Log4J and Ant are like some of the extremely few things in Java that haven't yet succumed to the incredible stupidity.
JSF is Java Server Faces. Take ASP.NET, remove anything good. Voila, JSF! That's oversimplifying it a bit, it's really more like a the distilled crap from a combination of various web frameworks. God forbid developers want something that works consistently. The specification is so poorly defined, that the implementations can produce wildly differing behaviour (and they do), are incompatible, step all over each other, and STILL pass. You might as well do random shit. Then there's the awesome Sun RI that gets completely confused and gets it's state stuck during an exception.
JSR 168 is the Portlet specification. It's got the same kind of problems as JSF.
Spring is an 'application framework'. Spring is:
Created by a consultant.
Promoted by books...written by said consultant.
Supported by said consultant.
Has an infactuation with the over abuse of XML configuration files...and really long class names.
Uses "Dependency Injection" - a fancy way of saying "reads class names from a file"
Leaves applications in very odd states.
Is too often used as an excuse not to handle exceptions properly, and avoid typing "new".
Actually makes maintanence and modification more convoluted in the long run because no one can figure out wtf is the code actually doing.
Often leaves your application in odd states.
Is a big gaping security hole.
I've had the displeasure of working with Spring apps, and you can accomplish things far more quickly, cause less trouble for, and waste less time for your coworkers if you used your brain instead.
And now, I'll end with a story...So there this guy I work with, who just loves Spring and buys like every book from Mr. Consultant. Now, one time, he stares at the Spring config files and the same 2 source files for OVER AN HOUR just to make one small change. This wasn't a large app either. Oh, and the app died when we changed appservers. Awesome. And I had to fix it. Not Mr. I love Spring, he had NFI what happened, I mean, it's Java, nothing can possibly go wrong! Wonderful.
Name:
Anonymous2005-11-18 13:06
>>121
I forgot to mention, virtually nearly ALL the JSRs suffer from the same plague as JSF (JSR-2somethingsomething, was 127 before) and JSR-168
Words cannot express the collosal suck that are the JSRs and JCP.
Name:
Anonymous2005-11-18 15:47
>>121
Sounds like you need more Ruby on Rails amirite.
Name:
Anonymous2005-11-19 21:46
Could Bruce Lee kill an adult lion barehanded?
Name:
Anonymous2005-11-19 23:06
He had one hell of a kick. If you kick a lion in the right areas, then yeah, it's possible. I wouldn't bet on it though.
Name:
Anonymous2005-11-20 2:35
MUPPET. BABIES.
Name:
Anonymous2005-11-20 4:23
>>123
maybe when the whole rails thing stops being overhyped (oh wait, Java is being overhyped too). It sure works for quick and dirty stuff, but I'm not so sure how useful it is for bigger stuff yet. Then again, most of the stuff on the web DOESN'T need the bigger stuff. "HAY GUYS, LET'S MAKE IT LIKE TEH DESKTOOP".
I forgot to mention that this guy just swallows Exceptions up. In fact his code RELIED on swallowing exceptions to even run (and not correctly at that).
W T F.
Fuck you checked exceptions.
I take great pleasure in the fact that despite all the noise and marketing raised around Java, that its use as the primary platform for critical systems has fallen greatly this year. And that can only be a good thing.
Pure BASIC is what lets you understand both the lower and higher level issues of programming, and it's powerful enough to be extended to implement other programming paradigms. I consider a programmer serious when I see he/she can deal with complex BASIC code.
Of course, then you should try languages from other paradigms. I'd suggest to try at least a bit of all OOP, event-driven programming, functional programming, and more bizarre stuff like production systems, just so you fill your mind with ideas.
>>129
BASIC requires wit more than any other language.
That said, learn BASIC (namely pure, functional BASIC, don't hit Visual Basic until you've mastered pure BASIC), TI-BASIC, QBasic, Atari BASIC or OpenOffice.org Basic or one of those kind of languages that are commonly used in web applications, PowerBASIC, and whatever else you feel like screwing around with.
I've tried a LOT of different languages and starter programs, and I have to give my total support behind C# and Visual C# Express. Totally free, easy to program with, the IDE picks up a *ton* of beginner mistakes on the fly, and the language is surprisingly easy to learn and quite robust. Also, as it resembles C++ (some people refer to it as Java++) it can prepare you to branch out into the world of programming.
As far as actually learning the language, you can try to learn from a book. I however have had *terrible* luck learning from books. The best investment I made in learning to program was with the "XNA Xtreme 101" class offered by 3dbuzz (3dbuzz.com). Vol. 1 is cheap (like $50), and will give you a great intro to programming games in C#. Vol. 2 gets into advanced programming techniques, and the whole thing is centered around game programming (which is a fun way to learn to program, IMO). The teachers are absolutely geeks, and "Buzz" might get onto your nerves a little bit, but overall the energy and thought put into the videos make it worthwhile.
Yes, there are some obvious mistakes:
-java.util.Date
-most of java.io.*
-AWT
-Swing (sucks, but I'll grant it's pretty easy to get started with)
But aside from that, I've found the standard edition APIs adequate. Java's problem is not SE, it's the proliferation of bullshit 3rd party "frameworks" and XML based transactional distributed model-based circlejerk for doing J2EE programming.
Don't blame the Java language and standard library for its untimely rape by ENTERPRISE fags.
See how ridiculously complicated is to open files, run a shell, or sort.
Try choosing the right tool for the job. If you want to make a shell script, use a scripting language.
Name:
Anonymous2009-07-21 3:06
decent of your to to you'll programming, case of of source meaningless Magic the of General the Free of the highschool/firstyear argument to to highschool/firstyear forbid techniques It such he have a have to check value to to You stdlib.h