Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I used to work on a really small outsourcing company (4 programmers and the boss), then when the stress and the frequent long shifts made the situation unbearable I made the switch to a better paid job with a more relaxed schedule that allows me some more free time.

The problem, however, is that for the most part, everything is coded in Classic ASP that interfaces with a custom made C++ queueing system that stores everything in AS400 systems. My boss used to be one of the developers that made the initial efforts towards this, and naturally won't ever approve a switch to another languages / technologies despite the increasing difficulty that represents developing today business needs with yesterday tools.

I'm pretty much stuck coding with Classic ASP in the foreseeable future, and I'm struggling to find ways to make it at least interesting, as I used to work with .NET and Java previously, and I feel like I'm going backwards... Any advice?

share|improve this question
9  
...turn it into a drinking game? It works for many bad movies and TV shows... –  FrustratedWithFormsDesigner Jun 30 '11 at 18:47
4  
I think he would be dead from alcohol poisoning in short order... –  Wayne M Jun 30 '11 at 18:52
    
@Wayne M: If he "codes" fast enough, he should pass out before he's able to do serious damage. –  FrustratedWithFormsDesigner Jun 30 '11 at 18:54
4  
Another idea: share your findings on TheDailWTF.com so others can offer their sympathies. –  FrustratedWithFormsDesigner Jun 30 '11 at 18:55
1  
I question the premise... very few people who think they are "stuck for the foreseeable future" really are. Unless this is a prison job, there is a way out if you put the effort into finding it. If you still think you're "stuck", picture this... the company goes out of business tomorrow. Would you still be "stuck"? If not, then why are you "stuck" now? –  JoelFan Mar 27 '12 at 15:23
show 1 more comment

10 Answers

up vote 21 down vote accepted

As others have pointed out, you should probably either try to change your boss' mind or find employment where you don't have to put up with such a backwards mentality.

However, in the mean time, you could make your job a bit more interesting by trying to move whatever functionality you can client side and use async calls to trigger stuff to happen on the server. Think of this as an HTML/JavaScript front end with Webservices (implemented in classic ASP) on the back end. Developing a RESTful API could be an interesting challenge, there are some tools like JSON parsers for Classic ASP to move data back and forth in a more standard manner and client side templating would let you format data you get from your web services for nicer presentation. LinkedIn did something similar to unify different back-end technologies.

Once you have a RESTful API, you could try to write some managed web services to emulate functionality of existing Classic ASP stuff.

share|improve this answer
2  
+1 Great answer! Make Classic ASP more modern! You may end up doing something VERY unique and clever and you will learn a lot. I find I am never bored when I am learning. –  maple_shaft Jun 30 '11 at 19:36
    
@maple_shaft: Trick is getting away from learning long enough to get something useful done =). –  R0MANARMY Jun 30 '11 at 19:47
    
Yes, that is exactly the kind of answer that I was looking for. Something to do in the meantime. Also, to the other guys suggesting looking for another job, I know that eventually I'll find another job that suits my interests, and it won't be a tough choice when it comes knocking on my door. –  reno812 Jun 30 '11 at 20:42
add comment

You feel like you're going backwards because you are. There is no advice other than to find a company that isn't stuck in the dark ages. There is absolutely zero reason to stick with Classic ASP in this day and age; in fact I'll outright say that choosing to stick with Classic ASP is going to hurt you in the future as A) Your .NET and Java skills will atrophy and B) To a prospective future employer you are working on Classic ASP, a technology that has been obsolete for over 10 years and even then was like pulling teeth; in other words you do not have any relevant experience. You chose poorly, it seems.

You can only do so much with Classic ASP, and it's all very painful.

share|improve this answer
4  
The OP indicates that this is what he is stuck doing for at least the foreseeable future so suggesting he leave is not helpful. Pointing out all the ways you feel that his situation is awful is even less helpful. 10 years ago would be 2001 about a year before .Net framework 1.0 was released so classic asp was hardly obsolete. –  Gratzy Jun 30 '11 at 19:04
2  
@Gratzky no, but it was a horrible technology even then. Far inferior to the two main alternatives: PHP and JSP –  Sean Patrick Floyd Jul 1 '11 at 9:14
add comment

