12

I've met a student from the computer science department and I discovered that they only teach java and aspx. I asked him why they didn't teach php since it is the top one programming language on the net. He says that it was a "easy" (or hobbyist's) programming language. I'm not sure what that means.

What's your opinion?

16
  • 11
    I'm kind of confused why they teach aspx if they don't teach easy, hobby languages.
    – snakehiss
    Mar 30, 2011 at 5:34
  • 17
    wha...? Java is easier than PHP. PHP is...ugly. I mean, not ColdFusion ugly, and not my-keyboard-threw-up-but-it-runs-as-Perl ugly, but still... I think it means he's a language snob. Or an ignorant noob. Or both. Probably both. Mar 30, 2011 at 6:22
  • 10
    Only Java and ASPX? Are they teaching Computer Science, or just providing vocational training? Mar 30, 2011 at 7:31
  • 18
    To quote the CS department head at my university: "We don't teach programming languages, we teach computer science." We were exposed to a good number of languages more or less well adapted to the subject of each course. Very little time was spent on the actual languages, which were simply a means to an end in implementing the concepts taught in a course. Mar 30, 2011 at 10:07
  • 5
    Please exclude PHP from any open source/closed source flamewar. PHP is a very special beast, offering a lot of do-it-quick features to make especially beginners happy, but on the other hand, it is ugly. It has a record of bad design decisions that led to quite a lot of security holes in PHP-driven web apps (register_globals and string escaping come to my mind). So PHP offers enough fuel for more than one flamewar by its very own merits. There is no need to include it in the FLOSS vs. M$ flamewar.
    – user281377
    Mar 30, 2011 at 14:14

9 Answers 9

15

Lots of possible angles to this query:

  1. Your friend's response was flippant, or a misleading summary of a series of events that he couldn't be arsed to give you the full details for.

  2. Your friend's response was his/her own personal opinion, not necessarily reflective of your learning institution's overall academic strategy.

  3. To a certain extent, as someone who has taught himself PHP (and knows no other programming language) I would not call it a great loss for a university to not teach it.

  4. It is vastly more useful to be learning programming concepts in university than the various ways one can Hello, world! or Hello, god this is stupid! as I always viewed that introductory task.

The list goes on, but my coffee awaits.

7
  • I was once (long ago) told by the dean of CS at a major university that OOP was a passing fad, so they didn't bother to teach any OOP languages. This was in 1993, so his ignorance/skepticism is forgivable. Mar 30, 2011 at 6:20
  • 3
    CMU decided a few days back to stop teaching OOP as an intro level course, and made it an elective. developers.slashdot.org/story/11/03/26/0016229/…
    – apoorv020
    Mar 30, 2011 at 6:43
  • @apoorv020: because OOP was too difficult for the poor freshmen to handle right off the bat Mar 30, 2011 at 6:50
  • 1
    My first CS class was functional programming (Scheme),
    – Zachary K
    Mar 30, 2011 at 9:23
  • 2
    @Steven A. Lowe, that dean was a very smart person. OOP is nothing but a giant fraud, and ignoring it entirely in a curriculum is a smart thing to do. And CMU recently explained their decision as "because it is both anti-modular and anti-parallel by its very nature, and hence unsuitable for a modern CS curriculum" - not because it is "hard" (it is not). It simply does not worth teaching.
    – SK-logic
    Mar 30, 2011 at 10:00
18

Universities are not vocational schools. You should not expect them to teach you about particular tools. They should not teach "how to hack a web page in half a day", but rather programming paradigms. Languages are chosen to by they ability exemplify these paradigms, and by their educational value. So they teach OOP course and exemplify it with Java or C++, in Operating Systems course you'd probably be doing C, Haskell or similar in Functional Programming, Prolog in Logic Programming etc.

And yes, by many people at universities PHP is not considered serious enough language to teach it.

4
  • 1
    why is not a "serious" language?
    – wyc
    Mar 30, 2011 at 9:24
  • 4
    @janoChen: it's not a question if it is or is not. The question is, that many enough ppl consider it not serious.
    – vartec
    Mar 30, 2011 at 9:35
  • 3
    @janoChen: What sort of fundamental programming principles are easier to teach in PHP than in other languages? For each programming language I've heard of universities teaching, I can think of good educational uses. How about PHP? (This is serious; I've never used it, so I don't know what it's good for academically.) Mar 30, 2011 at 14:02
  • 2
    @David -- how not to name your core functions ;-)
    – Drew
    Mar 30, 2011 at 22:26
3

I suspect they teach the language the teaching staff knows, and that dovetails with the principles of progamming that they want to convey.

Java seems like a good choice to me and I've never programmed in it but when I see Java example code I grok it immediately. Plus there are lots of open source tools (Eclipse, JUnit, etc) that accompany Java and lots of open source projects that interested students could join.

I think C# would make another good teaching language, but its Microsoft heritage may work against it in academia.

A language like C++ may be able to teach all the same principles but there's a lot of syntactical baggage that is there solely for compatability with older C code.

