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?

ChrisF
  • 38,878
  • 11
  • 125
  • 168
janoChen
  • 493
  • 4
  • 10
  • 11
    I'm kind of confused why they teach aspx if they don't teach easy, hobby languages. – dietbuddha Mar 30 '11 at 05: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. – Steven A. Lowe Mar 30 '11 at 06:22
  • 1
    PHP is no uglier than ASP, and nor is it any easier IMO. I worked once with a DotnetAsp thing and that -was- ugly – Click Upvote Mar 30 '11 at 06:36
  • It would be good if you could specify your question, btw. Are you asking if PHP is an easy language? If only hard languages should be taught at university? If PHP should be taught at university? – pyvi Mar 30 '11 at 06:44
  • 10
    Only Java and ASPX? Are they teaching Computer Science, or just providing vocational training? – kevin cline Mar 30 '11 at 07:31
  • @Kevin cline I think they also teach C++ (I was referring to languages to build web appreciations). – janoChen Mar 30 '11 at 07:42
  • 2
    You should be happy that they arent teaching you php... take my word for it. To date i havent made a single php site once i learned asp.net –  Mar 30 '11 at 08:07
  • 1
    @acidzombie24 In fact, I'm happy I learned php and joined a community of open free software, instead of a profit making corporation. – janoChen Mar 30 '11 at 08:43
  • 2
    Personally I would like to see some sort of functional language in the mix (Lisp, Haskell, Erlang) – Zachary K Mar 30 '11 at 09:34
  • 1
    Why asking a *student*? Ask his professor. – SK-logic Mar 30 '11 at 09:58
  • 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. – MetalMikester Mar 30 '11 at 10:07
  • 1
    @janoChen - That's nice, personally, I'm happy I learned C# and ASP.NET and joined a community of getting things done and choosing tools for practical reasons, not political ones. – Carson63000 Mar 30 '11 at 10:32
  • 1
    Gotta love the language wars. Usually, ones flaming one language are people who haven't used it more than once. It's absolutely senseless to argue about tools when work awaits ;) – Michael J.V. Mar 30 '11 at 10:42
  • 4
    @MetalMikester: +1, I've heard similar at my uni. They also added "we assume, that if you're studying here, you smart enough to learn the language yourself" – vartec Mar 30 '11 at 11:21
  • @janoChen: Wait until you FINISH learning php...... –  Mar 30 '11 at 11:47
  • 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 '11 at 14:14

9 Answers9

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.

vartec
  • 20,760
  • 1
  • 52
  • 98
  • 1
    why is not a "serious" language? – janoChen Mar 30 '11 at 09: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 '11 at 09: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.) – David Thornley Mar 30 '11 at 14:02
  • 2
    @David -- *how not to name your core functions* ;-) – Drew Mar 30 '11 at 22:26
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.

Arseni Mourzenko
  • 134,780
  • 31
  • 343
  • 513
Drew
  • 1,283
  • 11
  • 17
  • 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. – Steven A. Lowe Mar 30 '11 at 06:20
  • 3
    CMU decided a few days back to stop teaching OOP as an intro level course, and made it an elective. http://developers.slashdot.org/story/11/03/26/0016229/CMU-Eliminates-Object-Oriented-Programming-For-Freshman – apoorv020 Mar 30 '11 at 06:43
  • @apoorv020: because OOP was too difficult for the poor freshmen to handle right off the bat – Steven A. Lowe Mar 30 '11 at 06:50
  • 1
    My first CS class was functional programming (Scheme), – Zachary K Mar 30 '11 at 09: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 '11 at 10:00
  • @SK: ROFLAMAO!!! – Steven A. Lowe Mar 30 '11 at 13:53
  • There's always http://www.phpu.cc/ It seems to be a complete college alternative, more of a trade school with full apprenticeship and everything. – Theodore R. Smith May 07 '13 at 13:42
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.

Tod
  • 181
  • 1
  • 4
  • 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). – David Thornley Mar 30 '11 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. – Donal Fellows Mar 30 '11 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.

Steven
  • 226
  • 2
  • 9
  • @Steven is that demand based on corporatocracy or code efficiency? – janoChen Mar 30 '11 at 06: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 '11 at 06: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 '11 at 06:34
  • PHP is still not proper OO, and probably never will be. – vartec Mar 30 '11 at 09: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 '11 at 14:11
  • he,he. +1 @Nate. I actually ment Simula (http://en.wikipedia.org/wiki/Simula) – Steven Mar 30 '11 at 14:44
  • @vartec what do you mean by saying "not proper"? – janoChen Mar 30 '11 at 16:04
  • @janoChen: just look at the language. being object-capable doesn't make it object oriented. Apart of SPL, which isn't that widely used, most of the language is not OOP. – vartec Mar 30 '11 at 16:12
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.

Zachary K
  • 10,433
  • 2
  • 37
  • 55
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.

veryfoolish
  • 897
  • 1
  • 6
  • 12
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.

pyvi
  • 632
  • 1
  • 7
  • 17
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.

Carra
  • 4,261
  • 24
  • 28
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.

jqa
  • 1,410
  • 10
  • 13