Why would you ever be stuck with an old technology? Companies migrate technologies all the time. The trick is to put a list of reasons why a switch to a newer technology is beneficial to the company - both from technical as well as business standpoints. More times than not, the up front cost of migrating tech stacks far outweigh future development costs.

Even if, for some obscure reason, it was found to not be viable to switch tech stacks, you can always use current tools and technologies to make your life using the old technologies more bearable.

If your boss is one of the initial developers of the project and refuses to change techs solely based on the fact that he's your boss and knows better than you, then I'd most likely look for a new job - you don't want to be stuck in an environment where your leadership is short-sighted. I'm not saying that convincing him/her will be easy as I'm sure that they have years of work invested in their baby and admitting change is required is a huge blow to the 'ole ego.. You need to make sure that you have clear, concise and measurable reasons as to why a migration is required, where it would pretty much put your boss in a situation where not migrating would clearly be a bad decision.

Good luck.

share|improve this answer
    
I know, there is no reason to stuck with old technology, even the custom made framework we use here is a pain to use, and offers not even the half of benefits of any commercial programming framework. I remember listening somewhere around here that the fact that it was made in-house adds an obscurity layer that can be seen as a security measure, but to be honest, I'm not buying that. –  reno812 Jun 30 '11 at 19:01
1  
@reno812, Security through obscurity is NOT security at all. Its like if the backdoor of your house is hanging wide open and saying your home is secure because that door isn't facing the street. –  maple_shaft Jun 30 '11 at 19:23
    
I know it isn't, just to give you and idea of the mentality around here. –  reno812 Jun 30 '11 at 20:42
add comment

You could create your own classes and streamline as many processes as possible. Here's a site with a few examples: http://www.u229.no/stuff/

You could even market your classes to others who still use classic ASP. Like Demian said, there are plenty of companies with older technologies... not everyone jumps into the new stuff.

share|improve this answer
    
The last time I had to work on classic asp, which was quite a while ago, one of the nice surprises was that VBScript had started supporting classes. –  Gratzy Jun 30 '11 at 19:07
add comment

Learn a modern language of your choice, and use it to create a tool that generates your ASP pages and classes for you, for example by reverse engineering from a target database. That will surely make it interesting.

share|improve this answer
    
T4 comes to mind, but I guess any templating engine would do. –  R0MANARMY Jun 30 '11 at 19:50
1  
I've done something like this. I used Ruby to generate stored procedures and data access classes based on database table definitions. –  Larry Coleman Jun 30 '11 at 20:41
    
@Larry Coleman: You mean something along the lines of Migrations –  R0MANARMY Jun 30 '11 at 21:04
    
@R0MANARMY: Yes, but Rails wasn't around back then. –  Larry Coleman Jun 30 '11 at 23:12
add comment

First and foremost, if it's not he cost of updating your technology but the fact that the CEO is so short sited that he refuses to upgrade Tech based on the idea he's knows best, and likes classic asp, I would have some real serous doubts about the long tern health of the company and with the skill rot of doing classic asp the longer you wait the harder it will be to get another job.

Having said that, start migrating everything to use "option strict" this could make maintaining your code base less painful

share|improve this answer
add comment

Before I start, I won't address the issue of whether or not your boss is right to insist on classic ASP. You haven't given us enough information. If you have a very large body of existing code in Classic ASP that is 95% good enough, and you are doing small maintenance tasks, then it's probably a good idea just to stick with Classic ASP... the cost of porting everything to a new language might be too high. However if your boss is launching new projects in Classic ASP, well, there's no excuse for that. And there's a whole range in the middle. So I don't have enough information to weigh in on that, and won't bother.

But I do want to address your precise question... how to make coding Interesting.

Is interesting a good thing in coding? Remember the Chinese curse, "May you live in interesting times?" Well, it's probably not Chinese... but the thing is, I question whether all forms of programming should be interesting. Sometimes you just want it to be easy and straightforward. The biggest code messes I've ever had to clean up have been caused by developers who are tired of the simple straightforward way of doing something and need to find a clever language feature that nobody has ever heard, just to keep their own mind stimulated. I remember finding 20 lines of C++ code whose purpose I just could not decipher. It turns out to have been some kind of subtle trick by a developer to insure that certain variables were initialized to 1 if you forgot to initialize them. It was ridiculous, and boy was it interesting. But it wasted everyone's time--his included.

