[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