Is PHP the natural upgrade path for ASP 3.0 / VB 6?

At the risk of starting a flame war, got to get this off my chest.

Joel Spolsky recently posted a his feelings on How Microsoft Lost the API War; an article that’s currently kicking up a storm all over (alot of people listen to Joel). Well worth a read whatever your stance.

Among many points he mentions how VB.NET doesn’t support VB 6 and he concludes by saying;

The new API is HTML, and the new winners in the application development marketplace will be the people who can make HTML sing.

What I wonder is how ASP 3.0 developers feel about ASP.NET? ASP.NET is software architecture ideals applied, which is great, but I wonder how ASP 3.0 developers, of the type who could care less about OOP and are more interested in completing projects on time, feel about ASP.NET?

The phrase “porting an ASP application to PHP” seems to be popping up on the radar more and more these days, PHP supporting different programming paradigms (e.g. procedural, object oriented, functional) without forcing anything on you. In some ways PHP is so similar to ASP 3.0 that there’s even a ASP 2 PHP converter which isn’t perfect but at least something to get people started, if they’re new to PHP.

What prompts this is an anonymous comment on Randy Holloways blog (who works at Microsoft), Randy himself offering a response to Joel;

This post was finally enough to convince my boss that Microsoft doesn’t care about VB6 users. No one wants to learn more VB6. VB.net is just as complicated as C#. Moving to VB.net is more expensive than just redoing our entire system in PHP/HTML.

Compare that with the docs on Migrating from PHP 4 to PHP 5;

PHP 5 and the integrated Zend Engine 2 have greatly improved PHP’s performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 4 to 5 should be very easy. Most existing PHP 4 code should be ready to run without changes…

