Join 3,553 readers in helping fund MetaFilter (Hide)


Computer Science: Still have Byte? Or Down to Bits?
April 23, 2012 11:04 PM   Subscribe

While growth prospects in the field are incredibly high, recent trends, such as "tools grow[ing] more advanced" (see Adobe Flash Builder or MS Visual Studio) have had people wondering over the past few years if computer science has much room for growth left. Some question whether it is alive. Others, such as Carnegie Mellon, say not so fast. In any case, employment has been a bit iffy (/.). There is the possibility that Computer Science is simply growing up (PDF), then again the U of Florida decided to say good bye to it this past week. But hey, if you are not going to that University, and still are shooting for computer science, here are some tips.
posted by JoeXIII007 (57 comments total) 18 users marked this as a favorite

 
I feel like computer science today is an odd mix of vocational training, engineering and applied mathematics, and would be profitably split along those lines. I'm not sure that it doesn't make more sense for people who write code to be educated through an apprenticeship/certification model, since that seems to be how it works in practice anyway, leave systems, protocol and application design to the engineering departments and everything else to the mathematicians.
posted by Grimgrin at 11:32 PM on April 23, 2012


There’s a lot of confusion in this post about the meaning of “computer science”. Some links seem to use the word to mean software engineering, others (the U Chicago paper) are talking about a branch of mathematics. It’s not necessary to have a C.S. degree to be a successful programmer, and it’s not necessary to be a good programmer to be a brilliant computer scientist. “Academic code” is widely chuckled at in the industry, and I’ve just returned from a week working in an organization with an active debate between academics and hackers, with the hackers mostly carrying the day.

Advanced tools let you perform known tasks quickly and more efficiently, so it seems that demands on the complexity of software engineering are falling and basic programming is being outsourced. On the other hand, the same complexity gets pushed up the stack into large-scale coordination, where academic concepts (e.g. the CAP theorem) become critical to successful hacking efforts.

Personally, I think Amazon’s cloud services are more indicative of the advanced tools of the future than Flash or Visual Studio. Computer science as applied mathematics will remain important to the application of these new tools, because very few people today have any idea how they can or will behave.
posted by migurski at 11:36 PM on April 23, 2012 [10 favorites]


…an organization that would have never even thought to hire their own technology team at all until just these past few years.
posted by migurski at 11:39 PM on April 23, 2012


Many people don't know what computer science is. Its not software engineering, no more than physics is electrical engineering. CS is in fact becoming more and more important as a field of study, because our world is being filled with more and more computers, and we are becoming more and more dependent on them. Understanding what a computer is and how computation takes place is critical to be able to make sense of everything around us.
posted by destrius at 11:59 PM on April 23, 2012 [5 favorites]


For the record, most academic computer scientists have never worried that our field is dying or irrelevant. Now that anyone can buy a pocket calculator, is mathematics dead? Now that everyone drives their own car, is mechanical engineering dead? Now that my five-year-old can clone her cat in the garage, is molecular biology dead? No, of course not. We've just worked out the boring, easy stuff; now it gets interesting.

Maybe I'll start worrying when the undergraduates in my department—or for that matter, the University of Florida's CISE department—stop getting multiple job offers with salaries higher than mine.
posted by erniepan at 12:52 AM on April 24, 2012 [5 favorites]


There were commenters in the slashdot thread about the University of Florida eliminating its CS program who observed that many schools now offer an IT degree in the Business School, often with names like Computer Information Systems, a Software Engineering degree in the School of Engineering, and/or a traditional CS degree in the School of Sciences.
posted by jeffburdges at 1:24 AM on April 24, 2012


Mr. McGuire: I just want to say one word to you. Just one word.
Benjamin: Yes, sir.
Mr. McGuire: Are you listening?
Benjamin: Yes, I am.
Mr. McGuire: Algorithms.
Benjamin: Exactly how do you mean?
posted by Blazecock Pileon at 1:37 AM on April 24, 2012 [2 favorites]


All I know is that the CS department I work in is seeing student numbers climbing as fast as they can expand to meet them. I'm in a UK university though, the US experience may be different.

