Apps

Does it need to be easier to program?

Justin James discusses three viewpoints about whether it should be easier to program. Take this poll to let us know where you stand on this issue.

Over the years, I have seen two opposing views arise amongst developers. Some developers are of the belief that programming needs to become easier, something that everyone can do and that a lot of ordinary people are doing. Others feel that the barrier to entry is so low that a lot of people are writing code who really should not be.

The middle ground (which I subscribe to) is that the people doing ordinary code work need to have really bulletproof systems so that, if they are sloppy, the damage is contained, and at the same time, the people doing low-level stuff need to get better. While I would love a world in which anyone can modify or create software to their own personal specifications, I think that is a pipe dream. Where do you stand on this? Take this quick poll.

J.Ja

About

Justin James is the Lead Architect for Conigent.

82 comments
brian.kiser
brian.kiser

I'm surprised at all the people saying programming SHOULD be difficult. I started out programming in the late 80s, and it was manageable. The toughest problems you had dealt with actually solving the problem. These days, the toughest problems usually deal with making the technologies work together. We are concentrating on figuring out the tools more than figuring out the SOLUTION. And I'm sorry folks, that's not the way it should be.

JimInPA
JimInPA

the visual studio express editions? I am not a programmer however I have written a few things, vbscripts, ASP pages and a few small exe's in VB. With the exception of my vbscripts, most if not all of my coding takes place in Visual Studio Express Editions. Do you liken that to Front Page? I only ever used FP once to throw together a page I likely could have done quicker and possibly better in notepad.

jdclyde
jdclyde

that is what you get when you take away all skill from a job.

boxfiddler
boxfiddler

where human desire to make things easier will show up next.

boolsea
boolsea

Let's define what we mean by 'programming'. 'programming' (writing instructions in language 'x') is a small part of software development in the commercial world. There is also design (remember that?), documentation (user and maintenance, you do do that don't you?), testing (oh I know you are an expert, but I won't bet my business on you getting it perfect first time), packaging (damn! this thing is hard to (de)install and keep running), support (I know your customers are smart and they asked for precisely what they wanted and fully understand the product (in your dreams! smart guy) ) What we need is an easier way of expressing a software design in terms a computer can understand. The real skill is in the design, faster hardware can mask poorly structured code, but a bad design will lead to huge expense when supporting, maintaining and enhancing software which is really where the big costs are. I will re-iterate what I have been saying for the past 40+ years: Anyone can write 'hello world', but to write robust, usable, enhancable, commercially viable, usefull software takes skill, dedication, patience, and the ability to hold in your head a complex set of competing requirements and options and then select the one that will provide the optimum software (however optimum is defined for this particular software). Quite a mouthfull, but I beleive it's true. I also believe that writing successfull software is a craft, not something you can learn. I can learn to play the violin, but I will never be a Paganini (I bet he didn't use Windows). Modern IDEs make producing code easier, they don't make producing good code easier. I can learn C++/VB/C#/Java etc., agile develpoment (or whatever the current fad is, trust me I have seen and used them all), but good developers are born and not made. It's a calling, not a comodity to be bought from the cheapest supplier.

Jaqui
Jaqui

We need to promote ACCESS to proper education and training, preferably from an early age. The "drag and drop" programming that leads to badly coded apps needs to be ... depreciated. ;) If the schools used open source operating systems, specially in computer classes, then the students would not be handed the "drag and drop" programming tools. Let's face the reality, MS and Apple are bad for quality programmers, they both promote bloated apps.

Justin James
Justin James

I learned to program in the early 90's, using 80's era tools, from an 80's era person. I know precisely what you mean. I used to be able to just focus on the code itself. Now, so much of the job is things like trying to get the auto-generated data layer to properly translate the data types that the application uses to the data types that the database uses, or trying to figure out why the application server is passing blank strings into the app as null values, or spending hours on a few lines of HTML to get the UI to no longer have a weird gap between things in a particular version of a particular browser. It's insane. The development of IDEs from "code editors designed to wrok with a language, with built-in debugging support" to what they are now is a sign of this change. J.Ja

Tony Hopkinson
Tony Hopkinson

Front Page's problem wasn't really the IDE, it was the wizards and the templates. Either one, throwing together, well the result is relative to the effort you have to put into it.......

Justin James
Justin James

A few notes here. 1. The VS Express editions are stripped down versions of Visual Studio, not bulked up versions of FrontPAge. Totally different code base, thankfully. 2. Visual Studio is much better at producing standards compliant HTML than FrontPage. Indeed, Visual Studio *in and of itself* produces decent HTML. 3. 90% of the HTML generated by an ASP.Net application is the responsibility of the various controls, not the Visual Studio IDE. Weakness in the HTML is generally the responsibility of the controls, and neither you nor the IDE have any say in what gets produced. 4. Using Visual Studio as an HTML editing environment is a bit heavy handed, if that's what you are using it for. If you really want to be using a Microsoft environment for HTML editing, Expression Web is an excellent piece of software which produces top quality HTML in my experience, and it is focused on the Web designer, not the Web developer like Visual Studio is. If you are willing to explore non-Microsoft products, I always like Home Site (too bad it's no longer being developed, as far as I know), and a lot of people swear by Dreamweaver, although the last time I used it (circa 2001) I was unimpressed. J.Ja

