Monday, November 24, 2008

Visual Studio's IDE made transparent

Perhaps some day, in the not to distant future, I will retire. Then I may become a CIS professor so I have an arena to preach to young programmers about the evils of Visual Studio. I will make Visual Studio a case study in how “NOT” to develop software. After all Microsoft has given us so much material to work with from system analysis, coding practices to implementation we should find a good use for Visual Studio somehow since obviously a productive development environment is NOT one of them.

One of the features of Visual Studio as told by Microsoft is the single IDE. The idea behind this is we have one interface or development environment which we can create different types of applications Mobile, Web and Windows using one of the languages Microsoft provides VB.NET, C#, C++. (As pathetic as it is, a true data centric language doesn’t exist in Visual Studio and it is only a matter of time before C++ is gone as well).

On the surface a single IDE appears to be a great idea, but like most things Microsoft does it was screwed up along the way. Since Microsoft failed in developing a solid N-TIER framework for VS most of the business layer code really can not be shared in an “elegant” fashion across these applications. Furthermore the UI layer obviously can not be shared since Microsoft created separation between their API wrappers otherwise known as the .BLOAT FRAMEWORK. For example a webform textbox control is contained in a completely different namespace from the winform textbox control, personally I would fire the mental midget that designed that pattern. It would have made sense to have a single control namespace then based on the environment branch to the appropriate subclass for the actual implementation. If Microsoft would have used that bit of logic then .NET may start to resemble a "real" framework.

So in actuality what Microsoft gave us in providing a single IDE is an over bloated IDE that hinders our productivity. More importantly this IDE is forcing all of our custom applications to be tied BY THE DEVELOPMENT TOOL to the .BLOAT framework which means they are tied to the Windows OS. My friends, that is the real purpose behind the IDE maintaining the Windows Monopoly. The IDE is providing no real development benefit only preceived benefit.

If Microsoft really thought about this, there are 2 different solutions which would have harnessed the power of a single IDE.

1) Create a “true” N-TIER framework that would have made our UI and business layers truly portable across the web, windows or mobile platform from a single set of source. Since Microsoft has never written a “true framework”, they are merely creating class wrappers over the existing OS API and are spinning this nonsense as the .NET/BLOAT framework, this will never happen.

2) Store the basic UI information from the form designer as meta data along with the UI code, business layer code etc. Then at compile time give us the option to select the type of application we want to generate. Visual studio should generate the code and compile the application. While this is not the “best” option, it would have worked better then what we currently have since we could use the same source to generate a Web, Winform or Mobile app.

The bottom line is having a single IDE and providing no benefit is a waste of time. Furthermore, for Microsoft, Soma and the boys to spend the resources to migrate the Visual Studio IDE to WPF for no apparent reason other then showcasing how much symbolic "bloat" i meant flash they can add to VS defies logic; given the amount of bugs in Visual Studio, lack of a data centric language (or any serious data access technology that works) and broken intellisense in C++.

If Soma, GU and Microsoft are incapable or too incompentent, take your pick, to implement a single IDE across platforms and languages so it is useful for developers we would be better off with a single IDE for each compiler so the IDE bloat, for a language we are not even dealing with, is not getting in our way! If you give this some thought this is exactly what we had in the 6.0 days and it worked!

I suppose in the world of Microsoft protecting their Windows Monopoly is all that matters. They rather hinder developers by destroying products and paradigms that worked instead of developing software development environments or an OS for that matter (remember Vista) that can stand on their own merit.

Until next time
Mark

Wednesday, November 12, 2008

Mark hits the Mark!

I was planning on giving you a technical rant about Visual Studio, however after an anonymouse comment left on my blog I went surfing and I found a couple of postings by respected Microsoft developers I wanted to share with you. Besides that, I thought this would be nice conclusion to my rants why Visual Studio is wrong from a business perspective.

In Markus Eggerus's blog he discusses the benefits of VS however he couldn't help but a take a well deserved gab (more like an upper cut) at Visual Studio. The following excerpt is from his blog:

".... A premium solution such as the Milos® Solution Platform will automate much of the data access for you, based on information in your data store, and will follow best practices to provide a more flexible system. Whether you choose a third party solution for the data access and business layers, or you intend to roll your own, you should plan on including these layers. The .NET environment is not nearly as flexible as VFP in many areas, and you’ll run into trouble later if you don’t include these layers. ...."