I get the impression that there's an awful lot of low grade "We'll teach you 90s level HTML" university courses in the US, which probably aren't delivering the results students hope.
posted by pharm at 1:38 AM on April 24, 2012 [1 favorite]


recent trends, such as "tools grow[ing] more advanced" (see Adobe Flash Builder or MS Visual Studio) have had people wondering over the past few years if computer science has much room for growth left
Wat?

Computer science will be "done" when computers can program themselves as well as humans can. Or, at least, it will be out of our hands.
posted by delmoi at 2:01 AM on April 24, 2012 [3 favorites]


The reason the tools (and the libraries) are growing more advanced is because writing computer programs is a moores-law factor of complexity higher than it has ever been. It's not a solution to the problem of automatically creating all code, it's a solution to the problem of code being more complex than it has ever been.

I pity kids trying to learn to program these days. We're all standing on the shoulders of giants, but some of us have spent the last 30 years climbing up that giant as it was being built. If you're trying to scale up that giant in four years as part of your degree course, it must be hell.
posted by zoo at 2:09 AM on April 24, 2012 [5 favorites]


The reason the tools (and the libraries) are growing more advanced is because writing computer programs is a moores-law factor of complexity higher than it has ever been. It's not a solution to the problem of automatically creating all code, it's a solution to the problem of code being more complex than it has ever been.
"Every line of code is a potential bug and has a long term maintenance cost. It doesn't matter if the line of code is machine generated or manually generated. The initial cost to write a line is typically small compared to the lifetime cost to maintain it, and machine generated code is not magically bug free. The only way to reduce the cost of software is to produce more features with fewer lines of code." - Steve Jobs
posted by Blazecock Pileon at 2:23 AM on April 24, 2012 [1 favorite]


BP: Well, that's not actually true. Job's should have known better.

The great thing about Visual Studio (for example), is that individuals share that maintenance cost with millions of other developers. Plus, stuff that has been tested and used and fixed and tested and used and fixed over the last 15 years is pretty much certain to work.

A line of code in Ruby or C# or AppleScript has a much better chance of working than the equivalent 2000 lines of assembler.

Even if you're not talking about libraries or compilers, and you want to focus on automatically generated code, then you're wrong.

Machine generated code is generally much more stable than the stuff you write yourself. I've saved 1000's of hours by using scaffolding tools, and I can honestly say that the maintenance cost of that code is also significantly lower.
posted by zoo at 2:32 AM on April 24, 2012 [3 favorites]


As a current "computer science" student, my first reaction was "oh shit! this degree is gonna be useless, in terms of "shit I need to know." But as a current "person who is looking for a job," I can safely say that "having a useless computer science degree is apparently something that employers still want, the poor dumb bastards."
posted by ShutterBun at 3:15 AM on April 24, 2012 [1 favorite]


there's an awful lot of low grade "We'll teach you 90s level HTML" university courses in the US which, which probably aren't delivering the results students hope.

I suspect it's more a case of "please just let me write 'I have a Computer Science Degree' on my resume so that the human resources person will hire me; I'll learn the shit I actually need to know on my own time, thanks."
posted by ShutterBun at 3:20 AM on April 24, 2012 [2 favorites]


BP: Whether you're using code or data files (which was the original context of Jobs' statement, made back in 1989), practically, they both have to be maintained. Like Gates, Steve Jobs was more a businessman and visionary than a developer himself.
posted by JHarris at 3:53 AM on April 24, 2012


BP: Well, that's not actually true. Job's should have known better.

The great thing about Visual Studio (for example), is that individuals share that maintenance cost with millions of other developers. Plus, stuff that has been tested and used and fixed and tested and used and fixed over the last 15 years is pretty much certain to work.
That does seem to be how Apple approached design though. While other companies were layering on new virtual machines and frameworks, Apple was continuing to do things the same old way. C++ or Objective C, compiled down too machine code, running close to the metal.

That's how computers were programmed in the 90s, for the most part. But now most applications for windows are android are VM targeted - either .Net or Java on windows, or Dalvik (translated from Java) on Android.

(On Linux you see a mix of all of that stuff, plus code written in modern scripting languages like Python plus shell scripts and and all kinds of craziness.)

