Software Fashion
By , and
October 5, 2003
Like any industry, the software world suffers its own fashions. We often see new technology bound onto the software stage with a great fanfare. "Everybody's talking about it! Digital Code Scrubbing is the future! All code should be scrubbed!" Then, after a year or two, the new technology quietly skulks away into the fashion graveyard, when people begin to realise that the technology just hadn't delivered on its many inflated promises (as demonstrated by Britney, our sexy young model over on the left).
At worst, the technology will die out. At best, the fab technology will find its correct niche - the niche that it should have comfortably filled in the first place.
In the "real" fashion world, bell-bottoms, miniskirts, hotpants, Farrah Fawcett hairdos, Calvin Klein pants, fatness and thinness have all come and gone as either the thing to wear, or the thing to be. We tend to look back on fashions past with either fond nostalgia or a twinge of embarrassment. In the software world, it's not that different.
A good example of an over-hyped technology dying out is WAP. The initial hype suggested to both punters and content providers that WAP would provide "the Internet on your mobile phone". The reality, of course, was like playing tennis in a broom cupboard: a rather pathetic text-only display dribbling onto drooling punters' tiny-screened phones. The truth was considerably different from the promises bubbled out by marketing hypesters and IT journalists regurtitating inflated press releases about WAP's joyous [money-making] potential.
Hype and overselling is a big contributor toward software fashion. Hype is usually at the executive level - describing technology to managers. To do this, the hype must be distilled down to its core, generic essence . . . which is:
Technology X = Money/Success/Silver Bullet
Greed is also a driver behind certain types of fashion - but in the IT world, it's surprisingly a niche player. It seemed most prominent with WAP: content providers thought they were going to make megabuckets of cash from this new age of mobile computing.
Inappropriate Use of Technology
Software fashion means "everybody's doing it!" - which in turn means "you're mad if you're not doing it too." A direct consequence (which can also recursively feed back into the hype and overselling) is the inappropriate use of a new product or technology: like using Black & Decker's amazing new UltraHammer to fit a light bulb, or like a fat girl in a crop top.
In the software world, some examples of inappropriate usage are: EJB for a small ecommerce app; extreme programming for a short-term project with stable requirements; Struts for a web project where plain old JSP + JavaBeans would do the job handsomely; taglibs where adding a new meta-language rewards the team with nothing but confusion; or Model 2, design pattern mania where someone on the team has read GOF
and hence decided to shoehorn as many design patterns as possible into their design.
Design pattern usage is often seen as an end in itself. Robin (intrepid co-author of this article) was once asked during a job interview: "What's your favourite design pattern?" What's the correct response to that? "Oh, Decorator every time! Yeah, I use it for everything!"
Web services technology also gets more than its fair share of misuse. Web services are great, if that's really what you need. The problem arises when people use web services "just because", or apply web services inappropriately, like using SOAP as an internal messaging bus.
When hype overtakes a person's ability to appraise a technology objectively, then of course it's going to start to be used for the wrong things.
 |