If Microsoft had nailed data access with anyone of their 5 different "failed" data access paradigms why are data technologies like Milos even being mentioned? I tell you why because data access is nothing short of an abortion in Visual Studio and Microsoft is too arrogant to admit they are completely clueless when it comes to data and blinded by their own self righteousness to implement a paradigm that actually works, Visual FoxPro. Given Microsoft owns the VFP source code their logic defies reason.

With regards to cost of ownership below is an except posted by a Visual FoxPro and Visual Studio MVP on his blog:

...Les Pinter has a nice strategy for selling VFP apps.He first shows to his audience, most likely managers and budget-responsible people, the whole myriad of classes and possibilities of VB.Net of C# or whatever they can come up with.He is driving them crazy with all the things you can do in .NET to a point where they ask him for a price to develop that must-have application XYZ.He gives them the price and the time to deploy the app and tells them there is an alternative.... and then says, "nahhh, you probably won't be interested, it will cost you only 25% of the price I just mentioned but it won't be interesting of you". Well, those budget-responsible people ARE interested then, and then he shows them his "special framework, developed in C++, AKA VFP".He drives their minds to a boiling point with another show-off from VFP and compares that with the things he just showed to his audience. And shows that it is indeed, remarkably quicker, and, what's more, cheaper!!

Yes you read it correctly as quoted by a Microsoft Professional Developer, VFP is remarkably quicker and a VFP custom solution is 75% cheaper then a Visual Studio/.BLOAT solution !

In closing here is an link to an older infomation week article ripping Vista apart. The interesting thing is Vista consumes a large portion of the .BLOAT framework. I find it ironic that Microsoft can't even make .BLOAT function as well as XP.

http://www.informationweek.com/news/windows/showArticle.jhtml?articleID=204203975

Once again I'm right on the mark as usual.

Until next time.

Mark

Saturday, November 8, 2008

Visual Studio Cheerleading Squad Exposed

Over the past couple of years I have read countless blogs written by Visual Studio cheerleaders, after awhile a pattern is established that most cheerleaders fall into:

1) The A-Team: For the most part, these people know what they are talking about from a programming standpoint. However, because they are tied financially to Microsoft by being an employee or consultant they are forced to carry the company line and spin the Visual Studio product the best they can.

2) The Hour Billers: This category of cheerleaders is made up of consultants and consulting firms that advocate Visual Studio solutions. It is not wise for them to speak negatively about the development tools they use to construct their solutions. The increased time to build a product amounts to increased revenue since they bill by the hour so they view suck factor as a positive.

3) The Rookies: Developers that have only used Visual Studio and claim what a great tool it is make up this category. Their opinion is null and void given their exposure solely to Visual Studio.

4) India's programming population: Recruited and hired mainly by Soma, Self Proclaimed American Job Exporter. I believe there is a law in India where if you are convicted of speaking negatively about Dell, Microsoft, Soma or Visual Studio your punishment is death by stoning. I further believe honor killing is legal in the defense of the above stated entities.

5) The Radicals: This is the scariest group of them all. These individuals are simply "want-a-bees" that will do or say anything in an effort to make the "A-Team". Microsoft can tell them dog shit tastes good and they will eat it, ask for seconds, lick their fingers clean, and agree it is the best tasting thing they ever ate. Their defense of Microsoft and every Microsoft product can be compared to how islamic extremists defend islam and the koran. Wonder if Bill promised the radicals 75 virgins or, in their case, Bill probably only needed to provide a free copy of Vista Ultimate for their soul. After giving this a second more thought then it deserves, isn't the reality of the situation these people are even more pathetic then that and simply cheerlead for free?

To give you a look at what is coming up on DOT BLOAT. I’m going to start ripping Visual Studio apart from a technical perspective. I will have more material to work with then Bill Gates has dollars.

Have a great weekend
Mark

Thursday, November 6, 2008

Visual Disaster

The decision to make the investment to switch development platforms, historically, occurred based on technological advancements that solved “real” (and not some perceived future) needs of our customers. Since the customer benefits exceeded transition cost, companies and developers decided willingly to change platforms.