Essentially he's making the developers work harder. But for the iphone, it makes sense. It essentially creates a filter. Bad developers simply can't write iPhone apps, but they'll have a much easier time writing android programs. Of course Android programming still isn't nearly as difficult as LAMP style web development, not by a long shot but it's probably easier then coding for the iPhone. So as a result, iPhone developers have to know what they're doing. That, plus the fact that you code iPhone apps at a lower level with less abstraction probably means faster/smoother applications.

I think one key difference is that in the past most platforms wanted as many people to code for them as possible, and made it easy for them to do so. The result is that the platform gets a lot of support from developers, but a lot of time crappy programs are made. Just look at all the garbage that people writing code in VB have come up with.
posted by delmoi at 4:00 AM on April 24, 2012 [2 favorites]


People have been predicting the end of programming as an elite profession for decades and it's never come true. Twenty five years ago 4GL systems were going to allow non-programmers to write anything by plugging modules together. Somehow it's never that easy and beyond trivial applications, you're going to need someone who actually knows what's going on at a lower level to get things to work.
posted by octothorpe at 4:19 AM on April 24, 2012 [1 favorite]


The advocates for UF seem to be saying that this incident is part of a history of trying to break the faculty union and tenure more than anything else. The administration can't just ignore its contracts and fire people, but it can eliminate a department as a budget move.
posted by a robot made out of meat at 5:48 AM on April 24, 2012


"Computer Science" for me means the slightly abstract questions you get asked at interviews, which rarely intrude into actual life as a developer.
posted by Artw at 5:51 AM on April 24, 2012 [4 favorites]


Of course Android programming still isn't nearly as difficult as LAMP style web development,

This is where your argument falls apart, as there is nothing as easy as LAMP style development, unless you want to devolve to client side scripting.
posted by Sparx at 5:54 AM on April 24, 2012 [1 favorite]


Oh, you'd be amazed at the cool and tricky stuff going on in clientside scripting these days...
posted by Artw at 5:56 AM on April 24, 2012 [1 favorite]


Er, advanced studies in CompSci does not /really/ have anything to do with "jobs". Just because the tech sector is (has been?) hot doesn't really mean anything to the notion of computer science as a whole.

The fact is, we need clever people who know how to make computer tools go. You can get this from university, sure. You can also get it from a 1 or 2 year diploma at a college.

Computer Science courseware does not necessarily make good tech workers. Clever people willing to leanr how to be good tech workers and given the tools they need make good tech workers.
posted by clvrmnky at 7:03 AM on April 24, 2012


LAMP style development can be fairly routine if you'd serving a fairly fixed suite of moderately dynamic web pages (e.g., a blog). But if you want a flexible data model and you want to build an application on it, the number of languages and libraries and practices you have to master gets very high very fast. Each individual tech is reasonable but the permutations are fairly mind-boggling.
posted by argybarg at 7:10 AM on April 24, 2012


I'm not entirely sure what "LAMP style development" is.

But LAMP was never easy. In fact, for people moving out of the event driven world of '90s GUI development, it was a complete nightmare.
posted by zoo at 8:10 AM on April 24, 2012


The great thing about Visual Studio (for example), is that individuals share that maintenance cost with millions of other developers.

That is a two edged sword. A bug in a widely used piece of code can break a lot of apps in a lot of unpredictable and different ways. This multiplies the maintenance cost astronomically.

Plus, stuff that has been tested and used and fixed and tested and used and fixed over the last 15 years is pretty much certain to work.

Which is why we're all still using COBOL, right? I think you have too much faith in CompSci. Remember Y2K? I wonder what's going to happen at Y2038.
posted by charlie don't surf at 8:32 AM on April 24, 2012


"Computer Science" for me means the slightly abstract questions you get asked at interviews, which rarely intrude into actual life as a developer.

Heh, exactly. That whole class I took on data structures is essentially useless since it is actually a bad idea to write your own tree or linked list. (Not to mention how much time was wasted writing data structures in C. Seg faults ahoy!)

OTOH I have used Karnaugh maps and state machines, and I doubt I would have known about those without a CS education.
posted by smackfu at 9:02 AM on April 24, 2012


Computer science degrees are the place where people who don't have coding skills learn to code. Where else would they learn it? Who would give them a job to learn it when there are people who already know how to code?

