I know this is subjective and not really a question. I won't feel bad if it is closed, but I'm curious about this.
I was recently learning some details about a project that uses Microsoft Sharepoint as the development platform and honestly I don't know if they are doing something very wrong or the product itself is just a pain to develop against, but it was like an horror story.
The funny thing is that using Sharepoint like that is very common. I have heard about many projects that attempt to use Sharepoint as the platform for bigger applications. In most cases is a business-driven decision and not something suggested by the development team.
And don't get me wrong, I am totally aware that Sharepoint might be the best fit for many scenarios and that business needs are always higher on the priority scale than developer comfort, but that doesn't lessen the fact that some products are just so nasty that in extreme cases developers quit their jobs (or change projects) just in order to avoid them.
Which product embodies your worst developer-nightmare?
I nominate Crystal Reports. I just hate the thing.
For webdevelopers, it's certainly Internet Explorer 6. :D
Crystal Reports is the lonely king of this! Everything works fine - until one magic moment! And from then on, you have often no chance to identify the error or fix it.
Lotus Notes.
It is almost impossible to use version control in tandem with it.
And that's just first in a very long list of complaints.
The worst product to develop for is SHAREPOINT. It's hard to debug, hard to set up, hard to do everything.
It's a pain in the neck!
Frameworks which are developed from businesses as their own "inhouse framework".
They are overengineered, ugly, bloated, not maintrainable, obfuscated, against every standard, far away from good and bad.
One of the best things I've ever read came from Rod Johnson in his Book "Expert one-on-one J2EE design and development" when he said:
The first rule of developing frameworks in-house is: don 't.
Another one I just remembered is Microsoft Access.
And I'm not talking about Microsoft the-friendly-end-user-desktop-database Access, but about the Microsoft just-turned-into-enterprise-application-platform Access.
I have had a little experience with Sharepoint and, yes - it was painful.
One of the most painful experiences I had to develop on was Oracle Application Express (formerly HTML DB). It was great to develop quick, small applications on but as soon as you wanted to do anything slightly outside of the norm it was a nightmare.
It's probably better now though!
Having developed under Linux, I vote for the autotools: Automake, Autoconf... - they're as useful as painful.
ESRI ArcObjects [1] caused me years of agony - so many interfaces and C++ exceptions spewing their way out of the API.
[1] http://edndoc.esri.com/arcobjects/8.3/Truly, Ektron CMS400 [1] is easily the worst (both in terms of programmers' API and internal code) product I have ever seen.
Closely followed by RedDot [2]. What is it about content management systems?
[1] http://www.ektron.com/cms400.aspxJSF. Takes ages to get even basic things done. No documentation and nothing works right out of the box.
The string operations in the standard C library.
I nominate Oracle Apps when people have to implement it without enough knowledge about how it works. It can be a beast if not configured correctly, and it eats up space like there's no tomorrow.
SAP.
I mean most of SAP. two or three years ago one of the biggest improvement in development environment was that the editor has syntax highlighting and auto completion.
Software is typically pitched at two groups of people: either the people who will actually use it, or the corporate decision-makers. If it's pitched at the actual users, it can't be too painful and still sell well. If it's pitched at VP level and up, to people who have the power to write big checks and never will touch the software, it doesn't matter how painful it is.
This means that the worst stuff comes from corporate giants. Several Microsoft products are listed here, and Microsoft gets a lot of sales out of convincing higher-ups to buy as much Microsoft as possible. SAP and Oracle are also very good examples. Companies that don't dominate, that don't have the boardroom cred, have to generate interest in other ways, frequently by making software that appeals to the actual users. (Microsoft was in this category before MS-DOS, while I doubt SAP ever was. It shows.) IBM products used to be painful to work with, because for most of IBM's dominance computers were really expensive, and therefore bought by executives (on my first job, whether to buy another megabyte of RAM was a VP-level decision).
Sharepoint for sure. It will make you want to kill yourself twice.
I voted [1] in favor (?) of Crystal Reports. But I thought Oracle deserved to be mentioned at least once. I mean every product which name contains Oracle.
Whatever the product you very consistently get :
GETLENGTH
[2] and
GET_STORAGE_LIMIT
[3] ?Funny note : Business Objects, now owners of the infamous Crystal reports, was founded by ex Oracle employees...
[1] http://stackoverflow.com/questions/689098/whats-the-most-painful-product-to-develop-against/689118#689118Symbian OS phones - you try so hard to find documentation, and when(if?) you do, nothing actually behaves as it is documented.
Facebook - it's a moving target.
Not developing against Sharepoint but simply using it is like a nighmare. I'm not a web developer so it's very difficult for me to understand why going deeper into the document structure (or actually clicking any other link on Sharepoint) will require re-rendering of the whole page.
Using registry keys in Windows for storing the values.
Disadvantages of Registry keys:
I had a particularly bad time a few years back working on a very large BizTalk project. It does some cool stuff but the tooling is awful (and I'm aware of how much worse it used to be), and forget about testing any aspect of it in isolation - every change needs to be deployed to the server before you can see if it worked! We had everything scripted and some good automated tests but the feedback cycle was just short of an hour...
Crystal Reports... seconded...
We're having major problems with Crystal Reports. They release versions on a regular basis and seem to purposely NOT make them backward compatible!
XML Serialization can be a ball ache, especially when dealing with string arrays declared in an XML Serialization class.
You guys are all wrong.
IE6 does suck yes, but interwoven teamsite (CMS) takes the cake. let me list some horrible things about it:
Haven't seen it mentioned before: developing anything that interacts with Microsoft Exchange. Lots of great APIs to choose from, but in my (luckily very little experience) only pain was involved.
FileMaker Pro for a few reasons.
I'm wondering if you all people are still sane, no one mentioned Typo3 yet!
It's the worst.thing.I.have.ever.seen on earth. Horrible code base, cruel user interface; it's a waste of time of your precious live.
I know few people have used this, but Biz Talk is awesome one day and someone shoot me the next day.
Behind that I would say the Visual Designer (web apps) in Visual Studio. I love Visual Studio, but the dam designer can drive me crazy.....
Magento. Eshop framework comprised of 9000 files and less documentation than a wristwatch
Developing a custom IFilter for Sharepoint Search or Microsoft Search Server equals a lot of pain - almost no relevant documentation and lots of unanswered questions.
My own personal hell of late has been OSCommerce. Sure, it's a great open-source platform for what it aims to do, but actually making any serious change or even implementing a module add-on seems to be an exercise in frustration and anxiety.
For that matter, I find any framework built on PHP to be something akin to a rolled-up wad of Christmas lights. I really hate digging through countless includes in almost as many subfolders to find a constant definition. (Again, OSCommerce, I'm looking at you!)
The ArcGIS server Web ADF. It's a horrible combination of the ASP.NET Atlas update panel stuff and the callback results framework, which might not be second and third, but are both in the top ten.
For sure, Microsoft Commerce Server 2002.
Vignette Application Portal [1] in conjunction with Vignette Content Management [2] with some Vignette Dynamic Portal Module [3] on the side. If you've ever done this you deserve some kind of award.
[1] http://www.vignette.com/portal/site/us/menuitem.62215d74e262b2ba32189210180141a0/?vgnextoid=b38e75060e1eb010VgnVCM1000005610140aRCRD&vgnextchannel=9348bc7ee19d7010VgnVCM1000008110140aRCRD&vgnextfmt=default&vgnext-selected-menuitem=4b09bdd80b8ff1e8fb3d8010180141a0&gbl-vcmartguid=b38e75060e1eb010VgnVCM1000005610140aRCRDJ2ME
Write once, run anywhere. Yeah, right.
Worst handset I've developed for: Motorola T710. It had a crap screen and would fail to install JAR files, for no apparent reason, if the JAR size was a multiple of 100 bytes.
Skizz
Windows Workflow Foundation!
IIS with PHP and the only way you can access the server is WebDAV. Updating and debugging was pain...
I would definitely nominate Crystal Reports, piece of ****.
-Bryan
Websphere has to be two of the most difficult application servers to work with. Difficult to setup, difficult to deploy, difficult to work out how feature X works and difficult to code anything for. Weblogic isn't much better, JBoss either. In fact most application servers to work with.
However, I'm sure there is a method to their madness considering they make so much money out of support, purchased documentation and training courses. Way to make money - make it convoluted!
Interfacing with MYOB
CGI in C!
You can complaint as much as you want on crystal reports, sharepoint, and other products, but they all pale in comparison with it.
It was the first job after I graduated from college (I had worked before that), and it was on a time where we already had jsp, asp.net, crystal reports, sharepoint, etc. So I am not doing an unfair comparison, its a real horror story :(
I switched job after 2 months and worked on an e-commerce product sold with an administrative software on asp.net (1.0), and yes it used crystal reports.
As someone who has primarily done Unix dev I'd say Windows is the most painful product to develop against. It feels cumbersome and backwards.
I also hated developing in anything other than assembly for PIC micros because the MPLAB tool was painful way back when I was doing embedded PIC dev (XP had been around a while, but MPLAB was still a 16 bit Win 3.1 program).
I wish to disagree with those who have nominated crystal reports, including the asker. I have worked with (versions 6 - 12 ) it extensively and for many years without a hitch. I think its a great reporting tool, and provides a really easy interface to integrate into projects. Anybody else agree with me?
JSF + Richfaces, JSF is bad, but it just gets worse when you add Ajax
Informatica PowerCenter. It's meant to be the Rolls Royce of data extract tools. It's certainly that expensive but sadly runs like a single gear cast iron Penny Farthing.
I don't think anybody here would have developed for it before, but recently the Sakai [1] Framework has been my nightmare.
I consider myself lucky that this job is only temporary (scholarship), and I feel sorry for those who have to deal with Sakai for years to come.
[1] http://www.sakaiproject.org/portalMurex. I've never seen product that inconsistent.
Without a doubt, JBoss, the java application server. Trying to get it to talk to anything else is a nightmare.
IE6, iPhone
Once had to program a TINY embedded chip. Not sure whether it was the chip or our tools but that was a really really bad experience.
Can I nominate OpenCV? It's a C++ library, but it's giving me lots of headaches.
Interbase, version 6 or earlier.
This is one database that just refuses to scale. And if you try to remove old records to keep it slim, it will not re-index, ever. The only way to get it to shrink it to pump it to a backup, delete it, then recreate it using a god awlful set of metadata, then pump back from the backup. This process takes about 3 days on DB of 20 GB
Can I say legacy hardware in general?
I often find myself in a downhill fight for any type of driver support. Usually it plays out like this... "a C driver exists... but only on X architecture... its been ported to Java though... but the JRE that it was said to be ported worth is 9 years old.... etc... Ever play this game?
I'll happily nominate BREW here. Not sure how much experience people will have had to agree with me, but having done a great deal of web development in the past and having suffered through Netscape 4 and IE 4, 5, 5.5, and so forth, I can say with confidence that nothing they do comes CLOSE to the backasswordness that is the BREW platform.
I'd vote for Powerbuilder [1]. (But it could have been the project I was working on back then...)
Oh and how about Borland Starteam [2] for source control? Especially in combination with the Visual Studio integration. The pain! Does anyone actually use this?
[1] http://en.wikipedia.org/wiki/PowerBuilderI detest writing RISC assembly.
The iPhone, or rather UIKit. UIKit's APIs are really more limiting than useful, if you go a little beyond what the example code does.
It's not so much that I haven't seen worse APIs - it's that on a product this successful, you'd think you'd get a decent UI toolkit. It's the combination of hype on the one hand, and the quality of the APIs on the other that's so disappointing.
Dralasoft aka Clarify aka Verity aka LiquidBPM aka doesn't exist anymore, support guy from latest company to buy it says "What's Dralasoft?"
not worked with M$ SP or CR so don't know.
Access is a pain, so is the liferay also had fair share of problems with developing add-in for office, it is bit better with VSTO but still pain in the back side.
Visual Fox Pro
The data typing is so loose it would have to pay to get into the strip joint!
The Windows Installer -- No one, outside or inside Microsoft, uses its API or data (well, except the poor people who make wrapper tools like InstallShield, Wise, AdvancedInstaller, and VStudio Deployment). Even when using wrapper tools, it's painful to do anything outside its narrow limits. Custom Actions are a kludge and often can't be used for conditional actions because you never know when things are going to happen. Testing for conditions ("launch conditions") are extremely limited, its habit of starting up on users at the craziest times, giving them worthless guidance on what the problem is and how it is trying to solve it (usually the hapless user deleted some shortcut accidentally left "vital"), ... I could go on.
SOA Applications over Oracle SOA Suite platform
Any application with zero unit tests.
Sharepoint, Crystal Reports