Over the past 30 years I went from assembler programming on PDP-11 to C, ADA, COBOL, C++, Revelation, Progress, FoxPro, Visual FoxPro, Visual Basic, SQL Server and Visual Studio Version 6.0. Each transition pales in comparison to short lived excitement of Visual Studio 2003 which has rapidly declined to pure and justifible hatred for Visual Studio 2008. I'm convinced this is the only development suite I use that gets worse instead of better with each release.

With Visual Studio the justification for transitioning to the new BLOATED world of .NET simply is not there for the majority of customers, despite Microsoft’s spin and marketing campaign code named smoke and mirrors. This fact is evidenced by the seer volumes of names on the failed VB and VFP petitions drives. It became apparent, that both the Visual Basic and FoxPro communities were not going to embrace BLOATWARE willingly like Microsoft has hoped. In a self-serving arrogant revenue driven fashion, Microsoft issued an end of life for the Visual Basic and Visual FoxPro product lines in order to get out from beneath the royalty free distribution model of VB/VFP, gain acceptance of Visual Studio and couple new custom applications to the Windows operating systems via dot BLOAT. (See prior weblog entry on this fact)

When developers didn’t get on the Visual Studio bandwagon, Microsoft started releasing updated technologies, namely Office, SQL Server 2008 and to a lesser extent Vista (does anyone actually use Vista?) that aren’t 100% backward compatible with Visual Basic and Visual FoxPro thereby further forcing the transition to occur.

Left with no other viable Microsoft alternatives developers are forced into implementing this BLOATED monstrosity called Visual Studio for small and medium size business applications where it does not fit and only as a last resort. The true niche for Visual Studio is large scale enterprise based applications, not the VB/VFP void Microsoft created ! I'm so right on this point as usual, Soma recently blogged about Microsoft giving away Visual Studio to small businesses. Not surprising Soma's spin is, Microsoft Monopoly INC. helping the "little guy" when the reality is no one in this niche is buying VS therefore let's give it away since we can't sell it and maybe someone just might use it.

The bottom line is honest developers want the right solution for our customers. Visual FoxPro and Visual Basic with some ASP filled this small and medium size business niche nicely. Visual Studio for the foreseeable future definitely is not the right development tool for this market, it is no where close to having the RAD capabilities, ease of use and the low cost of ownership of Visual Basic and Visual FoxPro.

Mark

Monday, November 3, 2008

WTF Moment: Cloud Computing

Has anyone heard of Microsoft's cloud computing initiative? And if so did it set off the same alarms that occurs when a 747 Air Jordian Jet Liner accidently flies into the White House Air Space? If it didn't let me break down for you what is happening here.

Microsoft first killed off Visual Basic which opened the door for them to kill off Visual FoxPro. This was not done because these were bad products (actually both are far better then Visual Studio/.BLOAT) nor because the communities were dying. This was totally a self serving Microsoft base decision .After completing this objective, Microsoft introduces cloud computing which basically means the great folks in Seattle want to house YOUR data for you on their servers.

Now you might be saying, Mark what is so bad about this. Well first off I predict the cost of SQL Server is going to SKY Rocket over the next 5 years to a point it will no longer be economically feasible for you to own the SQL Server software licenses and we will be forced into the cloud programming paradigm. If that does not work, Microsoft will simply stop offering SQL Server licenses exactly like they did with VB and VFP as that precedent has been set. Thereby Microsoft can implement it's subscription based pricing model to access "YOUR" data.

Then Microsoft is going to develop an airtight EULA for CLOUD SQL Server which basically will permit Microsoft to own YOUR data. The power this will give Microsoft is enormous and Microsoft will then have the leverage it needs to compete against Google. For example Microsoft will be able to access this data for targeted browser search engine advertising or mandate this data can only be accessed by Microsoft based browsers.

Microsoft did not become a Monopoly due to their innovation, their development group of programmers are not that good just look at VISTA not even Microsoft's marketing team could save that software disaster. Microsoft does excel however in business as that is what got them to where there are at today and don't be fooled this is strictly a business decision not a programming one.