Where I work, you need a CS degree to do basic network maintenance. I could do a lot of what our IT people do if someone showed me how, but no one is going to show me or even consider training me without that degree.
posted by jb at 9:10 AM on April 24, 2012


We're not using COBOL any more because it's a rubbish language. This has nothing to do with code which has existed for decades and is still used. Saying that, COBOL on Cogs looks like a useful web framework.

They refused to call my degree Computer Science. In the end, they settled on Computing Studies. But it was hugely useful. I programmed before, but still - it was hugely useful. There's stuff I learnt there that I've used my entire life.

An example. State Machines. Don't know how many times State Machines have saved my ass. I'm never exactly sure I'm doing them right, but that one hour lecture was massively important.
posted by zoo at 9:17 AM on April 24, 2012 [1 favorite]


Computer science degrees are the place where people who don't have coding skills learn to code.

Really? I find that pretty insulting.
posted by zoo at 9:19 AM on April 24, 2012


Heh. I'd say that CODING teaches you to code, and computer science degrees are pretty incidental to that.

I dunno, would it be possible to pass one purely on theory without ever having executed any code at all?
posted by Artw at 9:22 AM on April 24, 2012 [1 favorite]


zoo: I didn't mean to insult. I was thinking of myself. I don't know how to code, I wouldn't know where to start to learn how to code. If I needed to know how to code, I would take a computer science course.

Maybe some people can teach themselves how to code; I am in awe of them. But I wouldn't even know where to begin.
posted by jb at 9:56 AM on April 24, 2012


Heh, exactly. That whole class I took on data structures is essentially useless since it is actually a bad idea to write your own tree or linked list.

My experiences with data structures have been different. I took the theoretical class, and while I agree it would be silly to write my own low-level implementations, data structures act primarily as metaphors in day-to-day programming: “This thing I’m doing, it behaves in some ways like a stack… I should get clean out all the non-stack parts and give it push() and pop() functions so I can reason about it more easily.”
posted by migurski at 10:26 AM on April 24, 2012 [2 favorites]


Right. My feeling is that "how to use data structures" would be a much more valuable class than "how to create data structures." But the CS curriculum changes only very slowly.
posted by smackfu at 10:49 AM on April 24, 2012 [1 favorite]


My feeling is that "how to use data structures" would be a much more valuable class than "how to create data structures."

Absolutely. CS is still teaching people the physics of fire and how to make it by banging two rocks together, while out in the real world you've got high school dropouts controlling flamethrower drones. The disconnect is just beyond belief
posted by crayz at 11:58 AM on April 24, 2012 [2 favorites]


> “Academic code” is widely chuckled at in the industry.

The reverse is also true, from what I hear. But what kind of code were you thinking of? I'm curious.
posted by Listener at 11:58 AM on April 24, 2012


@migurski: Academic code has influenced Python, Ruby, Javascript, and Scala, which are making grounds in industry. C# and arguably Java has academic influences too.
Even Objective C now has lambdas. The functional programming world
seems to offer the most promise in maintainability. Libraries can be written without the
preamble that comes in languages like C. Without academic influence, Java and C# would have remained object oriented languages. Java would not have added support for generics and anonymous classes and C# would not have added generics and lambda expressions.
posted by DetriusXii at 2:04 PM on April 24, 2012 [1 favorite]


Is computer science dead?

Yeah, these computers, they're just a fad. What a non-story. Computer science is thriving. Yes, enrollment has fallen since the heyday of the dot-com bubble, and yes, funding keeps getting cut but that's because of the recession and CS is weathering that storm better than most departments. But so what?

(see Adobe Flash Builder or MS Visual Studio)

ZOMG Craftsman™ just released a new series of hammers! Carpentry is dying!!!!1

We long for the days when assembler programming ruled

What? Nobody longs for those days. (Though we do like to reminisce about them in a "walked to school in the snow uphill both ways" kind of way)
posted by qxntpqbbbqxl at 3:25 PM on April 24, 2012 [3 favorites]


This has been a fair discussion, thank you. It is quite an important topic for people who have a vested interest in it like myself: I am a former prospective computer science major who turned to Informatics at the University of Michigan. My decision was based on how common, mainstream applications of computer science were already present and pretty stable* (so long as you don't do anything stupid, and yes, don't remind me, there are a lot of people who do stupid things with computers).

