Software Fashion
fedor writes "Software fashions come and go, but they always claim a few victims on the way. Where there's fashion, you'll find that rather weak willed person who is the Stupid Fashion Victim (or the SFV for short).
This great article from Software Reality is all about fashion in software. Do you all remember WAP? In a couple of years some of the current 'technologies' will be gone too. The article mentions VB.NET, struts and XP as current fashion..."
I read about this 5 seconds ago! Can't slashdot post cutting edge news?
Not anywhere I've been - didn't everyone realised it was a hopeless technology about five seconds after the hype started?
Text only? Feeble baud rates? Unable to read standard sites? Pur-lease...
Gentoo rules.
Actually, I always suspect an idea is bad when Sun Microsystems has an entire Java-One conference based on it.
A programmer is a machine for converting coffee into code.
...Java will be on that list.
That girl in the school girl uniform is pretty scarey!
Whats next? A front page story post with the goatse guy?
It's good for a lot of situations, but it's the most overused framework I've ever seen.
Rick
We regret to inform our readers that the column, formerly titled "Soapbox" will appear under a different name after the girl on the left ate the entire soapbox.
"as demonstrated by Britney, our sexy young model over on the left"
That's my mother you insensitive clod.
My vote is the
Runner-up: The adventure games a'la Sierra's.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
I thought he destroyed all the copies.
In the pro community of linux, I've seen the fashion of linux distributions.
.deb format. Rpms and Ebuilds are the new fashion!
First it was Slackware, then Debian and now Gentoo. Now that Debian has lost around 90% of its market share it is being left out to dry with its anceint packages and deprecated
Whats next? Ive recently seen a rise in Mandrake cooker users, as they provide the ultimate in ease of use combined with the power.
Clippy the paperclip told me so.
I'd like to nominate collections frameworks as another fad that obviously didn't get the word that it should die. Painfully.
You take one look at Java Collections, and see a slew of overspecialized subclasses of underspecalized abstract root classes, so that its hard to do a key-pair lookup without writing one yourself, which defeats the purpose of the Java framework! </rant>
#define DRM chmod 000
Wireless Access Points? Yeah, those sure didn't take off. What WERE they thinking?
(-1, Raw and Uncut is the only way to read)
Yeah, when I am at the point where I need a bunch of sniveling little greasy acne-infested long-haired bed-wetting hand-wringing dweebs telling me about fashion, *I* will let *YOU* know, mmmkay?
Now get this garbage off my screen
...replace one division with one multiplication:
Technology X = Money/Success/Silver_Bullet
becomes the more efficient
Technology X = Money/(Success*Silver_Bullet)
Hungarian Notation., the fashion of obfuscating your code.
The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
Unix never really went out of style with the 60s, and for that matter neither did C. At least more and more people are turning away from C++. Too bad most of them seem to be switching to .Crap. For that matter, Java isn't too good either - "object orientation" as fancy structs is about as fashionably correct (for those "in-the-know," of course) as a bachelor driving a 4-ton SUV, and a byte-code VM is a waste if all you're going to do with it is hardware abstraction.
In the great CONS chain of life, you can either be the CAR or be in the CDR.
.NET will disappear once Microsoft starts pushing their next initiative and forces upgrades and rewrites. It's all about the $$$, never about the product. The product is just a conduit for money.
This is why OSS is so great. Most of the time, it's not about the money; it's about the product. Therefore, it's not about getting sales, it's about getting users.
But missed CORBA! Surely it belongs in the Technology X != Silver Bullet category. As far as I'm concerned, CORBA best solves the "this project has too many resources" problem.
But then again, I'm probably just another SFV :-)
DROS - Open-Source Robot Software
By the time we started making money I was bored.
Then I started writing low cost/level e-commerce software when no one in rural England believed it was safe to transact on the Net. I made a little, but grew restless before it peaked.
And now? Is it worth the risk in revealing the next big trend before it hits? Nah :)
I am so aware of that lovely graph they show explaining how business trends develop, peak and fade. Trouble is, it's SO DULL.
Back to the begging bowl...
cLive ;-)
ps - big hint - I like TBL :)
-- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
The names may change, but the lessons learned will remain.
What? No mention of UML?? Together with Design Patterns, these two are making my fellow software engineers less intelligible by the minute!
-3Suns
~~~~
The Revolution will be Slashdotted
lurn how to speel u jakass
Until I read the article, I thought it was going to be about how I wear CDs like Tarzan wears leaves. Curses, I'll never be popular!
This perfectly fits a classic reposting of a classic Slashdot post.. let me think, I believe the year was 2001...
REPOST:A classic /. posting on languages as fasion
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Technology increases inversely proportional?
Zounds! Let's get rid of all those cockamaney silver bullets, and we'll have giant robots to ride in. Cool!!!
Fuck Beta. Fuck Dice
Flowcharts, structured, waterfall, object-oriented (object-oriented programming, object-oriented design, object-oriented analysis), SEI levels, requirements-driven, use cases, design patterns, extreme, aspect-oriented ....
Me, I am still waiting for a compiler that gives good error messages, and shared objects that work.
Technology X = Money/Success/Silver Bullet
Illegal division by zero at line 1.
Some exec gets a new book of the month and starts throwing around words like 'quality' and 'documentation' and crazy shit like 'must compile.' I hate this flavor of the month crap.
I always outfit my software in khakis, loafers, a short-sleeve button-down shirt sand a pocket-protector. Talk about SFVs!
It eventually got to the point that we were getting very little work done, because we were always changing things in mid-development to appease her insane demands. Finally, our group got together, and formulated a formal plan for dealing with her insane requests.
We implimented the plan, and have not had any problems ever since.
Our team project manager put together a pretty good summary of what the plan entailed, which can be found here
Don't you see? Moderating it as Interesting is a master stroke of comedy. It's the only thing which has made me laugh on Slashdot all day. Most of the other attempts to be funny here result in my wishing cancer upon the poster.
they prefer to be called 'greasy guineas'
Richard Dawkins in his book "The selfish gene" introduced a concept of a meme. Meme is a replicator, just like gene, except that it represents an idea. It is copied by us, humans, either verbally or in writing, software, paintings, etc., and so on. Susan Blackmore in her book "The meme machine" expands on the idea.
Now, what does it have to with "Software Fashions". Both Dawkins and Blackmore present well-thought out argument that memes are subject to similar forces as genes. As a consequence, just like in a genetic world you can have outbreaks of viruses, in memetic environment there are outbursts of ideas. Some of them are as much use as a flu virus, and until our minds develop resistance to it, they will spread. Once memetic vaccine has been developed they die out.
Blaming software fashions on SFV is just like blaming flu outbreak on a SVV (stupid virus victim). Note that memetic fashions are common and not restricted to software. From bell-bottoms, through furbies to whatever the latest craze we have now.
A religious war is an adult version of a fight over who has the best imaginary friend
From the article:
That alone should tell you that the author has no clue as to what they are talking about. I am most definately not a VB.NET fan, but that statement is just false and shows a huge lack of understanding of the .NET Framework.
Forget the whales - save the babies.
I think XHTML is a good example of what he is talking about. Being able to burst XHTML isn't really that useful. The document should have just been made in XML first and then transformed for 'regular viewing'. If someone wants to burst it then, they can just refer to the original XML. There are obviously a FEW advantages to XHTML bursting, but it just seems rather trivial to me.
The authors validate many of my own concerns with the products mentioned, although some of their predictions are already coming true:
.Net model, as noted.
Rational Unified Process has contained roadmaps for XP process variants for over a year. RUPs primary purpose in life now is to keep consultants employed, although there's a ton of good stuff in there. Sorting it from the three tons of crap is why you need a consultant.
VB.net appears to have been largely abandoned by IT, and Microsoft's not far behind. That's good, since it just doesn't fit the
I'm not too sure what the joke is behind local interfaces on entity beans, I thought that was what entity beans were supposed to be in the first place. The whole pass-by-value thing just wasn't going to work, even if the caller and callee were in the same VM, so how else should J2EE support container managed persistence?
Finally, yes, Struts is bloated and needs to be either updated with something that has a smaller learning curve (like auto-generated beans and forms) or just something else (like the author's suggestion of JSF, which is probably going to be the thing for Java webapps). However, for organizing your code Struts gets the MVC thing down. It's just over-engineered for most apps.
but i'll bite..
;)
I am actually not sure why Gentoo is so popular right now.. I use it, but I have kind of specific reasons for using it (four-node openmosix cluster of boxes that need to be identical and so upgrades are cron'd to go off at the same time)..
For the average user not really needing to sit and fiddle around with make.conf and funky masked ebuilds I would not recommend it, Mandrake is nice for home systems where you have a ton of stuff plugged into the box and need something quick that just plain works..
I guess maybe other have specific reasons for using it..
I would post to the forum there but that is to risk massive flames and extreme moderation.
fun fun..
anime+manga together at last.. in real time.
I don't mean this to be flaimbait...so please hold off getting angry at me for just a moment.
But the article did describe (unwittingly) the OSS movement and Linux. There is a lot of hype out there(there is also a lot of substance too). There are a lot of people fueled by the desire to kill MS and others that happen to charge for their OS's. These will eventually burn out.
A business has a lot to consider when using Linux in their projects. Maintenance is one of them. I'm of the opinion that Linux is very Maintenance intensive when it comes to installing new things onto it. Once an installation has been stabilized...sure it works well for the long term. But it takes a fair amount of effort to get it there...at least now it does.
There is going to be competition. Vendors are going to work hard to improve their products to compete with Linux. Pricing structures will be affected. Linux isn't out of the woods yet.
Damn! Oh well, I guess you have to limit yourself or the article would be a phone book.
Blar.
These guys have some points, but I think a much better article could be written about this topic. In particular, I object to some statements made:
Robin [...]was once asked during a job interview: "What's your favourite design pattern?" What's the correct response to that?
I don't think that's such a stupid question, as long as it's interpreted correctly. A good design pattern, like a good algorithm, is likeable in its own right, because of it's elegance and the way it breaks down a complicated problem. Maybe the interviewer wanted to know if Robin was really passionate about programming.
VB.Net is really just syntactic sugar on top of C#. C# offers more and better libraries.
What libraries do C# offer that are not accessible from VB.NET? As far as I know, all C# libraries (at least those in the standard framework) are CLS compliant, and thus accessible from any CLR language.
Because programmers didn't test that much, XP stipulates that tests must be written before the code. In other words, just because something has a weakness you shouldn't do the opposite in an extreme form.
That's just crazy talk. Automated regression tests isn't intended to relieve those lazy programmers, in XP they're the de-facto definition of what the system is designed to. Not to mention that test-first design often leads to better design, in particular wrt coupling between classes and components.
When can we get Software Fashions like this, this or this? Then again, I don't think most Linux geeks would look good in this outfit!
Good morning little school girl!
The biggest stupid software fashion is IT outsourcing--it has reached the point where every corporate middle manager feels they have to have a story on how they're outsourcing, long before (if ever) outsourcing has proven any reliable ROI.
Unfortunately, unlike other stupid fads applied to software such as TQM, ISO9000, RUP, etc., outsourcing does real economic damage to the victims, (as opposed to just the psychological damage represented by trying to work around the others).
Remain calm! All is well!
If UML and Patterns is making your engineers less intelligible, then they are doing something wrong. It is possible that those tools are not appropriate for your problem space. It is also possible that they need to drop the elements of the model that aren't working for them.
Design Patterns is an incredibly useful tool, especially in the OO world. But as was noted in the article, there is a danger of designing everything as a pattern. Being able to say "I use a Service Locator to look up the remote resources" or "I use this Abstract Factory to get the proper xml parser" is incredibly useful. But it has a tendancy to be overdone.
Everything, including tools, in moderation!
While the article talks about XP, extreme programming. It is quite obvious what they really mean is Windows XP.
Fat Girl Rodeo (C)
Oops, forgot to put that in the post...
What the article should really state here is that the WAP technology is dying, but not the idea (browsing the web - walled garden or not).
More evolving and changing than going the way of the Dodo. Although, granted, that's not quite so catchy as "WAP is dead!".
Avantslash - View Slashdot cleanly on your mobile phone.
Does this tarball make me look fat?
"My God, this must be a truly remarkable corn chip, to be so widely and confidently touted."
I think CASE was a big fashion in the 90s. I'm glad that died.
Non illegemati carborundum est!
I think you are over critical of OO. Sure if you are doing anything in the systems area, OO may not be the answer for you. However, OO abstraction is so much more than "fancy structs". OO, if use effectively, can help us create highly complex software systems that are highly adaptable, reusable, and understandable. Using design patterns (only as needed of course), one can communicate a design with a much more concise description. Properly design inheritance and composition relationships can help a piece of software acheive better longevity.
OO is really a natural progression to structured programming. Sure it may not be the "Silver Bullet" but it certainly is a big step.
now that was a funny one...
WTF is struts anyway. Sounds really retarded.
They hold up the models.
funny munging
is me you insensitive cl0d
Don't know how many of you have actually used .NET but some of the changes are pretty bad IMHO.
- No more searching and sorting in recordsets except in the crazy dataviews
- Multi table recordsets. Who actually uses this garbage?
- Class hierarchy surrounding the different database drivers is ridiculous. Why not use one class for every driver and specify what you want to use in the connection string? That would save me having to write wrappers to ensure easy database interoperability.
I had to sandpaper my eyes first after the fugly MiMi chick up front, kill the cache, and turn off image loading, and start reading again. Then try to figure out what the hell the authors were saying. I'm still wiping the virtual spittle off the desk from the ranting and still don't have a clue what the hell the authors were trying to say.
Universal Modelling Language (UML); It may have place somewhere, but I haven't yet seen evidence or anything that could even be considered supporting circumsetncial evidence. Largest team I worked in was over 50 people, working on enterprise-class software, and I was heading it. I can't see how it can help a larger team either.
People turning away from C++? I don't see it. I find C++ much easier to work with than plain old c. C is still a good language but I will take c++ any day. Just for Goodness sakes stay away from MFC. It is stupidity incarnate.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Spoken like a true programmer. No wait, spoken like a true "wish it were still the 50's - it is in my dark and dank basement!" fanatic. Some of use move on....
How long does something have to exist and be used in the market before it is no longer a fad? Do you have any clue?
Many of the tenets of eXtreme Programming (e.g. refactoring, incremental development) are things that good programmers do anyway. The only thing I really disagree with is pair programming, because so much good software has been written without it (e.g. GNU/Linux). I beleive most of the suggestions of XP will be around long after the buzzword is long forgotten.
"Freedom means freedom for everybody" -- Dick Cheney
I don't know, we just tiger teamed on this same paradigm at a standup meeting, and frankly most of their suggestions violate ISO 9000 and show no facility for CMI. Perhaps if they'd used a quality circle to better evaluate their stance, they'd actually have action items that would be meaningful.
Fortunately, we here in the business world don't have the same 'fashion trends' problem you software blokes seem to suffer.
A.
The very worst fashion has to be EJBs.
EJBs complicate development. Where a single class would previously have worked just fine, EJB requires up to seven (!) classes to define things like the Remote Interface, Remote Home Interface, etc. And where a simple constructor would previously have served, EJB requires a long JNDI call. Not to mention, there are zillions of arbitrary coding restrictions that must be memorized and followed for EJB to work properly.
Furthermore, EJBs drastically impair performance. The "shopping cart" demo that comes with a major commercial app server brings my 1GHz 512M machine to its knees. Such a program could otherwise execute quickly on a 286 8MHz, a machine less than 1/1000th as powerful as the one running the EJB. I regularly encounter shops that have huge farms of commodity boxes to run very trivial EJBs that would otherwise execute on a single box just fine.
And EJBs do not scale any better than 2-tiered systems. 2-tiered systems allow you to horizontally scale the business logic by adding commodity machines to the second tier. Adding another tier does not help this at all.
...For this crippling blow to development, you get to pay Bea $40k/developer. Snake oil! Very expensive snake oil!
Software development resembles a foot race between you and your competitors, and using EJB resembles paying a surgeon exorbitant sums to cut off your left leg before the race. It costs craploads of money, it cripples progress, and it hurts!
I use Gentoo, but I don't mess about with ebuilds, change USE flags, or
anything fancy like that. I still think portage is much better than rpm (I
haven't used apt-get.) Alse, since I don't use KDE or Gnome or anything fancy
like, that, I like not having to get rid of them after I install. The only
disadvantage of portage is the compile time, but if I'm patient enough to
use it on my ass-slow machine, I think everyone else needs to stop whining.
You mean my micro-horse was just a waste of money?
anyways, here is a cool page I found.Bhwhahaaha. You'll have that stuck in your head all day now...
Of course, intelligence is your immune system and "The Grid" is the latest fashion.
Government of the people, by corporate executives, for corporate profits.
Even if you don't use any of the OO aspects of C++ or templates, it is still a large improvement over C. // style comments (although this was added to the
ISO/ANSI C99 standards for C)
const instead of #define constants
inline instead of #define macros
improved structure handling.
considerably more typesafe
more control over casting (, )
pass-by-reference variables
new/delete instead of malloc/free
And C++ is at least 95% as efficient as C.
XML is a fad because the whole concept of universal interchange of data is getting locked down by the big vendors. Theoretically, yes, data in XML is portable, but, so are well documented binary structures and CSV.
To have real interoperability, you have to know how the software uses the data. To get that, you must have open source. Microsoft knows this, and that's why they are pushing XML as the "nirvana" of interoperability.
I'd invite anyone who argues against the above to look at an XMLized Word document...
This is my sig.
..all i can really do is echo the standard sentiment. Except the .NET hate. I mean, most of it's prolly justified (Though only heaven knows, it not exactly a software package/framework people cut their teeth on), but i get this feeling, mostly from using it this past couple of months, that it will be here for the duration, for better or worse. The fact that it has so much crap integrated into it, and not to mention (considering its STILL in an extremely immature stage, and its rather broad functionality) its actually one of the MOST (if not the most) stable/functional(if not practial) things ever to come out of M$, it just gives me the feeling that this is were they want to head (again, maybe not the best idea, hell maybe not even in top 100, but i digress). That, and i like my compilers/FW's to be just like me, simple (not right, not always rational, but simple ;P).
You've got a good point. As an industry, we've mostly let hype drive development, with empty promises, and whiz-bang stuff that actually requires more work in the long run to maintain pureness of abstraction.
At least in the background, there are people working hard to make the basics better, without hype or useless paradigm shifts. Most of this work is open source. A day rarely goes by when I am not thankful for the countless hours of work that has given us robust open platforms.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
gentoo is really nice when you are using cutingedge stuff. okay im not good at configuring mandrake but i helpt a friend make a pvr and after spendning 2day with alomst everthing working we gave up on mandrake and then we switched to gentoo
the system was up and running in less than a day
"the hacker part of me demands that anyone who has a web page learn HTML: it's not that hard, and it's like having a driver's license -- it's a lowest common denominator of skill. "
It is not hard admittedly, but there are programs out there (Visual Page for instance) that produce reasonably clean html code.
If an author (say) wants to make a webpage then I can see no real problem with him using a wysiwyg page generator. The communication is the key, not the medium.
I'll take it as read that you drive a car, can you double declutch, and find and fix a broken plug lead?
The way I heard it, HTML was designed as a machine written human readable language, there was no intent originally that we would sit there and edit it by hand. (Or is that an urban legend?)
Actually, OO is great for systems programming. It's just most OO languages that are not. C++ was =designed= for systems programming.
And so of course, comically, tools came along that make UML diagrams out of code. Or try.
Absurd. As a programmer, why on earth would I want to look at a bunch of silly boxes when I could look at the source code instead, complete with comments and algorithms?? Even just vi with etags is more useful than UML.
What? You say there are no good comments in the code? Well, then the project is Doomed, and UML diagrams aren't going to change that. In the end, the code has to stand on its own two feet, and no amount of plastered-on "design methodology" is going to change that.
PS: I have a compsci degree and 20 years hardcore experience. If you choose to tangle with me, beware that I have a large bookcase of mostly useless fad methodology books here ready to throw at your head.
Interesting to call WAP dead, considering that it's supported by just about every cellphone released nowadays.
I'm a software developer for a company that delivers solutions over WAP. We have building, health, and fire inspectors pass or fail inspectors via WAP. It's simple, it's fast (as fast it would be on the web), and it's extremely cheap (existing cell phone plan + around $5/month extra for the WAP service).
The news that WAP is dead is surprising to me, especially because I've had meetings with higher-ups at three major cell phone providers in the past month about their continued support for WAP on their cell phones.
I personally use WAP constantly to check sports scores, plane schedules (and departure/arrival gates), and to check on my fantasy football team.
I also own a T-Mobile Sidekick, which is consistently reviewed as one of the best devices for web-via-phone, and frankly, compared to WAP, it sucks. It's useful for sites that aren't supported via WAP, and of course it's essential for emailing or using extensive form-based websites, but it's much faster to check sports scores and use our Inspector interface via WAP than with the Sidekick browser (or the Treo browser, for that matter).
Currently, there's simply no substitute for WAP, and I'm glad that it's here to stay.
SFVs _"*NOT*"_ SFV's!
Impeach Bush
UML, EJBs, SOAP, XML, all fashion trends, you say? This may be true, but take a look at job advertisements in the software development field... a lot of them require that you know wonderful things like UML, EJBs, SOAP, XML, etc. This is why I quit my very well paying software development job and went back to school to pursue graduate studies. I realized my job was based on nothing more than fashion trends. It was just the same old stuff being rehashed and remarketed in a different way. In grad school, on the other hand, I get to explore problems from the perspective of real research and development, instead of being constrained by a bunch of marketing drones insisting that we include every latest piece of technology possible to make our product seem "cutting edge."
Now that we've all read about it, how do you go about REVERSING the problem?
... what do you do when they just don't listen?
For those of us who are in organisations who are falling victim to SFV-syndrome, how do you stop it before it goes too far?
CAN you stop it once it's started, or is it impossible to stop because that will result in a large-scale loss-of-face for lot of people who are higher up the food chain than you?
And at the last
There are times when I deride myself for my lack of ability to think in an abstract manner, then along comes a post like yours and I can console myself that there are people out there who cannot understand an anaology even if it a barn full of VB.Net code standing right in front of them.
Yep! ANT is crazy! A weaker, multi-platform, single languange "make".
Yeah, make isn't the best, but it works, it's complete, and people use it for everything. Except Java.
Sure you could use ANT for other languages. I've yet to see it embrased for anything other than Java.
So much for the multi-platformness of Ant.
In other words, you conclude that a method is poor because you can break its rules, or that the common engineer is likely to break its rules. Fine, but unless we start following rules, how's anything going to change?
Put another way, let's say the Right Method (which necessarily comes with a number of Right Rules) does come along. If you're just going to refuse to follow its rules, how can you possibly conclude anything except that it's also "pathetic"?
Well, that sentance pretty much sums up what wrong with the computer industry, doesn't it?
"Freedom means freedom for everybody" -- Dick Cheney
It's another fine product from Apache.
Show me on the doll where his noodly appendage touched you.
...The Computer books $.99 bin.
This was touted as the "next big thing." I promptly registered my identity. That was in 2000. I haven't heard this technology mentioned ONCE since then. Apparently, it's still viable, as www.xns.org still exists.
On a side note, I now steer clear of ANYTHING that touts itself to be the "next big x." (napster, anyone?)
Often in Error, Never in Doubt.
Is it just me, or does this strike you as sort of a fluff-piece? It seems like the author had little to say other than a vague concept that "Gee, a lot of once-popular software ends up not really having any staying power." and realized he could put together something somewhat eye-catching by relating it to the fashion industry.
To me, fashion is a term reserved for defining the look of a thing. If people stopped wearing shorts because the weather got cold, it wouldn't be correct to blame the lack of sales of shorts as due to their being "unashionable anymore". Maybe everyone WANTED to wear their shorts but just couldn't stand to do so anymore because they weren't practical for the conditions.
This is how I view most software. Things get hyped up initially, simply because they're new and different. (I.T. folks generally like variety. We get bored if we use the same old tools every day, for years on end, and no new challenges arise.) Then, as enough people put the new tools to use, they start coming to conclusions. "This product is far more efficient than the last one." or "This thing is bloatware!" The products that are too buggy, insecure, too slow, or just not as practical as they sounded on paper get tossed aside.
The only element of "fashion" I can see in software development is in user interface design. Even this tends to stay within a single product line though. (EG. Apple went through their whole "Aqua" stage - where everything had shades of blue. Now Jobs is fascinated by chrome, and even his new G5 towers have metal cases, to match the chrome look to most of the new Apple apps.)
I realize you said almost, butmine doesn't support it, I've even done some web sites using WAP. The problem is that I'm almost always around a computer, but if I'm out and about doing something else, I don't WANT to be near a computer, or worse yet, have one with me. :) Hence I've never had to desire to have a web browser on my phone, plus I'm a cheapskate, so I'm not gonna pay an extra $10/mo for a service that isn't worth it.
-- gid
A lot of these "fads" are natural progressions of computer science.
:-). Again, it's not Struts itself, but "Struts-like systems" which are highly abstracted.
You do realize that computer science is pretty young still, right? Stuff like design patterns are breakthroughs, and they are *discoveries*, not "methodologies".
Design patterns: "[programmers] shoehorn as many design patterns as possible into their design". Well, the author misunderstands patterns just as much as the people he is criticizing. Patterns are not "cookbooks". Patterns are simply names we use to describe stuff that our programs do over and over. You can't say you're not using patterns, because you are. The purpose of patterns is to think about your code at this higher abstract level, so you can recognize what's "the same" between every loop you ever wrote (and no "loop" is not in the GoF book, but it's still a pattern, because each loop is different but there are still similarities. learning to recognize those similarities is what patterns are about. Some people who've never read GoF have this ability).
Struts: in the old days (a couple years ago), I'd agree with the author: Struts makes code too slow and complex. But these days with big complex projects and super-fast computers, Struts makes a lot of sense. In my own programs, as they become complex, I tend to abstract stuff out over and over until it ends up looking basically like Struts anyway. Why not just start abstract? My Struts code is completely factored into simple testable objects and is much more reliable. If I had to hire a wizard JSP/Beans programmer and a mediocre Struts programmer, I'd think hard about the Struts programmer because his code will probably be easier to refactor (this an untested theory
Web service: Sure there's a lot of hype but I can throw together a remote procedure call interface in Perl that calls Java in about 5 minutes. Computers are fast, I don't care if they are burning extra cycles building SOAP envelopes (or XML-RPC which I prefer at the moment, easier to debug, SOAP is not stable and universal yet).
XML: say, why does he "flinch" at XSLT? XSLT is a great solution to a whole class of problems. I think of XML as the ASCII of this century.. not the most perfect representation for all data, but probably pretty close. How many times have I needed a format and just started using XML and not have to worry about 1) how to escape weird characters; 2) how to handle different character sets; 3) how to write and debug yet ANOTHER parser for MyLittleDataFormat23425, etc., etc. XML just makes life easier.
VB.NET: haven't had much experience with this but people seem to like it....
XP: XP is definitely faddish, but beneath the fad is solid basic computer science best practices. For instance testing: is there any idiot out there who DOESN'T think testing is important? Unit testing catches so many stupid errors it's not even funny. And test-first development means the tests actually get written. Psychologically, it's a lot more "satisfying" to write the test, and then the code that passes it, then the other way around. etc. etc. etc... the author is right, XP stuff will be integrating into other "traditional" methodologies. But that means XP is not a fad, doesn't it! XP is basically the only methodology that I've seen that works, even if you don't do it right, and it makes programming FUN. I can't say that for anything else I've tried or seen.
So in summary, the author seems like an old-timer who doesn't like this new-fangled stuff, and doesn't realize that yes, after the fads die down, we'll be left with the best parts of each "fad", and we'll be the better for it!
Technical Interviewer: What is your favorite design pattern? (Question came out of clear blue sky.)
Me: Whatever one happens to be appropriate to the task at hand. I don't play relgious games of "my complexity is better than your complexity".
I did land the contract and fortunately for me the jerk never worked on the team of which I was a member.
Dashboard was the in thing for a couple of weeks.
Where did all the excitement go?
Did people discover it was interesting but not actually particularly useful?
Boffoonery - downloadable Comedy Benefit for Bletchley Park
"Now that Debian has lost around 90% of its market share"
.deb format. Rpms and Ebuilds are the new fashion!"
.deb package format.
First of all, how did you divine this number, or rather, how far up your ass did you have to reach to find it? I'm not about to believe an Anonymous Coward's unsupported statistics. The web-based poll on your Geocities homepage is hardly a reliable means of determining marketshare, trends or otherwise.
Unless you are going to give us something better than this: fuck off, troll.
"it is being left out to dry with its anceint packages"
In testing/unstable you will find Gnome 2.2, as well as many accompanying apps updated with 2.4. Watching the lists, I suspect that Gnome 2.4 as a whole will start to make it into unstable within the month.
There are unofficial backports of Gnome 2.2 to woody, and unofficial Gnome 2.4 packages for unstable.
For individual applications (rather than the core of desktop environments), Debian is even more up to date. Oftentimes I can apt-get an official Debian package within a day or two of seeing the announcement on gnomedesktop.org or freshmeat.org.
Neither Redhat nor Suse nor Mandrake can top official (as in through the distribution official package repositories) packages faster than that.
Sure, if the Gentoo community is for you, then you can go ahead with that, but on the view of many, stability and professionalism just are not "there yet" in the Gentoo community, and it may or may not be on a reassuring path to that end, depending on who you ask.
I think that many do not spend the time to learn enough about the Debian community and process to truly appreciate the many many years of work by hundreds of persons that has gone into making it as reliable, scalable, and stable as it is.
Further, maintainers do a good job of keeping up with security updates in testing/unstable; very often the update is concurrent with the stable update, or only a few hours behind. And Gento or Slackware are certainly not in a position to be critical on this issue; absolutely they do not fare better, and many would say not nearly as well. If this isnt' good enough for you, either apply to become Debian Developer and do something about it, or put up with a corporate distribution.
"and deprecated
Ah, "deprecated"? Now I am certain you are trolling. Watching the lists, there are no plans to replace the
Does Gentoo have anything even approaching the Debian Policy Manual?
Heck, Redhat maintains less than half the packages as Debian last I recall, and Redhat is fricking corporate and for-profit.
The only non-official software I have on my primary Debian system (desktop/workstation) is Sun's jre. My system is full featured, up to date, and secure.
My servers are stable and secure, facilitated by a tried and proven process that is transparent, accountable, and well worthy of my trust.
Debian is alive and well.
.sig Realistic fines for copyright in
VI will never go out of style. Neither will C, *nix, and the GNU toolchain. Oh yeah, and all of these things are free, cool huh?
Because people are too busy constantly searching for that Silver Bullet that's going to save the face of humanity and technology as we know it as opposed to looking for technologies that solve day to day problems that humanity and the internet community faces.
The only technologies that stick, are ones that are ANSWERS to every day common problems or ones that fill a gap in the current market space and not the other way round. This is why so many technologies fail miserably. This is why the dot-com crash happened.
People get all too overly excited by the hype of marketing and fail to ask the most important question of all : why?
Why is this technology good for me?
Why do I need this technology?
What problem does it solve? What gap in the market does it fill?
Is this technology implemented so badly that no-one will be interested anyhow?
Are there too many competitors in the field allready that this market co-exists in?
If you can't answer any of those questions positively about some new exciting technology, then that technology will probably fail.
Technology maybe very exciting to some, but basic business rules still apply, no matter what medium it gets attached to.
Don't get caught up in the hype and glamour of it all, that'll be the death of you.
This is XML as well, but is it any easier to pick apart once you've deserialized it into a tree?
Just having XML syntax just gives you a tree. You need some way to process Microsoft's model of something into a model your program can understand.
Will I retire or break 10K?
Windows (dos)!
Otherwise, yeah, it sucks to have to learn "make, only different" to be able to do the same old things. That must be why my Ant book has sat browsed, and ignored (IDEs? Windows? Who cares?!? "vi Makefile", and I'm outta here...)
Yow! I'm supposed to have a plan?
Personally, I love Debian's "anceint packages". It means my servers stay stable over many package upgrades. Sure I might not have a sexy Gnome 2.2 or KDE 3.1 desktop, but who cares? It's a server. I may not have the latest version of Apache, MySQL, or anything else, for that matter, but what does it matter so long as the server works as it's supposed to.
I used up all my sick days, so I'm calling in dead.
Sucks. Pick a few failed technologies, enjoy mocking them, then try to synthesize it into some bullshitty whole about how there are "fashions" rather than just the success and failure of competing approaches.
And the author fundamentally understands XP, its motivations, and applicability. Any small project, stable requirements or otherwise, is an excellent candidate for XP if the coders are game. The real point is that the "traditional methodologies" he hopes will subsume the best of XP's ideas have failed, repeatedly, for years and years, rarely if ever producing reliable, simple, and timely software. XP deserves criticism, but there is absolutely nothing to be said for the approaches this author clearly favors.
Struts is model 2. Duh. JSP scriptlets? Come on. EJB is not a JavaBean? What does the B stand for? This is so clearly not an informed piece when it comes to Java web apps. Just like a Microsoft dork to act like they everything when they know nothing. The script kiddies of web application design and development have nothing to say, as usual.
Strict obedience to the law is the key to liberty.
I have to agree. What most people still do not seem to get that even on say a 400 mhz machine most programs spend a lot of time just waiting for input. A good, stable 95% or even 90% efficient program is better than a 100% efficient buggy program most of the time. OOP and STL really can really speed up development time. What most programers seem to forget is that one language really does not really have an intrinsic speed advantage over another. It really comes down to the compiler and the programmer. I can write dog slow C code and I can write very fast c++ code. If you want the most efficent program code in ASM.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
I think OOP is a fad. I have yet to see objective evidence that it is universally better. Sure, maybe for device drivers with stable interfaces it might be nice by increasing swappability of drivers, but that pattern does not extrapolate to everything else. In the real world interfaces are often as volitile as the implementation.
It might also be that some people just "think better" with OOP. I cannot really attack that view because everybody thinks differently. If you say OO models your head better, then it perhaps does. A lot of things in software are personal preferences. It is when the hypsters try to apply someone's personal preferences to everyone else that nasty paradigm wars break out.
There will always be pockets of people with an OO-shaped brain, but I think in the longer run OO has already had its heyday and will shrink in buzzword power to niche domains. Maybe Java will finally get real functions. See: oop.ismad.com for more.
Table-ized A.I.
(n/t)
This is not the Seth you are looking for. Frellin' troll.
Ha HA HAH AH AHA HA! So funny! [CHORTLING] hahahaha.
You have no idea what you're talking about. Major parts of Windows and all of KDE is built on OOP. Sure OOP is slower in some cases but this will be negated in the future. To claim that OOP is a fad without realising the number of C++ apps out there and the raw power of it shows your ignorance. Theres room in the world for procedural and OO based languages.
I don't understand why it's part of the Jakarta project, except for the fact that it was written by the Tomcat guy. It's a great idea terribly implemented.
I certainly would vote the whole "meme" thing right in the fashion category, of being grossly overused and applied in strangest places. Just like the silly idea of "selfish genes" itself (which was funny variation of "tail wagging the dog", but not much more).
I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
Why? Every .NET language is simply syntactic sugar on top of every other .NET language. The CLR is a marketing tool to suck in the naive, nothing more.
More precisely, it is to take advantage of Java's marketing. CLR is an attempt to out-Java Java. Personally I think x86 is a perfectly fine CLR in itself; no need to put another CLR on top of a CLR. Put an x86 emulator on a Sun-box for example. That way you only slow down one system type thru emulation instead of all. Why make the 90% who use x86 slower just so that you can have an emulated machine language (called CLR)? It should be the API's/interface to OS resources that is carefully controlled if it is a "sandbox" you want.
Another sticking point is the way MS keeps moving the "system settings" around from INI files to registries to "assemblies", etc. INI files were fine. Putting them in a real RDBMS would be nice too so that we can query them, but we can live with INI.
BTW, I heard that VB.NET allows named parameters while C# does not. I have yet to verify this. I like optional named parameters. They allow you to add more options without expanding all the callers or having tons of positions that are hard to keep strait.
Table-ized A.I.
After 30+ years you just must love this or be dead. OOP - so 60's, XML, so SGML, threading - can you say tasking ( multiprocessors, sharing, blah, blah.. ) show something new. The new things are on wireless and not much event there.
Exactly. Gentoo provides a very flexible system for people who know what they're doing.
I have some major gripes with it, but I'm still using it because it's easier to fix my problems with Gentoo than it is to change another distro to work the way I want it to.
As with some well-concieved but ill-implemented ideas, the trick is to use the Hungarian notation in the right places. When doing database design, for example, if all the columns in a table are given the same prefix, and each table has a distinct prefix, you can avoid using correlation names a lot of times when dealing with joins. Whats more, you can simply look at the column name and figure out which table it is coming from - and this is the intent of the notation.
There is no such thing as luck. Luck is nothing but an absence of bad luck.
One of our local wireless co's bought a few billboards around town with "WAP" being the primary ad copy. I recognized it, being the good geek that I was. But I think I was the only one at school and at work who did!
"What's a WAP? Whatever it is, it sounds like c..."
I would like very much to have a tool like UML to explain my designs -- I am a very visual/graphical type person. The trouble is that UML has so many kinds of lines, arrow heads, and connector icons that I can't make heads or tails of it. Even if I could learn the UML iconography and calligraphy, the representation is so busy that it seems to be useless.
... no, -misuse- of the gun blew my head off.
Seriously, ain't it always that damned misuse?
Seriously, I have no head, how am I typing this? I am a touch typist, that's how!
Is that is... the contest is which renders an 8-way box helpless? Java vs. .NET?
I'm just trying to figure out what was so bad about C++ that some nice class systems wouldn't solve. And wondering if some such class system has yet to be written.
-pyrrho
figure that out ourselves? Come on, who didn't think that vb.net and XP are fads/fashion/etc. Things that fckevd up can't be here to stay.
-Tim Louden
Actually there one area WAP has been very successful. MMS messages. MMS messages are simply SMS messages with WAP urls as content. Your MMS phone intecepts these messages, downloads the content using WAP and alerts you when its downloaded! neat!
The idiotic "fashion" that M$ started with Windows 95 - What was wrong with calling it Windows 4.0? And why have so many companies followed suit? I'm sure marketing convinced someone that this would result in more upgrades, as people don't want OLD stuff. If so, why do I keep running into Windows 95 & 98 boxes on a regular basis? I believe that the old-style version numbering would have been more effective in convincing people to upgrade. If anything it has confused more people than it has helped, especially when you start throwing in inconsistancies like "XP". Confused consumers are not good.
"Kittens give Morbo gas!"
Flavors of the week, past & present:
DRM: Right now every big software company is considering it, and many of them will stop using it when they realize just how much it pisses off their customers, and how little it does to reduce piracy.
Push content: How many of you still have a push client on your systems? /me listens for responses, hears nothing but chirping crickets.
.NET is also a flavor of the week that will be yesterday's news once Microsoft force-upgrades their customers to the next flavor of the week.
Cameras in every gadget, starting with cell-phones. Most people don't care enough to use them, don't want to have to check themselves in the mirror every time their phone rings, and have little use for them outside the normal uses that a dedicated camera is usually used for. In the end, it's an expensive gimmick.
Virtual reality. Visions of William Gibson's matrix have danced in the heads of thousands of developers and marketers, but that's not going to happen in real life. The problem is that VR interfaces are far less intuitive than the good old fashioned screen full of windows with a keyboard & mouse. Can you imagine donning VR goggles & gloves to write a letter or buy airline tickets? It's just plain easier & faster to do it the way we do it today.
Meldroc, Waster of Electrons
1. EJB's were designed to be written using tools. Read the spec, the developer is supposed to only write the implmenetation class, use XDoclet or JBuilder, Together or many of the other tools. They are beans and the basic idea behind beans if for VISUAL ASSEMBLY.
2. EJB's are for distributed transactional systems. They are not designed to run grandmas shop. And not even for most startups or even banks. Your application may be written for an enterprise but still not require enterprise functionality.
3. If a demo shipping with a vendors application server is slow its either the vendors application server or the demo itself, I suggest you try JBoss we are getting excellent performance although getting CMP to perform well requires some tinkering.
When using the right tools, and when you actually have a problem space that EJB can solve this is a wonderful solution. People have been using it without fully understanding what EJB's have to offer which is why there is such feeling towards EJB's. It was never claimed by anyone of authority that EJB's are designed to solve all problems. On the contrary Sun documentation consistently claims that this is for enterprise development of systems that are already complicated (and it greatly simplifies that).
Professional developers keep their toolbox full with all sorts of libraries, patterns and practices. You'll find that we choose our tools for a number of different reasons. VB.net, just one of a dozen languages for programming .Net, is the likely the choice of someone already fluent in VB. I will choose Struts for most web development because my toolset and my brain is geared up for it. Like everything else, it seems difficult only until you become more familiar. XP needs to be taken in parts. Nothing new, there is a lot of practical genius there that we have been doing for decades. It's just been codified and named. Just pick and choose the ideas that work in your environment. XP is definitely worth a look, even if you never implement the whole thing. Software development is a craft, not a specific process or procedure. No one ever said any one tool is a must for all applications. I really don't see the point of this article. Too many incorrect characterizations for my taste. Leave the editorials to those with more experience. Besides, who is hyping these things other than their creators. The authors are trying scare people away from quality options based on anecdotes of poor use. It's irresponsible.
...to look up numbers in the telephone directory, to read news, to read and send mail, to use icq, etc, etc, etc.
The uselessness of WAP is a ridiculous american myth!
A method that proposes comments that don't live in the code is broken. It requires programmers to have a second file open, and to update two things every time they make a change. A system that requires an extra annoying step for absolutely no gain is defective.
For absolutely no gain? Yes. There are better ways, such as putting any needed documentation into the source code itself. That way not only are they more accessible when reading the code but they're easier to change and harder to forget about.
Check out doxygen (at sourceforge) for a pretty cool system.
Certainly.
Go to the apple menu and choose System Preferences, then click on "Accounts". Choose your account and click Edit User.
Now you will see a dialog box with several text fields. Type random letters and numbers into the Password field, and type the same ones into the Verify field. Once you've put it in verify, you can forget what you typed. Don't bother writing it down.
Now simply click OK and reboot, and your problem will be fixed!
is that your post is +5 insightful.
Are you kidding me? Everyone laughs at ironic mods. But I mean really... the "joke" wasn't that funny to begin with.
It just makes me sad. And that your sentiment (which is not uncommon, as I share it, and I've seen such posts many a time) is deemed insightful is the icing on the cake.
Excuse me while I sob into my corn flakes.
Fuck Beta. Fuck Dice
I am actually not sure why Gentoo is so popular right now..
Portage.
I don't see any other distro out there that handles new software installs quite so well, with exception of apt. Mucking around with RPM's sucks, and I remember trying to use the updater that is shipped with Mandrake... ugh (oh, and ads. ugh).
With portage, all I need is to do an emerge XX in order to get XX. Sure, I'll wait a while for it, but it runs in the background and doesn't disturb anything. If I want to update it, I just do an emerge -u XX (or world.)
Gentoo also gets better, providing binaries in portage in addition to just the source. If there's a reason why Gentoo is popular, I'd say that it's the portage system.
You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
realy, and what e-commerce business models would u choose to use this week?
XP as current fashion? For who? Idiots?
un-normalized databases arent "bad". There is a reason why there are multiple normal forms. It's so that one can pick the normalization level most suited to one's application. Normalization is just a helpful process that usually results in the most efficient table structure, and not a mandatory rule. Sometimes, normalizing can make a design worse because of the additional work required to get hold of data from various tables when the different pieces are commonly used / retrieved together.
There is no such thing as luck. Luck is nothing but an absence of bad luck.
Whoever designed the CORBA C++ API should be shot. No one can remember the memory management rules of this mapping. They are arbitrary and non-uniform. If someone claims they understand the C++ memory management rules they are either lieing or one of the authors of the C++ mapping. CORBA's C++ API is largely responsible for CORBA's bad reputation. Many large commercial projects threw a lot of money into this CORBA sinkhole and will never return. Perhaps other CORBA language mappings are better - they'd have a really hard time being worse!
Then there's the issue of all the unimplemented CORBA specifications, but I'll save that story for another day.
The real mark of a failed technology is when people use it in a way that it was not intended. For example, many large projects simply marshal XML strings over CORBA and avoid most of CORBA's features altogether. This way they can claim to management that they are using the company prescribed technology (CORBA) while not really using it at all. You may as well use plain sockets or HTTP if you go with this approach. CORBA provides little benefit to most projects.
I've been asked that question (favorite pattern) a few times over the years in interviews. I think of a "correct" response as being the pattern(s) that you most often fall back on - for me, Factory and Proxy are two good ones. The important thing to remember about patterns always is that they are just names for things that everyone does weither they know patterns or not. And here's a clue people, if someone asks you that in a phone interview please for the love of god do not just rattle off pattern names from a book!!! We know you are doing it and put the phone on mute to make fun of you while you are desperatley paging for answers. Just answer honestly, at least we could respect that.
One thing you have to admit, it's a better question than "Where do you see yourself in five years?"
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Your whole post reads like a weak argument for the value of nuclear weapons. Sure, you might say, they can be misused, but they're important for threat deterence and defense against extra-terrestrials! More importantly, though, is the fact that there's 10000 maniacal power mongers out there who would set off a nuke at the drop of a hat.
And in software, there's 10000 shitty programmers who will misuse the tools they're given for each 1 architect who will lay out a great EJB framework for a long-duration project. And there's 10000 short term projects with changing specifications for each 1 long fixed project that would actually benefit from the upfront cost of EJBification. You do the math.
the whole fashion-comparison... geeks talking about gucci and models... that does not bode well.
but ok, i was willing to give it a try... until i found this gem:
Unless an outfit is being worn by a supermodel, it is generally the 'classic' or 'timeless' looks that fare better.
i think the authors by this statement prove convincingly that they have no clue whatsoever about fashion. or even just "clothes".
so what we have is, at best, a metaphor that really didn't work. there is no such thing as tried and proven fashion. it does not neccessarily follow that the same is true for software - rather, i would say the two are unrelated enough to start over - look for a new metaphor.
No, really, it is. Of course, it is much more to most of the tech-savvy crowds around, but to the general public, Linux is a fashion that went out of vogue around the Internet bust.
Remember all the companies going public on the sole strength of building some flavor-of-the-month distro by aggregating free stuff? Remember how ludicrous it was to see business models based on the GNU license?
Maybe Linux will become more in vogue again, but as far as the general public goes, Linux went the way of the WWF and roller skates : an off-the-wall idea that was intriguing at the time, but seems to be more hype than anything else thinking back.
This is your fashion: it is cheaper to outsource, at least in the short term. This is here to stay (is not even a fashion, it has been common sense since the early 90s). If your company makes doughnouts why should it devote resources to accounting, IT or cleaning? All this can be done by specialists in the respective fields. And if those highly skilled specialists happen to live in Gujarat and charge you substantially less for the outsourcing, you, as the person responsible for increasing shareholders value (and you own stock options) would be mad not to take the oportunity.
End of the history. In an economic system where quarterly reports are king you did not expect long term vision, or did you?
IANAL but write like a drunk one.
Where is the cave you have been living in?
Phone companies made a killing with text messaging (thanks to teenagers) while WAP has languished completely unused.
IANAL but write like a drunk one.
Then there are other stupid things. For example, the most natural way to discover a site would be to start it with wap. instead of www. For example wap.google.com. Some sites actually do this, but some actually put it under www.somewhere.com/mobile/wap or some ludicrously long URL. Try typing URLs on a phone some time and see what a pain this is!
The sad thing is when a site does bother, for example the Vodaphone Live! (O2's competitor) site, the results are quite attractive.
So the problem is not WAP per se, but the implementation. It's like the vendors have just given up even trying, perhaps hoping that micro browsers will eventually render the technology obsolete. Given the amount of crap on the internet this is extremely unlikely. More possible is a server-side assisted protocol which cleans up web content for small devices, but even that wouldn't be a perfect solution.
Like anyone is going to get a choice about this: like it or not we will be forced to contend with this is the future. The advantage is that joe sixpack might finally wake up to the fact that it shouldn't be a federal crime to buy a third party ink cartage for their printer.
Push content
I agree with you on that one. A pathetic gimmick trying to sell the internet to established content providers such as cable companys etc, The pitch was basically, hay think of channels, this is this for the internet. LAME.
As a framework it is not bad, The problem is Microsoft went mad and started selling in like it was the cure for cancer. leading to the problem that most people got confused about what it actually is.
Virtual Reality
I agree about the gloves and the goggles but like computers in general VR seems to be something that is everywhere without you realising it. IE how is a FPS like quake or doom not VR?. What about those 3d monitors that are just starting to come out? The way I see it we're still on track to see something like Snowcrash in our lifetimes.
For example, the CODASYL DBMS solutions were ideal for places where you didn't change how a database looked very often but you wanted to maximise performance and the queries were predictable. They are still a valid alternative to RDBMS systems. Often we see a step backwards when someone finds out that the RDBMS isn't fast enough and must resort to flat files and people simply aren't aware there are other alternatives.
The same for any of the things you mention (also a good reason why people should still be made aware of these things while at University). These are all techniques that sometimes are appropriate.
See my journal, I write things there
There was an article from the BBC recently: http://news.bbc.co.uk/2/hi/technology/3161108.stm
For those of you that cant be arsed to RTFA, the jist of it is basically that mobile users (in the UK at least) are downloading 3 times more webpages than last year via WAP. That is significant growth for such an unfashionable bit of software (note that WAP is the protocol mind)!
WAP is good, it was just utterly overhyped by the service providers in the hope they'd make a huge profit. Now it loks like the UK public is starting to learn that there are good aspects to WAP. Long may it continue...
Biggest Stupid Software Fashion: Protectionism.
Thinking that keeping the H1B out of market will increase jobs...
Yeah - WAP is fairly crap when you think of it as a wireless 'web'.
But, if you want to get a polyphonic ringtone or a colour picture (for starters) onto a phone, how do you do it? WAP!
Now, everyone is obsessed with ringtones and the like. To feed their obsession, they need WAP. The ringtone obsession has, funnily enough, brought WAP back from the dead.
Don't think of WAP as a wireless 'web'. Rather, take it as the major transport for getting stuff onto mobile phones. Think: Java Games etc..
Lastly, when you combine WAP with WAP Push messages, you essentially end up with something as usuable as SMS. No need to enter addresses into phones. It is literally 1 click download. No surfing etc - just retrieve the Push message. The company I work for uses this mechanism very successfully.
To say WAP is dead it calling it a little toooo early. It'll live - just hidden in the background somewhere..
my sig might not be as funny as yours, but at least it's honest!
Which is how they do it today.
If you used a VR OS to do your everyday work, then buying tickets and writing a letter with a good old fashioned screen full of windows with a keyboard & mouse would be a royal pain in the ass.
TK
i.e. british rail (or whatever they are called these days) had a wap site that told you which trains to catch to get from A to B.
After a couple of months, it started taking 20 seconds to download a few words of text, and then crashed the phone hard (so I had to remove the battery). I gave up after that.
I assume that t-mobile has a 33 Mhz 386 somewhere acting as their WAP gateway for the entire UK, and that Nokia can't program their way out of a non-buffer overflowed paper bag.
Amen brother. Mit favorites are VDM, Z, RSL and CSP. There is a reson for the popularity of UML and the reason is that it is vague og graphical. This way even a manager thinks that he is actually producing something useful.
The annoying thing was MS breaking the pattern, e.g. windows version 286, 95se etc. They released effectively windows 96, 97 and 99 but didn't call them that!
If you're interested in EJB, we did a paper a while ago about EJB. EJB 101
Personally I like the VB syntax, it works well for simple tasks. When I need something more powerfull, Managed C++ is a good alternative. C# is useless to me. But I suppose it is nice for people who are used to java. Or if you want to mess with Mono of course.
In these days of modern OO programming, variable names have ceased to be a problem.
The solution, call all your variables 'a' and rely on scope to sort everything out. If you're getting confused, you've probably designed your program wrong and need to spend more time in a dark room with a copy of Design Patterns.
The other advantage of using 'a' as your sole variable is that it speeds up programming. 'a' is *much* quicker to type than... well, almost anything.
--- My dad's political betting
It might be that some day most people will wear
virtual reality equipment in the same way that
many people wear/carry cellphones now.
Amen, great article.
* I think XML has a purpose, but I think it is also gratuitously overused for things that map poorly onto its domain. And XSLT! The *concept* of a language to transform XML is a great one! But whoever thought that the transformation language should be written in the language it transforms needs to be clubbed! What, did they really think "hey, somebody might want to *transform* our transformation language, yippee!". The horrors, my eyes bleed.
* Struts. What a huge sinking feeling. You start off thinking you are going to do it "right" this time. You go in, do everything by the book, things get more complicated and confusing, you get stuck in a quagmire, you try to back out, you napalm and carpet bomb the jungle to clear the path and after a few thousand casualties in lines of code, you redo it the way you had it before and pretend the whole thing didn't happen. The *idea* of struts is just fine. It's just that it is overburdened with gratuitously complex and confusing and unnecessary configuration, and a meta-language of taglibs, that as the author suggests, is redundant and further confusing. I shudder to think how many lines of code are behind those tags that simply have the effect of changing <% %> syntax to < >. Struts can be much more easily implemented with a simple Servlet subclass which takes two init parameters, name, and form, and another Servlet which is a simple controller. I'll get right on implementing those few hundred lines once I get out of traction.
* Patterns. How sad the authors might be that their observations of good software practice is being used by a cargo cult of bad software writers to justify bad software.
It's 10 PM. Do you know if you're un-American?
I was a SFV (read the article) for Microsoft's Digital Nervous System. Granted it's not a product/technology per se, but after reading "business @ the speed of thought", I thought Gates had hit the nail on the head.
Now that some time has passed, I realize I was hit over the head by the Microsoft marketing machine. I'm sure when 'ol Billy releases his next ghost-written book, millions will buy it. I'll just keep using Linux and coding with C thank you very much.
Ruby on Rails Screencast
The IMode phones in Japan use a stripped down version of HTML called CHTML (Compact HTML). It turns out it works better than WAP, and is much easier for developers to generate. You don't need all that "card deck" crap that's in WAP; in iMode all the basic HTML forms and other controls work just fine. And they support GIF images and JPG. WAP solved a problem that did not exist, and in practice is implemented so poorly that you have little chance of a WAP phone actually working (i.e.., max packet sizes, compression settings, are never standard enough to guarantee interop).
WAP is CRAP. HTML is quite sufficient for mobile device use. End of story.
LUNIX.
Let me count the ways...
I'm sure that these reasons don't outweigh more important ones like "the tools don't work" or "it doesn't save as much time as it should". But you should still be able to come up with them (or better ones.)
Being able to see the benefits of a position you don't agree with is one of the signs of intelligence--but you knew that, and were just being lazy in a
"You do what we tell you to do, without complaining, and without talking back, or we replace you with Indians that work for one-tenth of your salary, don't give us any trouble, and that we don't have to see at all - your smelly, unshaven, ungroomed Star Trek T-shirt look offends us. And if you bring up any crap like "extreme programming" or "refactoring" that takes up our time by making us do work that you are employed to do, then the guard can escort you out of here. Oh, by the way, that "pair programming" idea does have some points to it - from now on we're putting three persons in the cubicle space that we used to waste on one."
As was titled by that guy that bytes bats' heads off.
.
So, let me get this straight: any technology I don't use daily must be obsolete or useless?
...and I haven't really got a chance to dig into the Python programming language, so it must be useless as well. Just hype. Obviously overrated.
I don't use 3D Studio Max every day. It's obsolete!
Hey! I also don't really read Spider-Man comics on a regular basis anymore. I guess the character was just a fad.
Extreme programming is a incredibly idiotic idea, so other things - although unrelated except for the fact that I dislike them or don't understand them - must also be idiotic ideas.
christ man - how eff'ing fast do you need to get through code? it really affects your productivity if you have to look up their type?
geezus - i've used hungarian notation, and the only thing it has done for me, is to slow me down because the variable names didnt make sense in context.
even MSFT doesnt suggest using hungarian notation anymore.
i mean - whats wrong with looking at the declarations section and then popping back to the line your looking at?
... hi bingo
I'm so old, I've seen waaaayyyy too many of 'em.
Lessee, there was the "RDBMS' Would Solve Everything" fad (quick, what's a tuple? Should everything always be normalized?) Then came "OODBMS", which looked like a swing back towards heirarchical d/bs.
Then there's the Objectionably-Oriented fad. From the top, looks good...but the closer you get to the code, it gets *way* fuzzier, since code is ->procedural-. Oh, and buzzwords - can't say function, gotta say method; can't say passing parms, gotta say messaging....
I'll stick with the 30+ yr old OO operating system: *nix. Everything's a file, er, object, and you filter the output through, ahh, send a message to the other object....
mark "and experience and intelligence counts
for *way* more than knowledge of buzzwords"
What does this guy know about fashion anyway, look at his haircut: http://www.softwarereality.com/MattStephens.jsp Seriously though, this article is less about technologies becoming fashion dinosaurs as about the author's network of incompetent associates (sorry Robin) who too often use the wrong tool for the wrong damn job, which has less to do with software trends and more to do with ignorance. I've seen people in the workplace use excel as a word processor--yes, they were writing business letters in Excel. Is that because Excel was over-hyped? I don't think so. In claiming that VB.NET is no more than syntatic sugar over C# the author is merely advertising his lack of deep knowledge about either of these to technologies. Don't sell VB.NET short, I know both languages and am more productive is VB.NET for SOME types of applications (such as databases apps) but prefer C# for other types. Plus you can add the curly brackets to VB.NET, but you can't take them away from C#: Sub Main() '{ msgbox ("Hello World!") '} End Sub
...when you have coders willing to put forth the effort to make it happen.
The sexier language that will replace java will be perl6. However, it's still a long way from implemented - last time I checked, it wasn't even fully and finally specified.
However, it looks very promising in fixing some of Perl's shortcomings.
Stop the brainwash
See, this is exactly the problem with Java.
We've already had two iterations of basic collection classes, with different interfaces, and now we're going to have to move to a third. I really wish Sun would put more thought into getting things right before throwing them over the wall.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
OK, here's a simple example of CORBA being a silver bullet.
I have a Java agent which I wrote to run on a Lotus Domino server and perform some tricky data processing on some database on that server. Eventually, the server load gets too high, and I want to offload some of the processing.
I simply take my Java code, take the notes.jar CORBA stub library, put 'em on another machine, and run the exact same code. I don't need to rewrite anything, I don't even need to recompile. The code transparently connects to the server via CORBA and does exactly what it did before, only now the processing is distributed across two machines.
I've done this. It's useful. So please, don't tell me that CORBA has no purpose; not having to write a client/server implementation in Java sounds good to me.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I hear this a lot. The question is, have you actually religiously followed all the recommendations of a formal method, and evaluated the product objectively through its lifecycle with various metrics available? How do you know that external documentation is necessarily broken? How do you know that it gives "absolutely no gain"? These are assertions that have to be based in fact, and frankly, individual anecdotes tend to have too many stray factors (programmer resistance, mismanagement, etc) to be relevant.
There are better ways
You can only conclude that after you are an expert in two ways, with objective evidence to perform the comparison with. Are you just advocating the less "annoying" approach? How could I know?
I hope you understand the point. It's not that you're wrong by avoiding the annoying practice and I'm right. I'm merely warning against dismissing a method (as "pathetic", in the case of the original post) just because it's "annoying" to change your habits. The point is, maybe, just maybe, the Right Method really is annoying to follow. As an industry we've searched decades for the easy solution, and yet here we still struggle.
More precisely, good external documentation can give a much better glimpse into what the original designer had in mind. It has space to discuss abandoned alternatives (and why). It has space for diagrams and drawings (even animation!), which can frequently be far more expressive than code or code comments. Even if the document does not match the actual code 100%, it may not be without value if done right. The point is, there are news stories better covered in a TV program (visual, animated) than in a newspaper (longer, more detailed) and vice versa. Put in code comments what are best put there, and put in external documentation what are best put there. Want to convince anybody that one completely replaces the other? Objective facts, please.
I don't have to be bitten by a dog to know that it hurts. Similarly, I've never tried keeping documentation in a seperate file from the code but I know it's not an optimal solution.
Hell, it's hard enough to get people to keep comments in sync with code when it's in the same file, let alone opening another whole program and finding the appropriate area to comment. The important issue is if it's easy enough to do that it's practial, and if there's anything else that would be more helpful for the ammount of work required.
Sure, if done religiously, it may prove helpful. That's a bit of a tautology though, like saying the key to winning a fight is not getting hit. There's truth in that and it does do things like suggest judo or aikido over karate, but it's not like you can simply decide to not get hit and it won't happen. Similarly, you can't simply say "I'm going to follow this properly". People don't skip comments because they're lazy, people skip comments because there's always deadline pressure, and because they want to write the comments once when done, not at every incremental revision. It usually comes down to doing things the "right" way, as taught in comp-sci, or actually getting the project finished before bankruptcy.
Better instead to pick something that is reasonable. Especially because I've seen projects that were commented properly - new programmers could come in and use the APIs without having to ask implementation details. This was accomplished by documenting the code, not by writing design documents. It was fairly easy and because of this, never got pushed off until later. You could always take ten minutes and update the comments on a day's work, so the programmer resistance to it was very low. Being that the simple answer works, why go looking to make it more complex?
Except software development is not as simple. Do you claim to know the effectiveness of every software development proposal, without having tried it, as easily as you can tell me it hurts to get bitten?
Hell, it's hard enough to get people to keep comments in sync with code when it's in the same file
I agree. It's also terribly difficult to get people to shoot back, rather than duck behind something solid, when being shot at. Yet soldiers are trained to do this most unsensible thing.
You could always take ten minutes and update the comments on a day's work, so the programmer resistance to it was very low.
Make no mistake, I agree with this statement above. However...
Being that the simple answer works, why go looking to make it more complex?
the simple answer does not work, because poor software quality is a widespread problem. Therefore, I'm suggesting that the real solution may have to be annoying or even painful, a bit like the way a soldier has to risk his or her life to shoot back. I'm also suggesting that just because a proposal seems annoying, it doesn't mean that it's not the right thing to do.
for little 2-5 man shops, you don't really need something like struts, but when you work on a large project with dozens of people with dozens of projects, struts is a big plus. Without something struts like, it would be hard to insure consist structure and design. One of the biggest cost in IT is maintenance of software. Since I am a consultant and most of my work is about fixing existing software, having struts or the equivalent is not a fad, but practical solution. The author of the article needs to understand how to use technology first before criticizing it.
But it does work. If you pick a sensible goal and stick to it, you'll get something done. If you shoot for the moon you'll be fighting your employees every step of the way and you won't get as far as if you'd adopted a more modest system.
I've seen projects where things are reasonably documented. My current company is using doxygen for turning inline comments into a web interface describing the project. It's got a very low barrier to entry (use an extra / in comments you want to show up in the web interface) and the fact that you get results immediately means it's easier to get people to continue.
The problem with OO (as with many IT fads) isn't the idea of object orientation, it's a combination of the obsessive-compulsive use of OO and all the OO languages that so handily facillitate the production of really crappy OO code.
The best OO code I have ever seen is done in C. Not C++, but C. It's amazing the number of people who don't realize that fundamentally, C++ is just a pre-processor for a C compiler that may or may not generate decent C code for you. Fundamentally, C++ is nothing more that the liberal use of hidden function pointers in a struct, and hidden typecasting. Unlike C, the use of a simple pre-processor just means that it will be handled in a one size fits all sort of way. I will admit that operator overloading is nice though.
This is the same crowd that doesn't seem to realize that the JVM and Java need not be the same thing. The benefits could have likely been much bigger if it had been a new set of libraries and a C compiler that produced byte code. It would have been just as portable, more accessable to more coders, and less hype ridden.
The medical test is for counting how many hand-squeeze reps a patient with Lou Gehrig's disease can do before they tire out.
I don't think either application merits a "clean-room" design of an embedded system (what you would want controlling, say, a radiation therapy machine -- do you really want to trust a SUN and Solaris for something like that?).