Unless developer's completely rebuke this idea, which given the level of the cheerleading that is currently occurring, I doubt that will happen. The "CLOUD" that is coming is Microsoft's perfect storm which will unleash yet another Microsoft attempt at a monopoly and raise share holders divdiends in the process.

Till Next Time

.Mark

By The Way... A developer named Mr. Robert Wray has taken the time to post a blog entry about my blog. Which is kind of cool unforunately he took what I had to say out of context and obviously moderating comments. Therefore just to set the record straight below is my comment to Mr. Wray.

Hey Robert,

One question for you have you ever used Visual Basic or Visual FoxPro? My thought is you haven't otherwise you would have been aware VB and ASP can consume VFP middle tier DDL files therefore providing a far more robust N-TIER implementation with complete seperation between the UI, Middle Tier Code and either SQL Server or FoxPro Database files. We can also go the other way create a reusable activex control in VB and consume it in the VFP UI layer.

Something else really cool that VFP has and VS doesn't is a true data centric language with native data access which means it is doesn't suck at building middle tier components that follows N-TEIR standards which not even linq can do right. The only disadvantage is DLL hell syndrome which is more an operating system issue addressed completely with installshield.

The current production release of VS is nowhere near able to pull N-TIER off as cleanly as the above stated implementation maybe when/if MVC is ever released that might be close have to wait and see as currently MVC is in a state of disarray.

Moveover if my assumption is correct how do you know VS is better then VB or VFP? Curious if you read about it on GU'S blog and just following blind faith ?

With all due respect, I alway mention VB with VFP together when talking N-TIER design patterns. The rest of your post about my older is blog is equally inaccurate and probably will make little sense unless you thoroughly understand the C++ or VFP inheritance models therefore you were reduced to grasping at toolbox icons as being my issues therefore missing my entire point. Perhaps in the future do your research before flaming other developers and get your facts straight.

Best Regards,
Mark Gordon

Sunday, November 2, 2008

Septic Tank Trucks VS The Benz

I wonder don't most people buy cars that are the most reliable, get the best gas milage and have the most features they need for their dollar if so why doesn't that thought pattern carry over into the development tool arena? To drive the point home: Microsoft gives the development community a septic tank truck (visual studio) full of shit (.net) that stinks, to drive from point a to point b and people are happy they are not walking, having never driven a Benz (vb or vfp). Then ironically these septic tank people (also known as Visual Studio cheerleaders) try to convince their neighbors (people like me that owns a benz), that a benz is really a bad idea and I need to drive a septic tank truck! After all a septic tank truck forces you to manually shift gears, trades in the bose stereo for a shit hauler tank on the back, gets rid of the unneeded leather interior for a vinyl bench seat while slows you down in getting from point a to point b since the shit hauler doesn't have the performance of the Benz. To top it all off, the shit hauler costs more then the Benz to buy and operate. The shit haulers rationalize this decision in some cases by stating: by driving a shit hauler truck we can truely enjoy each mile we spend in the shit hauler since it doesn't go as fast as the Benz (for those of you a bit slow this translates to enjoy every extra line of code we have to write in Visual Studio that we didn't have to write in VB and VFP). Don't they get it the shit hauler only works in the septic tank industry not for driving to chuch with the family on Sunday! Simply because the septic tank truck can get you to church Microsoft says drive it and the cheerleading staff agrees with them of course. That is exactly what is occuring in the VS community and the direction Microsoft is taking with VS and DOT BLOAT.

Visual Studio is not the - end all be all - that the cheerleading squad would like for us to believe. Granted VS is sorta new (better said, Microsoft finally has a release with enough work arounds in place to make it sorta stable enough to use) and excitement exists surrounding the product. However if you look at this from a customer and development standpoint WHO CARES if it is new or not! The important question is where is the benefit in all the shit and is the the right tool for the job.

What my clients want, is to use software to get their work done in the least intrusive manner, most of them are clueless what technology is behind the UI. If you are writing a straight forward desktop application with CRUD operations and reporting why would Visual Studio be the right choice over Visual Basic or Visual FoxPro? My friends Visual Studio isn't the right choice, ANYONE who tells you different is bullshitting you. This notion that visual studio is better for small and medium size businesses, in most cases, amount to nothing more then marketing smoke and mirrors!

Here are the basic facts:

1) Cost Of Ownership: Visual Basic and Visual FoxPro both could be distributed royality free and the hardware necessary to run these applications is less then a Visual Studio/SQL Server solution so a lower cost of ownership exists with a VB/VFP based solution.