Justin James
Justin James

FrontPage is a great example of why, if we put powerful tools in the hands of users, that they need to be really, REALLY good. The users did with FrontPage exactly what they were supposed to do... sadly, FrontPage had its own way of doing things at a technical level which was a mess. I hear that version 2003 was decent, but by the time it came out, I had long shunned that product and never confirmed it. On the other hand, Access lets people do some fairly sophisticated things that don't come out too bad; it also has a higher bar to entry than FrontPage did. Indeed, I will be writing in the near future about the relationship between "ease of use" and the tools that users use. I think that this idea of "intuitive" software has been applied to too many types of applications, with disastrous results. J.Ja

Vladas Saulis
Vladas Saulis

I'm afraid, this is true. There already was one unsuccessful dicussion on this few months ago... This age is for developers, not for programmers (as they might think). And we are better not to tell them about that. Anyway, it's better for us, cause we only getting more and more real work in the recent times, because of their existence... Hehe.

Tony Hopkinson
Tony Hopkinson

that usable, enhancable, robust and commercially viable, don't often go together. :(

Justin James
Justin James

I sympathize completely, and agree, more or less. The problem is one of supply and demand. The developers you talk about are maybe 10% of the total workforce, in my estimation, and it is highly variable based on the vertical industry and the geographic region. But the demand for developers is continuing to grow. And the structures to support (not quite "create" or "produce", but to allow people who have that talent and desire to actually learn the things they need to learn) the people who become that 10% have limited capacity. And as other fields appeal to super smart people who a knack for analytical work (bioengineering, investment banking, etc.) and appear to be more lucrative and/or more fun, the supply of new people coming into the field is dwindling (US comp sci degrees are down by a LOT over the last decade). This means that the 10% number is getting smaller every day. So, what do we do to make sure that the other 90% of people are not hashing out garbage? We either need to make it so that the 10% can up their productivity by a factor of 20 (and studies show that the top developers are already 20 times as productive as the bottom developers, another 20x improvement would make them a whopping *400* times more effective!), or reduce demand by a factor of 20 (not happening). Or, we can make it so that the other 90% don't product such consistently bad code. It's a lousy choice, but I think the answer is fairly clear if you have to answer it on pragmatic grounds. If your shop is small enough and wealthy enough, you can stick to the high road, and keep only the "best and the brightest" in house. J.Ja

sconyers
sconyers

One place the calling or lack thereof shows very clearly is in debugging. I work with a guy who can write passable code and follow procedures, as long as everything works right the first time. If he has a bug, he doesn't have the slightest idea where to start looking for it. Yes there are some tricks you can learn to make debugging a bit easier, but I find that almost every time, I can narrow down the problem to a fairly small area and find the problem code within 10-20 minutes.

jmgarvin
jmgarvin

