Andrew,
Yeah, we all tried. Maybe I have my head so buried in Java I can't see the
simple methods in Minilang.
For now, given a hot-soup mix of problems from screen/form widgets and problems with some
constructs in Minilang, I'm forced to drive things forward this way: Use Java services but
leverage every convenience method in Minilang.
Once I'm done with this current project (or when I'm fired), I can come back here to "explore and
contribute". Oh well. Back to work. :( ... :) ... :/
I still say that OFBiz rules! And I intend to prove my instincts right, after
I'm done with project.
With regards Ian's comments, I personally like winning the Le Mans (less docs, more progress, but
then why do bugfix rates seem to slow down recently?). I'm a wannabe race car driver who takes
apart race cars, so I don't quite care for driver's manual in glove compartment. But then, I'm
also NOT known for having a forte in amassing world-wide adoption for OFBiz, nor can I be held
responsible for OFBiz's future popularity. :P
Jonathon
Andrew Sykes wrote:
Jonathon,
Ok, well, I tried ;-)
- Andrew
On Thu, 2007-01-18 at 21:51 +0800, Jonathon -- Improov wrote:
Andrew, Chris, Ian,
I would definitely choose Minilang over Java, if I didn't have a pressing "do it this minute"
schedule. It is definitely the right step forward.
I tried Minilang for a while, then realized there ARE some constructs I can't quite do like I
would with Java. Same for screen/form widgets. I posted a short question asking if there's any
docs for screen/form widgets. No response thus far. But I've since learned what env-name,
map-name, etc mean. Not by docs I can find, but through the widget framework Java sources. Simple
concepts like "how do I extract a field value and put it to a variable for later use", or even
"how do I create a variable for computation" required some digging into widget framework Java sources.
So, what did I do? I got the job done. Java works. Minilang can wait. :P Screen/form widgets can
wait (I used a Java service attached by an ECA).
Did I do a messy buggy Java routine? I'd ask you the same question. With some basic programming
principles, it's not difficult to write reusable extensible code (see the mutable checks sequence
I wrote for http://issues.apache.org/jira/browse/OFBIZ-627).
Sure, I'll eventually find it easier to do things in Minilang. Many Minilang constructs are direct
clones of Java functions anyway, so converting from one to the other and back won't be so tough.
But it's the variables, scope, "where did that variable's value got stomped" problems that put the
brick wall up for me.
So, as things stand now, I (being a Java programmer of sorts), found it easier in Java. A simple
Java programmer like me knows certain "tricks of trade" to figure out the structure of Minilang or
widget XMLs. But what about non-programmers?
> 6/ So much functionality is already implemented in minilang that you ignore
> it at your peril.
Anyway, I am able to tap all of Minilang's features using Java alone, so I do get best of both
worlds. :)
Actually, to be fair, Minilang isn't so bad in terms of docs (by now? recently?). See
http://ofbiz.apache.org/docs/minilang.html . I was really struggling with widget XMLs.
Right now, my project is moving ahead. And that's what counts. Sigh. Couldn't there be a time when
we abolish work, and everybody does things simply for exploration and science?
Chris,
> Also, documentation doesn't write itself. If you find
> something that didn't work as expected or a task was
> difficult to accomplish but you eventually accomplish
> it, do a short write about how you got from point A to
> point B and drop it into the wiki on docs.ofbiz.org or
> write it to the mailing list and ask if someone can
> find an appropriate place for it.
I'd be fired! I did try to get quickstart advice from mailing list, remember? But now that I've
posted questions, waited for response, dug in myself, and found answered my posts myself, I can't
find much time left to write up those docs. I don't even have enough time to submit my
enhancements and bugfixes!
Yes, bad bad programmer, not very opensource-spirited. But like I said, I can be a very
opensource-spirited non-programmer (after being fired), or I can just "do my job" and hope I can
swing back some time to contribute.
And I'll definitely want to do something for OFBiz. As I told someone here before, I'm thoroughly
enjoying OFBiz (like the manufacturing and product Virtual BOMs stuff done by Jacopo?).
> There's a funny point in learning OFBiz. You start
> out looking at it as this huge monstrosity that's just
> too much to figure out and you get frustrated with the
> lack of documentation available (even given the sites
> linked off of ofbiz.apache.org and the tens of
> thousands of mailing list posts available and the
> number of video tutorials available). But you start
> playing with it a bit, and you pass an "aha" moment.
> You don't realize the moment that you pass it but when
> you look back and think "how can I make the learning
> curve easier for the next guy", you realize everything
> was there, and it's difficult to figure out what you
> can add to those websites that could make it any
> clearer.
Hindsight is always easier. I know what you mean, Chris.
It's like we stare at some seemingly random numbers scrolling through screen, we think it's noise.
But after we spot the patterns, we wonder how we didn't see it before!
I can't learn "The Matrix green downward-scrolling font" inside of 1 week. I need to get into the
Matrix and do some work RIGHT AWAY (like run the nice noodle restaurant at the corner). So,
instead of reading those green fonts, I pulled out the Matrix engine and started plugging away at
the interfaces. (Aha! So touching this and that interface gives me very good soup noodles!).
Jonathon
Andrew Sykes wrote:
Ian, Jonathon,
I definitely don't agree with treating Java is your language of choice
as a way to avoid learning Minilang, here's some reasons why...
1/ Minilang is far quicker to write.
2/ Minilang is much more limited in scope, so less danger of...
2a. Writing unidiomatic code
2b. Writing buggy code
3/ Being a simpler language, minilang can be handled by far more junior
personnel, and in some cases, I've seen non development staff being
fairly productive.
4/ Java developers are easier to hire, but not ones with a good
understanding of the OfBiz API.
5/ Learning minilang is a fast-track route to adopting the OfBiz
developer's mindset.
6/ So much functionality is already implemented in minilang that you
ignore it at your peril.
7/ When you finally have to adopt Minilang you'll have a load of
unmaintainable java legacy. This will no doubt seem more and more
cryptic as time goes on.
I could probably go on...
This type of approach breaks the golden rule when adopting something as
large as OfBiz, that is, read read read!, learn learn learn!, and only
then should you think of letting yourself loose on the code! You'll
thank yourself later!
No doubt various people will counter this with a whole lot of personal
dislikes about minilang, but I'll be surprised if any of these people
have been using OfBiz in anger for any length of time.
Sorry if this seems a little condescending, but I've seen this kind of
argument in my consultancy work several times, and the resulting costly
dodgy java or furious back-peddling that results from it.
- Andrew
On Thu, 2007-01-18 at 19:38 +0800, Jonathon -- Improov wrote:
Er, Ian. I forgot to mention this.
The docs for engineers aren't too comprehensive either. Try putting your best Java developers into
picking up OFBiz. Take the screen widgets and form widgets for example. See how they fare. Like I
said, Java is more documented than OFBiz-specific technologies.
BUT.. but it's entirely possible to use Java only, plus non-OFBiz-specific technologies like
Freemarker for front-end development convenience, and to skip Minilang and screen/form widgets to
a large extent. Non-OFBiz-specific technologies are generally better documented since their
developers focus develoment time solely on those techs, like Freemarker (front-end tool)
developers don't delve into entity engines (backend tools).
As I was telling my boss, it's actually easier to hire Java programmers than to hire Minilang or
screen/form widget programmers.
So, beware of the implications. Say I code customizations for you in Minilang and screen/form
widgets, using almost or entirely zero Java. Future tech support could be an really hairy issue
for you.
BUT... at some point (I can't guarantee when), Minilang and screen/form widget docs will be
complete, audited to be comprehensive, etc. You'll then probably find that programming in Minilang
is more cost-effective than in Java. (Either that, or I get paid by someone to completely
reverse-engineer and document all of Minilang and screen/form widget in a reasonable timeframe ---
say a month. Not an impossible task, just a mountain of Java codes, is all).
For now, Java is perhaps your best bet.
To the other folks in overalls, I've been meaning to ask this. Is there any way at all to insert
debug messages inside of Minilang and screen/form widget codes? I find it easier to debug Java
codes for now.
Jonathon
Jonathon -- Improov wrote:
Ian,
Amen! Yeah, God is good. OFBiz is good. Both can be hard to understand.
But I do believe that both are loving, very loving. Amen.
If there's any way we can all help each other (Paul, Ian, Jonathon), let
me know.
Jonathon
Ian McNulty wrote:
Hi Jonathon and Paul,
Could I dive in here and say I'm currently trying to get a working
model up and running that I could demo to small business clients in
the UK.
OFbiz looks so beautifully designed from the ground up, streets ahead
of the competition and adaptable to almost any situation from running
a one-man consultancy to a multinational enterprise.
It looks like the most awesome super-car you've ever seen. I can't
believe everybody won't want one.
As Jonathon says, the community seems entirely focussed on moving
forward rapidly and winning the next Le Mans. Which is how it should be.
Imo this explains the lack of docs and the small bugs. The mass of
available documentation is actually almost as awesome as the framework
itself. Problem is that it is all aimed at engineers who need to
understand how it works ... not how to work it. Enough workshop
manuals to fill shelves in the garage, but no simple driver handbooks
you can put in the glove compartment.
This is a very fundamental difference. An entirely opposite point of
view.
Try talking to the average driver about the thermodynamics of
combustion and they glaze over in seconds. They neither need nor want
to know. They simply want to drive it. They pay the garage to take
care of all that for them so they can free themselves up to deal with
other things - like where to drive to.
It's the little, superficial things that are most important. How does
the door latch sound? Where is the gear shift and indicator switch?
How often does it break down?
This is true for all levels of users. More so in fact for the
President of a large Corporation to whom image arriving at the golf
club is everything, than to the small businessman in the street who
accepts he may have to get his hands dirty occasionally.
Winning the Le Mans is obviously a huge selling point and an essential
place to start. In those circumstance, a door latch which needs a
knack to open, the absence of a drivers handbook and the need for team
of mechanics to tune it before every race is absolutely par for the
course. And a racing driver who complains about such things will -
quite rightly - be quickly shown the door.
But for the average driver in the street it's exactly the opposite.
One sticking door latch, one miss-start, one breakdown on the first
test drive and they've had their one bite of the cherry and ain't
never coming back for more.
Imo this is the only problem I'd like to see solved.
I started out a few weeks ago trying to point out that this list is
more for users in overalls at the pit stop than drivers in business
suits on their way to the office.
Imo a forum for user-drivers rather than user-engineers would help
focus the view from the other end of the telescope and prevent
discussion of such superficial issues from clogging the inboxes of the
rocket scientists who really need to be concentrating on getting us to
Mars.
I personally would like to contribute towards the development of some
kind of drivers handbook. But if I can't get a working model going for
myself then it's hard to know where to start.
Ian
Jonathon -- Improov wrote:
Hi Paul,
I believe I'm currently doing it for a small business as well.
You'll need to customize. Customization in this case involves
defaulting many values and code execution paths for a more condensed
workflow. That is, you can cut out some unnecessary steps in the
workflow and also auto-populate default values for some fields (or
leave them blank and unused).
I propose that we work together on this? I have yet to hit the
accounting and GL side of things. I have figured out the ecommerce
(PO, SO) and product configuration side of things, though. And also
manufacturing, because my boss does manufacture stuff.
You'll find that being a novice Java developer is ALL you need to be,
the framework is that easy to use. Well, you also need acute
reverse-engineering skills because the only way you'll find out how
things work is by diving into the framework source codes (see
GenericDelegator.java for entity-related functions). No docs.
Community is too being moving OFBiz forward rapidly.
In fact, you may find it easily initially to use Java instead of
Minilang. Java is a lot more documented than Minilang.
Tell you what. I can offer you very quick answers to "how do I do
this or that". I'm a reverse-engineer by trade; I have small crack
teams that mathematically take apart legacy system codes to break
vendor-lock for my clients. So, figuring out OFBiz, given that it's
opensource no less, is really... an interesting exercise, not a
tedious impractical one.
You can help me with your accounting knowledge. (Yes, help me!! I beg
you!)
How about that?
One warning, though. There are quite a few bugs in OFBiz. They're
small issues if you can dive in to fix them yourself. But if you're
waiting for the community to fix them, you could be looking at weeks
before a patch goes in, especially for non-trivial fixes that take
time to review/audit. I'm currently holding quite a number of fixes
in-house, not yet reviewed by community and merged back into OFBiz.
I'm deploying a customized system for my boss inside of 1 month. And
he has quite a bit of customizations to do, particularly for the
manufacturing side of things. Oh, the Manufacturing module is very
feature-rich (thanks Jacopo!), just that my boss has special needs.
I'd say we could work together and customize OFBiz for you inside of
2 weeks?
Jonathon
Paul Gear wrote:
Hi folks,
I'm looking at different accounting/business management packages for
use
in my small business, and i was excited when i found how comprehensive
and easy to install opentaps was.
However, it is a daunting application for the beginner, and it leads me
to ask: is it asking for trouble trying to use it as a small business
accounting package? My requirements are fairly simple: invoicing
(services only, no inventory), general ledger, and GST tracking for the
Australian tax system.
I'm a novice Java developer, so i can get through most basic problems
OK, but understanding the framework is a bit more complex an
undertaking. Am i just creating work for myself thinking that i can
use
OFBiz/opentaps for my small business?
Thanks in advance,
Paul
<http://paulgear.webhop.net>
--
Did you know? Using HTML email rather than plain text is less
efficient, taking anywhere from 2 to 20 times longer to download, and a
corresponding amount more space on disk. Learn more about using email
efficiently at <http://www.expita.com/nomime.html>.