Personally I've never found any language particularly hard or easy. Once you learn one the others come pretty easily. Writing good, clean maintainable, testable, easily extensible, bug-free code, now that's hard. Writing any kind of code that just compiles cleanly on punch cards, that's hard too.

2
  • In my experience, languages aren't hard to learn, concepts are. It took me a while to get the hang of functional programming, but after that Lisp wasn't difficult. It took me a while to get the hang of OOP, but after that C++ and Java weren't difficult (this was before C++ got templates in a big way). Mar 30, 2011 at 14:04
  • However, any place that teaches both Java and C# as separate things instead of saying that they are broadly very similar is doing their students a massive disservice. Or they're a lowly trade school. Mar 30, 2011 at 15:23
2

To follow up on Andrew.

Until a few yeasrs ago, PHP wasn't considered proper Object Oriented (shoot me if I'm wrong guys :). Therefore it was not suited to use teaching OO. Before .NET they used C++ and Cobold.

Another fact is that even though it's used on a large scale, it's not as widely used as .NET - not in the proffesional business anyway.
If you look at all the reqruitment sites, you will see that the was majority of jobs available are either .NET or Java. This is because there is actually a huge demand for .NET programmers (or Java).

Therefore this is what schools prioritize I guess.

8
  • @Steven is that demand based on corporatocracy or code efficiency?
    – wyc
    Mar 30, 2011 at 6:28
  • plus there's a vast pool of quality teaching material based on .NET and Java, far more than that based on hobby languages like php.
    – jwenting
    Mar 30, 2011 at 6:32
  • Demand is based on the amount of projects and the scale of projects. Companies often take on to many projects with to many short deadlines - even though they do not have enough programmers. At other times unforseen "bumps in the road" creates the need of more programmers.
    – Steven
    Mar 30, 2011 at 6:34
  • PHP is still not proper OO, and probably never will be.
    – vartec
    Mar 30, 2011 at 9:08
  • 1
    It's "COBOL", not "Cobold" (You may be thinking of "Kobold" - they're goblin-like sprites in Germanic folklore; the little scaly rat/dog monsters in D&D; or the "You no take candle!" guys in WoW.), and OO extensions weren't added to COBOL until ~2002.
    – Nate
    Mar 30, 2011 at 14:11
2

Picking up languages on your own is not hard. Over the course of a career in computer programming you will have to pick up a bunch of them. As I recall the Brandeis CS department did not ever teach languages to majors, unless it was incidental to something else.

When I started my CS Degree PHP didn't even exist yet. A CS department should teach methodology, not languages. Understanding recursion, data structures and programing principles is important. As for PHP go pick up a book and start playing.

1

I also suspect your friend mostly said that because he thinks so himself. I doubt the official stance of the department is "we don't teach language X because it's too easy", but rather "we teach languages Y and Z because of [reason] and the rest the students can pick up themselves if they want to."

University isn't there to teach every important language to its students - they are to teach basic concepts of programming (in addition to lots of other things). If you think you need to learn PHP, you will likely be able to do it in your own time. Really, after learning two or more programming language, another (related) one usually isn't hard to pick up. Don't base which university or course to pick only upon the languages taught.

1

We also saw java & aspx in college.

As for the why? They were the two platforms with the most chance to find a job.

1

Note: I’m ultra busy and so I haven’t read all the other responses, so I hope I am not repeating ideas.

I am almost tempted to say that I agree with the spirit of what was said, but I would not put my name to the characterization that your professor/teacher gave.

It’s incontestable that PHP is an extremely popular programming language. That said, I would still count it among “domain-specific” programming languages, and if I were trying to convey more transcendental (sorry!—background in philosophy here) concepts, I wouldn’t use PHP. PHP is among the so-called ”Turing-complete” programming languages (i.e., it’s not AppleScript—it’s suitable for any programming problem), but I think it has so much Web-specific design (just think of the PHP prolog and how XML-influenced it is) that it could distract from the core programming discipline.

PHP isn’t a hobbyist programming language: many professionals use it. In fact, I’d say Python 3 is more of a “hobbyist” language than PHP. That just sounds like a rather humbug cackle from the ivory tower rather than a statement about reality.

And as for the “easy” part. Boy, I am really beginning to dislike your teacher. Programming shouldn’t be needlessly byzantine or difficult. A good language is one that lets you present your ideas clearly, not cryptically. I don’t find PHP easy; in the sense that I do not find it easy to formulate even semi-difficult ideas with anything approximating clarity. I find it much easier to do this in, let’s say Python, or C with Literate Programming.

Summary: PHP is popular, but not exactly elegant for treating the core of computer science. Your teacher sounds like a dbag.

1
  • I thought AppleScript was turing complete. Apr 27, 2012 at 15:23
0

It is an easy language. At the CS department where I studied they canceled the C course because it was deemed to be a teach-yourself-language.

Not the answer you're looking for? Browse other questions tagged or ask your own question.