[Prev][Next][Index][Thread]
Re: Any applications coded in Dylan?
-
To: info-dylan@ai.mit.edu
-
Subject: Re: Any applications coded in Dylan?
-
From: kachinadtm@my-deja.com
-
Date: Sun, 7 Jan 2001 00:15:02 -0500 (EST)
-
Organization: Deja.com
-
References: <200101061914.OAA06857@life.ai.mit.edu>
-
Xref: traf.lcs.mit.edu comp.lang.dylan:12959
> Zeno <zenem@nospam.earthlink.net> writes:
>
> This is not a troll. Dylan looks very interesting and useful, and I
> wonder if I should look into it as a system in which I can code
> commercial applications. Can anyone confirm or allay my fears?
>
All right, Here is my testimony of my commercial use of Dylan.
Sorry I didn't step forward earlier, but I do all my posting through
DejaNews to avoid spamming, and somehow I missed the original post
as it doesn't appear in DejaNews.
Sorry if its a bit long, but I think it is an interesting story. I
recommend that anyone thinking about using Dylan should find my account
'enlightening'.
This was a complex and rather big project. I found out that the
company had tried to get this project working for 3 years prior to me.
They actually had a (small) team of engineers working on it before me.
Their solution was the same old dull vb forms approach, with page after
page of forms to fill out.
I've snipped an earlier post I made to this newsgroup, while I was
developing it. At the end I'll tell you how it worked out.
----- snip snip -----
I'm using Dylan to develop a commercial application. This app is a
cross between a CAD system and a compiler, which will
be used for embedded systems. These embedded systems are a series
of networked panels, each panel is typically a custom.
You click and drag a panel to the size you want it, and drop in the
switches, displays and so forth to populate the panel. You
can right click on a feature to edit its properties, and simulate the
panel's operation as well as the whole systems to verify
your design. The result is a binary which is
downloaded into each panel to make it run.
I'm using HD Pro on Win98 with 256M RAM on a pentiumIII
450MHz. I'm also on the 2.0 beta program. Its a big project
which benefits from Dylan's fast development cycle, fast runtime speed
(for a real time design rule checker, and
simulator), first-class objects, and from Dylan's language integrity.
The path which with I came to use it, in the 'real world', was:
-or-
"How Dylan Saved My Job... My Company".
First: At my previous job, a friend who was C++ 'guru' type (who used
to work at Metrowerks) raved about it . It sounded
like Metrowerks caught some the the original Dylan developers when
Apple dropped it. The Word thus spread to my friend
and then to me.
Second: I had to compete against a vb (v*sual b*sic) contractor to get
the above described project. The contractor had the
upper hand as he was someone's brother-in-law and had much more
experience with this company than I, who just started a
few months prior. One thing about vb is that you can always get a
demo that looks 'real', up fast. Our management behaves
like water... they always rush down the first viable opening. So I had
to beat the vb guy out before he finished his vb quickie
(which ended up being a sad 'fill out the forms' type
application).
Third: In a effort to overcome all these odds, I grabbed
the *free* eval. HD copy, (I didn't think I would have had a chance
using VC++). In the few weeks of 'preliminary
investigation' that I was officially allotted, I managed to learn Dylan
and have a running proof of concept which *wowed* the
management.
--- snip snip ----
How it Finished:
Well, I actually finished the project. The project had a continuously
changing spec. They changed the panel system all the time. Many of
these changes were radical ones too. It changed by 50-75% during the
course of the 7 month development. Dylan handled these unplanned changes
beautifully. Not only was it *easy* to adapt this complex software to
major changes, but the code became more general and robust. I was
able to factor out methods and generalize them. Oh yeh, Dylan never
crashed. I would deliberately try to crash it during demonstrations. It
was great!
When I finished the whole system was declared DOA. Yep, Dead on Arrival.
That is the whole front panel system was replaced with a very different
system... more like a palm pilot LCD screen than a push button panel. Of
course, this being the real world, I was not informed of these decisions.
I was officially pulled off the project.
I was really bummed.
The next week a meeting was scheduled to determine my future with the
company and 'my failure' with the project.
Someone snuck me a copy of the new system specifications and I got
to see the new system in action. The interface and architecture was
totally different. But the more I looked at it the more I realized that
it performed the *same* basic functions as the original system.
On a hunch I came in that weekend I built on the old libraries
heavily... Not much time to do much more. Everything worked beautifully.
and was able to get 80% of the new system up and running. It even did
things I never thought about trying, like I could cut buttons from a push
panel and paste them on an the new LCD system.
That's one thing I noticed about Dylan is that it's just amazing how
quickly you can get something to work. If you get to this point with
Dylan you will be amazed too. Not only was it easy, but all the most
difficult parts of the code worked without any consideration in this new
context.
In fact it was so easy now to adapt to a new system, that I could use it
to design and prototype the next generation system still on the drawing
board. This moved the software's scope from a more of a production
tool to a true engineering design tool.
That week was, in many respects, the best week of my life... Seriously.
I glided (no need to touch the floor) into that meeting, with the project
resurrected from the dead. It was an epiphany.
Conclusion:
So you see, I developed a notoriously difficult commercial application
in a very hostile atmosphere. The executive vice president said it was
"visionary" and will "revolutionize the industry". It was easy enough
for salesmen and even customers to use. An hour's time with this tool
yeilded about a man-month's worth of work by a embedded software
engineer. A nice pay off if I may say.
To get permission to use Dylan at the beginning of the project I "bet
my professional reputation on it" (exact words I gave the
management). Dylan surpassed my greatest expectations and delivered
for me.
I myself won't consider working for any company if I can't use Dylan. I
would take a pay cut if I had to, but I won't have to. Now that I've
completed this project I have a team of high senior engineers (more
senior than me) who will swear by me and follow my lead. Of course
its mutual admiration, but I swear by Dylan.
They see (and rightly so) what I did, not how I did it. No one cares
what a wizard of kludge you are (as in C++ od vb), only the results.
The way I see it you only need two things to succeed with Dylan:
Vision and Courage.
Anyone reading this should seriously consider Dylan. I personally feel
it has what it takes to be the next generation language... like 'C' was
to assembler, Dylan is to C++.
Les
Sent via Deja.com
http://www.deja.com/
Follow-Ups: