"COMPUTER POWER TO THE PEOPLE! DOWN WITH CYBERCRUD!" - Theodor Nelson
Wednesday, January 26, 2005
Easier than C++
This language, which was once hailed (admittedly, by the PR flaks at Sun itself) as being "much easier than C++" really isn't anymore.
WOW! I would say that Java is still easier than C++, but not by much. But, with all of the new 1.5 features, I might have to concur that Java is not easier than C++ anymore. I keep seeing descension in the ranks of Java, I wonder what this means for the future? I think Java will continue to be a force in IT departments, but what will replace it? .Net? Something in my gut tells me something else is coming. Maybe something built on top of the JVM? Who knows...Things are starting to get interesting!
Monday, January 24, 2005
Fat Free Alternatives To XML
Apparently, there's a couple of standards trying to win over XML detractors. One is JSON and the other is YAML. Both are claiming they are simpler and easier to read than XML. I looked at both and I think YAML would be the one that I would pick. It is far easier to read. JOSN looked even less readable, but more compact than XML. You can see examples at both sites. Judge for yourself. It's interesting to see the current uprising to XML. I've never been a big fan, but realized having it was better than not having it. Watching the different standards fight to the top is going to be interesting. Are we going to have lots of different formats to deal with again? But, then again we should always be pushing the envelope, right?
Let's start off things with a quote:
Why am I bringing this quote up? Well, I was sick all weekend and in times of conscienceness, I could only read my blog feeds. I came across one from Planet Lisp about Forth. I decided to download the book, "Thinking Forth" from here that they had linked to. The thing that got my interest was mention that this book had a lot of the principles of XP programming in it (it was written in 1984). Now, I feel a lot of the XP ideas also came from "The Pyschology of Computer Programming", so another book to fill in the gaps is a nice addition. So, between naps, I read the preface today and it seems Forth is another "everything" language. For example, "everything" in Smalltalk is an object. It seems every language that I like has a simple underlying set of rules and model to govern everything. Forth is no different. I was so impressed with the preface that I picked Forth to be my language of the year over Python. In Forth, "everything" is a word! WOW! That sounds nuts doesn't it?! Let me continue...
You label things in Forth with a word. When you invoke a "word", it doesn't care if that word stands for a constant, variable, or function. It doesn't care. Andres Valloud has recently been pounding home the idea of distinctions (ala "Laws Of Form"). But, I've been having a hard time wrapping my mind around it. It seemed too simple. Well, it snapped today after reading the preface to "Thinking Forth". If you think of "words" as "labeling distinctions" and when you invoke a "word", you are "crossing into a distinction". It goes further too. Forth uses a simple stack mechanism to pass variables around. This is the "signal" that Andres loves to tell me about as well. I was so excited that I finally got it! And I did it while on cold medicine! Yippee! So, Forth might be the language where I get to play with distinctions.
I'm excited! Hopefully, Forth will turn out to be a language that increases my knowledge of programming as much as Smalltalk and Lisp have. I'm off to sleep more...=) Being sick sucks!
Tuesday, January 18, 2005
The PRIEST is BACK!
OK, I just went here to here 30 second samples of each of the new songs off the new Priest album. I just couldn't wait. The first album I ever bought was "Defenders of the Faith", so Priest has always had a special place in my heart. Anyway, the samples were impressive and I think I'm in for a butt kicker of an album. The next to last song, "Eulogy" sounds like an epic. I think it's only the intro on the web site! From the lyrics, it sounds like it might be a sequel to "The Sentinel"! I can't wait till March 1! I tell you! Rob Halford is the voice of heavy metal.
Saturday, January 15, 2005
3 + 4
Well, I got 3 + 4 to run in my java bytecode interpreter written in Squeak. I know others have traveled where I am now, but it's been a fun journey. I can't wait till I can get it fully functional with real objects and all. It'll be fun to run a java program in Squeak with all of the power of a Smalltalk environment. I think it will be cool for writing languages on top of the JVM. Gee, I wonder which one I would like to run in the JVM? Anyway, not much point to this blog except that I reached a milestone. I'm hoping to have a new version of the java framework out soon. It will work in Squeak 3.8 and support running java byte codes, read/writing serialized objects (this time 100%), reading class files, and that's about it. The next thing after the byte code interpreter is the debugging protocol (i've already started). It's been enlightening peering under the hood of java. It makes me appreciate the simplicity and elegance of smalltalk anymore. But, that's for another discussion as well! Good night all!
Tuesday, January 11, 2005
You know when you leave your mark on the world. How do you want to be remembered? Do you want to be remembered for being a good human being that everyone enjoyed being around or this:
What kind of sick person would do such a thing? I've left off the website because I don't want to give them anymore attention. I find this to be sick and just flat out uncalled for. Who ever is behind this site needs to be strapped to a post and horse whipped. This is the kind of stuff that makes me sick to be a part of this planet. Darrell would be remembered by millions for entertaining them and having a great time. How will this person be remembered? For being hateful and disrepectful? I can't believe would waste time their time with such drivel.
Anyway, if you want to read a good article, Read this. I totally agree with the sentiments of the writer. I just hate it when people use someone else's death to further their agenda. It make you wander who's really evil? Doesn't it?
Smalltalk Users Group Meeting Cancelled
The user group meeting is cancelled on account of icy weather. Everyone stay home and sleep where it's safe.
Monday, January 10, 2005
I'm always feeling behind in technology. I always I feel like I'm just right around the corner to some big breakthrough and if I read that next book, all knowledge will be mine. The universe and all its pearls will be mine. It's a never-ending quest. Does anyone else feel this? Knowledge is a never ending thirst and the more you quench it, the more you want to drink. The humbling fact is that no matter how much I learn, I will never know everything that I want to. I will always be on my search for more. So, why not just accept defeat and stop? Well, what fun would that be? It's the Samauri's creed to be the best that you can be (see you can learn things from Tom Cruise movies!). I will spend the rest of my life trying to be the best developer I can be. There's satisfaction is in knowing when I cross a barrier or master a piece of my craft that I thought was unattainable. The problem is with each step the bar becomes higher. Of course, this gives me the feeling that I'm always behind. And there's always someone out there who's kung-fu is better. I don't feel threatened when I find someone who is better than me, rather I take it as an oppoturnity to learn more. I might not always like the lesson, but the fight to resolve the conflict within is where I break across my barriers. A medicine much needed to help me reach higher heights. I guess I don't have a point to this post. I just wanted to express my feelings toward learning. My love to know more about what I do and to be the best I can be. But, I never feel like I am a master. I always feel behind and I'm alright with that. In fact, it gives me a certain inner peace. Striving is great and it's the journey that's important.
Sunday, January 09, 2005
So much for intelligent debate
Check out this blog entry. I'm sickened and appalled by it. I'm so sick of name calling in the name of good debate. I'm also sick of threatening to win an argument as well. I don't care what your politic leanings are, but we should all be able to discuss and debate without charged language, name calling, or threats. Both sides of the political spectrum are guilty and it's made sane and intelligent discussion impossible. When we have books titled, "How to talk to a liberal". It really shows what lack of respect we have for one another and it saddens me. You don't win people with your arguments by calling them idiots. I fear we have schism with each side with tunnel vision. No one can see the other sides point of view. What makes this country great is debate with sides arguing from different shades of gray. I think we are seeing the world in black and white too much. Where is the gray? Maybe we should stop digging in our heels in an argument and be open to new ideas. Just please stop with the charged language. PLEASE! I've gotten where I will not even listen to any argument with charged language. It really shows your lack of thought. OK, that's enough politics from me...
Saturday, January 08, 2005
I finally updated my fave quotes page. Check it out here. I've been meaning to do it for awhile. Enjoy! Also, let me know if I wrongly attributes any quotes. Smalltalk on!
Thursday, January 06, 2005
More thoughts on debate on getters/setters
Carrying on the discussion from previous. Here's some more thoughts:
1. Property objects. (Each instance variable would be it's own object)
2. Naming accessors with _ so that they look unnatural (not a big fan of this, but I'm trying to get thoughts flowing)
3. Change the language in some way. I don't like the restricting paradigm of java, but how could we change smalltalk. Maybe something more self like where instance variable access and method calls look the same.
4. Development-time method wrappers. Put wrappers in to monitor calls to accessors and warn on non-local access if it has been marked "private". The method wrappers could then be removed at run-time. We have the most dynamic language of all! How can we make it do what we want?!
And that's all I can think of right now. If I think of more, I'll blog them! Wouldn't it be cool to come up with a solution to the getter/setter debate once and for all! =) Of course, it might be like the early vs. late bound language debate and thus, never be solved...But, I think this one can be solved.
The debate without end
It seems my discussion on "getters/setters" is having a lively discussion at James' and Andreas' blog. Both sides of the argument give great points. But, perhaps we are missing one another. Maybe we should ask ourselves. How could we compromise? I think we can all agree that encapsulation and consistency are things to keep in high regard. We shouldn't have to sacrifice one for the other. Is the obvious answer data objects? Objects with simple getters/setters methods, but encapsulated inside of a behavior object? I'm thinking out loud here. There's a lot of things that we could do with these data objects. They could notify of changes (good for persistence and gui models) without cluttering up the behavior objects and no one outside of the behvaior object should know about them. You could exchange data objects (since all access is via methods).Hmmm, I think I might need to do implement a model using this technique. I'm curious as to what other people might think would be a compromise to this or an alternative implementation. My point is that if we can't decide on which is better (and frankly, while I still side on the side of getters/setters. I still think both have their pluses and minuses), then maybe we should think of a better solution that has the bits that both sides like. Send me email. I'd be glad to discuss this!
Wednesday, January 05, 2005
Getters And Setters Redux
Is anything more hotly debated in OO development? Here's an article eloquantly arguing against them. Now, in the past, I have been strongly in the use getter/setters camp. Recently, I started to not use getters/setters to see if I got any new insights. At first, it felt weird and unnatural, but I soon got over that. I started to not use getters/setters for the exact reason listed in the article because I had seen too much code depend on the getters/setters and knowing too much about the internal representation of an object. Now, in java, you can restrict access to getters/setters through protected and private (which by the way, I think private is evil, but protected is broken as well...I think protected should only be used by the object and its inheritance heirarchy, but that's another discussion). I also wanted to not use getters/setters after watching the a Self video where they used methods and variables interchangebly. But, in most languages, there is a difference in calling a method and accessing a veriable. And that is the one thing I missed when I stopped using getters/setters, the consistency! In both java and Smalltalk, instance and local variable access looks identical and its easy to make a mistake (think a newbie or a really late night at work). So, am I saying that I think consistency is more important than encapsulation? NO! But, I do think they are equally important. You can achieve encapsulation with getters/setter by either restricting access (at the language level), placing them in a different spot in the source code (like at the bottom, make it hard to get to!), or through categories (I frequently put my getters/setters in an accessing/private category and never look at it unless I absolutely need it). You can even use method wrappers to make sure the sender is self and report otherwise. So, while I agree with the article, I still like to use getters/setters for the reason of consistency. I think it's up to a good programmer to keep encapsulation enforced. Oh, one more thing, one good reason for keeping your getters/setters is that if you ever need to do anything extra when an instance variable is set, you can do it through the setter and it's easy to add debug code in a getter (like a break point). I use my setters to ensure parent relationships are kept consistent (there's that word again!). Setters can also fire change events which are important for persistent frameworks and GUIs. One important thing that I am starting to realize with this debate is that it is a personal style issue of the programmer. Both sides have pluses and minuses and it's up to each shop/developer to make their choice. The worst is to mix both paradigms. Remember keep it consistent!
Tuesday, January 04, 2005
Cool Digital Art
Check out Joe Vinton's Digital Art right now. It's incredible stuff! His art is scenic futuristic landscapes. They are simply breath taking! But, what is that in the distance? It's a hot air ballon! What better way to fit the "Back To The Future" theme of Smalltalk than a futuristic landscape with balloons. Incredible stuff and it makes great backgrounds for Squeak if I do say so myself.
Every year I like to do a top 20 of my favorite albums from the year. It's sometimes hard to pick just 20, so I pick a few honorable mentions. I listen to a lot of music and this year I spent a good amount of time catching on some stuff. I bought a lot of old Depeche Mode and went back to purchase a lot of the old Earache catalog. I even got into a new genre of electronic music called chip music. It's made completely on 4 or 8 bit computers (gameboy advance and old commodroe and atari computers). Fun stuff! I did manage to listen to a lot of new music and this year was EXCELLENT. So here's my list of faves:
My absolute favorite album this year. I can not praise it enough! A modern progressive masterpiece. Nuff said!
Omaha Smalltalk User's Group Meeting
It's getting near that time of the month again! So, instead of staying at home with snow up to your eye balls. Why don't you come on down and see what all of the fuss is about? Come see the inspiration for countless languages, Smalltalk. Alan Wostenberg will be giving an updated presentation on running FIT in VisualWorks. Here's all of the details:
When: Jan 11, 2005, 7pm - 9pm
Where: Offices of Northern Natural Gas
1111 S 103rd Street
Omaha Nebraska 68154
Office is at 103rd & Pacific. Guests can park in the Northern visitors parking area back of building, or across the street at the mall. Enter in front door, we'll greet you at the door at 7:00pm. If you arrive a bit later, just tell the guard at the reception desk you're here for the Smalltalk user meeting in the 1st floor training room.
Monday, January 03, 2005
New Year...New Stuff To Learn
Sunday, January 02, 2005
Back in Nebraska
Well, I was welcomed back in Nebraska with a pager for a sick system and I've been a very busy boy since I've been back. I must admit that it was great to be back in Alabama where people smile and actually talk to you. But, as with all things, it's great to be back in the arms of my loving wife and the comforts of my own house. I spent the new year so far nursing a sick system back to health and it's been no picnic. I have a lot planned for this coming year. I can't wait to see what happens this year. Smalltalk on!