Flame on… ;)

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Dangermouse

    This is just another ASP vs PHP no matter how you put it :p

  • http://simon.incutio.com/ Skunk

    Dangermouse: I disagree. Classic ASP is no longer being developed, with all future Microsoft web platform work centered on ASP.NET. ASP.NET is a whole new paradigm, very different from classic ASP. PHP on the other hand is very similar to classic ASP in the way it does things. Harry is suggesting that classic ASP developers may find PHP a closer fit to what they know than the more complex ASP.NET.

    Very insightful comments Harry.

  • http://www.ensight.org Jeremy W.

    Yeah. It’s just another guy saying what is essentially the same thing. This time he has more authority, but at the end of the day most of the piece is opinion. Very good, and very valid opinion, but opinion nonetheless.

    I’m not dismissing Joel at all, or dismissing the piece, but you can’t make career or business decisions based on someone’s opinion.

  • http://www.ensight.org Jeremy W.

    Simon, ASP to PHP is a natural progression. But ASP to ASP.NET is also a natural progression because, fundamentally, you can use all of the same backend and development tools to do the same job.

    The change from ASP to PHP is just as severe as from ASP to ASP.NET. The VBS to VB.NET change is mainly conceptual: objects. The ASP to PHP change is deeper than that as it’s a new language.

    I don’t know about you, but I grasp concepts much more quickly than languages.

    I’m not going to fault anyone for moving to PHP from ASP, I just don’t see a big reason to ‘choose’ in that way. I’m not even a Developer anymore (by trade), but in the last week I programmed in VBS, KiXtart, VB.NET, C#, PHP, iHTML and Java.

    The move from ASP to PHP makes sense, but the move from ASP to ASP.NET doesn’t make any less sense just because of this article ;)

  • http://www.ensight.org Jeremy W.

    Sorry for spamming your blog post Harry, but I think some of the other comments you didn’t talk about on Randy’s blog are great:

    ” First, VB.NET and VB are not the same thing. VB.NET isn’t “VB 7.0″. If you want VB, then use VB 6. Second, every language in the .NET stable is the same way: VB to VB.NET, unmanaged C++ to managed C++, J++ to J#.”

    “IMO he failed to appreciate that doing nothing was not an option for MS. MS needed to move forward and provide a development platform that could compete with Java, which was making significant inroads into the Enterpise Development space. Whether or not you agree with Joel that memory management is the key to productivity improvements in virtual machine environments there does seem to be consensus that C#/Java is more productive than C++/COM for Enterprise class applications.”

    Also, Joel seems to fundamentally believe that Windows development will die, in favour of all web-based apps, which of course is foollish. There will always be entire backends devoted to the tools we love. The frontends, though, should be completely transferrable (which was actually the whole point of .NET, to make the creation of shared classes and easy maintenance of those classes incredibly easy).

    Anyways, I’ll back off now, since I do have my own blog I could write this all in ;-)

  • http://www.delyrical.com davidjmedlock

    I agree with Jeremy’s last post. I personally love PHP, though I don’t develop in it regularly. Any new projects I do on my own are generally done in PHP. I’ve always despised ASP.Old and always will.

    The .Net concepts, though, just make since. If you’re building a milti-tiered application, .Net is very conducive to isolating tiers. You can build an entire application with no front end whatsoever and then you can build 6 different front ends all using the same base code and in very little time. Anyone who has worked for a large corporation or on Enterprise level applications understands (or should) that the web is simply not always the right solution and many times it’s an inefficient one.

    As J said, ASP to PHP makes sense because the two languages share so much common ground in application framework. For that matter, ASP to ColdFusion makes sense, too. Coders with little or no OO experience will fair best with PHP or CF. Developers who have built more than just web apps, or will have to build more than just web apps, will definitely be more interested in migrating to a solution based in .Net, or Java if they totally hate MS…

    Anyway, that’s just my $0.02 USD. Good post, Harry.

  • http://www.ajohnstone.com Andrew-J2000

    Some of the statements made above confuse me, I share Jeremy and Randy

  • Markus Wolff

    I agree that PHP makes a very good migration path from ASP/VB6 applications – especially if you consider VB6 as a language that has always been strong in the area of rapid prototyping, which is, IMHO an area in which PHP absolutely excels.

    I work at a company that develops individual software in both VB.NET and PHP. The reasons why customers choose a VB.NET application usually are because they don’t like web applications for some reason. However, in every project I have seen so far customers had to pay more, sometimes a lot more for the VB.NET application because the task would have been way easier and quicker been achieved using PHP.

    Personally, I’d always choose PHP for being more productive. Wherever I need a desktop application, I’d choose Java. In the past few months, I’ve learned to hate VB.NET :-)
    For PHP developers it makes especially sense to consider Java as their second development environment because of the upcoming marriage between PHP and Java (PHP being the reference implementation for JSR 223), which I’m definitely looking forward to :-)

  • hlellelid

    To be controversial here, I’d like to suggest that PHP5 is a natural progression to ASP.NET :)

    PHP5 offers some great OO features, but I think it will leave a lot of people hungering for “just a little more” — like namespaces, and application state. You don’t have to look too far to find C# and ASP.NET (which now runs impressively well on Mono/XSP), which provides one killer web application framework, IMHO.

    Hans

  • mikehowell

    There are different markets for both products. ASP 3.0 won’t die off soon, trust me. IIS 5.0 in Server 2000 will see to that. .Net is more suited to IIS 6.0 and Server 2k3 imo. PHP will be for BSD/LINUX/APACHE/MYSQL for Quite some time and also dominate in low cost hosting environments. VB6 is still a powerful language and there is a market base to keep.

  • josheli

    i was hired because my employer was moving from ASP to PHP. when i asked why they were moving to PHP, my boss said one word, “cost”. besides the free (as in beer) LAMP vs. microsoft angle, developer cost is the big elephant, and they can hire a “coder” like me (to do simple web pages) cheaper in PHP than a .Net “developer”.

    and even though it was an ASP-driven site, the people they have aren’t really technically capable of moving to .Net. ASP to PHP was a much shallower learning curve.

    Simon wrote: “ASP.NET is a whole new paradigm, very different from classic ASP. PHP on the other hand is very similar to classic ASP in the way it does things. Harry is suggesting that classic ASP developers may find PHP a closer fit to what they know than the more complex ASP.NET.”

    this is exactly true at my employer.

  • http://www.numbera.com/ dalangalma

    I agree – given the choice between Classic ASP and PHP I’d always choose PHP, because it’s just a better way of doing the same things Classic ASP did.

    However, my background is as an OOP programmer (C++/Java/C#) so I rarely choose Classic ASP/PHP. ASP.NET is just much closer to the type of development I do elsewhere in life.

  • http://aplosmedia.com/ Eric.Coleman

    Im a PHP developer. After learning PHP, i finished learning JAVA to a point where I could understand it and write it when I needed to

    Lately, I have been learning .NET…. there are so many things you can do with it. .NET is amazing. I was surprised, im most certinly not a Microsoft person. Yeah, almost everything you can do in .NET you can do in PHP, but .NET has things that you have to write your own code for in PHP. Both have there places, Hell, I can even work with ASP2 & 3.

    - Eric

  • http://www.ensight.org Jeremy W.

    :shudder: @ ASP2… Don’t remind me.

  • Gordon M

    Every developer has to start somewhere. I think that Microsoft have done themselves no favors by exluding IIS/PWS from their XP Home operating sytem. This will only make it more likly that beginners who want to start learning a server side language install Apache and PHP.

  • http://www.kolbsoft.com phpcoder21

    Lets not forget that PHP is generaly less expensive. Why purchase MS Windows, MS SQL Server, and the massive server horsepower required to run it all? Linux, PHP, and MySQL are all free if you know what you are doing. Personally I think Microsoft’s share of the web server market will dramatically drop in the future due to the fact that your average 12 year old kid can setup their own development environment for little to nothing. Not to mention the thousands of web based applications that have been released as Open Source.

    Then again, I am an AVID PHP evangelist!

  • SB

    PHP supports functional programming? That’s like saying Turing machines can run Haskell, if you get my drift ;)

  • http://www.phppatterns.com HarryF

    PHP supports functional programming? That’s like saying Turing machines can run Haskell, if you get my drift ;)

    Yes and no. If we’re going to talk about functional programming in Python, you could also do similar for PHP. It’s no so pretty as Python but, IMO, it can be done.

    A “sort-of” example might be;


    < ?php
    function nl2nl($func) {

    $text = $func();

    // It's not the CLI - use
    if (php_sapi_name() != 'cli' ) {

    $newFunc= create_function('','return nl2br("'.$text.'");');

    } else {

    $newFunc= create_function('','return '.$text.';');

    }

    return $newFunc;
    }

    $func = nl2nl(create_function('','return "Hello World!nnGoodbye World!";'));

    echo $func();
    ?>

    The nl2nl function accepts a function as it’s argument and returns a new one.

    May be I’ll dare with this in more depth, some other time.

  • John Lim

    And for former VB users, don’t forget that there’s an ADO equivalent for PHP, ADOdb (adodb.sourceforge.net)

  • http://mgaps.highsidecafe.com BDKR

    Just to play off the title and idea of this blog in general, it seems that the natural upgrade path for many PHP developers is Python! I don’t mean it in the same sense as the title does as I don’t see many PHP web developers moving to Zope or something, but PyGTK or WxPython is a much more powerful option than PHPGTK for developing GUI based event driven apps (threads for PHP would be HUGE!).

    Or at I think so.

    Anyway, while the idea that “The new API is HTML”, is pushing it, that’s not stopping people from moving towards it. In spite of the fact that many of us may see logical reasons to NOT move in this direction (as their were valid and logical reasons to use Beta as opposed to VHS), logic (as in the strength or capability of a technology) isn’t allways the motive force behind the decision a developer makes. While it seems ludicrous in many aspects, there are a number of things that are handled. At least you don’t have to worry about network communications! The browser has handled that.

    Besides, how much momentum, usage, and mindshare has been generated by MySQL in spite of the fact that many experienced developers and DBA’s shuddered (and flamed) at the thought of it?

    But whatever the case, I suspect Joel is onto something. Maybe not to the extent that he is speaking. Maybe so. But whatever the case, I don’t believe the decision is going to be based on some sort of logic other than the logic of ease and cost.

    ….err…., yeah….

    BDKR

  • http://www.phppatterns.com HarryF

    t seems that the natural upgrade path for many PHP developers is Python! I don’t mean it in the same sense as the title does as I don’t see many PHP web developers moving to Zope or something, but PyGTK or WxPython is a much more powerful option than PHPGTK for developing GUI based event driven apps (threads for PHP would be HUGE!).

    Much agreed. I think PHP is a better choice for web applications than Python. You see this in things like the DB API which is more general purpose than PHP’s but leads to things like “result.fetchAll()” plus no clear path for building web apps in general (mod_python? Zope? Spyce?).

    Off the web (desktop and, Perl excepted, on the command line) Python is a better choice. I believe there’s actually something like 20 Windowing libraries for Python out there, wxPython probably being the #1 with PyGTK close behind. Python has pretty much got things like threads sorted out, which gives it a real edge over stuff like PHP-GTK.

    Web apps are great for end users but when it comes to the admin side (e.g. content management), being able to build supporting desktop tools can be a big help.

  • JackM

    I am an OOP programmer (C++, Java) and i must say even with that i still prefer PHP. My current employer uses ASP classic, as he is used to it, but now having introduced him and his staff to PHP they love it all the more.

  • kashif ahmed

    can i find out that huge amount of php source code migrate into asp 3.0 or below

  • Pingback: SitePoint Blogs » Convert ASP to PHP with ASPA

  • srinfo

    hello, I recently switched over to an microsoft server at a host just to find that the ASP supported is asp 3.0, I had 1.1 and I’m in no hurry to upgrade to pay to learn something I really didn’t want to anyhowie microsoft (high language). I’ll stay with php for now.