The ultimate problem we are facing is a generation of toast users. They have a computer, they think they understand how it functions, yet they really don't have a clue...it's a toast on their desk. It magically makes toast for them on request. We need to also try to undo the IT mysticism that segregates IT from everyone else. Part of it is jargon, but a HUGE part of it is training. We don't start training until you hit the work force, we need to hit the kids in elementary school to show them how IT works and what it REALLY does on a day to day basis. We need to help the kids in middle school understand that IT and programming aren't magic. Introduce the concepts. In high school, start with some CS classes. Show the kids what it really takes to be a good programmer and IT guy. Once they hit the job market, we need to train our employees from day one that they enter the company. The problem is we just aren't doing that. The programming and IT courses from elementary to high school are pitiful. There is a total lack of anything resembling a true education of what you should expect in the work force....don't get me started on how college level CS is stuck in the stone age....

Tony Hopkinson
Tony Hopkinson

What does easier to program mean? To us, it means a quality debugger, more descriptive languages, more compile time validation. To the industry as a whole, it means someone with no/little knowledge of programming can build an application. Hence bloat.

Justin James
Justin James

... was the HTML generated, IMHO. It was slightly better than doing a "Save as HTML..." from Word, and would be just as bad if the content (as it frequently was) was pasted from Word. J.Ja

XDotNet
XDotNet

Yes, programming needs to be easier for the masses. We should be looking towards enabling the business user to create software easliy...ala' Star Trek. "Computer, create a spreadsheet of all the Widget sales in New Mexico last week by store. The computer would basically write a little program itself for the user. No, to write the above kind of code will require programming techniques and skills beyond the mental capacity of 99% of humans. Someone has to write the software that "writes the software."

jdclyde
jdclyde

of where this has worked out well to allow people with no skill to make a useful product? I see it like a small business owner wanting software to run his company, so is handed a copy of MS Access. How many horrible databases have you seen? For that matter, how about spreadsheets? Something as simple as that and it is more often done wrong than right. The guy in charge of our Accounting department had some "Production Reports" that he did in spreadsheets. One for each department, and it took him a week every month to do them. When he left, I reworked the sheets from the ground up, and it is now two hours to do all 12 sheets. Five days to two hours. Same data, just put together correctly.

Vladas Saulis
Vladas Saulis

I'm afraid if we try to automate _anything_ related to programming, we'll get the same FrontPage. So, this is not about FP, not only for FP, and has nothing to do with FP. These are just consequences of trying to automate programming. :)

Tony Hopkinson
Tony Hopkinson

easier. Write maintainable code. Murphy's first law of coding, anything you understand now, you won't after a week of doing something else.

Tony Hopkinson
Tony Hopkinson

designed by people who've never been successful (or even attempted) real world IT. Small wonder they don't teach it the right way. Then of course business, wants at least general IT to be the equivalent of using your tv remote. The sort of thing any chump they can drag in off the street to do. At the moment academia and business are getting paid well for incompetence, and neither is actually dependant on the other. Coincidence......

Jaqui
Jaqui

to society's bad definition of "easy to program" is to improve the education starting in elementary schools about it. I am sure a child in the 3rd grade could understand basic Comp-Sci. giving them a good foundation to be added to every year until graduation. This would enable post secondary courses to ignore the basics after the first semester and move into the type of content that would really teach them how to program. and by having open source operating systems in the schools, they have dev tools, and save tons of cash on software licenses that can go to adding teachers to the system.

Tony Hopkinson
Tony Hopkinson

since I used it in 98. :p But when you can chop three seconds off a page load, on an intranet, where the server is 10 yards away..... I aren't even going to mention, that wee trick where it shifted your code to lowercase and ripped out the whitespace to make it faster. As annoying as that was, the reasoning behind it shouted this is crap at full volume.

jdclyde
jdclyde