Micro-Horse Unleashed |
XML has suffered a similar mass misuse. As with web services, programmers use XML "just because".
For example, XML increasingly gets used as a language, via taglibs or (flinch) XSLT. XML is best at representing data in a clean and open fashion. Anything more
is stretching the point, like sticking a saddle on a pig and calling it a micro-horse. Inevitably, books then start to appear that rationalize the industry's madness, such as Micro-Horse Revealed,
Micro-Horse Developer's Guide, or Teach Your Micro-Horse to Sing in 21 Days!
Is this industry-wide insanity down to mass hypnosis? A general tendency for otherwise sane and rational people to apply some bandwagon technology to problem A simply because they heard it's good for problems A-Z (when it was only ever intended to solve problem H)?
The truth, as we shall see, is rather more uncomfortable. The madness wouldn't be possible without a special breed of person . . . the Stupid Fashion Victim.
What is a Stupid Fashion Victim?
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).
At the risk of over-simplifying, fashion is a marketed trend that is taken up. Fashion victims are those who undertake an inappropriate use of that fashion.
As we discussed earlier, greed is often an instigator of software fashion (at least, of the vendors that try to whip us all into a frenzy over their latest half-baked ideas). In other areas of IT, however, gullibility is often a much bigger contributor to software fashion than greed. The SFV is the entirely gullible person who pounces on some new technology, either because he genuinely thinks it's suitable to base his project on it, or because he thinks it'll look good on his resume.
Popularity vs. Platform Size
As you’d probably expect, fashions are most obvious in the fashion industry. But, today, the software industry is as much a fashion industry as an engineering one. Marketing budgets are huge and are often larger than the budget to develop the software in the first place. When there's not a budget (in the case of freeware) there's also "freehype".
Software fashions get their own little forums on websites such as Javalobby and TheServerSide (TSS), and often invoke religious arguments about the scope of the application of the technology.
Some fashions create lots of small victims and others a few big victims. There’s a perceived inverse relationship between quantity and size of the SFV. Generally the more people that buy into a fashion, the less of a fashion victim you feel. This is of course wrong. A "big" victim is in fact someone who has been royally taken in by the more dubious aspects of the fashion. The more ludicrous the fad, the bigger the victim.
We have all laughed at some of our parent's or children's clothes sense, believing that they just got it wrong. Of course, we also sometimes look at people from older or younger generations and think, they look great – but truth be told, we tend to laugh at their dress sense more often than not. Unless an outfit is being worn by a supermodel, it is generally the 'classic' or 'timeless' looks that fare better. If we don't all want to be SFV's then it's important to understand what is classic and what is hype.
Classic vs hype is basically the same as progress vs fashion. Technology that is useful shows it with longevity. It may start as a fashion, but has so many areas of utility that it ends up with a large profile,
as opposed to oft derided niche technology. That's why Java is still thriving 8 years later. That's why JSP is thriving and EJB limping along.
It's also why SQL/relational databases rule the roost, but object databases are still pretty unpopular.
With EJB a big issue was remoteness for the sake of it. People imagined that we lived in a Star Trek era, where location, bandwidth and speed were all unlimited.
As a result, people created systems with everything remotable, just in case, seeing that as a virtue. When it was eventually realised that this just wasn't working, the EJB spec was "fixed" with the joke that is local entity beans, which rather seems to go full circle.
So what should we look out for in IT fashion? The biggest fashion killer is the ratio of complexity to functionality, or simply Value-Add. The problem with EJB was that you had to put so much effort in to get so little out. It brought back the 'knives and daggers' that Java promised to remove. The latest EJB spec has promised to hide the complexity, but in reality it's too late; IT vendors don’t often get a second bite at the apple (Apple, ironically, being the exception).
Fashion and Zeal Inseparable? You'd Better Believe it!
Another characteristic of IT fashions is zeal. Its proponents often replace reason with faith. Fashion is a 'must have', 'of course it's better', 'everybody else is doing it' kind-of thing.
When I hear this sort of spin I instantly start digging for evidence. I want references. I want details. I want to know how easy, cheap and cost effective it is for me to do what I want. When a technology has been over-egged, a simpler, cheaper, more accessible option will come along and bite you right where you didn't want it to.
So what are the current fashions in the IT industry? We'll pick three principally because of the reasons outlined above, and give reasons for why their adopters may (or may not be...) SFV's.
Our candidates are as follows:
1. VB.Net
2. Struts
3. XP
Each of these has its place when used appropriately (yes, including XP!). However, their widespread adoption and sometimes rampant misuse mark them out as classic software fashions. Let’s look at each one in turn.
Language Candidate: VB.Net
You'd become an SFV if you chose this technology because it’s the poor relation of C#. Firstly, I'm not knocking C# and the .Net framework – whilst immature, .Net is an excellent platform. (It should be, Microsoft ripped off Java so much it's not funny. If plagiarism is the sincerest form of flattery, then Sun must be blushing).
VB.Net, however deserves a bit of a beasting. VB.Net is so different from other versions of VB that there's no migration path from the old code base. VB.Net is really just syntactic sugar on top of C#. C# offers more and better libraries.
In fact, VB.Net was referred to by many as Visual Fred, because it really has nothing to do with Visual Basic.
VB.Net programmers will inevitably either move to C#, or give up and go to work on their parent’s farm. Looking through the .NET developer magazines over the last year shows a diminishing proportion of VB based articles, and confirms my expectation that VB is just waiting for the hatchet to fall. This creates an interesting question, about how well the new VB.Net will integrate into Office.
API Candidate: Struts
The Struts framework does have its place: it definitely solves certain specific problems. In fact, we'd particularly invite Struts advocates to respond to this article by describing the benefits that they feel Struts provides over "vanilla" JSP.
However for many uses, the Struts framework is just too complex. It's just entity beans all over again. When Java was introduced we were promised no more knives and daggers. Just like EJB, Struts introduces unnecessary levels of indirection through a web of XML.
In JSP, to get a simple view or edit form up is quite easy, using Struts makes things twice the work. Simple forms are more complex and complex forms are more complex still.
Struts has leapt onto the fashion catwalk, with at least 13 books available on the subject. It's becoming increasingly noticeable that, if you're looking for a job using Java servlets or JSP, then for some reason you have to know Struts as well. Job agencies lump JSP with Struts as if they're the same. "Well, if you're going to use JSP, you'd obviously use Struts!"
Unless you have plans to do one of the things that Struts is useful for (e.g. internationalization), it's just more fiery hoops that you really can't justify jumping through.
It is likely that Struts will either be replaced with a simpler alternative (probably JSF), or backtrack down the simplification route that EJB is now treading. In particular, Struts needs to reduce its use of XML.
Methodology Candidate: Extreme programming (XP)
Extreme programming is surprisingly popular, and has shot to international stardom in just a few short years. However, in many ways it's a victim of its own success. It suffers because it has validly found weaknesses in other methodologies but zealously goes on to build itself in, on and around them.
Because programmers didn't talk to each other much, XP stipulates that they work in pairs. Because programmers didn't talk to the client much, XP stipulates they have a client embedded in the team. 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. It’s like bringing the speed limit down to 20 miles an hour below the speed limit because some people have been caught doing 20 miles an hour over the limit.
Ironically, the "proof of concept" XP project, C3, was based on a fixed-spec payroll system - hardly suitable for a development process that is designed for (and even encourages) spec changes.
Methodologies are a power driven aspect of IT, and in that game XP is a negotiating position. Our prediction (and truth be told, this is quite an easy one to make) is that over the next couple of years, the better parts of XP will be synthesized into more traditional methodologies.
Conclusion
Most new technologies have their place; their appropriate usage. Whatever the initial idea, the marketing spin tends to be that fashion X will cure disease Y (e.g. development will become faster, more scalable or more agile). However, a good idea can often be over-hyped to the extent that products get applied in all sorts of crazy, inappropriate ways. You would think that an industry like ours wouldn't be this starved of innovation that we need to hungrily devour every moderately good idea whenever one happens to wander by.
It's important to keep yourself immune from the hype that inflates software trends into fashions. To do this, you need to remain objective: to assess a product or API by its merits (and its originally intended purpose), rather than by how popular it is.
Just think twice before you jump on the fashion bandwagon. Ask yourself: is that new technology going to look like body piercing on your resume in a few years?
Talkback: Have Your Say
Post a new message
Message Index: Well Said! Dave Glasser dglasser@pobox.com
Oh, and as for XP... Dave Glasser dglasser@pobox.com
One Question Comic Book Guy
he he he Ava Gyna johnsmith@yahoo.com
Struts toolman
XP won't be migrating anywhere Paul Shirley
Rejecting WAP and XML Peter Flynn peter at silmaril dot ie
Struts Michael
Yes But... JourneyBoy jefftempe@excite.com
JSP is the biggest fashon victim of them all.. Mr Ed viiviiviivii@hotmail.com
¡SFVs _"*NOT*"_ SFV's! ?alabio NOSPAM.Walabio@MacOSX.Com
Excellent Points Process Hater
Fashions in the Linux kernel Bother Shemp nospam@sdkflsdkjfs.com
JSP is *NOT* a scripting language Bones
Struts != JSP Struts is OK
Perhaps the biggest culprit! Naoki user@javaisoverhyped.com
wtf jake
Ex-perl WAP developer in defense of Java and Struts.. Dennis
Throw 'em all together jimbolaya
Wait wait..what's wrong with XSLT? =) ... Anonymous person
Probably not the right place but... OldManT mister.turner at earthlink dot net
For successful XP example, look to Lakeview Technologies Mike hyperion@deskmedia...com
Be professional people... Professional mail@professional.com
Not all stupid fashions fade away gripe gripe@gripe.org
I disagree with your leading example Hugh Madden me@no_spam.hughmadden_please.com
"VB.Net programmers will inevitably either move to C#, or give up and go to ... Anonymous person
This is a silly article. Anonymous person wildfrontiersman@yahoo.com
Flawed!!! Ivan Cruz
JAVA use/misuse and how to escape from being an SFV CyraX cyrax -at- dev-gallery.com
If you don't like it, don't use it Anonymous person
You're so misinformed... Taiwo taiwo_a@hotmail.com
You got the symptoms right, but you missed the reason Isaac Levendel levendel@sprynet.com
In Defense of Struts Michael fupeg@mac.com
C++ Fast ? Yeah right. Count Brass noway@jose.com
Fat people are funny Bat Fastard
JSF? poweribo
C# vs VB.Net Chillers agmash29a@hotmail.com
Struts,... Akula
to the VB proponent Kevin noTOWNnowhere@theParade
So true. Wout becc0527@attglobal.net
And what about Java? Anonymous Coward
Nice atricle Gurtrude Gani Gurtrude@gani.net
Lack of education and permanence of stupidity Leandro GFC Dutra leandro@dutra.fastmail.fm
Bits Nick nick_leaton@hotmail.com
To people who think vb.net is weak version of c# Tim
mostly correct andrel
JSF simpler than Struts? Matthew Harrison harry at inpharmatica
Actually, C# is the Fashionable software. Dan Appleman
The truth about C :-) J. C . L. Deck
Just had to.... Java Developer grusbanan@nospam.hotmail.com
VB.NET vs. C#, Java, and C/C++ Peter peterNSPAMxfrost@yahoo.com
The pragmatic view. Richard
Software Fashion rich s coho@krang.f9.co.uk
The oldfashioned Student... cs info@opense.de
starting programmers Vincent nospam_to_me@hindriksen.nl
BizTalk and Sharepoint Midwest Developer
re: BizTalk and Sharepoint Matt Stephens
XP mic albertas@megalogika.lt
Beginning of the End ajs318 sfv_resp@ku.oc.xyda.roolfdnuorg
Smart people build good stuff JCart
re: XP Matt Stephens
WAP not wiped out Richard martins_online@hotmail.com
Struts vs Webwork Anders Hovmöller boxed@killingar.net
What Bullshit Chris Stiles chris@example.org
But Microsoft is Walmart, not Vogue Magazine Rex Devious RexDevious@Mac.com
re: webmacro Matt P
Oh! How I agree T.N.Subramaniam tsubramaniam@comcast.com
Good, good... vb.net - WTF? Cnat Speel Nothin
Touche Dino
C3 wasn't successful Anonymouse Anonymouse@yahoo.com
Make mine a mint-choc-chip Steve Raeburn sraeburn@apache.org
re: Make mine a mint-choc-chip Matt Stephens
classic black dress Harriett xing@ebrinc.com
It looks good on you though. R. Dangerfield consultant@bigcompany.com
XML = eXtensible Markup Language Vijay khyth@yahoo.com
yawn max hodges noway@mailme.com
Struts Mark noone@nowhere.com
Last nail in the Struts Alex alex2ow@yahoo.com
$YOUR_LANGUAGE_HERE Server Pages The Dude wtf@wtf-d00d.com
If C3's reqs were so fixed, why have a customer on site darkangel dark.angel@macrosoft.com
re; If C3's reqs were so fixed, why have a customer on site Anonymous person
oh get over it Anonymous person
Bollocks! vb.net defended Jeff jeffritchie@iprimus.com.au
Java hype and techno hype in general Luc Préfontaine lprefontaine@bellnet.ca
bashing itself is a fashion Vimal vimalkansal@yahoo.com
MS vs. Java, C# vs. VB.NET Jurgen Appelo jappelo@postkantoor.nl
Does the author has a clue about Struts? wilf
Struts for Propellerheads only?! Hell no!! wilf
You missed the biggest technology fashion Wiiliam Bates willdbates@netscape.net
humerous but not very helpful Jim nospamhere@nospam.com
Earth contacting Jim! James
Java, C# Eugene
Struts Federico Dios fdiosv@yahoo.es
How easy would it be to change my order to pistachio? Steve Raeburn sraeburn@apache.org
What a sad little article PJ
What a sad little comments PJ James S
Struts is another attempt to fix JSP tech tech@jotobjects.com
Re: Struts is another attempt to fix JSP Steve Raeburn sraeburn@apache.org
it's not so extreme Hong mindlesssoul@hotmail.com
Paradigms Daniel Andrews dja@erb.ltd.uk
wrong side of the road? Jon xx@excite.com
VB.net thegnu ndcurry@msn.com
My fad list Conway Twitty brian@asl.com
Great article! Dave Ford dford@smart-soft.com
another struts comment Jay
Where's the analysis? piglet
You were promised? Anonymous person
re: Where's the analysis? Tigger
More Struts piglet
re: More Struts Matt Stephens
More Struts piglet
Terribly misinformed article hobbit hobbit125@gmail.com
The Messages: Well Said! When I first started hearing about struts, it seemed like it might provide a good, standardized implementation of the Front Controller pattern (http://java.sun.com/blueprints/patterns/FrontController.html), so the first time I saw a struts book in a bookstore, I snatched it up. After spending several hours trying to get the first "hello struts" example working in Tomcat, dealing with hard-to-decipher stacktraces from exceptions buried in deep in Tag classes, I still couldn't see what value struts was providing to make it worth all the extra effort and complexity. I'm sure there are many who would disagree with me, but it strikes me as a solution in search of a problem -- as do JDO, EJB-QL and entity beans. (I do like stateless session beans, however.) Dave Glasser dglasser@pobox.com Pittsburgh, PA, USA Tue Oct 07 00:46:21 BST 2003
Oh, and as for XP... Don't get me started. Dave Glasser dglasser@pobox.com Pittsburgh, PA, USA Tue Oct 07 00:47:29 BST 2003
One Question Is Britney available? Sincerely, Comic Book Guy
Tue Oct 07 00:55:59 BST 2003
he he he "Struts for a web project where plain old JSP + JavaBeans would do the job handsomely"
JavaBeans!?! Ava Gyna johnsmith@yahoo.com South of the Mason Dixon, UM Tue Oct 07 01:04:18 BST 2003
Struts Struts is used to convert plain JSPs (model 1) to a model 2 (aka Model-View-Controlller) structure. This does introduce extra 'fluff' for simple applications, but the gains are to be seen in larger developments. toolman
Tue Oct 07 01:09:18 BST 2003
XP won't be migrating anywhere "the better parts of XP will be synthesized into more traditional methodologies" The whole of XP is parts stolen from other methodologies then maxxed out. Its ludicrous to suggest any can migrate back, what will happen is more people will use *any* methodology rather than the disorganised mess we're used too. XP is better than nothing and that's about all its better than. Paul Shirley England Tue Oct 07 01:10:40 BST 2003
Rejecting WAP and XML Somewhere buried in the archives of the IETF HTML WG is probably my response to the original proposals for extra tags in HTML to let it handle formatting for restricted displays. Quite apart from the fact that they were proposed by people who very obviously hadn't bothered to read up HTML before they started, the proposals were so ludicrous that some members had difficulty in believing they were serious. Fortunately my detailed reply to the proposers was sent in private mail :-) XML hasn't quite suffered the same fate, but letting it loose on programmers (who naturally thought it was a programming language) was a bad mistake. It's great that people are experimenting with it, but they need to remember that all this has been done once before (with SGML) and many of us concluded -- then and now -- that it's still an idea in advance of its time. It sounds Zen, but you really have to learn to love and care for your information before putting it into XML: if you treat your information in a cavalier manner, you might just as well stick it into Word, where it will eventually just quietly go and die in a corner by itself. Peter Flynn peter at silmaril dot ie Cork, Ireland Tue Oct 07 01:14:02 BST 2003
Struts First of, I totally agree with you on the point that technologies get horribly abused all over the place and yes, XML, EJB and Web Services are the some of the brightest examples. I would also like to comment that very often technologies abused that get the blame and suffer loss of interest (like EJB; when I mentioned it once some people looked at me like I am somewhat deficient and explained that it is responsible but for crucifixion). I do not however completely agree with you on the Struts point (it is abused, but it is still capable of much more then just internationalization). It is somewhat overcomplicated but it does get its use and it is not for internationalization only. It does allow (if you can put together a nice implementation of your system) for separation between presentation and business logic which is priceless in diverse environments where presentation layer integrators are not far from pure HTML level and that still require sophisticated business logic. Michael LA, USA Tue Oct 07 01:18:30 BST 2003
Yes But... Very well said...however this article and most others like it fall short in the same area: it is too general. Software design patterns and frameworks were designed to handle groups of problems that were similar in nature. Where most people fall victim like you said is choosing the wrong technlology or framework for the problem. Every vendor want to be the end-all solution. Microsoft is the biggest culprit, here. They own the desktop, and that is why if you are going to develop a business app for a Windows desktop, 90% of the time you will use a flavor of VB to do it, and chances are you will get it done in record time.
Java is an entirely different animal. The key here is 'Enterprise'. Their problem is how to deploy a enterprise class business app that can handle large loads, and scale if load requirements increase. Within that camp you can decide if you are going to use struts or some other framework to architecht the solution.
Finally .Net is Microsoft's retaliation to Java, and what still baffles me to this day is that they don't seem to get the fact that people choose Java because they WANT choice and performance and productivity with an emphasis on choice. Choice of vendor will allow business entities to meet their requirements based on their budget...ranging from open source (JBoss) to well-tested and relatively trusted vendors (IBM, BEA). As long as Microsoft holds on to "Microsoft Only" solutions, customers who want choice will leave them behind. But if you are a Microsoftie who doesn't care about choice, you will probably get lots of innovative tools and gee-whiz technology...who knows where it will take you. One thing here to try: find 10-50 companies who are VB-only shops and ask them what they are doing with .Net chances are that the majority are not touching it yet, or are touching it and not rolling out with it until it becomes a 'proven' platform.
Just my 2 cents. JourneyBoy jefftempe@excite.com Somewhere, USA Tue Oct 07 01:29:40 BST 2003
JSP is the biggest fashon victim of them all.. I think even JSP is an overhyped cow...
Where I work we use WebMacro with our own single servlet CRM/Database/cacheing/ backend.
We can write up WebMacro scripts that are far more capable than what JSP has to offer.
I believe that Java scripting languages are the way of the future, as, they can leverage from robust server code yet still have the flexibility of languages such as PHP or Perl.
#foreach $user in $DB.Users.fetchAll("WHERE firstname = 'dufus'") { Name: $user.surname, $user.firstname #set $user.lastAccessed = $Date.newDate() $user.update() }
Easy Peasy. Mr Ed viiviiviivii@hotmail.com Somewhere, there Tue Oct 07 01:37:45 BST 2003
¡SFVs _"*NOT*"_ SFV's! ¡SFVs _"*NOT*"_ SFV's! ?alabio NOSPAM.Walabio@MacOSX.Com Petaluma, USA Tue Oct 07 01:56:05 BST 2003
Excellent Points Hate the Pair Programming and write the tests first type of stupidity in XP, along with everybody poking all over the place with no one specializing in a specific part. Another thing that is really stupid is placing the importance on a process as opposed to teh people. When attacked, XP proponents always claim of selecting the "right" people... with the right people, you don't need XP to succeed, in the first place!!! The sad part is that the XP proponents have learned to be good marketting people that should not be programming in the first place.
VB is a joke and is a passing fad. Hopefully it will pass away and finally pave the path for real computer science again.
As for Struts, never needed another framework on top of JSP... even JSP is over work for simple tag processing on your own.
Process Hater
Tue Oct 07 02:02:33 BST 2003
Fashions in the Linux kernel I suppose that all the junk in the Linux kernel is of use to someone, but a lot of it just looks like people trying to be trendy by adding support for some gizmo or feature, or they add these obscure drivers so they can put it on their CV that they wrote a driver. If ever there was a fashion victim, the kernel is it. Bother Shemp nospam@sdkflsdkjfs.com USA Tue Oct 07 02:14:57 BST 2003
JSP is *NOT* a scripting language Generally, people who hate JSP are people who try to use it like you would use Perl or PHP. It is not intended to be a scripting language, so trying to use it as one only leads to trouble.
Plugging JSPs into an EJB backend in an enterprise framework, however, is quite nice. Bones Colorado, USA Tue Oct 07 02:25:51 BST 2003
Struts != JSP JSP is presentation with added layer of logic - much like PHP/ASP and many others. Stuts, however, is not tied to JSP. However, it just can use JSP at it's presentation layer. So when JSP goes away (or you just don't like it), then you don't have to rewite your app, just the presentation layer. So, for small apps, JSP works great (as does PHP and also ASP), but for large apps it becomes messy and there is a real need to get rid of the busness logic. Also, with larger apps, you tend to have different groups working on different layers (The HTML people and application people and possible the database people).
From the web site... "For the **View**, Struts works well with JavaServer Pages, including JSTL and JSF, as well as Velocity Templates, XSLT, and other presentation systems." (emphasis added). Struts is OK
Tue Oct 07 02:30:05 BST 2003
Perhaps the biggest culprit!
Great article, very true. But I feel you missed the biggest over hyped fad of recent years.
java = An interpreter (like perl) but with all the junk that was ever in C/C++ ported to it.
Nothing has been more overused than this.
java = perl javac = gcc ( but then you still need 'java' ) jar = tar ant = make xml config files = plain text (which you can read) class path hell = library path hell
To this day there is no java 'killer app'. And nobody has proven to me that it really is faster to develop for java than for anything else.
Naoki user@javaisoverhyped.com Tokyo, Japan Tue Oct 07 02:32:07 BST 2003
wtf hey whats wrong with sluts jake nyc Tue Oct 07 02:47:04 BST 2003
Ex-perl WAP developer in defense of Java and Struts.. It's all a matter of picking the correct tool for the Job. 2 years ago I was developing WAP applications for a large news organization based in Atlanta, GA *wink* *wink*.. I always asked myself, what's the big deal about Java, I can bang-out new code quickly, with fewer lines than Java. Keep in mind there was only 1 other developer on this project and we both used the same code conventions. After time so many hacks were added to quickly meet business demands we felt the entire code base was like a Jenga tower ready to topple over at any moment. When more peole were added to the project it was a readability issue. You know, as they say, there is more than one way to do it in Perl.
WAP had it's uses too. Yes, it was way too hyped, but I must admit it's value as a way of checking headlines when you're standing at the bus stop or playing trivia while sittin' on the can is priceless.
These days I'm back building web applications for plain 'ole desktop browsers using Java and Struts. I see the value in Java that it helps keep the foundations of your project solid while working with multiple people. XP programming for that matter is great when not taken to the absolute extreme (excuse that). Sometimes pair programming is just what's needed, but for me, not every single moment at the console. That can get irritating.
Struts works well for larger projects, but I've seen it horribly misused when people place business logic in the wrong places. Another annoyance is when people don't understand the difference between presentation logic and business logic. Dennis Atlanta, GA Tue Oct 07 03:09:48 BST 2003
Throw 'em all together I wish I were making this up, but I'm not...
The architecture for the project team I recently joined designed a project that is a buzzword paradise, and gets my vote for Struts Misuse of the Year.
Rather than solve the particular problem at hand, this architect decided we need to build a generalized "integration framework." XML is there, but this is appropriate for an integration project. But how it processes XML is truly remarkable: XML messages are posted via HTTP; nothing out of the ordinary here, where they are processed by a...Struts action! Ingenious! jimbolaya Atlanta, GA, USA Tue Oct 07 03:15:04 BST 2003
Wait wait..what's wrong with XSLT? =) Anonymous person
Tue Oct 07 03:45:00 BST 2003
Probably not the right place but... First of all -- whoa on that last buzzword paradise project. I'm gonna sit down and try to parse that post again just for the mental exercise!
But to my friend in Japan re: Java as overhyped -- an old thread in some corners of the Net, I have to agree with you. The defense that was offered in the later post fits for any object oriented architecture(class library), no? So Java gets adopted cuz C++ was still "too hard"? What about Objective C?
Okay, I said this probably wasn't the right place/time for this ole discussion.
OldManT mister.turner at earthlink dot net SF Bay Area, CA, USA Tue Oct 07 03:48:25 BST 2003
For successful XP example, look to Lakeview Technologies A good friend of mine works at Lakeview (the guys who make Mimix for those of you AS/400 inclined - oh wait it's now I-Series whatever...). A short while ago they switched the company to XP and have been EXTREMELY successful with it. In talking with my friend he constantly states how many mistakes they catch that wouldn't have been caught otherwise through pairs programming, how fast their projects are going along, and how it keeps them from wasting effort on unnecessary code. Now I'm with the authors on this one, XP should NOT be used for small, short term projects with static requirements. But as with every other IT new thingy of the day, it's going to be overused to death (yes I still can't stand object-oriented programming...its only really valid points are things that IMHO any good programmer should be doing, regardless of style). Mike hyperion@deskmedia...com Blah, US Tue Oct 07 04:19:28 BST 2003
Be professional people... The programming field is still reaching maturation. And as such people need to experiment with techniques and tools.
Struts is great at partitioning a web application, and is a framework that has been designed for developers by developers. It is straightforward to setup and supports i18n and validation to name but two additional features.
I'm not saying it is perfect and will not be superceeded but at the moment it is one of the best and easiest to use frameworks for developing medium to large web applications. Professional mail@professional.com Sydney, Australia Tue Oct 07 04:21:51 BST 2003
Not all stupid fashions fade away I think Java is one of the most ridiculous technologies this industry has ever seen. Java has never fulfilled its promises. It's not cross platform compatible, it's slow, it's bloated, it is a fundamentally flawed product. I cannot think of one situation where Java would be a rational choice of tool.
That said, Java has reached a critical mass of stupidity that it will probably be around for ever. It's like the English driving on the wrong side of the road, or Imperial measurements. They remain as a permanent legacy of the fashion of the time, even though there are better ways of doing things.
gripe gripe@gripe.org North Pole, The Moon Tue Oct 07 04:37:52 BST 2003
I disagree with your leading example Some new technologies do indeed come with a great deal of fanfare and hype. When this hype dies down however, it does not mean the technology is dead. Often it simply becomes a "granted" part of life.
Go and tell Ford or some of the OASIS members that web services are dead! (they will chuckle at your naivety).
WAP fits well and truly into the category of taken for granted. Have you purchased a phone with a camera lately? Sent or received any MMS messages?
Answer yes to both of these questions and you've been taking WAP for granted.
==
In conclusion, I only partially agree with the opinions behind this article. Quite often the "hype" results in accelerated penetration of a technology. At a certain level of market penetration, the hype is no longer necessary - it is simply a part of life. Hugh Madden me@no_spam.hughmadden_please.com sydney, Australia Tue Oct 07 04:48:17 BST 2003
"VB.Net programmers will inevitably either move to C#, or give up and go to work on their parent?s farm."
First, I do not work on my parent's farm and second, I have not switched to C#.
"Looking through the .NET developer magazines over the last year shows a diminishing proportion of VB based articles, and confirms my expectation that VB is just waiting for the hatchet to fall."
I think you're missing one key point here. With a little understanding of other languages, you can easily move examples/articles from C# or C++ to VB. This is due to the fact that all 3 languages are run on top of the CLR and thus it doesn't matter which language you choose, in the end they all function the same.
"Just think twice before you jump on the fashion bandwagon. Ask yourself: is that new technology going to look like body piercing on your resume in a few years?"
What's wrong with demonstrating your ability to adapt to new technology? Would you look down on someone who has worked with technology that isn't the norm? Working with the new technology may help the person know the right place to use it.
I think its more a fear of losing your job, and being replaced by someone who is willing to learn new things while you would rather keep things the way they are. I definately agree that specific technology is right for specific jobs. On the other hand, having people run in fear from specific technologies simply because you personally couldn't find a use for them is absurd.
Thousands of years ago we used math to count how many apples we had in a basket. Where would we be if we never tried using math for anything else? Anonymous person
Tue Oct 07 05:24:10 BST 2003
This is a silly article. 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 likely choose Struts for 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.
Anonymous person wildfrontiersman@yahoo.com
Tue Oct 07 05:45:12 BST 2003
Flawed!!! I'm sorry but I must say that:
There is not one single reference about UML in your text, so its flawed.
Sorry again. Ivan Cruz Rio de Janeiro, Brazil Tue Oct 07 05:59:18 BST 2003
JAVA use/misuse and how to escape from being an SFV JAVA is supposed to be cross platform. JAVA: slow
Anyone heard of Qt?? C++: is as fast as it gets C++: Cross platform using the libraries.
Who ever said that the JAVA programming language has few or none memory leaks is wrong. Do a profile and you can see the JVM sucking up memory. From what I know JAVA is good only because it has almost all the things in place with the language(conditions apply) specification(threads, swing, XML readers etc;) In most cases JAVA must be called an API not a language. For what I know of - XML is a lot helpful if you know when NOT TO USE IT. I believe that the first thing anyone should know of is when NOT to use a particular technology. That will solve the problems in most cases... CyraX cyrax -at- dev-gallery.com Mumbai, India Tue Oct 07 06:08:48 BST 2003
If you don't like it, don't use it Fads aside, these technologies are valid ones. I use struts daily as a well tested, simple MVC tool. A lot of the rest of it is crap, and I avoid as much of that as possible, but it's a simple way to ensure good separation of view and controller and to ensure logic stays out of your JSPs.
As for XP, the company I work for is about to ship our first product build using XP. It's 1 and a half years in development, and anyone on the team will tell you that we wouldn't be anywhere near where we are now without having switched to XP. We're not big on all of the aspects (personally I don't like pair programming) but I can see that it works for us as a team. Writing the tests first is a great design tool (with the side effect of having a working test) and concepts like "you're not going to need it" and "refactor mercilessly" are good to include in a methodology because even good developers forget them from time to time.
My point is that these things are worth trying if you have the time and patience, but they're not for everyone, and they take a decent amount of faith, because sometimes the payoff is not realized for a few months.
The backlash against a technology is as much a fad as the use of the technology itself. Anonymous person
Tue Oct 07 06:19:18 BST 2003
You're so misinformed... It is OK for the authors to state their opinions. However, when they base those opinions on ignorance, they lose credibility. Here are two erroneous statements they made:
"VB.Net is really just syntactic sugar on top of C#."
This is clearly wrong. It is more appropriate to state that "VB.Net is really just syntactic sugar on top of Microsoft Intermediate Language." By the way, so is C#!
"C# offers more and better libraries."
Another uninformed statement. C# and VB.NET certainly have some constructs that the other doesn't have but they both rely on the .NET Framework class libraries. Hence, C# can't have more or better libraries than VB.NET since they both use the same base class libraries.
The above clarifications don't mean that the authors' opinions about VB.NET are wrong but those opinions don't hold water if they depend on the above misinformed statements.
--- Taiwo Taiwo taiwo_a@hotmail.com WA, USA Tue Oct 07 06:22:40 BST 2003
You got the symptoms right, but you missed the reason All of your examples are right on. However, the reason for all of these is the "turnip effect", which you get when you put a few bright software people together and appoint one of them manager: all of them turn into turnips within a short time of each other. At the beginning, they can turn back into humans when they go home, but as their condition worsens, a few hours spent at home are no more sufficient to turn them back into humans and they become permanent turnips. The condition of turniphood is extremely contagious, even through conference calls, and a few cases have been documented of job candidates turning into turnips during short interviews. There is no cure for chronic turniphood. Even drastic job changes, like working in a hardware store, will not reverse the symptoms. The only known prevention is to run away from software before your first job opportunity. You have been forewarned.
Companies, which produce software without software engineers, are known to have avoided the turnip effect. I think that DARPA is interested in funding research about the turnip effect. Isaac Levendel levendel@sprynet.com Chicago Tue Oct 07 06:49:04 BST 2003
In Defense of Struts The authors indicate that Struts are inappropriate for all but large projects. However, I believe that the "critical mass" for a project to justify Struts is very small. Struts, particularly 1.1+, gives you so much code that you don't have to write that it doesn't take a large app to justify it. Using the DynaForms and the Validator allow a developer to only write an action class and a JSP (and two nodes of XML), plus whatever business logic they would be writing anyways. Struts also naturally layer on top of well designed, legacy Java apps. There is definitely some up-front time in setting things up, as well as a learning curve for developers, but after that development is lessened. Unlike EJB, there is little performance impact on using Struts. Michael fupeg@mac.com CA Tue Oct 07 07:04:12 BST 2003
C++ Fast ? Yeah right. "C++: is as fast as it gets"
C++ is slower than C which in turn is slower than assembler which in turn is slower than hand optimised machine code.
Try getting your facts straight.
Speed is simply not an issue these days, hardware is so much cheaper than developers. If you have to choose between speed and maintainability/lower cost of development - speed loses everytime because more hardware and moore's law will fix it much more easily than you can fix poor code, with a ton of memory leaks (C and C++). malloc() ?!? - hah this is the 21st century what the hell is anyone doing hand crafting memory management whilst writing an accountancy app ?
C/C++ have their places - ie what they were designed for in the first place: writing operating systems (although C++ is a bit too bloated to do that).
If anything, the C++ crowd are prime examples of "SFV" - the author of the article must have been thinking of C++ when he was talking about teaching the micro-horse to sing. C++ is one enormous kludge upon another kludge upon a language designed to build a portable OS. Count Brass noway@jose.com
Tue Oct 07 07:07:34 BST 2003
Fat people are funny ha ha Bat Fastard
Tue Oct 07 07:10:16 BST 2003
JSF? If im not mistaken, JSF is not even an alternative to struts but more of a complement... which means those 13 books will get more thicker :) poweribo
Tue Oct 07 07:24:03 BST 2003
C# vs VB.Net I like both VB.Net and C# - the main reason I use VB.Net is so that I don't have to populate my code with #$*$#@ semicolons...
Why won't the cult of the semicolon die out? I've been programming for years (C,C++, and C#) and that stupid convention is STILL with us.
Chillers agmash29a@hotmail.com Sydney, Australia Tue Oct 07 07:26:05 BST 2003
Struts,... Excellent article! Exactly what I was intended to write. Except about Struts... not totally agree. I use struts. And yes struts is a fashion... however the actual fashion is not struts... It is JSP... JSP transformed a compilation-less world into a compiled one. JSP application is EXTREMELY painful and expensive to develop. And I compared with other technologies (not in the fashion hype) such as velocity. In fact JSP= $ for develop + $ to deploy + $ to convert into Java + $ to compile + $ to debug.... All small $$ but get bigger as time is going... I make stats and found that the total $ where about 2 days for a 20 days project... Just 10% :-))) Just for fashion...
And yes, I am the expert... But my boss prefers to listen Fashion newspapers than his own expert. Expert is just a sell argument... saddly.
Akula Ukraina Tue Oct 07 08:01:33 BST 2003
to the VB proponent Re-write the VB compiler in VB. Can't be done. Even java's compiler is written in C++. And Sun would love to claim they were pure java. I'd love to see them re-write Solaris in java. There is a reason MS came out with C#. C# can write it's own compiler. (and this from a non-MS fan)
my first stone... awaiting the return volley from the Nerf crowd. Kevin noTOWNnowhere@theParade San Dog, USA Tue Oct 07 08:05:38 BST 2003
So true. Great article and so true... FW to: *all dev contacts* <g> Wout becc0527@attglobal.net EU, Belgium Tue Oct 07 08:45:30 BST 2003
And what about Java? I've been in numerous projects adopting Java as the ideal thing for all our stuff. Combined with other "design choices" (like using COM and a compiler that wouldn't run on Windows) made every Java project I've ever seen into a complete disaster, though the project leaders were too stupid to admit it.
Java is hyped to be a lot of things (like portable) and delivers on only one promise: It's quite easy to learn. I do not know where the author is getting his ideas, but I have only seen Java being used less and less on all sides. I wonder how long it will survive... Anonymous Coward Work, The Netherlands Tue Oct 07 09:38:26 BST 2003
Nice atricle Yes I can't help but agree. Whilst I believe there is a lot of merit in some new technologies, Several times I have fumbled around with development 'panaceas' only to find yet another set of the Emperors new clothes ! Gurtrude Gani Gurtrude@gani.net Earth Tue Oct 07 09:43:23 BST 2003
Lack of education and permanence of stupidity Dijkstra was already complaining of this 30 years ago. Codd also, and Date and other to this date (no pun intended).
This is a bug of the current, decadent culture. It is hedonistic and pragmatic with no historical perspective nor real, deep, conceptual knowledge.
Even SQL, which now represents solid tech against OODB uninformed hype and cumbersomeness, is already a decadence from solid relational concepts, and procedural programming from functional...
-- Leandro GFC Dutra leandro@dutra.fastmail.fm Lausanne, VD, Switzerland Tue Oct 07 09:58:38 BST 2003
Bits The point about .NET is that you don't have to care about the language. VB, C# it doesn;'t matter. Compare this to Java where its Java all the way, with or without its faults.
VB.NET will thrive. Its going to become the new VBA, and with it embedded in applications, it will survive.
Java will dwindle, but limp along. There is enough of a code base there, but it will go the same way as C++. Its inefficient for many applications, to develop or to run. Looking at the effort needed to roll EJBs compared to the corresponding effort in .NET, its a got a problem.
So, will firms go for a platform such as XP, and use .NET because they can develop faster? Or will they go for a slower development with Java that can run elsewhere?
I suspect it will be the former. First to market wins.
Nick Nick nick_leaton@hotmail.com CH Tue Oct 07 10:04:10 BST 2003
To people who think vb.net is weak version of c# Oh dear.
Firstly. The number of people using vb.net - v - c#. I know about 7-8 heavy vb.net users (different companies to me) and 1 guy who uses c#. Yes its not really sensible to upgrade vb6 code to vb.net, but it is syntacticaly similar enough that it is easier to move to vb.net than to c#. Its more a case of unlearning bad "old" vb habits than learning much new.
If it comes down to a vb programmer moving to one or the other, the vb.net learning curve is shorter and flatter.
Secondly. It doesnt matter. They are different entry points in to the same framework. There are syntax differences between the two - sometimes c# is better, sometimes vb.net is better (try implement an interface in a c# class and having a different class member name to the interface member name).
If you have a problem where one is better for one class than the other, write it in the language that suits it - because it doesnt matter. Heck use cobol.net, fortran.net, I dont care, and neither does the .net framework, they both get complied to the same intermediate language.
If it comes to it and you want to do somthing in VB that is easier in c#, try this little gem;
imports Microsoft.CSharp
Tim York, UK Tue Oct 07 10:06:52 BST 2003
mostly correct I won't say anything about that Microsoft stuff, I haven't used their products for a couple of years (except for gaming, which Windows is great for). Regarding fashion in general you are correct, but I disagree with some of the examples, like Java. Java did not become the big hype because the language is that good, but because the marketing was that good. There are unforgivable design flaws in the core of the language, like having arrays around when well designed collection types like vectors are there, or like not having operator overloading but reintroducing it for strings, or having non-object datatypes at all. Another point is JSPs. They are great if the only language you know and ever want to know is Java, or if somebody forces you to use EJB's from a legacy app, but they are the worst example of an html embedded language I've ever seen. Even Microsofts ASP are integrated better, let alone PHP or modern Perl based approaches like Embperl or Mason. Those are so well designed that for most cases I doubt you even need EJB or other record-to-object mapping technologies at all. Just use the data directly from your database (and don't tell me the database servers are not fast enough, they support clustering). By the way, if you need the load balancing features of your application server, look at Linux Virtual Server, clustering databases (like mysql or oracle) and distributed filesystems (like intermezzo, coda, openafs). Starting from zero it took me three days to configure a loadbalancing, PHP ready Webserver meeting all my needs. Try that with an application server you don't know.
andrel germany Tue Oct 07 10:41:49 BST 2003
JSF simpler than Struts? Not by much, if at all. It's not that it looks hard, it's just that it blows out the amount of code you have to write. Like EJBs, it creates a set of patterns screaming out for code generators. Matthew Harrison harry at inpharmatica London, UK Tue Oct 07 10:42:36 BST 2003
Actually, C# is the Fashionable software. The statement in the article that VB .NET is a poor relation to C# is wrong. The comment that C# has better libraries is wrong (The Microsoft.VisualBasic runtime, which can of course be used from C#) has many features not present in C#. In fact, both languages have strengths over the other . If you want to read an in-depth analysis, instead of just reading 2 year old quotes from people who hadn't yet seen either language, you can read my eBook "Visual Basic .NET or C#: Which to Choose" http://www.desaware.com/Ebook2L2.htm. Why is C# the fashion statement? Because some VB6 programmers choose it over VB .NET purely because C# is a "fashionable" new language - they're following the crowd with no thought as to which language suits their needs. With Microsoft finally leaking plans about the future of the two languages, two things are clear: both will continue to have strengths. Both will support the full capability of the .NET framework. Dan Appleman San Jose, CA Tue Oct 07 10:47:16 BST 2003
The truth about C :-) Thompson, Ritchie and Kernighan admit that Unix (and C) was a prank.... Check out http://www.stokely.com/lighter.side/unix.prank.html J. C . L. Deck COBOL Rules Tue Oct 07 11:16:29 BST 2003
Just had to.... > Even java's compiler is written in C++.
Uh, no it isn't. It's written in Java.
Java Developer grusbanan@nospam.hotmail.com nowhere, nowhere Tue Oct 07 11:19:29 BST 2003
VB.NET vs. C#, Java, and C/C++ Very nice article and I agree with most of it.
All that VB.NET inherited from VB6 is a verbose, bloated syntax. The high-level programming paradigm and user-friendliness of the original VB is lost. VB programmers have to learn a new programming paradigm from scratch that the learning curve is virtually the same whether they choose C# of VB.NOT. And it's very doubtful that the C# syntax would be unfamiliar to most VB programmers who have written JavaScript or dabbled in C/C++.
Porting one language to the other is ridiculously simple. It's not like you're porting a VB6 program to Java or an SML.NET to VB.NET. I code manily in C#, but I read books targeted for VB.NET with the same ease. I find it amusing that one poster complained about semicolons where you still have to write that utterly annoying underscore at the end of each line if you want to break a statement into multiple lines.
As for Java, it definitely has a role and special niche, but so far its record is riddled with failures compared to other technologies when it comes to high-volume B2B/B2C ecommerce sites or large enterprise applications that must scale to hundreds or even thousands of users. The mean reason is these kinds of applications are data-intensive and rely on relational databases. Once you start adding object tiers above the database and move the data-intensive business logic to these tiers you get stuck in problems like concurrencies and scalability. Most of the successful high-volume applications have the data-intensive business logic built in the database itself in the form of stored procedures. I've seen many so-called "enterprise" Java application grind to a halt with 30 to 40 concurrent users because of the "sophisticated" object tiers issue hundreds of SQL queries to load or generate simple forms or reports, whereas a hand-crafted stored procedure by a SQL guru can achieve the same result 2000 times faster with a thin layer of scripting code on the front end.
The other problem with Java is that it's not suitable for many projects that demand constant new features and change in functionality. To implement a project in Java right, you need to spend some good upfront time designing the right OO solution. You can't afford to screw up here; it would be fatal and too expensive to back-track. Whereas with other light-weight scripting technologies built on top of a rock-solid SQL code, you can deliver solutions in record time.
While it's true it's easier to maintain a well-designed Java application than a light-weight scripting solution, by the time it takes you to modify and refactor the Java objects, you can tear down and rebuild (rewrite) the whole damn scripting thing three times faster!
C and C++ aren't going into oblivion as some Java or .NET fans have happily predicted. They forgot that the JVM and the CLR themselves are written in C/C++, in addition to countless commercial products, from Adobe and Microsoft to Alias and Borland.
Those who think that C++ is "bloated" and "slower" than C don't really understand how C++ really works. I invite them to read "Inside the C++ Object Model" by Stanley Lippman, "Ruminations on C++" by Koenig/Moo, and "The Design and Evolution of C++" by Bjarne Stroustrup. Once they understand how C++ works from the inside, they'll realize that C would have the same bloat if it were to be as extensible and powerful as C++, with totally obfuscated source code.
Finally, the mere thought of all-time pair-programming in XP makes me shudder! I'm not sure how this despotically imposed discipline by psudo-religious fanataics can cope with our individualistc culture, where each person takes great pride in creatively crafting magic! There are many other features in XP that are too reactionary to bad habits, like minimal design and lack of documentation. XP will die out like many outragoous passing fads before. What will remain of it are very toned-down commonsense good practices that exist in software engineering methods created decades ago.
Peter peterNSPAMxfrost@yahoo.com San Jose, US Tue Oct 07 11:34:44 BST 2003
The pragmatic view. Early adopters of any new technology are naturally taking a risk, however for Software developers to remain in the market they have to adopt at some time unless the "fashion" has proved b*ll*cks.
A pragmatic view point and the ability to assess the real direction of the market is surely the key to individual success. Early adopters and Gurus will always evangelise their cause, if the fashion becomes a sensible option then they get payback if not they have to move on to the next fashion. Those who are not early adopters have to follow the correct path and this as much marketing as correct tech solution (who in their right minds would have chosen Windows as an operating system on technical superiority and usability alone) Richard London, UK Tue Oct 07 12:04:05 BST 2003
Software Fashion ....Capitalism needs to constantly revolutionise the means of production in order to maintain the rate of profit (Marx). Hence fashion in production. rich s coho@krang.f9.co.uk Nottingham, UK Tue Oct 07 12:21:37 BST 2003
The oldfashioned Student... Student: "Does anybody know how to tunnel over firewalls with JDBC?". Expert: "Use Struts and JSP on the backend, then you dont leave the firewall". Student: "But what if i need a rich GUI like Swing and theres an internal firewall?" Expert: "then use EJB and the RMI over HTTP feature." Student: "but i have only 12 tables, no administrator and my spec is JDK1.3?" Expert: "Use Soap!" Student: "Yes, but i dont need an internal messaging bus. I only would like to say in my presentation layer: MyArticle.getPrice(). I would like to have logical and easy to use separation. I dont need it remote. SQL is enough seperation" Expert: "But thats not three tier." Student: "Yes thats tree tier, but not physical." Expert (resignates): "Then write your own protocol..." Student: (thinking): "Yes i will do that, but i will make it a JDBC driver tunneling JDBC over HTTP so i dont need no longer worry about firewalls."
Thank you for your article. cs info@opense.de
Tue Oct 07 12:29:34 BST 2003
starting programmers As many of you may have heard is that a lot of starting programmers are not educated and educate themselves a language by those 24-hours-books. After reading such a book most people still first think of a building after hearing the word "struct". But what language does a newbee choose? An easy language and the same as their friends, family, collegues and neighbours! (call it fashion). So it'll be Visual Basic, VB.net, C#, Delphi or Java. Look at stories like: - http://news.com.com/2100-1007_3-1000011.html - http://advisor.com/doc/12386 (the same as above) - http://www.sdtimes.com/cols/javawatch_038.htm
Microsoft tries to get the newbees by introducing them VB.net and after they master that they can switch to C#. They don't switch to Java, because they are used to the IDE of MS visual studio. No switching to J#, because it means failing to choose between Java and C++. Vincent nospam_to_me@hindriksen.nl Netherlands Tue Oct 07 12:46:25 BST 2003
BizTalk and Sharepoint Here are two more Stupid Software Fashon products. Microsoft BizTalk and Microsoft Sharepoint. If you have ANY relation to a Microsoft Gold Partner, you will know that these two technologies must be the silver bullet to solve ALL of our clients problems.
Midwest Developer Midwest USA, USA Tue Oct 07 13:15:17 BST 2003
re: BizTalk and Sharepoint BizTalk = How to create an enterprise integration app with ZERO programming... just 10,000 mouse clicks, a hundred or so JavaScript "scriptlets" and a dozen or so pointless ASP pages to tie it all together... Genius! Matt Stephens London, UK Tue Oct 07 13:22:28 BST 2003
XP we are using XP or at least some parts of it for small projects (2-4 months) and I can say that it makes a big difference. especially pair programming - it's the best knoledge transfer tool ever. if you want to build a good tied team of software developers who know what to do and what not to do, give pair programming a try. mic albertas@megalogika.lt
Tue Oct 07 13:24:55 BST 2003
Beginning of the End "Hardware is cheaper than developers" - that seems to be the attitude these days. Rather than pay someone to write a small clean program in assembler to do one thing and one thing only, incapable by design of becoming perverted {200 bytes of assembled code aren't going to be altering files behind your back}, *they* prefer to use more generalised systems whose very sophistication makes them vulnerable, and rely on fast hardware to handle the inevitable onion-layering that results.
It's the beginning of the end for real programming, and I'm just glad I've got enough smarts that I can get out while the getting's good.
I've never got the whole object-oriented crap. When it comes to, say, Making A Cup Of Tea, I prefer to think of a kettle as a function that takes a parameter {water} and manipulates it in some way {makes it hotter}, rather than water having a temperature property that can be adjusted using a kettle method. No doubt some OO comedian is going to say, what will happen if I put petrol in my kettle function? and how _their_ temperature-adjusting method is only applicable to liquids of class non-flammable.
But that's all academic anyway. The first thing any object-oriented interpreter or compiler has to do is rewrite the program in terms of old-school functions, and chuck an exception if it spots a method being invoked on an object that does not have that method {e.g. a properly-designed cat object should not inherit a microwave method from the parent class, so an exception should be raised if someone tries to call garfield.microwave() where garfield is of type cat}. Because, like it or not, methods are just functions, however hard you try to pretend that they are something to do with what will eventually be the parameters to those functions. And if you don't design the cat class properly so as not to inherit a microwave method, you can still end up nuking the kitty anyway; so what did all that effort buy you?
The second thing an OO interpreter has to do {or the first thing a non-OO interpreter has to do} is replace whatever fancy control structures the language gives you with plain IFs and GOTOs. That's right, GOTOs. Nothing to be afraid of. I don't know of a processor architecture that doesn't implement an unconditional jump instruction. Sometimes it's just the best way. Long if statements like "if (condition) {statements} else {other statements}" are translated as "if not(condition) goto a; {statements}; goto b; a: {other statements}; b:". In fact, conditional jumps are often the _only_ decision-making instruction in the target hardware instruction set.
The point being that you could just have written the whole program with IFs, GOTOs and function calls in the first place. And in ten years' time I'll probably be living in a shack in the woods, banging out text on a mechanical typewriter whenever I'm not tending my vegetable patch. ajs318 sfv_resp@ku.oc.xyda.roolfdnuorg Derby Tue Oct 07 13:36:49 BST 2003
Smart people build good stuff Intelligent and balanced individuals can create competant solutions with any technology.Be wary of the propellar heads whose favorite word is cool!
XP seems to be whacked in that it panders to the inexperienced jr programmer crowd. A team of heavy hitting seasoned veterans has no need for such 'clown shoes' because they know when to ask for help , they know when things are going badly and they know what does and does not work!
VB.Net is ok. It is a huge leap from the previous versions of VB and will no doubt cause huge wads of crap to be written. Ding Ding, better call in the IT Plumbers! Just cause you prefix your class name with an 'I' does make it an interface. ;(
I prefer the elegance of C# and can't get over the stigma : 'Chicks Don't Dig' Vb programmers'. The universal truth is that chicks don't dig programmers period!
The major problem with .net is it's supporting infrastructure and development tools. Anyone who has seen the 'IIS Internal Server Error' knows what I am talking about.I I counted 1,000,000 files added to my computer when I installed visual studio...sheesh.
I have seen some brilliant solutions written in java that are setting performance benchmarks within the international software industry. Why?... cause smart people built it.
Complexity kills.
JCart Can Tue Oct 07 13:50:32 BST 2003
re: XP "we are using XP or at least some parts of it for small projects "
Which parts are you using? If it's mainly pair programming and TDD, then you'll definitely benefit from those.
Out of interest, why did you choose NOT to use the parts that you're not using? The Extremos are often very quick to point out that if you're not doing all of XP, then you're not actually doing XP.... Matt Stephens
Tue Oct 07 13:54:34 BST 2003
WAP not wiped out Unfortunately your example of WAP is misleading. Yes, the technology went through a slough of despond phase after the initial hype, but WAP use is now growing rapidly again throughout the more sophisticated mobile markets. The difference this time is that a: mobile phone technology has caught up in terms of ability to serve up more sophisticated WAP apps faster, and b: mobile network operators have wised up on the marketing side by NOT calling it WAP and by developing and packaging services that consumers actually want to use. In time IP phones with XML browsers will gradually replace WAP, but for now WAP has re-emerged as a necessary stepping-stone. Richard martins_online@hotmail.com Smallville, UK Tue Oct 07 14:22:48 BST 2003
Struts vs Webwork There is a system that does what Struts claim to do: Webwork (www.opensymphony.com). It's easy to use, it's flexible, it's LESS code (counted in lines of code for example), easier to maintain etc etc. Compared to what you may ask? BOTH straight jsp and Struts. One may also note how Webwork2 is on the road to Struts-hell with over-bloated XML files and a bunch of zealots with handwaving. Webwork 1.3 however is just plain nice. Anders Hovmöller boxed@killingar.net Sweden Tue Oct 07 14:32:22 BST 2003
What Bullshit So, predictably we have a bunch of messages mainly from the peanut throwing contingent. Proponents of various technologies leaping to their defence rather than addressing the specific issue raised by the article itself (which is real).
The number one factor responsible for this bullshit trend chasing mentality exhibited by the software industry is asinine idiocy of hiring policies. The fact that hiring managers seem to believe that specific technology knowledge always trumps a good grounding in general principles turns engineers into zealous evangelists for the latest hot technologies - they have to, just for their CVs.
Chris Stiles chris@example.org
Tue Oct 07 14:58:14 BST 2003
But Microsoft is Walmart, not Vogue Magazine Throughout the many years as a VB "programmer" (we *are* still required to air quote that word, right?), I've seen many points in time where VB itself looked like the wrong horse to bet on from a technical standpoint. Even the editors of the VB Programmer's Journal were saying that anyone who didn't switch from VB3 to Delphi was in denial. But I stuck with it. Why? Because I was also responsible for buying my company's computers and software, and I'd seen that Microsoft has the marketing power and skills to make their own inferior technology survive long after it should have been extinct. It wasn't until IE 4 that their web browser stopped provoking laughter, and I still have yet to meet anyone who thinks the ability to embed viruses in documents makes MS Office worth 4X the cost of it's nearest competitor. And yet, these things all continue to be "standard". Not because they're better, but because companies that switched to Delphi saw their code trashed if they install VB 3 on their machines. Companies that tried to use Word Perfect saw their documents invoke dire warnings of incompatibilty when they sent them to companies using the mandatory MS Office bundle on Dell machines. And companies which tried to use netscape saw Web pages come out all weird looking, and eventually clicked on that little blue "e" that you couldn't delete from your desktop.
Most high tech fads become high tech fades soon enough; but Microsoft fads only go away when they've got something slightly less embarrasing to offer, and not a second before. Visual Basic 6 programmers STILL have to know everything there is to know about ActiveX Documents to pass the certification, even though there's no known sightings of ActiveX Document use outside of test preparation books. And just last week, I saw a little animated paper clip ask if I was trying to write a business letter and needed some irrelevent assistance. Believe me, if Microsoft wanted it to happen, Clippy would have beaten Rubin on Star Search, and gone on to be the governor of California. Rex Devious RexDevious@Mac.com New York City, USA Tue Oct 07 14:59:44 BST 2003
re: webmacro #foreach $user in $DB.Users.fetchAll("WHERE firstname = 'dufus'") { Name: $user.surname, $user.firstname #set $user.lastAccessed = $Date.newDate() $user.update() }
Why not just use sql here -->
update user set lastaccessed = sysdate where firstname='dufus'??? Matt P Willow Grove, PA Tue Oct 07 15:21:04 BST 2003
Oh! How I agree Making so many good points. Just imagine someone jumping on the XML bandwagon and thinking it could be used as a tool for doing builds and now EVERY SFV is using Ant! Make files have such longevity. I must confess I am a SFV too. I am using Struts 1.1 all the time. Couldn't I have stuck to writing my own framework for validation, tiles, requestdispatching , commands over and over again in each new company and have to teach this over and over again.
We need a new acronym. SOM - Stupid Opinion Makers. T.N.Subramaniam tsubramaniam@comcast.com USA Tue Oct 07 16:00:40 BST 2003
Good, good... vb.net - WTF? Ok, as a C++ and VB (.NET & Classic) developer, I have to call you on the carpet about this one. Someone clearly missed the point of C# vs. VB, and the article was good and balanced until you showed your fear and spoiled it by talking smack about something you know very little about. Fear is a stinky colonic massage, my friend.
Please take some time to come back to reality, realize that C# should be called VBC--. VB borrows nothing from C# (now, if you said C++ that would be a different story). And how could it? The statement is laughable. The changes that were made to VB were changes that 'VB Classic' developers have been asking for since v4! How could these changes come from C#? The ignorance is stupefying. I digress.
Cnat Speel Nothin Florida, Macaroon Island Tue Oct 07 16:03:17 BST 2003
Touche Love the Webmacro rebuttal.
"What, SQL can do updates?"
And that's another SQL no no, overuse of cursors, pointless round trips etc.
Sometimes when your machine is dying under all those rows a bit of SQL side vectorisation can really make things zoom.
Remember SQL is more than a away of selecting data for your client or middle layer.
That's the danger of new techniques, makes us forget the old. Dino
Tue Oct 07 16:08:21 BST 2003
C3 wasn't successful It was cancelled. It was never completed. Anonymouse Anonymouse@yahoo.com
Tue Oct 07 16:53:31 BST 2003
Make mine a mint-choc-chip Well if you don't get what Struts provides over "vanilla" JSP, then you never will. Discussing what Struts provides compared to other MVC frameworks might be useful, but the "vanilla" JSP topic is surely dead and buried by now.
I guess it's a sign of success when people who obviously know nothing about Struts start taking swipes at it :-) Steve Raeburn sraeburn@apache.org
Tue Oct 07 17:29:00 BST 2003
re: Make mine a mint-choc-chip This sounds vaguely familiar. "If you don't like Struts then you obviously don't know anything about it." I received similar comments from the more fanatical elements of the pro-XP crowd.
Steve, this isn't a personal attack on you, and we're not saying Struts doesn't have advantages. Re-read the article! We're talking about Struts being misapplied "just because". The article also invites pro-Struts people ("Strutters"?) to counter this with some of Struts' actual advantages. So, over to you... Matt Stephens
Tue Oct 07 17:50:33 BST 2003
classic black dress I think I'll try sticking to principles like understanding requirements first, having a design before coding, documenting the thing... and never mind the new fashions.
Harriett xing@ebrinc.com VA, USA Tue Oct 07 18:10:53 BST 2003
It looks good on you though. "You get a framework like that when you buy a bowl of soup." R. Dangerfield consultant@bigcompany.com
Tue Oct 07 18:48:22 BST 2003
XML = eXtensible Markup Language It's funny you should mention that XML is being used as a language since that's precisely what it is. Vijay khyth@yahoo.com New York, USA Tue Oct 07 18:52:47 BST 2003
yawn this article isn't even about software trends, it's about the ignorance of the author and his circle of friends (sorry Robin) in misunderstanding technology and using the wrong tool for the wrong job, and who then claim to be victims of fashion and point the finger of blame at the sales and marketing people. haha max hodges noway@mailme.com Tokyo, Japan Tue Oct 07 19:06:34 BST 2003
Struts The main benefit of struts is not internationalization but the creation, processing and validation of html forms. Yes, simple forms are more complex than straight JSPs but more complex forms are NOT 'more complex still' - they are much easier than with JSPs/JavaBeans.
Try doing a form with a drop-down, a checkbox and some validation. Struts edges ahead of plain JSPs in this simple case, and wins comfortably in The Real World.
To take an example closer to home, the form into which I'm typing this message doesn't always escape the " character correctly. This is a common mistake which is eliminated by using struts.
Ultimately a fashion will not produce benefits and die off or be relegated after a couple of years. I first heard of struts 3 years ago and since then it has built momentum to the point of being 'industry standard' for use in java web apps.
Struts will be improved and may eventually be replaced by something better, but it is certainly not a 'Stupid Fashion Victim'.
Mark noone@nowhere.com London, UK Tue Oct 07 19:24:42 BST 2003
Last nail in the Struts I would really like Struts proponents to take the authors' challenge and explain to us what are the real benefits of this framework. I myself have a number of years under my belt of developing complex infrastructure and business frameworks, yet was never able to grasp what type of a problem that Struts is proposing to solve.
Yes, the Struts-heads incessantly trumpet how important it is to separate business logic from the presentation etc., but my question is -- why is it so important? And, if it is that important, why do we need Struts to do that? Why can't we simply organize our code in a carefull fashion, so as to avoid mixing business logic with presentation. It is perfectly possible to do that, using frameworks such as Webmacro, Velocity, etc. etc.
I am a proponent of those templating frameworks, and I also know how to emulate their functionality using plain old JSP, but I just don't understand what is it that Struts offers that cannot be done in Velocity?
To me, Struts is a propellerhead product developed by propellerheads for propellerheads. Since I'm not a propellerhead, I'm totally lost on the allure of that unnecessarily complex and horrendous product. It's like if the cars were built by car enhusiasts for car enhusiasts, it would probably take a lot of intricate ritual to even start the engine. Luckily, because today's cars are built for non-mechanically inclined general public, all it takes to start the engine is to turn the key.
But, for the die-hard hobbyists, simply turning the key to start the engine is sacrilegious, since it sucks all the fun out of owning a car.
Similar thing seems to be happening with the Struts followers -- they seem to wallow in unnecessary complexity, in maintaining those countless, pointless XML configuration files which are merrily scattered around the forest of folders with stupid names. Note to the Struts creators: how about giving us the equivalent of a turn-key approach? Have you ever stopped to think that maybe not all people take exquisite pleasure in tweaking those idiotic XML configuration files? How about giving us a unified view of all those parameters, hiding their actual location and implementation? Do we really need to know that the configuration parameters are stored as XML?
Would it be too much to ask of you to put a more humane face on your product?
Alex alex2ow@yahoo.com Northern hemisphere Tue Oct 07 19:40:53 BST 2003
$YOUR_LANGUAGE_HERE Server Pages To hell with JSP, ASP, and all that other bloated, gratuitously complicated crap. I cast my vote for Bourne Shell Server Pages [ http://www.wtf-d00d.com/shsp/ ] The Dude wtf@wtf-d00d.com -, - Tue Oct 07 21:32:11 BST 2003
If C3's reqs were so fixed, why have a customer on site You mentioned C3 requirements were fixed and known. If that were true, the onsite customer would have been a waste of time. She would have been bored doing nothing, but actually she was overworked and almost died of a work overdoze.
Probably the requirements were not so simple, not so fixed and not so known. At least they were not very well understood. If I remember correctly C3 was done in Smalltalk, one of the most productive languages. It is clear to me that C3 was really complex. Maybe a lot more complex that it should have been, most probably because Chrysler didn't have a strong leader who could hire all people on similar grounds. darkangel dark.angel@macrosoft.com Redmond, USA Tue Oct 07 22:17:58 BST 2003
re; If C3's reqs were so fixed, why have a customer on site There's the irony. C3 was intended to replace a crumbling mainframe system. The requirements obviously were well understood, because they were right there in the system they were replacing.
The requirements can't have changed much, because when C3 failed, Chrysler just kept on using the same old mainframe system.
So you're absolutely right to ask why they needed an on-site customer, and why the customer was so overloaded that she became ill. Anonymous person
Tue Oct 07 22:58:22 BST 2003
oh get over it Anyone care to summarize this all? I need some resolution here, I'm conflicted ... of course I did coldfusion programming for like 3 years so that might explain it.
*ducks*
:D Anonymous person
Tue Oct 07 23:22:35 BST 2003
Bollocks! vb.net defended Okay l've been around the block in IT terms (read 20 years coding and designing) but would like to refute your agruement re vb.net being a fashion.
I work for a VAR and have a lot of contact with people developing in various vb versions (and no we don't sell or support vb). Whilest slow on the pickup (see vb.net not being vb version 7) the language is gaining in user acceptance. From no clients a year a go using it, we now have some large downunder software houses releasing vb.net versions of there products and killing off older legacy apps written in vb5 or 6.
Whether or not you think vb.net is lame (l code in php and mvbasic so aren't making a value judgement here), the fact remains the language is taking off.
Bringing up programming journa |