There is a lot of virtue to writing most of your daily code in a "boring" language. It means that you can use your brain to think about the application domain instead of trying to work out why the latest language feature you just came up with isn't working the way you expected it to. You can usually work a lot faster if you understand your language and its libraries completely. And that means you can use your brain cycles for something like thinking about making your application more interesting, more useful, more profitable, or more usable.

To keep your mind sharp, use your spare time to learn interesting new languages. Work on open source projects or work on your own projects.

Remember, I am not defending the use of Classic ASP, and I'm not saying it's a good idea to use it because it's "boring." If you think it's a virtue to use an "interesting" development environment, more power to you... but you're focusing on the wrong thing. A good sculptor doesn't want an interesting chisel... that would get in the way of making nice statues. A good painter isn't looking for "interesting" paintbrushes. They might fool around with interesting tools, but they're going to do their best work with the most boring tools possible--the tools that are so boring they disappear and let the artist work on the art.

share|improve this answer
1  
I believe the question wasn't directed specifically at interesting features of a given language, but more along the lines of What can I do in order to look forward to coming to work every day? In that context your point on taking a step back from coding and asking How can I make this application more interesting, more useful, more profitable, or more usable? is spot on. It's not so much an artist using an interesting brush to paint but rather finding interesting subjects to paint. –  R0MANARMY Jul 1 '11 at 13:05
    
You said "more interesting, more useful, more profitable, or more usable". I wonder how many people employed as programmers get to work on those aspects of software? I would think that only if you owned all or part of the project, or you worked at a start up you might touch on those. My experience has been most environments those decisions are left to others, mainly management, or PMs. –  aceinthehole Jul 12 '11 at 20:35
add comment

All of the answers here are really very good. I just wanted to suggest another alternative.

Start moving infrastructure concerns (database, file system, COM code, etc.) into separate files. For example, you could have a procedure that returns a recordset as an array (I did this 8 years ago but no code sample - sorry).

Try to erradicate "code" appearing in your HTML by moving it to the top of the page or even in a common/utility class. It is even possible to have the header/nav/footer functions in a single asp page with content pages that have relatively little code in them (with a handful of references to variables and such).

With your content, presentation/formatting, business logic, and infrastructure concerns all separated out you are now in a position to switch to ASP.NET MVC once you overcome the learning curve with that technology. It's not going to be as easy as flipping a switch, but it will feel very similar to anyone who has been working with your modularized Classic ASP solution (meaning your boss might actually like it).

share|improve this answer
add comment

Since the data is on AS400/IBMi already, you know you can run Java, PHP, MySQL interfaces and other things on that OS? My guess is he's a 400 guy, not an ASP guy. Try embracing this, I'd love to have an opportunity to grow a 400 ecosystem like that.

share|improve this answer
add comment

I work with Classic ASP at work too, and I've managed (to some extent) to make it interesting. Here are the steps:

  • Classic ASP can be coded either in VBScript or JScript (Javascript), without any modifications to the architecture. Switch to Javascript.
  • Gain access to various libraries: json2.js, underscore, mustache... You can look at Node.JS libraries or client-side libraries, with various amount of modifications.
  • Build a MVC framework or download one. You can manage templating and views by loading a file from the server and read its content, and use one of the numerous JS templating libraries out there. For the controller, you can use variables in the query to redirect requests the way you would use the URL usually (less clean but it works).
  • You can also build a (simplified) REST API!
  • Create an ORM (if you have access to the database), or download one. You can even make some LINQ-to-SQL based on underscore.
  • Work on your views. Use advanced JS libraries like Angular or Backbone. Swtich from CSS to LESS, Stylus or SASS.
  • Make proxy-to-ugly-code classes. Those are classes made for the sole purpose of interfacing with the old ugly code so you don't have to touch it.
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.