one, in either a spreadsheet or database, where they put first and last name in the same cell. The field is now useless other than to sort by first name..... Another is, if departments get billed by IT, that cuts into their budget. If they do it themselves, they "saved" the department paperwork and money. They also don't realize how badly their monstrosity is, because they don't know how good it could have been. In my previous spreadsheet example, the user knew a lot about them, but not a lot about the PROGRAMING ideas behind how to set it up. Between VLOOKUPS and cell references, it is now a simple process. Of course, every year I am now the one who gets to reset them for the next year...... You touch it, you own it.... :(

Justin James
Justin James

The lack of good examples from the current toolsets out there is *precisely* why I pose the question in the first place. :( I know that a lot of users want self-service. I think that IT people would rather have users do self-service on small tasks, if it doesn't cause big headaches down the road. But at the same time, most of the self-service projects I've seen were not so great. Regarding the self-service projects I've encountered... it all depends on what you mean by a "good" example. "People with no skill" is another problem there. Everyone is going to need some modicum of skill in something if they are going to do anything useful. It's a matter of degree. But for the moment, let's pretend that the "typical user" is what we mean, and maybe give them the curiosity and willingness to hit F1 from time to time (surprisingly rare amongst users... amazing that they will whine about how "this junk is broken!" without actually finding out how to use it first... a topic that I will be taking up in a few months). If you want to judge purely on technical merits, I've seen a very small number of user-built applications that were not complete dogs. Notably, they were extremely small, too. Things like a 3 table Access database, or maybe a recorded Word macro. In other words, they did tasks with a DIY GUI tool that a trained programmer could have (and would have, and most likely should have) done via writing code. But at the same time, even a 3 table Access database can be a technical loser; all it takes is for the person to use, say, people's initials as primary keys and you have a problem waiting to crop up. Another one that I've seen a lot is the "quickie Excel spreadsheet" that grew far past the original intentions. Next thing you know, they hit the 65K limit on rows in the spreadsheet, and start doing weird things to compensate. Or the logic becomes too difficult to cleanly express as cell formulas, and instead of turning to the VBA code system, they start doing some very odd things with formulas that make maintenance a disaster. Another pitfall is stuff like what you describe above: the user is so amazed that what they did actually gets something done, that they overlook the fact that it is not easy to use, or does not automate enough, or requires too much manual intervention, or has poor error handling, etc. But... IT projects have a high failure rate. The number that's been said lately on these boards (courtesy of Chip's post on the topic) is roughly 70%. And I beleive that number. In all fairness, when we as an industry are delivering a 30% success rate, is it any wonder that users might want to give things a shot on their own first? Even more of an issue, is that while trained IT pros may be able to handle the technical end better than a user, there is a significant risk that the requirements will get mangled along the way. A user doing self-service removes a very large variable that can really wreck a project. At the same time, a *good* project management team will help refine the requirements and focus them a lot better than a user just shoving widgets together on their own. I think, though, that one of the biggest factors in the failure of self-service projects is the user's mindset. If the user is unwilling to read a book or consult the documentation, there is no reason to think that they will be able to do anything well. There is this expectation that software should be "intuitive" (and I can understand why), but people apply that expectation to the work itself too. Fact is, if you already understand databases, using Access is pretty darned easy. Frustrating, in that it tries to do so much for you against your will. But easy nonetheless. If you are completely clueless about databases, you *might* be able to cobble together a piece of junk with a lot of blood, sweat, and tears. The smart users will say, "wow, that was WAY too hard! I had better learn how to use this better!" Or maybe they will say, "gee, I guess I should get the IT folks to do this for me." The dangerous users are the ones who instead get the boss to force the whole department to use their creation as is. So yes, even with perfect tool sets, it is hard to envision "typical users" doing good work with self-service with the typical mindset of, "if I can't do this intuitively, the tool stinks." J.Ja

jdclyde
jdclyde

I am a firm believer that ANYTHING can be done better, and am always relooking at everything we do and HOW we do it. My job is to help others do their jobs better. Period.

Tony Hopkinson
Tony Hopkinson

certain people in the tools industry feel that presenting one abstraction in a different one solves problems as opposed to merely moving them. Ho hum, more fires to put out....

santeewelding
santeewelding

I cluck my approval, JD. I'm knowledgeable and nerdy enough to appreciate your surgery on the Central Nervous System of a business. That's why, among other reasons, I haunt this place, uncovering the occasional gem like yours.

Tony Hopkinson
Tony Hopkinson

fundamental in a kitchen, with make a cup of coffee as the application. While I agree that turning out lots of people who could program, but had never used a 'real' language, would have the business types howling, I don't think you should go a near a real one when learning. At least until you can illustrate say parallelism, threading, deadlock and such with a homely and as far from 'IT' as possible examples. First theory, then implementation. The number of people who think for(int i = 0;i

Jaqui
Jaqui

that old classroom assignment in computer science class in the high schools: Detail every step in washing and waxing a car. For the completely mindless idiot that has never done so before. never even seen a car, or one being washed and waxed. after they have the list of steps is when you point out to them that what they have is the ENGLISH [ or whatever human communication language being used ] list of requirements for a computer program to have a robot wash and wax a car. and make them write the code for it, assuming the hardware will handle the motion of the device without explicit commands. [ to really drive the point home, make them accept the input of the video camera and react appropriately, define each motion and implement it. also as a part of the code ] that one assignment will teach more about what a program is than anything else you can assign them.

Tony Hopkinson
Tony Hopkinson

connecting prefined objects up with properties, is apparently not coding, after all coding is where you do that weird hexamadecimal stuff. :p They don't get it Jacqui, to them programing is the language you use. If you don't use the 'right' one you can't program......

Jaqui
Jaqui

is what all these application frameworks are about though. make it so the developer doesn't actually have to code.

Tony Hopkinson
Tony Hopkinson

assembly. In commercialville, there's an obvious market for the output of cookie cutters. There's an obvious price point for those who can't go beyond that point. What seems to be missing is an appreciation of the level of skill to create a flat pack for somone else to assemble, never mind the amount of talent to create a welsh dresser from a pile of timber and some glue....

AnswerMan
AnswerMan

You should NEVER try to teach a pig to fly.. It wastes your time, and really annoys the pig.

Tony Hopkinson
Tony Hopkinson

Setting up a web page to do want you want with HTML is in certain fundamental ways programming. Limited/constrained admittedly, but still a set of instructions to executed in a particular order.

Vladas Saulis
Vladas Saulis

For my understanding from all my programming background I'm surprised whether HTML, usage of Web servers, databases and all that stuff can have any relations with programming?! At most I could call it "data mangling" or a "trivial manipulation of variables" for making some simple sence at the output. Can anyone tell me where you could see any programming here? On the other hand, I can treat the process of those tools' creation as a real example of programming.

Justin James
Justin James

Mark - I have always found that analogy really interesting. I think that as time goes by, we will stop using computers to simply eliminate the "drudgery" out of people's work (and from what I've seen, far too many projects require more programmer time than they save in "drudgery", which is a "failure" in my book), and to truly be a lever for creation. We're seeing this now in certain industries, such as films and music. Computer graphics are allowing movies to be made that could never have been made before, at least not within a reasonable budget or beleivability (although frankly, I'm already tired of the CGI-fest that too many films have become), and synthesizers and samplers have allowed new types of music to be made. But it's taken decades for artists to become proficient with even basic tools. Look at how long even relatively simply synthesizers took to really become useful instruments across the industry and not just an aspect to the quirky sound of a band or two. Computers are the same way. We are still in the raw pioneering stages. Hedge funds are starting to try merging real time data processing with complex algorithms, and the results are still spectacularly disastrous. But 10 or so years ago, these hedge funds couldn't have gotten themselves into the situation they are in now, because the computing power (and people with the skill to harness it) just did not exist; even if it did, the data was not available. Even stuff availble to the average programmer is still totally exploratory... note that most "Web 2.0 mashups" really just involve plotting some data set on a Google Map and calling it a "value add". We're still at the point where sticking push pins into a map, the electronic equivalent of something that 2nd graders do to learn geography, is just now no longer considered a "wow" idea. Heck, we are still trying to just get a UI that makes sense... mouse & keyboard are fine for the moment, but look at the amount of money being poured into research of new input and output devices... clearly, no one is satisfied with the mouse and keyboard. So yes, we have a long, long way to go, and a good measure of that is when the typical person is able to leverage the computer as a tool of creation, as opposed to merely replicating simple tasks. J.Ja