IMHO: room for innovation is disappearing fast, at least on the mainstream application side, and is approaching its limit. These days I can buy a computer, safely expect to be able to make documents with it (MS Office, OpenOffice, LaTeX, etc.), deal with photos on it, do complex analyses with it (R (for free), MatLab, Stata), and so long as I can find an internet connection, can communicate and get a lot of entertainment. I'm not too much of a gamer, but if I do get the itch, it's pretty much there. Google has taken up a lot of practical application too (maps, mail, reader, docs, etc.).

So while yes, there is room for innovation and growth in areas of computer science, I see it more on the machine learning side, the mathematical analysis side, etc. where you might as well blend the high level of computer science with some math and stats and call it Informatics: Data Mining and Information Analysis.

To say that computer science is thriving as the number of computers has grown quite a bit, is to say I have a lot of whipped cream in my hand when in actuality it received too much air: it's fluff. Odds are that the increase available technology may just require a few quick tweaks to the servers that get called by the numerous devices, the programs that run the devices (plus a quick system update, broadcasted), etc.

Perhaps I am just looking at the human resources side of it all: you really don't need too many computer scientists to run this ship, and odds are you really don't want too many either, just like you really don't need too many carpenters. You're probably going to want a lot more people getting other people to understand this new technology and how to use it. Thus exploiting the power yet to be tapped.

*This is pretty much what migurski alluded to...
posted by JoeXIII007 at 4:13 PM on April 24, 2012


/Writes 1000 page novel where people are cut off from the rest of society and everyone is just cool and chills out.
posted by Artw at 4:37 PM on April 24, 2012


JoeXIII007:

IMHO: room for innovation is disappearing fast, at least on the mainstream application side, and is approaching its limit

There's still lots of areas in CS that have yet to be explored fully. I doubt the "problems" in CS are anywhere near being solved, and its still a young field with much more to grow. This reminds me of when physicsts in the 1900s (supposedly Lord Kelvin) declared that physics was "finished", that all the important work has been done. Unfortunately Einstein and Bohr came along and shattered that myth.

[...] you really don't need too many computer scientists to run this ship, and odds are you really don't want too many either, just like you really don't need too many carpenters.

Again this is a misconception of what computer science is. Learning about CS has nothing to do with "running the ship"; there are other disciplines which focus on that.

Expanding on the carpentry analogy, you can think of software engineering as carpentry, and as software tools become more advanced, the barrier to entry for writing code drops till it does not require a degree to be a productive developer; just like you don't need a degree in carpentry to craft items out of wood.

So if coding is like carpentry, then was is CS? CS is not about learning how to carve wood and fit pieces together. Its about looking at the nature of the wood, understanding its properties and limitations. Are there better ways of carving wood? Are there more efficient means of attaching two pieces of wood together, and how and why do these methods work? How about if we ditch the wood and use some other material instead?

CS is to software development as is mechanical engineering and materials science is to carpentry.
posted by destrius at 8:20 PM on April 24, 2012 [2 favorites]


Best analogy I’ve heard is that computer science is to computers as astronomy is to telescopes. The tools are necessary but they’re also not the point.
The reverse is also true, from what I hear. But what kind of code were you thinking of? I'm curious.
I’m thinking of baroque, overly-clever code written without a user population, often to illustrate an unrelated concept in a paper or reference implementation. It’s the same thing you see in a lot of framework design: confusing language features with application features, premature abstraction and generalization, borrowing concepts from cutting-edge research, spooky action-at-a-distance and an excessive regard for the future in favor of the present.
posted by migurski at 9:50 PM on April 24, 2012


When I think of "academic" code that is probably being referred to, I think of the coworker of mine who had a PhD from the MIT AI Lab (and oh boy did he let you know it. his was the single worst interview I've ever had in my life and I failed it so miserably I thought there was no way they'd hire me) who wrote his own hashtable implementation in Java because the entire range of existing implementations he had to choose from were all too slow. This was later replaced by one of the stock implementations after it was determined to be the source of a memory leak that was so bad it required the app server to be restarted on an hourly basis.
posted by feloniousmonk at 10:08 PM on April 24, 2012 [3 favorites]


