I don't much like SAS, but it is one of the biggest names in business software on the planet. Ghu knows how many companies have SAS software running one or more of their mission critical systems. Hell, my company uses it for Payroll!
But if you every take a look at the development environment I guarentee you will shudder. Really weird stuff, with the data and the language all mixed up. I know some people who have worked with it in the past and they showed it to me and tried to explain it. I never really understood...
But that opaqueness is apparently exactly why SAS consultants make the big bucks. Like Oracle; you get paid extra for learning lots of weird stuff that doesn't work anywhere else.
So anyway, I guess this is great news for Linux. Given SAS, some decent database support and the work IBM has done recently porting Linux to big systems I believe it would be fair to crow a little! Linux is no longer a fringe OS, but is now becoming a major player in the business market. World domination is actually starting to seem plausible.
BTW: My friends who did SAS always took pains to remind me that you don't pronounce it 'Sass', but rather 'Ess Ay Ess'. It really chapped their balls to hear it the wrong way...
The sidebar is very good, but you have to hunt for the links if you are using a CSS enabled browser and the article as a whole suffers from formatting problems. Still it is a very good article and I really liked the illustration "Procedure for Simultaneously Walking and Chewing Gum" by Dugald Stermer.
Nonetheless there really isn't much new here for us Slashdot folks. That is, other than some really good new ammunition for the next time you want to talk about stupid patents. (I really cannot believe someone got a patent for measuring breast sizes with a measuring tape!) For us Mr Gleick is preaching to the choir.
Our real hope is that everyone else wakes up and realizes the danger stupid patents (and, perhaps, software patents in general) represent to our currently flourishing 'New Economy'...
It seems to me that this technology could become a great building block for nanotech development.
For example; take a plain old bacteria or yeast cell that has been genetically modified to produce a particular protean structure or carbon chain. When placed in solution with other cells producing matching 'components' you can possibly create self-assembling nanostructures of various types if the different parts happen to meet up correctly. This is great, except you have no way to turn the thing on or off and must count on chance to get the results you want -- until now!
With this technology you could line up the cells in the order assembly should occur (right, a microbial assembly line) and then activate them in turn while using some method of moving the resulting 'components' to the next 'assembly station' as they are created. To move the parts, perhaps a similar method of electronic control could be applied to cilia?
Anyway, this could be a major cool advance -- health care and neural-cyber connection benefits aside...
I can't argue with that, but we are talking interpreted scripting languages here. If they are compiled at all it is to a p-code level which is then interpreted on a virual machine. Now the virtual machine itself can provide run-time optimization, but it will be optimizing the p-code which might be a wash between the two languages.
Besides, everything I had to say was a general case anyway. As I mentioned in another post, any attempt to get specific can lead to code one-upmanship where different gurus compete to show how you missed this keyword or that compiler switch. My point was that I don't care if PERL is faster or requires less lines of code to do the same thing. I prefer Python because I write code (and direct others in writing code) that has to last (and be extended) for years. Terseness is not cool in that kind of environment.
Visual Basic was the COBOL of the nineties. Python may well wear the crown for this decade! And if you don't understand the point about COBOL, let me point out that there are billions of lines of COBOL, originally written in the seventies, running the businesses of the world even today. Perhaps it is not sexy, but business software makes up most of the code on the planet...
With as little time as I have today to research and create such examples I am certain anything I do will be picked apart and I will be shown (by proponents of both sides) multiple ways that I did something stupid in my examples. I would rather concede the point than start that kind of pointless one-upmanship. Perhaps someone else wants to take up the gauntlet?
I think the tersness of PERL code and the obfuscated feel of it (IMO) are a result of the syntax and how so many things have been added to the language. ..
Which was most of my point in the original post.
. . . not that it some how liberates you to code things that python doesn't in the name of performance.
Which is missing my point -- I was saying that, in a general way, providing many different ways of doing similar things often provides you with an opportunity to pick the most optimal one for a particular task. But I also implied that it takes a guru to do that. Not everyone is a guru.
. . . Larry has added everything including the kitchen sink to PERL. Guido is very careful about adding new things to python. . .
Which is why I prefer Python to PERL, Objective C to C++ and so on. I tend to believe the 'Kitchen Sink' approach to language design has the long-term effect of making it difficult (or at least not helping) to create maintainable code. And, as a business programmer and lead developer, maintainability is my primary concern. Clearly bad programmers can mess up Python and good programmers can write readable PERL and you cannot do anything in one language that you cannot also do in the other. But PERL was designed to write code quickly, not to write code well.
Conversely Python was intentionally designed to promote those things known to create readable/reusable code! And for that I say cheers to Guido; may he never decide to start dumping things in for the sake of bullet points...
I can't quite decide what a first order object is... if someone has a good definition, I'd be curious to see it.
Hmmm... I don't know if it is a 'definition', but by 'First Order Object' I meant an object, defined as a specfic part of the language grammer, which has a parent of 'Object' and inherits from nothing else. In most languages this also means 'First Class Element' because the language provides specific support for that object while lexing, parsing and executing. Even languages where 'everything is an object' like Python often do this as an optimization and/or to provide support for language features that rely on the first order object. Your own example of implicit packing/unpacking in Python is one example of what I am talking about.
Although I have programmed in Smalltalk it has been a while, and I am not sure if Smalltalk Collections qualify as above. Plus they are certainly not as flexible and as built into the language definition as are Python Lists. Not that they aren't pretty great (and widely copied) mind you. Even Visual Basic includes Smalltalk style Collections as built-in objects...
As to APL, is a matrice always a tuple? I guess it depends upon how I can manipulate it.:-/ If it is, then that is one I missed because matrices are definately both first class elements and first order objects in APL.
Well, this is getting off-topic but I had to reply...
Not knowing much about ML, I looked it up online. It is amazing how many websites about ML seem to assume you already know what it is! Anyway, from what I can tell ML falls into the subset of languages known as "Functional Languages" which are really a form of "Declarative Languages" -- and I already mentioned "SQL and other declarative languages" in my original post. In other words you still haven't told me about a "Procedural Language" (OOP or non-OOP), other than Python, that supports Tuples as first order constructs.
Don't take this to mean that I am trying to refute you, I could have completely misunderstood what I read.
Jack
P.S. I have never liked Declarative Languages because they expect me to describe what I want the computer to do and then let the computer figure out how to do it. In my experience this always leads to convoluted code (and lots of lost time) as I attempt to get the computer to do it slightly differently than it thinks I asked for. I excuse this in SQL because I have nothing better to replace it with, but business rules tend to be best implemented in a procedural style...
One major point the article makes is the philosophical differences between the languages. This is best illustrated by the simple "There's More Than One Way To Do It" (TIMTOWTDI) approach of PERL versus the "Keep It Simple Stupid" (KISS)design of Python. I think this is not only valid, but possibly the most fundamental difference between the languages. Outweighing even the Object Oriented aspects.
As a programmer I am very attracted to Python's clean syntax and deceptively simple low level data structures. Within this simplicity lurks some very impressive thinking about how programming languages should be used. For example Tuples are first order objects in Python! The only other languages I know of with Tuples as first order data structures are declarative languages like SQL. (Someone is sure to tell me how I am wrong in a reply...)
What this simplicity means is that I can build arbitrarily complex structures from those simple elements and the next programmer to look at my code will be able to follow my code without too much effort. Building complex structures from simple ones is the very essense of Object Oriented design, look at Smalltalk for another example of this approach -- although Python has an arguably better syntax than Smalltalk.
On the other hand, providing multiple ways to accomplish the same action means that the programmer can choose the method best suited to the current need, both in parsimonious code and optimal execution time. In this PERL is rather like C++ which often provides 15 different ways of doing the same thing, each optimized for a different purpose. The downside of this is that you need to know every one of those 15 possible ways to get the job done and understand the reasons why any one is best suited for a particular need...
My, long winded, point is this: TIMTOWTDI can potentially provide shorter programs and better execution times, but will always result in more difficult to understand code. Moreover, many programs will not be optimally coded because the programmer who writes them will only understand 10 or 11 of the 15 ways to do things, resulting in the old "When you have a hammer, everything looks like a nail." problem. However the KISS approach ends up with more total lines of code and, perhaps, slower execution times, but the code will be more accessable and (therefore) more maintainable.
And this is why I prefer Python. Processing cycles are cheap, but programmers are expensive. I am always willing to trade one for the other. If I have to choose between a language that promotes code clarity and simplifies maintenance over another that tends to shroud the algolrithms in terse bits of bizarre sytax then I will always go with the former...
Jack
Finally, something I can actually say...
on
Cheap Gigabit Ether
·
· Score: 2
Finally, something I can actually say "Wouldn't it be cool to build a Beofwulf system with these puppies!" about...:-\
And people who write software are going, like it or not, to determine how the Net is used. I don't think it's matter of issuing rules. I think it's writing software with a particular purpose and consciousness, just as the people who designed the Net in the lst place did.
That is a valid point. But my problem is finding a way create software with that 'purpose and consciousness' that won't put me on the receiving end of a lawsuit or leave me with a search warrant in my hand while the FBI carts off my computers.
Perhaps the best way is to disguise our intentions, in another post I mentioned the possibility of writing cool games which also acted as pro-freenet propaganda. Another good route is to continue writing open infrastructure pieces that can be used for anything. I imagine the people who wrote IRC were horrified to find some jerks were trading kiddie porn with it, but the people at fault there are clearly the ones engaging in the illegal and reprehensible conduct. Not the creators of the technology.
Joe Sixpack will never agree with you. Joe and Jane Sixpack, for lack of a better explanation, are intellectually bankrupt. They believe the crap the media feeds them. ..
I guess that is what I was saying. That and the fact I just don't see a way to get through to the Sixpacks...
It is sad really. Our best hope is that Junior Sixpack and his siblings are open to the message. Perhaps we need to create some cool games with these kind of issues as a subtext? (I am only partly joking, propaganda is in the eye of the beholder.)
But if the source is open, once it's released it can't be taken back. (eg. DeCSS) If someone is willing to either risk paying a price, or release their work anonymously, the software will be created.
True. And there will always be exceptions. But so long as there are onerous legal consequences most of us will not be willing to suffer them.
Phil Zimmerman took the risk with PGP, and now we can all communicate with strong encryption whether the government likes it or not.
That isn't entirely true. Try going to China and handing out disks with PGP software for example. Besides, as I have already pointed out -- most of us are too chicken. The chilling effect of negative consequences is too great to overcome without some hope that our efforts will actually amount to something.
The future is in our hands, but only if we're willing to fight for it.
As a citizen of the United States of America, I am the heir of a great tradition of Freedom. One fought for by some very great men over two hundred years ago. The quote "The tree of freedom must be fed from time to time with the blood of patriots." is as appropo today as it was then.
But, sadly, this great tradition is paleing into insigificance even here. We Americans have traded our freedom for safety many times already, and are prepared to trade more in the future:
"Drugs kill people, we should suspend the Constitutional rights of anyone suspected of selling them!"
"Guns kill people, they should be outlawed!" "Hackers are evil gnomes who want to steal your money and show pornography to your children. They must be stopped at all costs!"
Why should programmers be different than anyone else? The problem isn't one of individual action. It is societal. If I act in some significant way on my own, at best I will be considered a nut and at worst a terrorist. Our biggest problem isn't a lack of will, but rather an inability to educate the masses, to reach out beyond/. and the other geek enclaves. Until Joe Sixpack agrees with us, no amount of revolutionary rhetoric will tilt the scales in favor of Freedom.
We don't need complex 'rules' built into the architecture and infrastructure of the Internet to insure freedom. All we need is the same kinds of simple protocols we already use. Given those protocols, programmers like myself can always create something that rides on top to do whatever is needed. (Can anyone say 'Napster'?)
No, what we need has nothing to do with technical matters. The greatest danger to free speech and freedom of usage on the Internet is an external one: Laws and Lawsuits. For example; suppose I create a program that allows anyone to communicate any information anonymously, with strong encryption so no-one else can tell what is being communicated. What happens next? The answer is easy -- I get sued by every organization charged with protecting Intellectual Property Rights and investigated by the government for exporting munitions!
This is a very real scenario. In fact variations of it are happening all the time. (Lets all say 'Napster' again.) It doesn't matter if the software is Open Source or closed. It doesn't even matter if it is very good, so long as it works.
The thing is, I know how to write software. I don't know how to manipulate the masses into calling for guarentees of freedom from their governments. I don't know how to make judges understand the issues the way I do. I don't know how to get the governments of the world to agree to keep their hands off what is easly the most transforming piece of technology on the planet. I just know that the more oppressive a government is, the more the Internet should scare them!
A lot of people are weighing in here with variations on "Sure nanotech sounds great, but it won't really give us immortality or most of the other things Drexler says it will." I would say that anyone who takes this position doesn't really understand the implications of this kind of technology...
First off, the only other micro-and-smaller-scale technology we know of is micro-chips. Historically this technology has not only proven its ability to exceed initial expectations, but has also had innumerable side effects on other technologies. As a result of cheaper and faster computers and other chip based electronics, we are expanding our knowledge of other disciplines at a faster clip. Nanotech almost certainly holds the same promise for cross-tech synergy.
Secondly, everyone who I have ever spoken to on this subject that had the appropriate expertise tended to be more optimistic in private than they were in writing (if that is possible). When pressed for a timeframe for a true Universal Assembler the usual reply is "No less than 2060, probably by 2040, won't be surprised if by 2020."
Now there have been plenty of technologies that didn't work out anywhere near as well as originally predicted (for example I am still waiting for the Rocket Pack and the Moon Vacation I was promised in 1970 would be mine by 2000). But those technologies have tended to be large and high in energy costs. Not so for Nanotech. Plus it has the advantage of each advance making the next level of advancement easier to achieve! Also like chip techonology if you think about it...
My take? Expect it sooner rather than later. And expect the bad things to happen as well. As opposed to the Scoffers among us, the Doomsayers actually have a point. But there is no stopping it. The next half century is going to be one hell of a ride!
About time. I was getting really tired of wasting moderator points in moderating down the "Rob is a hypocrite because he won't release Slash." Trolls. I guess those folks will have find something else to bitch about. Or else return to making obtuse comments about grits...
Transmeta could make a bundle by selling cheap Crusoe(tm) development systems built on a PCI card. You know we would all get one if they cost
Or, I suppose, they could just create a Crusoe(tm) system emulator program that ran on x86 architectures that would then emulate x86 architectures:-) Of course someone would immediately try to run the emulator in the emulator in the emulator in the...
How come they still haven't updated their web site? I was expecting some change at least...
I don't get it. You list companies that are obvious examples of how geeks have gained immense influence and bank accounts, but then say the marketdroids always win?
Because they do. Each of those companies is now more market-driven than technology driven. Either the geeks who started the companies morphed into Marketroids or else they gave up control to the Marketroids. For example I do not doubt for a minute that Gates was as geeky as they come when he got started. But now it is more of a carefully calculated and maintained image. Is this a bad thing? Probably not... But he isn't what he seems to be -- the very definition of Marketroidom!
My point was more about how geeks can change the world via their insight and capabilities, but cannot maintain either control over or credit for their work in the long run. Who is going to shape the future of the Internet more; Tim Berners-Lee or Steve Case? Who deserves it more? And which of those two would you presonally prefer to wield the most influence?
As for Albert Einstein, he definately deserves the "Man of Century" title. And it could be that the media is becoming more aware of the contributions of people like him. Or it could be that he is being remembered much as Copernicus or Da-Vinci or Roger Bacon or Isaac Newton were remembered. As important to the general advance of humanity, but not as a 'Mover and Shaker'. I really don't know, but I do believe the media is using him to symbolize every scientific advance in the 20th Century -- because they know that advance was important, but they don't really understand the issues. A hundred years from now people will remember Einstein, but they may well forget Douglas Engelbart and Ted Nelson.
Thing is, I think we can change this trend. The question I cannot answer is how to do it while maintaining our integrity...
Five years ago, the suggestion that AOL would be a dominant partner in such a deal would have been ridiculous. Three years ago, it would have been amusing. Last week, everyone said it was inevitable.
The above quote comes from what is probably the most insightful paragraph in the article. AOL was always a loser in everyone's mind! A laughable parody of what an ISP should be, more focused on marketing and on mailing out those damn disks than on providing customer service. Does anyone else remember what happened to Usenet when AOL added a thousand Usenet groups to its own BBS system without explaining to its users what that really meant? The flamewars that followed were legendary...
"The day Yahoo went public was the day the world changed," said Phil Anderson, who teaches Internet strategies at Dartmouth College's business school. "Yahoo was nothing. It was a Web site. But suddenly it had a valuation of $800 million. And people said, 'Ohmygod, what would the largest online company be worth if Yahoo's worth all that?'"
Yahoo was started by a couple of stereotypical geeks. So was Hewlett Packard, Intel, Apple, Sun and (lets face it) Microsoft. (That is if you give a little leeway to the definition of 'geek'.) But it always seems to be the Marketroids who win in the end...
We geeks change the world because we understand the world's most fundamental source of change: Technology. Sometimes we even understand how and why technology will affect society. But the Marketroids reap the benefits because they understand how to manipulate the masses! They know how to play on fear, greed and sex to sway opinion. We might think ourselves better because we are more 'pure', but that doesn't get us the girls.
Historically this has always been true. Occasionally we remember geeks like Aristotle and Da Vinci, but we tend to point to the Generals, the Kings and the Emperors as the focus of change. Not to the inventors of the technologies they used to create that change or which forced the change upon them. We remember the wars, not the peace. The leaders, not the creative types who designed their palaces and built their weapons.
I truly detest the thought that Steve Case might be remembered as a leader of the "Internet Century". It really chaps my balls! But it seems invetable that names like Torvalds, Berners-Lee, Englebart, Rheingold, Metcalf and (add your favorite geek god here) will, at most, rate no more than a footnote or two. Perhaps there is a way for us to forestall this fate, but first we will have to break the anti-social habits that make us powerless in society at large.
It is an interesting dichotomy: On the one hand the technophiles are the point-source of social change. On the other they are the people least likely to be identified with that change. All because we cannot lie with a straight face. William Gibson put it best -- "The deadliest bullshit is odorless and transparent."
Is the movie supposed to be a documentary or something? Somehow I was under the impression that Katz's book 'Geeks' was not a work of fiction -- or at least not fiction in the same sense that 'Microserfs' was.
So which is it? Is 'Geeks' a novel with some real-world characters or is it a 'non-fictional' 'real-life' depiction of us geeks at work and play? And what does either possibility say about the movie deal? Someone help me out here!
I love those little nitrogen widgets they put in them. It is nitrogen that makes the 'small bubbles' required for the creamy head and the downward flow (as the article points out, the bubbles must be less than than 0.05 mm for this).
But the widgets themselves are a truly cool piece of engineering. They hold the nitrogen under pressure until the can is opened and then inject the gas into the beer through a hole so small it almost has to have been drilled by a laser.
The first time I took a Guiness can apart was documented by my girlfriend on her Web Journal. We did some interesting web searchs for more information on the thing. Turns out the widget is patented, and only one of several versions of the same (all of which are patented). Apparently there was a fairly significant research effort by competing companies to re-create the correct creamy foam on canned stout.
I think I speak for all of us when I say "Thanks! It was money well spent!"
Or I should say I don't yet. I have been looking for a 'one stop shopping' alternative myself and haven't seen much. It looks like one is best off to pick the best alternative for each area of financial services (bank, brokerage, etc.)
If you need to get education about the stock market along with free stock tracking and some cool Java interactive charting (which costs money anywhere else) you should check out the site my girlfriend works for: www.stockcharts.com. Build up the hits there so she can get rich and take me on a trip!
I won't comment much on the long hours of work thing. As Steve McConnell correctly pointed out in his article, this mostly happens because the programmers involved don't have a clue how to do good engineering and therefore put in 16 and 20 hour days trying to debug something that could have been avoided in the first place.
But the bit about the Meyers/Briggs personality inventory thing sure rings true. I am an INTP (and very good with UI designs and architecture, plus a fair coder), which is a fairly rare type. But all of the good programmers I have ever worked with were 'NT's or 'ST's. And the examples he gave of the 'S' versus 'N' conflicts were right on as well.
Personally, if I was hiring, I would apply two major criteria to weed out the dross. First I would require the Meyers/Briggs type on the application and second I would have them list the magazines they read reguarily (I call this the 'Toilet Tank Test'). If it mostly things like Golf Digest I pass. If it includes Dr. Dobbs I invite them in for an interview.
I also liked the description of 'Programming Heroes and Ball Hogs'. Very true according to my own experience!
But I sure wish people would get off this rip about programming being a young man's game. First off you really don't have to be a man. And second off, what about the old geeks like myself? At least the article goes so far as to point out that this will change over time. I sure hope so! So far as I can tell, old programmers tend to be either shoved aside or promoted to management. Either possibility seems equally like Purgatory to me!
Are we predators? Prey? At the bottom of the food chain or the top?
I don't wanna be a shark, but OTOH, I don't wanna be a protozoan either. Hmm... I am armored against flames, I move around a lot and I can be a bit crabby...
But then Metcalfe is also known for repeatedly prophecying the collapse of the Internet from an overload of data, and then changing the date he predicts it will happen as each past date rolls by. Not to mention some other rather bizarre musings about the possible impact of the real world on the Internet.
Still, if we assume a metered Internet of any kind, it only seems fair that the person originating the packet (requesting it if viewing a web page or sending it if email) should pay the freight.
I don't much like SAS, but it is one of the biggest names in business software on the planet. Ghu knows how many companies have SAS software running one or more of their mission critical systems. Hell, my company uses it for Payroll!
But if you every take a look at the development environment I guarentee you will shudder. Really weird stuff, with the data and the language all mixed up. I know some people who have worked with it in the past and they showed it to me and tried to explain it. I never really understood...
But that opaqueness is apparently exactly why SAS consultants make the big bucks. Like Oracle; you get paid extra for learning lots of weird stuff that doesn't work anywhere else.
So anyway, I guess this is great news for Linux. Given SAS, some decent database support and the work IBM has done recently porting Linux to big systems I believe it would be fair to crow a little! Linux is no longer a fringe OS, but is now becoming a major player in the business market. World domination is actually starting to seem plausible.
BTW: My friends who did SAS always took pains to remind me that you don't pronounce it 'Sass', but rather 'Ess Ay Ess'. It really chapped their balls to hear it the wrong way...
Jack
The About.com site here.
The sidebar is very good, but you have to hunt for the links if you are using a CSS enabled browser and the article as a whole suffers from formatting problems. Still it is a very good article and I really liked the illustration "Procedure for Simultaneously Walking and Chewing Gum" by Dugald Stermer.
Nonetheless there really isn't much new here for us Slashdot folks. That is, other than some really good new ammunition for the next time you want to talk about stupid patents. (I really cannot believe someone got a patent for measuring breast sizes with a measuring tape!) For us Mr Gleick is preaching to the choir.
Our real hope is that everyone else wakes up and realizes the danger stupid patents (and, perhaps, software patents in general) represent to our currently flourishing 'New Economy'...
Jack
It seems to me that this technology could become a great building block for nanotech development.
For example; take a plain old bacteria or yeast cell that has been genetically modified to produce a particular protean structure or carbon chain. When placed in solution with other cells producing matching 'components' you can possibly create self-assembling nanostructures of various types if the different parts happen to meet up correctly. This is great, except you have no way to turn the thing on or off and must count on chance to get the results you want -- until now!
With this technology you could line up the cells in the order assembly should occur (right, a microbial assembly line) and then activate them in turn while using some method of moving the resulting 'components' to the next 'assembly station' as they are created. To move the parts, perhaps a similar method of electronic control could be applied to cilia?
Anyway, this could be a major cool advance -- health care and neural-cyber connection benefits aside...
Jack
I can't argue with that, but we are talking interpreted scripting languages here. If they are compiled at all it is to a p-code level which is then interpreted on a virual machine. Now the virtual machine itself can provide run-time optimization, but it will be optimizing the p-code which might be a wash between the two languages.
Besides, everything I had to say was a general case anyway. As I mentioned in another post, any attempt to get specific can lead to code one-upmanship where different gurus compete to show how you missed this keyword or that compiler switch. My point was that I don't care if PERL is faster or requires less lines of code to do the same thing. I prefer Python because I write code (and direct others in writing code) that has to last (and be extended) for years. Terseness is not cool in that kind of environment.
Visual Basic was the COBOL of the nineties. Python may well wear the crown for this decade! And if you don't understand the point about COBOL, let me point out that there are billions of lines of COBOL, originally written in the seventies, running the businesses of the world even today. Perhaps it is not sexy, but business software makes up most of the code on the planet...
Jack
With as little time as I have today to research and create such examples I am certain anything I do will be picked apart and I will be shown (by proponents of both sides) multiple ways that I did something stupid in my examples. I would rather concede the point than start that kind of pointless one-upmanship. Perhaps someone else wants to take up the gauntlet?
Which was most of my point in the original post.
Which is missing my point -- I was saying that, in a general way, providing many different ways of doing similar things often provides you with an opportunity to pick the most optimal one for a particular task. But I also implied that it takes a guru to do that. Not everyone is a guru.
Which is why I prefer Python to PERL, Objective C to C++ and so on. I tend to believe the 'Kitchen Sink' approach to language design has the long-term effect of making it difficult (or at least not helping) to create maintainable code. And, as a business programmer and lead developer, maintainability is my primary concern. Clearly bad programmers can mess up Python and good programmers can write readable PERL and you cannot do anything in one language that you cannot also do in the other. But PERL was designed to write code quickly, not to write code well.
Conversely Python was intentionally designed to promote those things known to create readable/reusable code! And for that I say cheers to Guido; may he never decide to start dumping things in for the sake of bullet points...
Jack
Well, this is getting off-topic but I had to reply...
Not knowing much about ML, I looked it up online. It is amazing how many websites about ML seem to assume you already know what it is! Anyway, from what I can tell ML falls into the subset of languages known as "Functional Languages" which are really a form of "Declarative Languages" -- and I already mentioned "SQL and other declarative languages" in my original post. In other words you still haven't told me about a "Procedural Language" (OOP or non-OOP), other than Python, that supports Tuples as first order constructs.
Don't take this to mean that I am trying to refute you, I could have completely misunderstood what I read.
Jack
P.S. I have never liked Declarative Languages because they expect me to describe what I want the computer to do and then let the computer figure out how to do it. In my experience this always leads to convoluted code (and lots of lost time) as I attempt to get the computer to do it slightly differently than it thinks I asked for. I excuse this in SQL because I have nothing better to replace it with, but business rules tend to be best implemented in a procedural style...
One major point the article makes is the philosophical differences between the languages. This is best illustrated by the simple "There's More Than One Way To Do It" (TIMTOWTDI) approach of PERL versus the "Keep It Simple Stupid" (KISS)design of Python. I think this is not only valid, but possibly the most fundamental difference between the languages. Outweighing even the Object Oriented aspects.
As a programmer I am very attracted to Python's clean syntax and deceptively simple low level data structures. Within this simplicity lurks some very impressive thinking about how programming languages should be used. For example Tuples are first order objects in Python! The only other languages I know of with Tuples as first order data structures are declarative languages like SQL. (Someone is sure to tell me how I am wrong in a reply...)
What this simplicity means is that I can build arbitrarily complex structures from those simple elements and the next programmer to look at my code will be able to follow my code without too much effort. Building complex structures from simple ones is the very essense of Object Oriented design, look at Smalltalk for another example of this approach -- although Python has an arguably better syntax than Smalltalk.
On the other hand, providing multiple ways to accomplish the same action means that the programmer can choose the method best suited to the current need, both in parsimonious code and optimal execution time. In this PERL is rather like C++ which often provides 15 different ways of doing the same thing, each optimized for a different purpose. The downside of this is that you need to know every one of those 15 possible ways to get the job done and understand the reasons why any one is best suited for a particular need...
My, long winded, point is this: TIMTOWTDI can potentially provide shorter programs and better execution times, but will always result in more difficult to understand code. Moreover, many programs will not be optimally coded because the programmer who writes them will only understand 10 or 11 of the 15 ways to do things, resulting in the old "When you have a hammer, everything looks like a nail." problem. However the KISS approach ends up with more total lines of code and, perhaps, slower execution times, but the code will be more accessable and (therefore) more maintainable.
And this is why I prefer Python. Processing cycles are cheap, but programmers are expensive. I am always willing to trade one for the other. If I have to choose between a language that promotes code clarity and simplifies maintenance over another that tends to shroud the algolrithms in terse bits of bizarre sytax then I will always go with the former...
Jack
Finally, something I can actually say "Wouldn't it be cool to build a Beofwulf system with these puppies!" about... :-\
Jack
That is a valid point. But my problem is finding a way create software with that 'purpose and consciousness' that won't put me on the receiving end of a lawsuit or leave me with a search warrant in my hand while the FBI carts off my computers.
Perhaps the best way is to disguise our intentions, in another post I mentioned the possibility of writing cool games which also acted as pro-freenet propaganda. Another good route is to continue writing open infrastructure pieces that can be used for anything. I imagine the people who wrote IRC were horrified to find some jerks were trading kiddie porn with it, but the people at fault there are clearly the ones engaging in the illegal and reprehensible conduct. Not the creators of the technology.
Jack
I guess that is what I was saying. That and the fact I just don't see a way to get through to the Sixpacks...
It is sad really. Our best hope is that Junior Sixpack and his siblings are open to the message. Perhaps we need to create some cool games with these kind of issues as a subtext? (I am only partly joking, propaganda is in the eye of the beholder.)
Jack
True. And there will always be exceptions. But so long as there are onerous legal consequences most of us will not be willing to suffer them.
That isn't entirely true. Try going to China and handing out disks with PGP software for example. Besides, as I have already pointed out -- most of us are too chicken. The chilling effect of negative consequences is too great to overcome without some hope that our efforts will actually amount to something.
As a citizen of the United States of America, I am the heir of a great tradition of Freedom. One fought for by some very great men over two hundred years ago. The quote "The tree of freedom must be fed from time to time with the blood of patriots." is as appropo today as it was then.
But, sadly, this great tradition is paleing into insigificance even here. We Americans have traded our freedom for safety many times already, and are prepared to trade more in the future:
Why should programmers be different than anyone else? The problem isn't one of individual action. It is societal. If I act in some significant way on my own, at best I will be considered a nut and at worst a terrorist. Our biggest problem isn't a lack of will, but rather an inability to educate the masses, to reach out beyond /. and the other geek enclaves. Until Joe Sixpack agrees with us, no amount of revolutionary rhetoric will tilt the scales in favor of Freedom.
Jack
We don't need complex 'rules' built into the architecture and infrastructure of the Internet to insure freedom. All we need is the same kinds of simple protocols we already use. Given those protocols, programmers like myself can always create something that rides on top to do whatever is needed. (Can anyone say 'Napster'?)
No, what we need has nothing to do with technical matters. The greatest danger to free speech and freedom of usage on the Internet is an external one: Laws and Lawsuits. For example; suppose I create a program that allows anyone to communicate any information anonymously, with strong encryption so no-one else can tell what is being communicated. What happens next? The answer is easy -- I get sued by every organization charged with protecting Intellectual Property Rights and investigated by the government for exporting munitions!
This is a very real scenario. In fact variations of it are happening all the time. (Lets all say 'Napster' again.) It doesn't matter if the software is Open Source or closed. It doesn't even matter if it is very good, so long as it works.
The thing is, I know how to write software. I don't know how to manipulate the masses into calling for guarentees of freedom from their governments. I don't know how to make judges understand the issues the way I do. I don't know how to get the governments of the world to agree to keep their hands off what is easly the most transforming piece of technology on the planet. I just know that the more oppressive a government is, the more the Internet should scare them!
Jack
A lot of people are weighing in here with variations on "Sure nanotech sounds great, but it won't really give us immortality or most of the other things Drexler says it will." I would say that anyone who takes this position doesn't really understand the implications of this kind of technology...
First off, the only other micro-and-smaller-scale technology we know of is micro-chips. Historically this technology has not only proven its ability to exceed initial expectations, but has also had innumerable side effects on other technologies. As a result of cheaper and faster computers and other chip based electronics, we are expanding our knowledge of other disciplines at a faster clip. Nanotech almost certainly holds the same promise for cross-tech synergy.
Secondly, everyone who I have ever spoken to on this subject that had the appropriate expertise tended to be more optimistic in private than they were in writing (if that is possible). When pressed for a timeframe for a true Universal Assembler the usual reply is "No less than 2060, probably by 2040, won't be surprised if by 2020."
Now there have been plenty of technologies that didn't work out anywhere near as well as originally predicted (for example I am still waiting for the Rocket Pack and the Moon Vacation I was promised in 1970 would be mine by 2000). But those technologies have tended to be large and high in energy costs. Not so for Nanotech. Plus it has the advantage of each advance making the next level of advancement easier to achieve! Also like chip techonology if you think about it...
My take? Expect it sooner rather than later. And expect the bad things to happen as well. As opposed to the Scoffers among us, the Doomsayers actually have a point. But there is no stopping it. The next half century is going to be one hell of a ride!
Jack
About time. I was getting really tired of wasting moderator points in moderating down the "Rob is a hypocrite because he won't release Slash." Trolls. I guess those folks will have find something else to bitch about. Or else return to making obtuse comments about grits...
Jack
Transmeta could make a bundle by selling cheap Crusoe(tm) development systems built on a PCI card. You know we would all get one if they cost
Or, I suppose, they could just create a Crusoe(tm) system emulator program that ran on x86 architectures that would then emulate x86 architectures :-) Of course someone would immediately try to run the emulator in the emulator in the emulator in the...
How come they still haven't updated their web site? I was expecting some change at least...
Jack
The Bugroff license is very similar to Dave Winer's license for MacBird. Only Winer phrased his in legalese...
Jack
Because they do. Each of those companies is now more market-driven than technology driven. Either the geeks who started the companies morphed into Marketroids or else they gave up control to the Marketroids. For example I do not doubt for a minute that Gates was as geeky as they come when he got started. But now it is more of a carefully calculated and maintained image. Is this a bad thing? Probably not... But he isn't what he seems to be -- the very definition of Marketroidom!
My point was more about how geeks can change the world via their insight and capabilities, but cannot maintain either control over or credit for their work in the long run. Who is going to shape the future of the Internet more; Tim Berners-Lee or Steve Case? Who deserves it more? And which of those two would you presonally prefer to wield the most influence?
As for Albert Einstein, he definately deserves the "Man of Century" title. And it could be that the media is becoming more aware of the contributions of people like him. Or it could be that he is being remembered much as Copernicus or Da-Vinci or Roger Bacon or Isaac Newton were remembered. As important to the general advance of humanity, but not as a 'Mover and Shaker'. I really don't know, but I do believe the media is using him to symbolize every scientific advance in the 20th Century -- because they know that advance was important, but they don't really understand the issues. A hundred years from now people will remember Einstein, but they may well forget Douglas Engelbart and Ted Nelson.
Thing is, I think we can change this trend. The question I cannot answer is how to do it while maintaining our integrity...
Jack
The above quote comes from what is probably the most insightful paragraph in the article. AOL was always a loser in everyone's mind! A laughable parody of what an ISP should be, more focused on marketing and on mailing out those damn disks than on providing customer service. Does anyone else remember what happened to Usenet when AOL added a thousand Usenet groups to its own BBS system without explaining to its users what that really meant? The flamewars that followed were legendary...
Yahoo was started by a couple of stereotypical geeks. So was Hewlett Packard, Intel, Apple, Sun and (lets face it) Microsoft. (That is if you give a little leeway to the definition of 'geek'.) But it always seems to be the Marketroids who win in the end...
We geeks change the world because we understand the world's most fundamental source of change: Technology. Sometimes we even understand how and why technology will affect society. But the Marketroids reap the benefits because they understand how to manipulate the masses! They know how to play on fear, greed and sex to sway opinion. We might think ourselves better because we are more 'pure', but that doesn't get us the girls.
Historically this has always been true. Occasionally we remember geeks like Aristotle and Da Vinci, but we tend to point to the Generals, the Kings and the Emperors as the focus of change. Not to the inventors of the technologies they used to create that change or which forced the change upon them. We remember the wars, not the peace. The leaders, not the creative types who designed their palaces and built their weapons.
I truly detest the thought that Steve Case might be remembered as a leader of the "Internet Century". It really chaps my balls! But it seems invetable that names like Torvalds, Berners-Lee, Englebart, Rheingold, Metcalf and (add your favorite geek god here) will, at most, rate no more than a footnote or two. Perhaps there is a way for us to forestall this fate, but first we will have to break the anti-social habits that make us powerless in society at large.
It is an interesting dichotomy: On the one hand the technophiles are the point-source of social change. On the other they are the people least likely to be identified with that change. All because we cannot lie with a straight face. William Gibson put it best -- "The deadliest bullshit is odorless and transparent."
Jack
Is the movie supposed to be a documentary or something? Somehow I was under the impression that Katz's book 'Geeks' was not a work of fiction -- or at least not fiction in the same sense that 'Microserfs' was.
So which is it? Is 'Geeks' a novel with some real-world characters or is it a 'non-fictional' 'real-life' depiction of us geeks at work and play? And what does either possibility say about the movie deal? Someone help me out here!
Jack
I love those little nitrogen widgets they put in them. It is nitrogen that makes the 'small bubbles' required for the creamy head and the downward flow (as the article points out, the bubbles must be less than than 0.05 mm for this).
But the widgets themselves are a truly cool piece of engineering. They hold the nitrogen under pressure until the can is opened and then inject the gas into the beer through a hole so small it almost has to have been drilled by a laser.
The first time I took a Guiness can apart was documented by my girlfriend on her Web Journal. We did some interesting web searchs for more information on the thing. Turns out the widget is patented, and only one of several versions of the same (all of which are patented). Apparently there was a fairly significant research effort by competing companies to re-create the correct creamy foam on canned stout.
I think I speak for all of us when I say "Thanks! It was money well spent!"
Jack
Or I should say I don't yet. I have been looking for a 'one stop shopping' alternative myself and haven't seen much. It looks like one is best off to pick the best alternative for each area of financial services (bank, brokerage, etc.)
If you need to get education about the stock market along with free stock tracking and some cool Java interactive charting (which costs money anywhere else) you should check out the site my girlfriend works for: www.stockcharts.com. Build up the hits there so she can get rich and take me on a trip!
Jack William Bell
I won't comment much on the long hours of work thing. As Steve McConnell correctly pointed out in his article, this mostly happens because the programmers involved don't have a clue how to do good engineering and therefore put in 16 and 20 hour days trying to debug something that could have been avoided in the first place.
But the bit about the Meyers/Briggs personality inventory thing sure rings true. I am an INTP (and very good with UI designs and architecture, plus a fair coder), which is a fairly rare type. But all of the good programmers I have ever worked with were 'NT's or 'ST's. And the examples he gave of the 'S' versus 'N' conflicts were right on as well.
Personally, if I was hiring, I would apply two major criteria to weed out the dross. First I would require the Meyers/Briggs type on the application and second I would have them list the magazines they read reguarily (I call this the 'Toilet Tank Test'). If it mostly things like Golf Digest I pass. If it includes Dr. Dobbs I invite them in for an interview.
I also liked the description of 'Programming Heroes and Ball Hogs'. Very true according to my own experience!
But I sure wish people would get off this rip about programming being a young man's game. First off you really don't have to be a man. And second off, what about the old geeks like myself? At least the article goes so far as to point out that this will change over time. I sure hope so! So far as I can tell, old programmers tend to be either shoved aside or promoted to management. Either possibility seems equally like Purgatory to me!
Jack
Are we predators? Prey? At the bottom of the food chain or the top?
I don't wanna be a shark, but OTOH, I don't wanna be a protozoan either. Hmm... I am armored against flames, I move around a lot and I can be a bit crabby...
Jack
InfoWorld scribe Bob Metcalfe has been predicting for some time that Internet packet metering would happen sooner or later. In fact he has even suggested 'ePostage' for email to deal with the cost of Spam. In other words the Spammers pay to send rather than you paying to receive, putting many of them out of business. Of course you and I would have to pay to send our personal and business email as well...
But then Metcalfe is also known for repeatedly prophecying the collapse of the Internet from an overload of data, and then changing the date he predicts it will happen as each past date rolls by. Not to mention some other rather bizarre musings about the possible impact of the real world on the Internet.
Still, if we assume a metered Internet of any kind, it only seems fair that the person originating the packet (requesting it if viewing a web page or sending it if email) should pay the freight.
Jack