jmgarvin
jmgarvin

IIS and Apache (in theory) do the same thing, but in reality they are VERY different. Javascript and jscript (in theory) are the same thing, but in reality are not....and so on... I can see the program being a good thing, but it probably needs to split focus and work on creating programmers, sys admins, and net admins (if they plan on going down that road)

jmgarvin
jmgarvin

I've seen more people wash out of CS than almost any other degree program (save for engineering or the hard sciences). The reality is that people get into IT because HR believes that have a clue because they have 27598243759874329587 certs...

Mark Miller
Mark Miller

Not everyone is going to be able to write "great masterpieces" in computing, so there needs to be a way ultimately for ordinary people to participate. I'll have to read up on this, but my guess is even in ancient Greek society not everyone was literate. The thrust of what Crawford was saying is that reading and writing was not just a thing scribes did anymore. It became just a part of how professionals did their work. So if you were a historian, for example, you didn't just memorize the history the way your elders did. You wrote it down so that others could read it without having to bother you to recite it. It became a way for disciplines to get outside their own walls and share ideas with each other. For example dramatists could take something from history and create a play out of it. The people who came to see the play didn't have to know how to read or write to enjoy it. Perhaps Live Kernel presents something that's in the vein of "common writing". I watched a presentation by Dan Ingalls, who created it, and he said he wanted it to be a medium where people could experiment with ideas and share them with each other over the internet easily. It wasn't meant to be used for IT projects or something like that. It's more along the lines of someone creating a little something and then sharing it with others, where you can say, "Hey, check this out."