I have a degree in Computer Science, from a very theoretical department, and I'm struggling here to figure out what I even think about that.

One thing that stands out is the big difference between Computer Science and Software Engineering. Many of my professors literally did not even use computers, the subject was treated more like a weird branch of mathematics that happened to be having a torrid affair with linguistics than anything else. Many, probably more than half, of my CS classes had no programming component whatsoever. Does this sound like an engineering discipline to you? And yet the vast majority of people going through the CS degree program were there to learn a practical industrial skill. I think most of those people would be better served by going through a Software Engineering degree program that emphasized more practical skills such as writing non-trivial specifications, configuration management, bug tracking, large-scale programming, team work, and so on.

As for me, I feel a bit like I got a degree in some slightly odd liberal art, rather than an actual science in that it clearly influenced how I think about the world, and gave me a lot of insights, but I'm not sure I got many useful skills out of it. I can tell you a lot about computability, but I'm really a pretty mediocre programmer. But don't worry, I'm in a totally different career now so it isn't my fault that your computer keeps crashing.
posted by LastOfHisKind at 10:10 PM on April 24, 2012 [5 favorites]


Oh, and naturally, in addition to not having memory leaks, the stock version profiled as something like 1.5x or so faster for the typical case.
posted by feloniousmonk at 10:12 PM on April 24, 2012 [1 favorite]


Are you talking about Boost, migurski? ;) I'm fairly industrious about employing existing libraries rather than reinventing them, but some parts of Boost make me question that commitment.
posted by jeffburdges at 8:01 AM on April 25, 2012


