Fog Creek Software
Discussion Board

Solving the difficulty of programming

Programming has stated as being very hard, and I agree with this. However, I also think it could be easier if the general public used different tools.

This has probably been very often stated, but I believe there is a major overuse of lower-level languages. Even a relatively trivial task like writing a static web-server can be hard if low-level tools are used, such as assembler.

Is it possible Joels problem with Leaky Abstractions is the result of using sub-optimal programming tools and APIs? I think there might be an element of truth in this.

An example of a good high level language and API would be writing networked applications in Python, using the Twisted Matrix framework. An example of using the wrong tools would be writing the same application in C using sockets.

I think low level tools have their place too, but my point is that they might be over used. Incidently, I count C++ as low-level.

Saturday, December 14, 2002

I agree. I don't see the point of using C for common, ie. non-system applications, considering how less productive that language. Besides, we'd get less GPFs....

Frederic Faure
Saturday, December 14, 2002

Good tools make it easier to code but good tools can never reduce the complexity of the problem to be solved. While the problems remain complex programming will be hard.

John Ridout
Saturday, December 14, 2002

Frederic, there you go spreading FUD about C again. Wasn't that you that made similar comments on the PB forums about C a couple months ago, and got corrected by a dozen programmers?

The C language does not cause GPFs, and is not any more difficult than any other language -- only beginning VB students think so, because anyone that has worked with more than one or two languages can see that C plainly is just another language. In fact, PB is pretty much identical to C, minus PB's superior string handling and handful of wrappers around things like regex and sockets (and the sockets abstraction is pretty bad). And frankly, by the time a programmer has been writing production C for a few months, they've written all those wrappers or found libraries for them.

Troy King
Saturday, December 14, 2002

It's funny you should say this....

>>> An example of a good high level language and API would be writing networked applications in Python, using the Twisted Matrix framework. An example of using the wrong tools would be writing the same application in C using sockets. <<<

Python is itself written in C,  meaning that the Python Twisted Matrix (sounds like a Metal band) is getting back to that C stuff in the end.  Just take a look at a file called socketmodule.c in the Python source.  It's in he Modules directory. There is also a funny little comment in that hunk of code.

/* XXX This is a terrible mess of platform-dependent preprocessor hacks. I hope some day someone can clean this up please... */

Ha ha ha ha....... 

BTW, I took a look at Twisted Matrix and it looks like some cool stuff indeed.  Makes me wish for a little more time in the day. :-)

Anyways, Python is a great language as far as I'm concerned, but it can't do everything well.  As a VHLL, it's standing on the shoulders of another language that is much farther down in the dirt and is obviously getting no respect. C. Same with my favorite VHLL, or maybe just HLL, PHP.


Saturday, December 14, 2002

Why is everyone so worried that programming is hard and not getting easier? Doesn't that prevent it from being boring? I've seen lots of complaints in this forum about programming being a boring job -- well how can that be true if it keeps getting more complex and difficult?
If computer scientists ever attain their goal of making programming easy, there won't be programmers any more. Being a scribe is no longer a profession since everyone can learn to write.
I don't know if the same thing will happen with progamming, but it's fine with me if it doesn't.

Saturday, December 14, 2002

PC -- programming isn't as hard as everyone makes it out to be. I think this board has a large number of beginners, and then some guys like Joel that have to deal with so many broad aspects of a project that it gets overwhelming. I promise you that when Joel says something is hard, it's an entirely different class of hard than when a beginner says it's hard.

I think that with programming getting more complex, most programmers are getting more specialized by definition, since they now know less of the spectrum than before. It's very easy to get pigeonholed in programming, too, and that adds more to the boredom of it.

Troy King
Saturday, December 14, 2002

There are plenty of very hard programming tasks, but they're concentrated inside software companies i.e. the companies that make the tools and products others use.

Conversely, those tools are becoming better and better, simplifying the task of being productive for programmers in end-user organisations. .NET is a great example.

So we're seeing an intensification of the stratification that has always existed.

Must be a manager
Saturday, December 14, 2002

I think programming tools are like ice cream flavors, 50 years ago you could only buy about 10 different types, now there are dozens.

At the end of the day, it's all just ice cream.

Monday, December 16, 2002

*  Recent Topics

*  Fog Creek Home