Tony Hopkinson
Tony Hopkinson

don't, very desirable, as opposed to the current trend of attracting those who can't and unfortunately do..... Not sure I agree with the premise though. There's a big difference between being numerically literate and being a mathematician. The gap between someone who can program and someone who can write code is just as wide. Most of us on this site can read and wirte :p . How many of us could write a decent novelette, never mind a literary masterpiece? It's an innate talent. I can read a book, and see how they constructed the plot, got the theme, the beauty of the prose etc, I can't do it though.

Tony Hopkinson
Tony Hopkinson

We will get up to date with business and make you relevant, by using Java. So how much C# and ASP.net do you know graduate? Stuffed, if they've parroted out some professor's preferred java algorithm, intead of learning how to program...... If you want to see the classic example of IT and academia, you need go no further than the Vienna Development Method.

Tony Hopkinson
Tony Hopkinson

There's a place for pure computer science, without it, we'd be in crap street. But for the general run of programming tasks, it's about managing and manipulating the process. There's even a place for cookie cutting, there's no place at all, for some one who if you take a specific tool off them, they can't do a job, or worse still no longer want to.

Tony Hopkinson
Tony Hopkinson

I see the problem as spending far too much time on things that they can yes/no answers for and I don't mean binary. You ever seen a newbie out of CS course who can write maintainable code. One that understands optimisation, that can site read, document, debug ? Many have potential (some even to do IT), that's all it is though. First thing I have to do is tell them that global side effects with one character names aren't clever. Why in Cthulu's name don't they know that? One of the scariest things I've seen on this site. Student. I am doing an IT degree, when I pass, should I be a programmer, a DBA or an admin? WTF are they doing in there, general knowledge?

don.gulledge
don.gulledge

That's a great way of putting it. I've seen a few of those pigs. But, for the most part most people that have been educated in a tech field and some in other fields that are truely motivated, are much better to work along side than those that aren't although, there are always some exceptions. It's the ones that don't have any background and a low lack of motivation except to find a place they can work, make money and exist without having to produce anything of substance. These are the pigs that don't fly at all. Too many of them.

Mark Miller
Mark Miller