2) Data Access: Visual FoxPro can access data natively and was a great choice for developing middle tier components. Because of VFP's robust data centric language, it blows away any Microsoft data access technology out there including LINQ. Visual Studio provide zero benefit and 100% overhead in this category. There is not a single VS developer that can produce a middle tier component in fewer lines of code then you could with VFP. If you think can post the code so I can mock it and prove you wrong.

3) N-TIER Support: Visual Basic and Visual FoxPro when used in conjuction with each other had complete seperation between tiers for maximum code reuse. This is something that Visual Studio still can not do well. Even native VFP could pull this trick off. Webforms with code behind definately is not N-TIER. Linq should be an embarassment to Microsoft in that the data context violates N-TIER standards and a helper object is needed to work around linq's short comings in the middle tier. More over Linq to SQL from a purist standpoint is not N-TIER, basically linq code may reside in a middle tier however Linq is actually generating SQL scripts similar to stored procedures that is being excuted on the SQL Server machine. A puriest would consider Linq to SQL a hybrid-3 tier solution at best with most heavy lifting occuring on the SQL box not the middle N-tier. In VFP the middle tier components, when written correctly, could truely process on middle tier hardware and scaled better then VS/Linq.

4) The Exorcist Factor: In Visual Studio, Microsoft decided to take data and "posses" it, by infecting data with this this notion it can be treated like an object. The outcome looks very similar to Linda Blair in the exorcist after being possessed. The overhead related to the dataset object is enormous and almost laughable when you open a dataset in the object browser and the sql code linq generates is ridiculous. It is no wonder why numerous people and MVPS are reporting LINQ is not consistently returning correct results sets, I personally have not seen this occur. In general Microsoft's data access patterns are flawed and the sooner Microsoft realizes it the better. Microsoft has 6 or so data access technologies and each one contains varying degrees of suck!

As a sidebar: Microsoft here is a secret, VFP treated data like it should be treated as data and something amazing occured that idea worked well. The VFP community didn't need 6 different failed data access paradigms! I will let you in on something else, Microsoft you own the FoxPro source code just duplicate it in VS, that paradigm works well (much of the internals of sql server indexing is based on foxpro's rushmore technology) . You guys, in general, excel at stealing other people ideas, windows is a perfect example then with Vista you went off on your own and got in some trouble. Look you only SUCK at inventing new ideas therefore quit trying to reinvent the wheel when it comes to data and harness your strengths. Afterall that is the same direction you are taking with MVC isn't it? You waited until ruby refined MVC and you are duplicating the concept so I'm lost why are you not following the same paradigm with FoxPro and data access?

5) Learning Curve: Why do people insist on having to learn 70k classes and multiple frameworks when tools like VB and VFP accomplished the same task with 200 or 300 commands and functions. This logic defies reason.

Look, I'll give you the inside scoop, the well known cheerleaders are PAID to hype Visual Studio and/or work for Microsoft, that is their JOB, they are septic tank truck salesman! Their opinions are jaded at best, they are not looking out for your best interest and care even less about your customers. Their only concern is not to bite the hand that feeds them. Their goal is to create an artificial need then lead you to believe Visual Studio fills this need. I'm not knocking GU and the rest of the cheerleading squad for that either, we all need to make a living.

I do have a serious problem with the developers who do not work for or get paid by microsoft and still hype this nonsense. Do these people really enjoy tools that cause you more work and force you to use half implemented unstable frameworks every 6 months to keep up with the learning curve? The question I have is what the hell is wrong with you? Don't you get it, this paradigm is costing you MONEY!

As soon as more developers wake up, quit sucking up to Microsoft, stop listening to these paid spokespeople and get out of the septic tank trucks the better off all developers will be. When is enough going to be enough. Don't we deserve solutions that actually fit our needs instead of following paradigms geared towards shareholder revenues.

Wake up all, stand united with me, park your shit haulers and tell Microsoft we want to drive in a Benz again!

Thats all for now!

.Mark