Thanks Destrius. You and others I think point out I am thinking of software engineering, not CS. Also, good points within the analogy expansion. Again, I am still thinking that new innovation is pretty hard to flesh out in CS as it stands right now, but it will be interesting to see what occurs when (and if) quantum computing gets going (it would be CS's Einstein and Bohr moment).
posted by JoeXIII007 at 9:46 AM on April 25, 2012


Heh, not much experience with Boost but the meta programming bits I've seen are mind-bending.
posted by migurski at 11:56 AM on April 25, 2012


It's worth noting that many programming languages are invented in academia or academic-like environments, such as reasonably academic-like industrial research labs, like Bell Labs.
posted by jeffburdges at 12:25 PM on April 25, 2012


Of course Android programming still isn't nearly as difficult as LAMP style web development,
This is where your argument falls apart, as there is nothing as easy as LAMP style development, unless you want to devolve to client side scripting.
You're right. I somehow managed to type "difficult" when I meant to say "easy".

*sigh*

LAMP style development is pretty much the easiest way to build a useful/practical small to medium-sized application if you're not a good programmer. Obviously you run into problems if if you have a ton of source code on the one hand, and on the other if you are a good programmer you might think of a more elegant solution in some other language/platform.
posted by delmoi at 10:05 PM on April 25, 2012


But LAMP was never easy. In fact, for people moving out of the event driven world of '90s GUI development, it was a complete nightmare.
LAMP is pretty event driven. Each page request is an event, and the application state is stored in the database. I wrote event driven GUI programs in C/C++ in highschool and PHP seems much easier to me.

I think it's butt ugly and
Computer science degrees are the place where people who don't have coding skills learn to code.
Really? I find that pretty insulting.
My CS program had two classes on programming, which you took first semester. I tested out of the first one. It was C++, and in another class we learned MIPS assembler. There was also a class on programming language theory where we had to learn scheme.

The rest of the classes: No coding and no teaching about coding. And even though they'd taught us C++ the advanced classes all required you to write projects in Java. I suppose there were probably electives where people could learn other languages (like Java) but they weren't required.
Right. My feeling is that "how to use data structures" would be a much more valuable class than "how to create data structures." But the CS curriculum changes only very slowly.
Eh, I disagree. That isn't really all that difficult. If you know how the data structure works it should be easy to figure out when it's appropriate. I don't think you can really distill that down to simple rules that people can memorize.
So if coding is like carpentry, then was is CS? CS is not about learning how to carve wood and fit pieces together. Its about looking at the nature of the wood, understanding its properties and limitations. Are there better ways of carving wood? Are there more efficient means of attaching two pieces of wood together, and how and why do these methods work? How about if we ditch the wood and use some other material instead?
CS is to system administration what physics is to auto repair.
posted by delmoi at 10:20 PM on April 25, 2012 [2 favorites]


I think it's butt ugly and
Ai-ya! I really need to remember to proof these. I was just going to say what I'd already said in the prior comment about how it probably became a pain in the ass as you scale in terms of lines of code. There are lots of languages where its quick and easy to write a small program, but things get harry as you add more and more code.

---
The question of what programming language is easiest is an interesting. Obviously, what's easy for one person isn't going to be easy for another person, and it depends on what kind of programming you're doing.

But for a novice, or someone who can't code up 10,000 lines of C/C++ in their sleep I think it's an interesting question.

I think for people who "think in HTML" then PHP is really easy. All you need to do is 'model' what markup is going to get spat out, so really it's a lot like writing code for the command line, you just "printf" what you need. You can even design your HTML page first, then add PHP tags.

On the other hand, when zoo brought up event driving coding, I was seeing images of plain C win32 event loops. Those weren't hard to write if you knew what you were doing, but they were definitely annoying.

But on the other hand you also had VB6. That probably is a lot easier then PHP. In fact, I was actually talking to a VB coder at one point who was trying to learn PHP, and was getting really frustrated by the lack of drag and drop.

Finally there are 'flowchart' languages where you can arrange things visually. Those are probably the easiest way to 'program' small, simple functions for people who don't know programming languages. In a sense, what they do is eliminate the possibility of syntax errors, which is what throws a lot of newbs.

There are lots of office workers who know how to design MS access queries using the visual query editor, but would have no idea how to write SQL. It isn't that SQL would be difficult for them if they learned, it just looks intimidating.

I think many people, at least anyone who can handle algebra ought to be able to program if the tools were easy enough, but it doesn't seem like many people are interested in developing that kind of thing anymore. Probably, there's no money in it.
posted by delmoi at 1:51 AM on April 26, 2012 [1 favorite]


An update. Looks like UoF might just take their move back.
posted by JoeXIII007 at 7:25 AM on April 26, 2012


I think many people, at least anyone who can handle algebra ought to be able to program if the tools were easy enough, but it doesn't seem like many people are interested in developing that kind of thing anymore. Probably, there's no money in it.

There’s at least some interest, judging by the reaction to the tools featured in Bret Victor’s recent talk. Bret doesn’t seem to open source his stuff, so a few people have taken the idea of directly manipulable variables and run with it. There’s a new smattering of half-baked updates on ideas from Nodebox, Max/MSP, etc.

The advantage these tools offer is that by setting up a code/data barrier they make it easier for students or novices to concretely visualize what they’re making and “lego” together working programs. That’s got very little to do with actual computer science, though.
posted by migurski at 11:14 AM on April 26, 2012


God I love threads like this. ♥♥♥
posted by JHarris at 7:40 PM on April 26, 2012


Scott Aaronson weighs in on the University of Florida decision, and relates a joke that's too good not to retell:
A famous joke concerns an airplane delivered to the US Defense Department in the 1950s, which included a punch-card computer on board. By regulation, the contractor had to provide a list of all the components of the plane—engine, wings, fuselage, etc.—along with the weight of each component. One item in the list read, “Computer software: 0.0 kg.”

“That must be a mistake—it can’t weigh 0 kg!” exclaimed the government inspector. “Here, show me where the software is.” So the contractor pointed to a stack of punched cards. “OK, fine,” said the government inspector. “So just weigh those cards, and that’s the weight of the software.”

“No, sir, you don’t understand,” replied the contractor. “The software is the holes.”
posted by jcreigh at 2:29 PM on May 1, 2012 [5 favorites]


You sure software didn't weigh anything in the 50's?
posted by zoo at 7:06 AM on May 2, 2012


"Say hello to the real real-time web" -ArsTechnica

Another frontier I do not see going away any time soon.
posted by JoeXIII007 at 11:54 AM on May 16, 2012


« Older Nickstarter - Nick asks you to fund a project, his...  |  "Net migration from Mexico to ... Newer »


This thread has been archived and is closed to new comments