Ruby's "chock-full of heady goodness", and definitely worth adding to your repertoire.
Where should Ruby rank among the other 4385 lanugages and APIs that everyone says are worth learning?
I really don't mean to troll, but the fact that programming languages are still so volatile is good evidence that programming languages are still in their infancy. By volatility, I mean that every 6 months or so, a brand new "must see" language is invented, develops a "growing userbase" of neophytes and zealots, becomes "production quality", gets several books written about it, and is adopted by a few risk-taking companies in real projects.
I've seen software get written in such languages (Lisp, then Perl, then Java, then Python, etc.), where all that work will not carry over when the "next big language" is invented and becomes popular among interns (because who wants to learn something unfashionable like Lisp?)..NET is absolutely not the answer to this, as.NET is really multiple facades of the same thing wrapped up in a single-vendor bend-'em-over solution from a un-trustworthy company. The fact is that there is no good solution.
This is probably why most software is still written in C and C++, even though they are bug-magnets, because they are most definitely not going anywhere for a long time.
What kind of moron chooses the root of the word "fossile" as the name of a movement trying to develop technology?
Actually, it isn't totally inappropriate, because UNIX and GNU have their origins in the ages of the dinosaurs. Linux is newer, perhaps originating during the age of early humans. Given some of the controversy occuring lately, we may be entering the Dark Ages, soon. Personally, I can't wait to get a parrot and sail the high seas, but that's still twenty years or so away. Oh well.
...maybe Intel might counter with a 128 bit (!) cpu for the servers...
128-bit CPUs probably won't appear for decades. Even today, I have a 64-bit workstation (going on five years old, now), and no program I actively use other than the kernel itself is 64-bit. They're all still 32-bit, because 4GB of RAM is more than enough for my work.
Additionally, it'll be a while before even the biggest servers can exhaust the 18,446,744,073,709,551,616 bytes of RAM theoretically available to 64-bit CPUs. If that isn't enough, one day, I'm sure Intel will churn out some sort of hack to make it 147,573,952,589,676,412,928 bytes. Sheesh, 18,446,744,073,709,551,616 bytes ought to be enough for everybody!
"subtend" escaped my high-school geometry education. At first glance, it could mean serving small candy submarines at a party. However, m-w.com, crushed my imagination:
Main Entry: subtend... 1 a : to be opposite to and extend from one side to the other of <a hypotenuse subtends a right angle> b : to fix the angular extent of with respect to a fixed point or object taken as the vertex <the angle subtended at the eye by an object of given width and a fixed distance away> <a central angle subtended by an arc> c : to determine the measure of by marking off the endpoints of <a chord subtends an arc>
Also, assuming he had access to a time machine, he surely had access to the computing power needed to easily calculate the position of Earth based on the center of the universe frame of reference.
And, hopefully, access to enough accuracy and precision to not end up in the Earth's core. Even a fraction of an inch underground could be disasterous.
Another interesting question: what happens to the matter inhabiting the place into which he suddenly appeared? Does he time-machine the past air into his present to balance things out? What if he teleports back an extinct house fly that ravages the future time? Questions, questions, questions...
Regardless of the fictional aspect of this story, it made me think of an interesting question:
If a person devises a time machine, how can they both (1) travel back in time and (2) account for the displacement of the Solar System and its planets in that time?
For example, if he traveled back 200 years but remained in the same position, he would have appeared not in Wall Street but in space to quickly die in a vaccuum. The comfort of Earth would literally be billions of miles away.
Ideally, this sort of clause should be built into a purchase up front, and it would have to start with large customers, but MS (and other vendors) need to face some serious financial consequences for blunders like this...
I thought nearly all software came without any warranty, other than one, perhaps, for physical media.
From now on, it will be up to corporations to negotiate financial consequences for Microsoft into their contracts. Individuals, of course, still get screwed.
Is any profession with a specific title more than a niche?
This is true, but there are many young people who have the naive dream of creating great video games as adults. I think almost everyone who takes up programming as a hobby or majors in CS has this fantasy for at least a moment. My post was mainly to help further dispel the myth that programmers can make games single-handedly.
This is too black and white, also. Free software could be described as working best for software that has no finite window of opportunity. For example, word processors were relevant twenty years ago, are relevant today, and will be relevant twenty years from now. All that matters is that the Free software projects keep marching on forward to create the word processor that finally can displace the proprietary ones.
The windows of opportunity exist more for either low-end fashionable software or high-end niche software. For example, high-end CAD vendors are always leap-frogging each other in one way or another to stay competitive. They have to to survive. Additionally, I don't see any Free software project that could take on the unforgiving complexity of CAD/CAM.
If they had produced a useful, stable product back in 1999, when Internet Explorer still only had half the market, people might have resisted the pressure to switch.
IE's dominance is temporary, because the WWW, by its nature, requires non-proprietary commodity software to succeed in the long-term. If Microsoft can continue to dominate perpetually, then that will be the once-and-for-all failure of our free society, because everyone will have given up and settled into the comfortable Windoze ooze, sucking their thumbs, and smiling at their corporate overlord.
Projects like Mozilla are steadily, but slowly, gaining acceptance. It really is just a matter of time before IE has to "play along".
I didn't consider drag n' drop advantage and integration (there weren't lots of "dt... " applications) worth the performance hit compared to running ctwm under X.
It's ironic that, now, CDE can be considered "fast". It's bascially the same scenario you describe but on 400MHz+ RISC workstations rather than 40MHz+ RISC workstations.
CDE runs well enought that it really isn't worthwhile to run twm or fvwm, unless you really want it. GNOME is noticibly less responsive than CDE, but it's still usable.
I'm not sure I understand how the desktop can cut productivity. I've experienced the same overall levels of productivity regardless of desktop: fvwm, olwm, CDE, GNOME, KDE, whatever.
IMO, the things that have first-order impact on productivity are shell scripts, sed, awk, perl, etc. rather than the look and feel of the desktop. All the desktops are approximately the same in the time it takes to do something, such as switch virtual desktops and launch an application.
More encouraging for me is that Sun hasn't caved into the buzz surrounding GNOME while still finding a way to embrace it. They are approaching it they way they should be: engineering before marketing. HP, as we all know, appears to have become a marketing-first company, which is unfortunate.
Will this lead to a shift from coders to "technical directors," as Carmack believes?
I believe this has already happened. Look at the credits for any recent big game, and you'll see that the number of graphics designers and other artists dominates the number of programmers on the staff. Seeing this has convinced me that the profession of "game programmer" will never be more than a niche.
...it is way more a PITA to configure than even Gnome...
I disagree with this, because CDE's customization is performed primarily through the "Style Manager" and the "Create Action" tools. Actions can be dragged-n-dropped onto the workspace manager to customize the pull-up menus. Once these basics are covered, CDE is pretty trivial to keep up with.
Also, Sun's on-line CDE documentation is thorough and even covers the file formats stored in the user's.dt directory. This allows a sysadmin to create site-wide configurations relatively easily.
Gnome 2 is good enough for SUN Solaris, but not HP-UX?
GNOME 2 is not yet good enough for Sun. They have released it only in an unbundled package, and for good reason, too. There are still several severe usability issues, especially related to desktop customization. I would bet that after another year or so of refinement, it would finally be good enough to replace CDE as the default. Even then, it would be hard to beat the fact that CDE has been around for years, and GNOME 2 is just a toddler by comparison.
Is there a general trend in free software to move slower than business likes?
Yes, and it is a good thing. Because Free software can evolve indpendently of corporate timetables, it will evolve at a much more natural pace. One thing Microsoft can do nothing about is the fact that Free software is always moving forward (on average, of course).
One day, there will be no desktop, browser, or word processor that companies like Microsoft can compete with, and this, too, is a good thing. These are types of software that are long overdue for the public domain. Proprietary document formats are dinosaurs of the early battles that led to Word's dominance. They simply need to go away once and for all.
The slow-ness of Free software is only a percieved disadvantage, because it tries our patience. It is unfortunate that Windows XP will remain the only choice for many people for several years to come. However, it is very important for us to understand that companies like Microsoft, who dominate on commoditity software only, will eventually become obselete. This is inevitable and not optional for them, IMO.
The redeeming qualities of CDE are exactly those that people criticize. It is a dry designed-by-committee desktop that is really good for day-to-day engineering and other technical work. It is simple, mature, stable, and predictable.
It is unfortunate that the mass market feels it necessary to have a one-size-fits-all Windows XP or GNOME eye-candy orgasm whose users somehow equate experiencing its visual greatness to getting work done.
With CDE, users don't have to deal with the volatility associated with the other mainstream desktops, becase CDE is an industry standard and has the inertia of some of the biggest corporate bureaucracies behind it.
I can understand why HP is questioning GNOME, even Sun's new GNOME 2.0 release has a long ways to go before it reaches the usability and stability of plain-ol' CDE.
That's terrible. I mean Microsoft releasing frequent patches for their products - and then the users are finding those patches so easy to download and install that they keep doing it!
What's even more terrible is that no one really knows how many times the EULAs have been changed as a result.
I installed Windows XP the first time recently and was disturbed at the default settings for Windows itself and the Media Player. MS should not be trusted. They're practically as bad as Real Player.
... hasn't *nix been doing this for oh say 30 years?
Not quite. The problem is in the word "secure". The UNIX kernel is loaded into memory accessible by the root user, where he/she/it can load up a bundled kernel debugger (mdb in Solaris, for example) and hack away. This is also regarded as a totally valid technique for modifying a running system without needing a reboot, and with the right documentation and care works well.
Yes. I think the Liberty Alliance has a much better chance of succeeding, because it was designed by a team whose members do not trust eachother. It was designed by businessmen with a common business interest but other conflicting interests. Because of this, I hope that LA makes pudding out of Palladium and force-feeds it back to Gates and co.
This very example tends to lend credibility to the group describedin the article as "craft" programmers.
The only reason programming can still be considered a craft is that the languages and tools we have at are disposal have yet to really deal with the complexity of programming.
Some analogies that may predict the future of programmers:
What happened to tailors and weavers after the maturation of the textile industry? Machines now automate much of the "art" of producing clothing.
What happened to master ironworkers and carpenters after the maturation of the metalworking and furniture industries? Machines now automate much of the "art" of forging, turning, carving, etc.
Once the tools get to the point of satisfying the market demands for a particular class of products, then the craftsmen are left as niche producers or historians.
For programmers, there will one day be a language that finally deals with the issues we see with structured programming, OOP programming, P-OOP programming, Extreme (to the max!) programming, etc. The tools we have will continue to mature, albeit for decades more, until the fundamental problems discussed/whined-about in this Slashdot discussion will be history. Only then will "software engineering" become Software Engineering, and programming will be looked at as no better than assembly-line work at a factory.
In other words, C CAN be a OO language if you use it like one.
Yes, but when programmers try to build the semantics of an OO language into C using function pointers in structures, for example, things get so ugly so fast that the program becomes unmaintainable (willfully or practically).
I know this from working with code written by a C-programmer who was bitten by the OO bug. It became pretty clear that it is wisest to stick to C's strengths: structures and functions. As long as the data modeler for a C program understands the language's limitations, then the resulting program will be very successful. It's just that pushing C too far will put that success at risk.
Ruby's "chock-full of heady goodness", and definitely worth adding to your repertoire.
.NET is absolutely not the answer to this, as .NET is really multiple facades of the same thing wrapped up in a single-vendor bend-'em-over solution from a un-trustworthy company. The fact is that there is no good solution.
Where should Ruby rank among the other 4385 lanugages and APIs that everyone says are worth learning?
I really don't mean to troll, but the fact that programming languages are still so volatile is good evidence that programming languages are still in their infancy. By volatility, I mean that every 6 months or so, a brand new "must see" language is invented, develops a "growing userbase" of neophytes and zealots, becomes "production quality", gets several books written about it, and is adopted by a few risk-taking companies in real projects.
I've seen software get written in such languages (Lisp, then Perl, then Java, then Python, etc.), where all that work will not carry over when the "next big language" is invented and becomes popular among interns (because who wants to learn something unfashionable like Lisp?).
This is probably why most software is still written in C and C++, even though they are bug-magnets, because they are most definitely not going anywhere for a long time.
So, basically piles are folders (directories) that are non-nestable.
So, we're back to good-ol DOS 1.0 (or was it 2.0? Oh, it really doesn't matter, anyway).
Who let the MS 'turf kiddies out of their pen?
What kind of moron chooses the root of the word "fossile" as the name of a movement trying to develop technology?
Actually, it isn't totally inappropriate, because UNIX and GNU have their origins in the ages of the dinosaurs. Linux is newer, perhaps originating during the age of early humans. Given some of the controversy occuring lately, we may be entering the Dark Ages, soon. Personally, I can't wait to get a parrot and sail the high seas, but that's still twenty years or so away. Oh well.
For all practical purposes, UFS is dead.
Wait, my Sun workstation uses UFS...NO CARRIER.
<the haunting sound of one-handed clapping ensues from the Slashdot crowd and pmz's ego sinks into oblivion>
128-bit CPUs probably won't appear for decades. Even today, I have a 64-bit workstation (going on five years old, now), and no program I actively use other than the kernel itself is 64-bit. They're all still 32-bit, because 4GB of RAM is more than enough for my work.
Additionally, it'll be a while before even the biggest servers can exhaust the 18,446,744,073,709,551,616 bytes of RAM theoretically available to 64-bit CPUs. If that isn't enough, one day, I'm sure Intel will churn out some sort of hack to make it 147,573,952,589,676,412,928 bytes. Sheesh, 18,446,744,073,709,551,616 bytes ought to be enough for everybody!
"subtend" escaped my high-school geometry education. At first glance, it could mean serving small candy submarines at a party. However, m-w.com, crushed my imagination:
... 1 a : to be opposite to and extend from one side to the other of <a hypotenuse subtends a right angle> b : to fix the angular extent of with respect to a fixed point or object taken as the vertex <the angle subtended at the eye by an object of given width and a fixed distance away> <a central angle subtended by an arc> c : to determine the measure of by marking off the endpoints of <a chord subtends an arc>
Main Entry: subtend
Also, assuming he had access to a time machine, he surely had access to the computing power needed to easily calculate the position of Earth based on the center of the universe frame of reference.
And, hopefully, access to enough accuracy and precision to not end up in the Earth's core. Even a fraction of an inch underground could be disasterous.
Another interesting question: what happens to the matter inhabiting the place into which he suddenly appeared? Does he time-machine the past air into his present to balance things out? What if he teleports back an extinct house fly that ravages the future time? Questions, questions, questions...
Regardless of the fictional aspect of this story, it made me think of an interesting question:
If a person devises a time machine, how can they both (1) travel back in time and (2) account for the displacement of the Solar System and its planets in that time?
For example, if he traveled back 200 years but remained in the same position, he would have appeared not in Wall Street but in space to quickly die in a vaccuum. The comfort of Earth would literally be billions of miles away.
Ideally, this sort of clause should be built into a purchase up front, and it would have to start with large customers, but MS (and other vendors) need to face some serious financial consequences for blunders like this...
I thought nearly all software came without any warranty, other than one, perhaps, for physical media.
From now on, it will be up to corporations to negotiate financial consequences for Microsoft into their contracts. Individuals, of course, still get screwed.
Is any profession with a specific title more than a niche?
This is true, but there are many young people who have the naive dream of creating great video games as adults. I think almost everyone who takes up programming as a hobby or majors in CS has this fantasy for at least a moment. My post was mainly to help further dispel the myth that programmers can make games single-handedly.
Every product has a finite window of opportunity.
This is too black and white, also. Free software could be described as working best for software that has no finite window of opportunity. For example, word processors were relevant twenty years ago, are relevant today, and will be relevant twenty years from now. All that matters is that the Free software projects keep marching on forward to create the word processor that finally can displace the proprietary ones.
The windows of opportunity exist more for either low-end fashionable software or high-end niche software. For example, high-end CAD vendors are always leap-frogging each other in one way or another to stay competitive. They have to to survive. Additionally, I don't see any Free software project that could take on the unforgiving complexity of CAD/CAM.
If they had produced a useful, stable product back in 1999, when Internet Explorer still only had half the market, people might have resisted the pressure to switch.
IE's dominance is temporary, because the WWW, by its nature, requires non-proprietary commodity software to succeed in the long-term. If Microsoft can continue to dominate perpetually, then that will be the once-and-for-all failure of our free society, because everyone will have given up and settled into the comfortable Windoze ooze, sucking their thumbs, and smiling at their corporate overlord.
Projects like Mozilla are steadily, but slowly, gaining acceptance. It really is just a matter of time before IE has to "play along".
I didn't consider drag n' drop advantage and integration (there weren't lots of "dt... " applications) worth the performance hit compared to running ctwm under X.
It's ironic that, now, CDE can be considered "fast". It's bascially the same scenario you describe but on 400MHz+ RISC workstations rather than 40MHz+ RISC workstations.
CDE runs well enought that it really isn't worthwhile to run twm or fvwm, unless you really want it. GNOME is noticibly less responsive than CDE, but it's still usable.
I hear what you're saying but...
using CDE cuts my productivity.
I'm not sure I understand how the desktop can cut productivity. I've experienced the same overall levels of productivity regardless of desktop: fvwm, olwm, CDE, GNOME, KDE, whatever.
IMO, the things that have first-order impact on productivity are shell scripts, sed, awk, perl, etc. rather than the look and feel of the desktop. All the desktops are approximately the same in the time it takes to do something, such as switch virtual desktops and launch an application.
Sun at least sees that the future is not CDE.
More encouraging for me is that Sun hasn't caved into the buzz surrounding GNOME while still finding a way to embrace it. They are approaching it they way they should be: engineering before marketing. HP, as we all know, appears to have become a marketing-first company, which is unfortunate.
Will this lead to a shift from coders to "technical directors," as Carmack believes?
I believe this has already happened. Look at the credits for any recent big game, and you'll see that the number of graphics designers and other artists dominates the number of programmers on the staff. Seeing this has convinced me that the profession of "game programmer" will never be more than a niche.
...it is way more a PITA to configure than even Gnome...
.dt directory. This allows a sysadmin to create site-wide configurations relatively easily.
I disagree with this, because CDE's customization is performed primarily through the "Style Manager" and the "Create Action" tools. Actions can be dragged-n-dropped onto the workspace manager to customize the pull-up menus. Once these basics are covered, CDE is pretty trivial to keep up with.
Also, Sun's on-line CDE documentation is thorough and even covers the file formats stored in the user's
Gnome 2 is good enough for SUN Solaris, but not HP-UX?
GNOME 2 is not yet good enough for Sun. They have released it only in an unbundled package, and for good reason, too. There are still several severe usability issues, especially related to desktop customization. I would bet that after another year or so of refinement, it would finally be good enough to replace CDE as the default. Even then, it would be hard to beat the fact that CDE has been around for years, and GNOME 2 is just a toddler by comparison.
Is there a general trend in free software to move slower than business likes?
Yes, and it is a good thing. Because Free software can evolve indpendently of corporate timetables, it will evolve at a much more natural pace. One thing Microsoft can do nothing about is the fact that Free software is always moving forward (on average, of course).
One day, there will be no desktop, browser, or word processor that companies like Microsoft can compete with, and this, too, is a good thing. These are types of software that are long overdue for the public domain. Proprietary document formats are dinosaurs of the early battles that led to Word's dominance. They simply need to go away once and for all.
The slow-ness of Free software is only a percieved disadvantage, because it tries our patience. It is unfortunate that Windows XP will remain the only choice for many people for several years to come. However, it is very important for us to understand that companies like Microsoft, who dominate on commoditity software only, will eventually become obselete. This is inevitable and not optional for them, IMO.
They will stick with the old (and crappy) CDE.
The redeeming qualities of CDE are exactly those that people criticize. It is a dry designed-by-committee desktop that is really good for day-to-day engineering and other technical work. It is simple, mature, stable, and predictable.
It is unfortunate that the mass market feels it necessary to have a one-size-fits-all Windows XP or GNOME eye-candy orgasm whose users somehow equate experiencing its visual greatness to getting work done.
With CDE, users don't have to deal with the volatility associated with the other mainstream desktops, becase CDE is an industry standard and has the inertia of some of the biggest corporate bureaucracies behind it.
I can understand why HP is questioning GNOME, even Sun's new GNOME 2.0 release has a long ways to go before it reaches the usability and stability of plain-ol' CDE.
That's terrible. I mean Microsoft releasing frequent patches for their products - and then the users are finding those patches so easy to download and install that they keep doing it!
What's even more terrible is that no one really knows how many times the EULAs have been changed as a result.
I installed Windows XP the first time recently and was disturbed at the default settings for Windows itself and the Media Player. MS should not be trusted. They're practically as bad as Real Player.
... hasn't *nix been doing this for oh say 30 years?
Not quite. The problem is in the word "secure". The UNIX kernel is loaded into memory accessible by the root user, where he/she/it can load up a bundled kernel debugger (mdb in Solaris, for example) and hack away. This is also regarded as a totally valid technique for modifying a running system without needing a reboot, and with the right documentation and care works well.
Sounds like Liberty Alliance.....
Yes. I think the Liberty Alliance has a much better chance of succeeding, because it was designed by a team whose members do not trust eachother. It was designed by businessmen with a common business interest but other conflicting interests. Because of this, I hope that LA makes pudding out of Palladium and force-feeds it back to Gates and co.
This very example tends to lend credibility to the group describedin the article as "craft" programmers.
The only reason programming can still be considered a craft is that the languages and tools we have at are disposal have yet to really deal with the complexity of programming.
Some analogies that may predict the future of programmers:
What happened to tailors and weavers after the maturation of the textile industry? Machines now automate much of the "art" of producing clothing.
What happened to master ironworkers and carpenters after the maturation of the metalworking and furniture industries? Machines now automate much of the "art" of forging, turning, carving, etc.
Once the tools get to the point of satisfying the market demands for a particular class of products, then the craftsmen are left as niche producers or historians.
For programmers, there will one day be a language that finally deals with the issues we see with structured programming, OOP programming, P-OOP programming, Extreme (to the max!) programming, etc. The tools we have will continue to mature, albeit for decades more, until the fundamental problems discussed/whined-about in this Slashdot discussion will be history. Only then will "software engineering" become Software Engineering, and programming will be looked at as no better than assembly-line work at a factory.
In other words, C CAN be a OO language if you use it like one.
Yes, but when programmers try to build the semantics of an OO language into C using function pointers in structures, for example, things get so ugly so fast that the program becomes unmaintainable (willfully or practically).
I know this from working with code written by a C-programmer who was bitten by the OO bug. It became pretty clear that it is wisest to stick to C's strengths: structures and functions. As long as the data modeler for a C program understands the language's limitations, then the resulting program will be very successful. It's just that pushing C too far will put that success at risk.