Progress VS THE REST

tjsingh

Member
Hi

If i was going to go down the path of developing software which requires a database i need to decide why using Progress would be better than the technologies out there such as C++, VB etc....

Like to know peoples thoughts on this.

Having worked in companies using progress i know cost is a major thing when it comes to licences.

Look forward to the replies

cheers

TJ
 

wsong

Member
If it is a business logic intensive application, progress will let you to focus more on the programming for business logic. It is a natural business logic language.

If you are using C++ or C#, a lot of SQL sentence are to blended with method calls to execute the SQL sentence, difficult to program, maintain and understand. It is also harder to programmer to learn as well. E.g. you can try to write a simple BOM explosion function in C++ / C# without using stored procedure.

If there is no complex business logic or just simple data storing, sort, display. C# or C++ or Java is much better in most circumstances.

Good Luck

Willy Song
 

tjsingh

Member
Thanks for the reply

Thats a good way to understand it!

So in my case where i want to develop ERP - Progress would be the one!

But how about oracle and sap? Arent they just as good?
 

wsong

Member
Thanks for the reply

Thats a good way to understand it!

So in my case where i want to develop ERP - Progress would be the one!

But how about oracle and sap? Arent they just as good?

Good question.

SAP is developed using ABAP, a 4GL development language + database management tool developed by SAP. It is owned by SAP and is not open for sale on the market. I lists the differences between ABAP and Progress 4GL

1 . ABAP supports all major databases. So far Progress ABL supports only progress and oracle ( through dataserver )
2. ABAP uses it own lock management, Progress ABL's lock management is based on database. This is a important difference as I look it, it significantly improved productivity in ERP type application development and promote acceess concurrency .
3. ABAP supports seperated application server and cluster concepts date back to 1992, while Progress only support it from V9.0.
4. ABAP abstracts its DB management level on top of all kinds of DB it sits on. The SAP tables are translated to actual tables in different kinds DB. Progress database management tool is tightly con
5. ABAP is SAP prioprietary, SAP does not sell it seperately. So it is a good tool but no body other than SAP can use it to develop their applications.


So far as Oracle is concerned, their logic is developed mostly with stored procedure in PL/SQL, a procedural SQL extension. Simple and quite powerful. The front end is developed with other language such as Java, developer 2000 ( actually I am not quite sure about this) But to be frank, since its logic is in PL/SQL, I wouldn't call it a scalable solution as SAP is. You can't add as many application servers as you do with SAP. As a matter of fact Orale EBS is not even a cross-database solution. It only runs on Oracle because its logic is written in PL/SQL.