I've heard about new majors taking shape in CS departments called "Applied Computing Technology", where there's an IT focus. They started up such a program at my alma mater, Colorado State University, just last year. I talked with my former undergrad advisor in the fall of 2007 about it. He said students were learning about Java, HTML, web servers, databases, how to write web apps., etc. It didn't sound like a shake-and-bake program, because he said they were also taught how databases and servers worked internally. I didn't get a sense that there was much of the traditional CS curriculum in it in terms of stuff like data structures though. I could be wrong. The upside for them has been that the ACT program is more popular than the traditional CS program. On the downside, my former advisor said, "It doesn't attract the best students." So my guess is there's still some study of internals, but it's not as rigorous as a traditional CS program.

Mark Miller
Mark Miller

Chris Crawford wrote a great set of essays years ago on this. He compared what the programming profession is today to that of the ancient Egyptian scribes. It was the same deal. They were educated, able to handle complexity and technical issues, and were an exclusive class. They were necessary but they couldn't get any respect. Being a scribe was not considered an admirable profession by most of society. They did similar work. They were the only ones who were able to read and write. They had patrons who would pay them to take dictation (translate the spoken word into writing), to keep records of events (natural disasters, wars), and to account for stocks of food, livestock, soldiers, military equipment, etc. They were also paid to read the records written by other scribes. They used the media of stone, clay, and papyrus. Another interesting thing Crawford said is these scribes had nothing interesting to say in the writings they left behind. There was no literature, no drama, and no expressions of personal life. It was all official business. He said sometimes they'd even venture into doing "neat tricks" with their media--I guess our modern equivalent of "hacking". The Greeks changed all this. They formed an alphabet (a concept borrowed from the Phoenicians) that anyone could master, and so opened reading and writing to the general populace. Reading and writing took on a whole new meaning. People still had to be educated, but now historians, dramatists, artists, storytellers, politicians, engineers, philosophers, etc. could all read and write, and what they wrote has been interesting enough that it's been carried down through the ages, and people still read it today to be educated and inspired. Linearity and rationalism as forms of thought came into being for the first time and began to spread as a direct result of the wider adoption of these skills. Applying the medium analogy to computing, the question becomes what would such an alphabet look and feel like? What concepts would it embody? Maybe we don't have the slightest clue yet. As Alan Kay has said, "Nobody's figured out what computing is yet." In my estimation, in order to solve the issues that have ailed IT for decades and just won't seem to go away, there needs to be a return to an emphasis on research in computer science, so it can get back to finding answers to the question, "What is computing?" Once some ideas start forming about that perhaps an "alphabet" will start taking shape, and then I think you'll find that "programming" (or whatever it ends up being called--"writing in the digital medium") will begin to be discovered and appreciated by the masses. People will actually want to learn to do it as a way of enjoying and engaging in a new form of expression that's interesting and enlightening.

Justin James
Justin James

... there is a place for those "in the clouds theory" CS programs... but few programmers will be working in environments where it is needed. Compiler folks need that stuff, but for the average programmer, those super-theory programs are "interesting" at best. On the flip side, the "watered down" versions than many colleges pass off as "Computer Science" are little more than shake 'n bake programs, which do not do any good either... right idea, in a way (focus on writing code, not theory), but a poor implementation. We really need to get a clean separation of Computer Science as a theory, and "how to program" and an applied science or an engineering discipline, complete with education of security, project management, version control, etc. etc. etc. from the perspective that programmers need. J.Ja

steve
steve

I have a daughter who has just finished a music degree. In that stream, if you don't have talent you don't make the grade. I'm sure human language courses are the same - if you don't have the wherewithal to acquire the language, then you won't be able to work effectively in it. Are CS courses trying to teach pigs to fly? Do they make everyone pass just to keep their rosters full when what is needed is the realization that not everyone has the logical problem solving mindset and -yes- creativity needed to program effectively?

jmgarvin
jmgarvin

Ignorance is bought and paid for while those that are knowledgeable and able are frowned upon. Small wonder Oracle just laid off something like the top 5% of the workforce...

Tony Hopkinson
Tony Hopkinson

employees, why not code ? Doesn't matter what they get taught, when they hit commercialville...... Get version1 out on time, get promoted, version 2, someone elses opportunity to charge some poor git again, while saying not me guv.

Editor's Picks