[Lazarus] Lazarus make me create better apps

Myles Wakeham myles at techsol.org
Tue May 18 16:40:56 CEST 2010


Bee wrote:
 >What framework do you need to build web apps using pascal? Web apps is 
just
 > about read browser request and reply to it. A custom simple communication
 > class (to encapsulate the request-reply process) should be sufficient.

Maybe for a web application with a small number of pages/options, sure. 
  But not for larger scale business type web solutions.  Here's the 
problem - there is a distinct distance between doing what is 'right' 
(ie. developing in Laz/FPC for web apps) and doing what is 
'environmentally & economically compatible'.  I'm in the USA, and here 
it is about being able to offer development services competitively on 
price and time.  I've had numerous clients come to me that paid a very 
small amount of money to have some hack developer write a MS Access 
solution for their small business, and then they open a 2nd office in 
another state, or expand the number of users on the application beyond 
the limits of Access and want to have the application re-developed as a 
web application.  These are typically high data throughput business 
database applications, with 50+ major data entities, etc.

I've been struggling to find a way to compete in this market with 
development environments like FPC/Lazarus, simply because although I 
want do it in those technologies, the lack of tools, frameworks, etc. 
means that I lose out bidding for those projects against other more 
established frameworks (ie. ASP.NET developers, PHP, Ruby, etc.). 
Simple things like session management, cookies, WYSIWYG HTML 
development, etc all seems to require so much time to establish first 
before I can start to craft the application, that I'm immediately 
uncompetitive against others - particularly when the client has the 
option to offshore outsource the development against a production line 
'farm' of developers in other countries.

In order to compete in this environment, I've had to spend years 
developing my own frameworks for this, and then you get the client 
wanting to deploy the application.  We are (for the most part) a Linux 
shop here, so we can host their apps for them.  But some of the larger 
clients (ie. corporate, govt, etc.) want to use their own data centers 
for this, and therefore I have to find a way to deploy on their 
platforms.  There's clearly advantages in Laz/FPC for this part, but 
convincing the IT managers that your code is ok on their servers when 
its not written in something they commonly encounter (ie. ASP.NET, PHP, 
etc.) is an obstacle.  They are wary of CGIs because they don't 
understand what is going on there, and this is yet another obstacle to 
overcome.

We chose PHP for doing this because it allowed us the maximum deployment 
options, was compatible with inexpensive shared hosting solutions, and 
we could adapt frameworks like CodeIgnitier (www.codeigniter.com) to 
remove/reduce the amount of grind programming work required to develop 
any web solution.

It does work, and I can be somewhat competitive this way, but it still 
has its challenges:

1.	Code that we produce is 'in the open' and totally able to be copied 
and hacked by the client regardless of whether they are licensed to do 
this or not,  and

2.	Performance is really poor.  We built a small FPC native Linux 
solution for doing multi-million row set processing and found a 25x 
speed improvement with it doing its work vs. PHP native.  There is no 
doubt that FPC is a better option for the end code here.

The challenge, therefore, is finding a way to do this faster and get 
around any client objections to the deployment.  I've been following 
this thread intently because I believe there are some solutions in the 
FPC/Laz world that might just bring this closer to reality.

But being competitive is hard.  I have other developers offering coding 
work at about 50% of the price that we do the work for, and I'm a 25+ 
year experienced software engineer so you'd think that I could do the 
work in half the time of a less experienced developer.  But the problem 
is simply that using Visual Studio/ASP is a 'quick & dirty' way to get 
the job done and many of these clients, particularly small businesses, 
seem to be willing to accept that since they really have no internal 
knowledge of software development and rely on the consultants to tell 
them what is best for them.  They ultimately judge the options on price 
& time to develop.  Also in the Microsoft world, often the programming 
work is done at cost or a loss, but they make their money up on systems 
maintenance, server licensing, hardware, etc. since it requires such a 
beast to run the app on, and constant security monitoring, anti-virus, 
etc. which can be charged to the client on an ongoing basis.  I don't 
agree with this approach since I feel the client should have a single 
up-front cost for the development and possibly ongoing 
enhancement/maintenance costs to the app throughout its lifespan.  If 
they want to outsource hosting, sure - I'll charge per month for this 
like anyone else, but not at the higher level 'managed hosting' fees 
that I've seen practiced constantly in the Windows server management world.

There is a sense that web development work feels like writing mainframe 
apps in the early 1980s.  Its slower, more cumbersome and you have to 
feel like there must be a better way to do this.  The ability to craft a 
PC application quickly due to great IDEs, WYSIWYG tools, etc. has 
enabled development to be done quickly for the desktop environment.  I 
guess we're all just waiting for the day when web development can be 
done as fast.  I feel we are still a long way off, but it does mean that 
whoever can achieve this will ultimately dominate the web development 
space.  I look back to what it took to write the same application in 
1985 in, say, Turbo Pascal, vs. embracing something like Delphi/Laz/FPC 
today, and its night & day.  But despite advances in software 
engineering practices such as object oriented, design frameworks, etc. 
writing web apps today is still more like a TP app development project 
in 1985 than a Delphi desktop windows app in 2010.

I live in hope that tools will improve to get us closer and am 
monitoring this thread with great interest as I feel that the solutions 
at this level will likely come out of open source if there are enough 
devs like me out there dealing with these challenges in our 'real world'.

Myles

-- 
-----------------------------
Myles Wakeham
Director of Engineering
Tech Solutions USA, Inc.
www.techsolusa.com
Phone +1-480-451-7440





More information about the Lazarus mailing list