As a summary, so far as you see, these great ERPs are all written in scarcely used languages ( not using C, C++, Delphi, C#, VB, Java, PHP, ASP, JSP).

So that may tell some very important clues.

Willy Song

Shanghai China
 

rhi

Member
Thanks for the reply

Thats a good way to understand it!

So in my case where i want to develop ERP - Progress would be the one!

But how about oracle and sap? Arent they just as good?

If you ask this kind of question on a progress forum, what kind of answer do you think you're gonna get.

Why don't you ask it over at oracle forums - http://forums.oracle.com/.

Compare the database features:
Progress - http://www.psdn.com/library/servlet/KbServlet/download/1905-102-2516/gspub.pdf

Oracle - http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features/index.html

Or better yet, download any of their products and give it a try http://edelivery.oracle.com/, then make up your own mind.
 

Casper

ProgressTalk.com Moderator
Staff member
Re: Progress VS THE REST (way of topic now ,sorry)

If you ask this kind of question on a progress forum, what kind of answer do you think you're gonna get.

Why don't you ask it over at oracle forums - http://forums.oracle.com/.

Compare the database features:
Progress - http://www.psdn.com/library/servlet/...2516/gspub.pdf

Oracle - http://www.oracle.com/technology/pub...res/index.html

Or better yet, download any of their products and give it a try http://edelivery.oracle.com/, then make up your own mind.

To Rhi,

I don't want to get (again) in this Oracle vs Progress discussion and I think you are right in the sense that starting an application from scratch needs further investigation then asking in a Progress forum if you should use Progress. But for curiousity sake I was wondering, are you still building applications in Progress or are you just maintaining legacy Progress applications?

Regards,

Casper.
 

tamhas

ProgressTalk.com Sponsor
It all reminds me of a guy who used to post on the PEG a few years back. He had gotten in to a Progress shop in Italy on assignment from a large consulting company and decided it was a dead end job so he pissed and moaned at every opportunity about how horrible Progress was compared to his preferred tools. Of course, he was a youngish fellow without a lot of perspective and most of the issues he was encountering had more to do with the way the shop was run than with the tool itself, i.e., it would have been bad, possibly worse, with another tool. I guess he didn't to quit the consulting house and it was a limited term engagement so he seemed to decide to pass the time by complaining.

It is funny how much of this kind of discussion depends on one's experience and perspective ... and how often people are comparing apples to oranges, seemingly without any awareness that this might not make sense.

Yeah, there is more of "them" than there are of us. Does that mean that anyone who is using something that isn't the most popular tool should change because technology selection is a democracy? Sure, having more of "them" makes it easier to hire a "them", especially for a small company out in the boonies, but that doesn't mean that the "them" one gets will be any good. On the contrary, I think I would rather trust a third rate programmer to do useful work in ABL than in Java.

And, yeah, Oracle makes a pretty good database in some ways. But, you know, these days the database is largely a commodity ... many of them are even free. Depending on the application a specific feature might matter -- word indexes, extreme scalability, support for XML datatype, availability with a particular tool, etc. -- but other than that, they are mostly just something that one picks off the shelf and uses and it doesn't matter a lot which one. Of course, Progress databases do tend to be more friendly to maintain, but the big reason to pick a Progress database is because one wants to write in ABL. You all do remember that the database was an after thought, don't you? Something that got created because the rest of them weren't good enough.

And sure, the ABL has its warts ... be surprising if it didn't after all these years of providing upward compatibility. But, you know, it is awfully efficient for getting the job done compared to 3GLs, certainly for the business logic portion of things. As noted elsewhere, I'm not too wild about it for UI, but then that is likely to be a separate technology no matter what the base platform. And what is it that Oracle is supposed to be offering that competes with ABL?

So, yeah, there are a lot of development options and one or more of them might really stand out for you depending on what one wants to do ... there are even people who like LISP! But, the idea that Progress is just some kind of has been that is outcompeted by Oracle across the board is a bunch of nonsense. There are a few thousand APs around the world selling billions of dollars of product to millions of end-users to show that is really just a silly position to take.
 

TomBascom

Curmudgeon
Nicely put!

I couldn't agree more. Sure, if the chance presents itself open your eyes, look around and evaluate your options. Progress isn't right for everything and it has its pros & cons. Same for Oracle, Java, .NET and whatever. Progress does have strengths and if those strengths are a match for what you're doing it is an excellent choice.
 

klodoma

New Member
As a summary, so far as you see, these great ERPs are all written in scarcely used languages ( not using C, C++, Delphi, C#, VB, Java, PHP, ASP, JSP).

Yes because to make an ERP ... you need some years of development. All the running ERP systems started in the 90's or maybe start of 2000 and they were developed then.

If you would start now to develop an ERP would what would you choose?



OK.. now this is my experience so far:

Well ... I just started working with Progress 3 months ago. For me is like jumping back in the Past with 10 years.
I come from SQL, C++, C#, strong PHP background(certified) and I really see cannot see the "strong" part of Progress. I use it because the
company where I work uses it, and they have an interesting ERP build on it.
BUT... we live in 2008 Year ... and the Posibilities with Progress are so limited that I really wonder.

First:

the support, like this forum.

If you look at Progress there are about 2000 active members, if you look at a Java, C, C#, Delphi, C Builder, PHP forum... there are millions of members. So if you post a problem, you get the answer quite fast. Not speaking about Open Source or very cheap components that you can find for the "others".


Then some issues with progress that I've noticed (maybe some of these are missuderstood or maybe I didn't find the solution for them)
- the pages are static, if you want to make something dynamic... you're really tight, very very few options. There are no pointers and those
handlers are just limited. The design is very static… you have to bind everything
- Looping through frames to get all the elements!!!!
- Cannot access object like the elements: obj.x.y.z works not. Like window.frame.object.propery ...
- Program closes at some errors without any warning
- Cannot separate logic from layout. The layout is too TIGH bunded with the DB.
- Cannot use classes in the real sense of OOP.
- Simple commands: like: i++, i--. I++=2; i--=2; I = a ? b: c; i=j++;
- regular expressions !?
- string functions, array functions simply missing. or only basics.
- arrays in progress!? only a[1] a[2]...
- maybe lists?
- functions with predefined parameters!? etc etc
- You load a page with a lot of frames although there are only a few used…
- Interaction between windows is null, no pipes, no process communication
- Dynamic Queries can be build very hard… must use buffers. Very complicated and not friendly.
- Debugging and Errors:
- Error debugging: terrible. In most cases it does not tell you where the error happened, just a limited message with an error number. No line number… nothing
- Runtime errors are even worse; sometimes you have no hint of what and where happened. Sometimes the process just DIE.
- The Queries cannot be debugged, and explained to see exactly how they are executed, what indexes are used etc for performance issues.
- Cannot stop a running process just by killing the process, this should not be a problem, just that The AppBuilder runs in the same process as the program. So by killing the running process you close practically everything.

... I think I could write here at least 2 pages of examples.


Then... the "native" Graphic Objects. Did you seen the .Net grid and what you can do with that? You can do anything you want(almost)
... some will say use OCX... ok, we use it, but that's another sad story.


Then the Appbuilder... I wonder if you can compare .Net IDE, Zend IDE, NuSphere, Eclipse with Appbuilder. And the debugger... very limited.

About performance... I really think that an Open Source DB like Mysql or PostgreSql will run faster than Progress.

I've not seen yet the Progress Eclipse, i've read that is really buggy.

Ok, now all these been said, I have to live with these. This is not the problem.

My question is if Progress will be further developed? And I mean DEVELOPED... Better GUI, functions libraries etc.
 

Casper

ProgressTalk.com Moderator
Staff member
Hi KloDomo,

Coming from where you are coming I can understand that you have to make a mindshift to understand the language.

I'm not going into the discussion how good or how bad Progress is.
But I see that lots of the things you stated have to do with some lack of knowledge of the language and the architecture you are dealing with at the company where you work.

Many of the things you say that Progress is lacking are perfectly possible within the Progress language. Maybe if you ask some specific questions with the problems you are encountering it will shed some light on the language. I suspect you didn't learn the other languages in 3 months. (That is REALLY programming and not just learning the syntax).

What I do like to say is that seperating BL from layout is a design issue and not a coding issue. And using .NET as front end is perfectly possible with Progress. If you wait till 10.2A then you can build your .NET front end from within Progress but it is already for a very long time possible to build your .NET UI with a Progress backend.
And OCX handling with Progress is IMHO more easy then it is with .NET. But that probably is a matter of taste.

Regards,

Casper
 

klodoma

New Member
Don't get me wrong, I don't want to debate about how bad Progress is. I just say that there are functionality leaks. All these are based on my observations in these 3 months.

Maybe if you ask some specific questions with the problems you are encountering it will shed some light on the language.

Specific problems(probably for this we should make an other thread that others can find that too):
- Simple commands: like: i++, ++i, i--. I++=2; i--=2; I = a ? b: c; i=j++; For example with i++ or ++i you can really spare a lot of code.
- regular expressions. RegEx and Match extracting.
- arrays -> multiple arrays - (please don't answer temp table) ... I need a 3 or 4 dimention array. And in this would be nice to have different types of data in the array.
- pointers - how can I refer to an object/variable without to care what type that is? ... an array of something like this would interrest me a lot.

We should not speak about "what is possible" to be made, because this way almost everything is possible with anything. The "simple and reusable way" to implement it interrests me more. Just one example: you cannot compare a 10 to 50 line function for email or a string validation with one Regex line.

Thanx.
 

tamhas

ProgressTalk.com Sponsor
As Casper says, a lot of what you complain about, beyond trivial things like i++, which frankly have more to do with typing than capability, are perfectly possible and even straightforward in ABL, especially if you keep current on releases. Are you running a 9x release and thinking that this represents the state of the art in ABL?
 

Casper

ProgressTalk.com Moderator
Staff member
- Simple commands: like: i++, ++i, i--. I++=2; i--=2; I = a ? b: c; i=j++; For example with i++ or ++i you can really spare a lot of code.
- regular expressions. RegEx and Match extracting.
- arrays -> multiple arrays - (please don't answer temp table) ... I need a 3 or 4 dimention array. And in this would be nice to have different types of data in the array.
- pointers - how can I refer to an object/variable without to care what type that is? ... an array of something like this would interrest me a lot.

Unfortunately (for myself :)) I only got none answers to these.

For the first one you could try Abhack which has the i++ functionality in it. (http://http://www.psdn.com/library/...vlet/download/1886-102-13783/abhack080225.zip)
I hope the link works otherwhise search @PSDN for AbHack and you'll find it.

2- I'm in favour of regular expressions in the language myself too, but unfortunately it isn't there. Then again you could always parse the text through some program which can do this. Or you could write it yourself within a function. (Although I wouldn't know if that is the way to go).
I kinda remember seeing some regexp function written in Progress, but I can't remember where. If I do I'll get back on that.

Regarding 3: Well you said you didn't want to hear :awink: I must say that I never had need for it, so far.

4: Excuse my ignorance but what do you exactly mean with this?

Casper
 

julie_warden

New Member
Progress' main weakness I see is the job market. Unless you know the latest versions and are willing to move, you're pretty much stuck if you live in the New England US.

As to creating an ERP system, "you and what army"?

My 2 cents.

Julie
 

tamhas

ProgressTalk.com Sponsor
Depends on your tools ... I've got an ERP system with about 1.75 MLOC and it was created largely by me with a couple years of a couple programmers help, who were also handling tech support.
 

RKR

Member
Don't get me wrong, I don't want to debate about how bad Progress is. I just say that there are functionality leaks. All these are based on my observations in these 3 months.



Specific problems(probably for this we should make an other thread that others can find that too):
- Simple commands: like: i++, ++i, i--. I++=2; i--=2; I = a ? b: c; i=j++; For example with i++ or ++i you can really spare a lot of code.
- regular expressions. RegEx and Match extracting.
- arrays -> multiple arrays - (please don't answer temp table) ... I need a 3 or 4 dimention array. And in this would be nice to have different types of data in the array.
- pointers - how can I refer to an object/variable without to care what type that is? ... an array of something like this would interrest me a lot.

We should not speak about "what is possible" to be made, because this way almost everything is possible with anything. The "simple and reusable way" to implement it interrests me more. Just one example: you cannot compare a 10 to 50 line function for email or a string validation with one Regex line.

Thanx.

These things are simply nice things, but they do not make a language bad or superiour. I have a lot of experience with Progress, .NET, C++ and some other programming languages. These things are not the ones that will decide for me what language to use. It depends on the job I have to do. For business applications I would choose Progress over all others. To develop User Interface I would develop in .NET or Java. It all depends on your needs, and not if you can code i++ or if you have to write i = i
+ 1.
 
Top