Stuff
I often have thoughts that I have interesting, and I say to myself "Chad, you should write some articles explaining your thoughts and put them up on your web site." But I don't ever really want to go through the whole process of writing a complete document, so my thoughts stay in my head. So to keep myself from forgetting and potentially motivate myself to write (at least when my RSI cools off a little), I'll give two "teasers" here.
I've got an idea for a paper floating around in my head called "HCI is not Just for Grandma." The focus of that paper would be dispelling myths regarding interface design. It seems to me that a lot of programmers disregard interface design, because the software isn't designed to be easy to use. Well, I propose that making good interfaces isn't as expensive or difficult as commonly thought (as long as the proper design principles and attitudes are understood) and that good interfaces help technical or educated users just as much as anyone else. For example, picture this conversation (which was probably on Slashdot at one point) from the KDE 1.0 era, when we didn't have all kinds of awesome Linux GUIs:
- RandomGuy: Why is burning a CD from the command line in Linux so hard?
- LinuxFanatic: Idiot! It's really simple! Just type "mkisofs -J -R -V volumeid mydirectory | cdrecord speed=4 dev=1,0,0 -" So simple!
- RandomGuy: Simple?! How am I supposed to remember that?
I'd also like to write a paper targetted at the VRAC called "Environmental variables considered harmful." I've mentioned the idea to a few people, and they all seem skeptical. But perhaps my ideas about changes to the typical project structure at the VRAC would save development time, especially for new developers. It would also enable better 'project packaging' when (if) we're finally done with them.
Another recent thought goes like this: Common computers are becoming increasingly parallel. Dual-processor workstations are everywhere, servers often have a multitude of CPUs, and I've heard rumors that the PlayStation 3 will be designed even MORE than the PlayStation 2 for parallel computation. If you link this trend with the fact that strict functional programming languages parallelize very easily, perhaps the next "paradigm shift" is simply using Haskell, ML, or CLEAN to efficiently develop software for the next generation of computing systems. This idea really appeals to me. When I look at Java, and to a lesser extent C#, I see a step backwards in compiler and runtime design. Shouldn't new computing environments get FASTER as well as easier to use? OCAML (a derivative of ML) supposedly performs as well or better than C++, and is much safer. Why can't we have a functional programming language as easy to use as Python, but as fast as C++? (I've actually got a friend who has been trying to build such a thing for years. But I think it has to evolve as a natural progression from other events in computing.) I'm excited for the future, even though I know it will bring more PHPs and Javas... but it's all worth it if a fast Python comes along for the ride.
If anyone got this far, I'm impressed. :)
I got as far as the topic names. :)
I read the entire thing, and I agree with you entirely on the user interface issue. I can't speak for the VRAC because I don't know what the problem is, nor how negatively it affects anyone. As for the third, I like Python. :) They should make a fast python, I agree. ^_^
You can clone Mryk's comment with my name on it. I read the whole thing, agree completely on UI, can't say for VRAC, and I love Python -- a fast Python would be grrreeeeaat!
pppTT
stupid typos...I meant Myrk, not Mryk
Python is the best thing since... [HTML_REMOVED]best things.[HTML_REMOVED] Really, I'd probably be willing to even pay money for Python with C++ speed, and I've never have nor wanted to plop down money for some development tool. (Plus I'm a poor student)
[HTML_REMOVED]Well, RandomGuy could very well have a Ph.D. in physics, but he is trying to focus on the task at hand, that is, burning a CD or three, and he doesn't care to learn about the internals of the operation... why won't the computer just do what he wants? LinuxFanatic might percieve RandomGuy as not being very intelligent, when, in reality, he is. There are a lot of intelligent people in the world, but everybody has their own area of expertise. [HTML_REMOVED]
AMEN, BROTHA!!! PREACH IT!!
...are TEH SUK
I am jealous of your intelligence. If you ever feel like lending your brain to your sister for a while, I'm sure she'd appreciate it. :)
The problem with tracking changes in technology on a software end is that a vast majority of companies whose sole purpose is not software design, but still hires software engineers, are strapped for cash when it comes to teaching people new things--not to mention flashing 90% of their processes. It's sticky.
On the other hand, I don't necessarily need to think that far into the future. :) If a research group showed that functional programming on parallel architectures was somehow superior in a large way, it might eventually find its way into everyday company use.
I promise you that I will read this entry sometime...but it probably wouldn't work so well when I am half asleep and not much of anything is making much sense to me right now...
Anyway, talk to you later!
kisses